Vul*_*kan 4 mediawiki json wikipedia-api mediawiki-api wikidata
我想讨论这种类似Siri的服务的第一部分.
理想情况下,我希望能够查询以下内容:
得到这样的结果:
{type:"film"}
{type:"composer"}
{type:"song"}
Run Code Online (Sandbox Code Playgroud)
我什么都不关心,我发现维基百科以外的描述,图像和一般信息完全无用.我将维基数据视为一种元数据服务,它可以为我提供我搜索的文本的语义.
所有数据结构都有"类型"或某种与其含义有关的属性吗?是否有所有类型的列表?对于具有双重含义的实体,如"apple",是否有建议功能?最后,如何发送文本查询并读取响应数据结构的"类型"?
我知道我没有提供任何代码,但我真的无法理解维基数据的API.我到处搜索,所有我找不到的是一些残缺的获取示例,并搞砸了Objective-C HTML解析器.我甚至无法让他们的"示例查询"页面工作,因为我不明白的一些错误.
真的新手不友好,充满了沉重的术语.
Wikidata 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=wbgetentities和https://www.wikidata.org/w/api.php?action=help&modules=wbsearchentities
所有数据结构都有"类型"或某种与其含义有关的属性吗?
关于数据项的所有陈述都与其含义有关.许多人都有关于"实例"(P31)或"子类"(P279)属性的陈述,我认为这非常接近你想要的.
是否有所有类型的列表?
没有.维基数据不使用封闭的,预定义的本体来描述世界.它是一个以机器可读方式协同描述世界的平台; 从那时起,流体本体就会出现,这种本体论从未完全或一致.
任何数据项都可以作为另一个项的类或超级类.项可以是多个类的实例或子类.这种关系非常复杂.
对于具有双重含义的实体,如"apple",是否有建议功能?
有一个搜索界面可以列出给定术语的所有匹配数据项.它被称为wbsearchentities
,例如https://www.wikidata.org/w/api.php?action=wbsearchentities&search=apple&language=en(format=json
为机器可读的JSON 添加).
但是,结果中的排名非常幼稚.如果没有原始句子的语义上下文,就无法找到意义上的词义.这是一个有趣的研究领域,称为"词义消歧".
最后,如何发送文本查询并读取响应数据结构的"类型"?
目前,您将需要执行两个API调用:一个用于wbsearchentities
获取您感兴趣的实体的ID,另一个用于获取该实体wbgetentities
的实例语句.将它组合在一个电话中会很好; 这是一张打开的门票:https://phabricator.wikimedia.org/T90693
至于类似Siri的服务:Magnus Manske称之为"wiri"的早期原型已经存在了很长时间.它使用非常简单的模式:https://tools.wmflabs.org/magnus-toolserver/thetalkpage/
Bene*一直在研究更高级的自然语言问答方法,请参阅Platypus演示:https://projetpp.github.io/demo.html
就在昨天,他提出了一个与Tpt一起开发的新原型,它从自然语言输入生成SPARQL查询:https://tools.wmflabs.org/ppp-sparql/
所有这些项目都是开源的,由热心的志愿者创建.查看代码并与他们交谈.:)