2017-10-11 11 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의 올빼미의 온톨로지를 채택하고 싶습니다. : 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"이고, 항상 * true입니다. 즉, * p (x, y)는 rdf : type (x, owl : Thing)이 참이라는 의미이므로 owl : Thing은 모든 속성의 * a * 도메인입니다. –