使用REST API进行DBPedia过滤,获取不属于“ Owl:Thing”特定子类的一个或多个子实体的所有相关URI。

时间:2018-08-02 13:53:57

标签: dbpedia

例如,当您转到the URL that lists the various ontologies时,您会看到,一切都在owl:Thing下。 owl:Thing具有ActivityAgent子类,还有更多子类可以作为直接子代。 Activity有自己的孩子和子孩子,Agent

在此link中,有这些curl脚本示例,它们说明如何针对我们要搜索的事物类型发送HTTP GET请求。我使用curl脚本转换器将其带入Python,但这不是问题的重点。

我不想编写SPARQL脚本,而是想编写一个curl或Python脚本,该脚本返回与entity = Apple关联的,不是类Activity的所有URI。这意味着必须返回与单词Apple相关的所有相关URI,包括Apple_IncApple水果,以及不属于Activity类的任何和所有相关链接。

您可以执行的示例GET请求位于Request Types : Do a Dbpedia requestURL的底部。我不知道如何为该特定请求传递参数。

这是我能够使用链接中给出的示例尝试的东西。

如果我想说'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())

做这样的事情看起来很简单,但是可以解决歧义。.就像单词AppleFruitOrganization这样的事实,我想编写相关的代码来解决通过返回过滤器下word/entity = Apple的最相关的URI(不属于某个类或子类)来消除歧义。

0 个答案:

没有答案