2017-10-11 7 views
1

私は、次のSPARQLクエリを使用すると、私は取得DBpediaのクラスの国のすべてのプロパティ:owlのすべてのプロパティを照会する方法:SPARQLを使用してdbpediaの目的は?

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を含む)のすべてのプロパティを取得したいと考えています。

どのように私はこれを達成することができます知っていますか?

答えて

1

ドメインowl:ThingとDBpediaの中にプロパティがありません。

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

(OPに向けは、そのフクロウを注意し、また、:)を回答ません:シングは** **すべてのOWLプロパティのドメインです。 OWLにおいて、「p rdfs:domain C」は、文「p(x、y)」から「x rdf:type C」を意味する。 Cがowl:Thingの場合、それは「x rdf:type owl:Thing」です。これは* always * trueです。つまり、* p(x、y)はrdf:type(x、owl:Thing)を意味するので、owl:Thingはすべてのプロパティの* a *ドメインです。 –

関連する問題