0
우리는 dbpedia 클래스를 Protégé의 온톨로지에 연결하려고하기 때문에 sparql에 관해 질문이 있습니다. 우리의 제자는 애완 동물에 관한 이야기입니다. 우리는 dbpedia에서 모든 개 품종을 얻고 Protégé의 'Dog'클래스에 하위 클래스로 구현하기 위해 아래 쿼리로 시도하고 있습니다.sparql을 사용하여 온톨로지의 특정 클래스에 클래스를 추가하는 방법은 무엇입니까?
이 쿼리는 모든 개 품종이 우리의 온톨로지가 정상적인 클래스가되지만 우리는 'Dog'클래스의 하위 클래스가되기를 원합니다.
고맙습니다.
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX umbelrc: <http://umbel.org/umbel/rc/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX ex: <http://data.kingcounty.cov/resource/yaai-7rfk/>
PREFIX dbc: <http://dbpedia.org/resource/Category:>
CONSTRUCT {
?x a owl:Class .
?x owl:equivalentClass [
rdf:type owl:Restriction ;
owl:onProperty ex:animal_type ;
owl:hasValue ?xls ;
] .
} WHERE {
SELECT ?x ?xls WHERE {
?x a dbc:Dog_breeds .
?x rdfs:label ?xl .
FILTER(lang(?xl) = 'en')
BIND(str(?xl) as ?xls)
}
}
무언가의 하위 클래스가 필요한 경우 ** rdfs : subClassOf ** 트리플을 추가하는 것이 좋을까요? –
@ JoshuaTaylor 맞습니다. 좀 더 분명하고 공식적인 방법입니다. 그러나 여기서 DBpedia 카테고리'dbc : Dog_breeds'가 사용됩니다. 또한 Ok이어야합니다 - 오직 'dct : subject'를'rdf : type'가 아닌'pred : dct : subject'를 사용해야한다는 점만 고려해야합니다. 또한, 이것들은 보통 클래스가 아닌 DBpedia의 인스턴스이지만 그 점도 고려해야 할 또 다른 포인트입니다. – AKSW