当我使用以下SPARQL查询时,我得到了DBpedia类Country的所有属性:
select ?range ?domain ?prop ?label
Where{
?class rdfs:subClassOf{0,1} ?domain.
?prop rdfs:domain ?domain.
?prop rdfs:range ?range.
?prop rdfs:label ?label.
FILTER(lang(?label) = 'en')
FILTER(?class = <http://dbpedia.org/ontology/Country>)
}
当我尝试使用"事物"或"OWL:事物"或"事物"或任何等效物而不是国家/地区执行此操作时,我得到的结果是空的。
我想采用 DBpedia 的 owl:Thing 的本体,所以我想检索 http://mappings.dbpedia.org/server/ontology/classes/owl%3AThing 的所有属性(包括 labela 和 range)。
有谁知道我如何实现这一目标?
DBpedia 中没有域owl:Thing
的属性:
select * {
?prop rdfs:domain owl:Thing
}
这样做的原因可能是,如果没有给出明确的域,owl:Thing
是平凡的域。如果您查看引用列表中的特定属性,您也可以检查这一点,例如 dbo:缩写
解决方法查询:
SELECT ?range (owl:Thing as ?domain) ?prop ?label {
VALUES ?type {owl:DatatypeProperty owl:ObjectProperty}
?prop a ?type
OPTIONAL {?prop rdfs:range ?range }
?prop rdfs:label ?label.
FILTER(langmatches(lang(?label), 'en'))
FILTER NOT EXISTS {?prop rdfs:domain ?domain}
}