例如,我有Apple
一词。根据本体,Apple
可以指组织Apple_Inc
或Species
类的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
代表。
我实际上迷路了。我会上一次开始吃一头大象。现在,如果我能回答这个问题,我将不胜感激。
答案 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 }
}