DBPedia SPARQL,为实体返回一定数量的相关页面URI,但该实体属于Owl:Thing

时间:2018-08-02 23:19:34

标签: sparql dbpedia

  1. 正在查找SPARQL查询以执行以下操作:

例如,我有Apple一词。根据本体,Apple可以指组织Apple_IncSpecies类的Plants类。 Owl: Thing有一个名为Species的子类,因此我想返回关键字Apple不属于Species子类的那些最相关/获得最大点击的URI。因此,当您返回所有URI时,http://dbpedia.org/page/Apple不应是其中之一,Species子类下的任何相关链接也不应。

按最大匹配/最相关,我的意思是与查询相匹配的返回最高结果!就像您访问PrefixSearch (i.e. Autocomplete) API一样,它具有名为MaxHits的参数。

例如http://lookup.dbpedia.org/api/search/PrefixSearch?QueryClass=&MaxHits=2&QueryString=berl是一个链接,您想在其中返回与QueryString=berl匹配的前2个URI。

就像我实际上真的很难解释我到目前为止所做的工作,因为我无法理解其结构以及如何制定适当的查询。

关于SPARQL中的否定,我在链接here中找到了文档的相关部分。但是我不知道如何以及从何处着手,也无法理解为什么{{1 }}被使用。.我能理解?person是用来选择的。.人名,但我想知道如何以及在哪里找到这些关键词,例如person?person代表特定实体。

?name

如果有人可以链接我我可以清楚阅读并理解的文档部分,我将非常感谢您了解,SELECT ?uri ?label WHERE { ?uri rdfs:label ?label . filter(?label="car"@en) } 用于选择?uri形式的URI以及这些{{1} },www.dbpedia.org'/page/SomeEntity?person代表。

我实际上迷路了。我会上一次开始吃一头大象。现在,如果我能回答这个问题,我将不胜感激。

  1. 无论如何,如果您知道我可以避免学习和使用SPARQL,那也可以!我对Python非常了解,因此利用API来获取此信息也很好。此question由我发布。

1 个答案:

答案 0 :(得分:1)

@ Stanislav-Kravin发表的答案-

SELECT DISTINCT ?s 
WHERE
  { ?s a owl:Thing .
    ?s rdfs:label ?label . 
      FILTER ( LANGMATCHES ( LANG ( ?label ), 'en' ) ) 
    ?label bif:contains '"apple"' . 
      FILTER NOT EXISTS { ?s rdf:type/rdfs:subClassOf* dbo:Species } 
  }