我怎样才能使维基数据能够建立类似Siri的服务?

时间:2015-05-25 19:55:48

标签: json mediawiki wikipedia-api mediawiki-api wikidata

我想讨论这种类似Siri的服务的第一部分。

理想情况下,我希望能够查询以下内容:

  1. “社交网络”
  2. “贝多芬”
  3. “坏血泰勒斯威夫特”
  4. 得到这样的结果:

    {type:"film"}
    
    {type:"composer"}
    
    {type:"song"}
    

    我什么都不关心,我发现维基百科以外的描述,图像和一般信息完全没用。 我将维基数据视为一种元数据服务,它可以为我提供我搜索的文本的语义。

    所有数据结构都有“类型”或某种与其含义有关的属性吗?是否有所有类型的列表?对于具有双重含义的实体,如“apple”,是否有建议功能?最后,如何发送文本查询并读取响应数据结构的“类型”?

    我知道我没有提供任何代码,但我真的无法理解维基数据的API。我到处搜索,所有我找不到的是一些残缺的获取示例,并搞砸了Objective-C HTML解析器。由于我不理解的一些错误,我甚至无法让他们的“示例查询”页面起作用。

    真的是新手不友好,而且说句话很重。

1 个答案:

答案 0 :(得分:6)

维基数据API的问题在于它没有查询界面。如果您已经知道ID,它所做的就是返回特定数据项的信息。我们根本无法构建一个足够强大且能够扩展的查询界面。虽然有一个SPARQL端点的早期测试版:https://tools.wmflabs.org/ppp-sparql/

一旦启动并运行,我们希望在此基础上提供更易于使用的服务,例如Magnus' WDQ http://magnusmanske.de/wordpress/?p=72

(编辑以回答有关API的具体问题:)

  

我到处搜索过,而我找不到的是一些残缺的取景例子

文档可能更好,但https://www.wikidata.org/wiki/Wikidata:Data_access是一个好的开始。另请注意,https://www.wikidata.org/w/api.php是自我记录的。请特别注意https://www.wikidata.org/w/api.php?action=help&modules=wbgetentitieshttps://www.wikidata.org/w/api.php?action=help&modules=wbsearchentities

  

所有数据结构都有"类型"或某种与其含义有关的财产?

有关数据项的所有陈述都与其含义有关。许多人都对""" (P31)或""的子类(P279)属性,我猜想它非常接近你想要的。

  

是否有所有类型的列表?

没有。维基数据并没有使用封闭的,预定义的本体来描述世界。它是一个以机器可读方式协同描述世界的平台;从那时起,流体本体出现了,这种本体论从未完全或一致。

任何数据项都可以作为另一个项的类或suprt-class。项可以是多个类的实例或子类。这种关系非常复杂。

  

对于具有双重含义的实体是否有建议功能,例如" apple"?

有一个搜索界面可以列出给定术语的所有匹配数据项。它被称为wbsearchentities,例如https://www.wikidata.org/w/api.php?action=wbsearchentities&search=apple&language=en(为机器可读的JSON添加format=json)。

然而,结果中的排名非常幼稚。如果没有原始句子的语义上下文,就无法找到哪个词义是什么意思。这是一个有趣的研究领域,称为#34;词义消歧"。

  

最后,我如何发送文本查询并阅读"类型"响应数据结构?

目前,您将需要执行两个API调用:一个用于wbsearchentities以获取您感兴趣的实体的ID,另一个用于wbgetentities以获取实例语句对于那个实体。将它组合在一个电话中会很好;这是一张打开的门票:https://phabricator.wikimedia.org/T90693

至于类似Siri的服务:早期的原型名为" wiri"由Magnus Manske已经存在了很长时间。它使用非常简单的模式:https://tools.wmflabs.org/magnus-toolserver/thetalkpage/

Bene *一直致力于采用更先进的自然语言问答方法,请参阅鸭嘴兽演示:https://projetpp.github.io/demo.html

就在昨天,他提出了一个与Tpt一起开发的新原型,它从自然语言输入生成SPARQL查询:https://tools.wmflabs.org/ppp-sparql/

所有这些项目都是开源的,由热情的志愿者创建。查看代码并与他们交谈。 :)