例如,当您转到the URL that lists the various ontologies时,您会看到,一切都在owl:Thing
下。 owl:Thing
具有Activity
,Agent
子类,还有更多子类可以作为直接子代。 Activity
有自己的孩子和子孩子,Agent
在此link中,有这些curl脚本示例,它们说明如何针对我们要搜索的事物类型发送HTTP GET请求。我使用curl脚本转换器将其带入Python,但这不是问题的重点。
我不想编写SPARQL脚本,而是想编写一个curl或Python脚本,该脚本返回与entity = Apple
关联的,不是类Activity
的所有URI。这意味着必须返回与单词Apple
相关的所有相关URI,包括Apple_Inc
和Apple
水果,以及不属于Activity
类的任何和所有相关链接。
您可以执行的示例GET请求位于Request Types : Do a Dbpedia request
中URL的底部。我不知道如何为该特定请求传递参数。
这是我能够使用链接中给出的示例尝试的东西。
如果我想说'dbo:almaMater', 'dbo:birthName', 'dbo:birthPlace'
中的Donald_Trump
,则从curl脚本转换的Python代码如下:
import requests
baseurl = "http://vmdbpedia.informatik.uni-leipzig.de:8080/"
getprefix = "api/1.0.0/values"
headers={"Accept": "application/json"}
parameters = (
('entities', 'Donald_Trump'),
('property', ['dbo:almaMater', 'dbo:birthName', 'dbo:birthPlace']),
('pretty', 'NESTED'),
('limit', '100'),
('offset', '0'),
('key', '1234'),
('oldVersion', 'false'),
)
r = requests.get(url = baseurl + getprefix, headers = headers, params = parameters)
print(r.json())
做这样的事情看起来很简单,但是可以解决歧义。.就像单词Apple
是Fruit
和Organization
这样的事实,我想编写相关的代码来解决通过返回过滤器下word/entity = Apple
的最相关的URI(不属于某个类或子类)来消除歧义。