如何使用SPARQL查询owl的所有属性:dbpedia的东西?

时间:2017-10-11 09:48:06

标签: sparql owl ontology dbpedia

当我使用以下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>)
}

当我尝试使用&#39; Thing&#39;或者&#39; OWL:Thing&#39;或者&#39; A Thing&#39;或者任何等同于国家的东西,我得到一个空的结果。

我想采用DBpedia猫头鹰的本体:Thing,所以我想检索http://mappings.dbpedia.org/server/ontology/classes/owl%3AThing的所有属性(包括labela和range)。

有谁知道我怎么做到这一点?

1 个答案:

答案 0 :(得分:1)

DBpedia中没有域owl:Thing

select * {
    ?prop rdfs:domain owl:Thing
}

这可能是因为如果没有给出明确的域名,owl:Thing就是琐碎的域名。如果您查看推荐列表中的特定属性,也可以检查这一点,例如: dbo:abbreviation

解决方法查询:

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}
}