SPARQL에서 클래스 C의 모든 인스턴스와 C의 서브 클래스 (직접 또는 간접)를 가져 왔습니다.SPARQL : 특정 클래스의 서브 클래스의 모든 엔티티 얻기
나는 이런 식으로 C의 모든 직접 서브 클래스를 얻을 수 있습니다 :
SELECT ?entity
WHERE {
?subclass rdfs:subClassOf :C .
?entity rdf:type ?subclass .
}
하지만 간접적 인 서브 클래스의 인스턴스를 얻을 수없고 내가 아는 한 C.
의 인스턴스도 (나는 그것들을 미리 계산했다.) 모든 서브 클래스들 (C의 직접적 및 간접적)을 가지고 동적 쿼리를 만들 수있다. 다음과 같은 쿼리를 만들 수 있는가?
SELECT ?entity
WHERE {
?entity rdf:type in <list>.
}
모두에게 감사드립니다.
편집 :
난 그냥 심지어 우아한없는 방법으로 경우에, 그것을 해결했습니다. SPARQL 1.1 specification이 될 것 할 수있는 적절한 방법을 바탕으로
SELECT ?entity
WHERE {
?entity rdf:type ?type.
?type rdfs:subClassOf* :C.
}
트리플 스토어에 따라 다르거 나 그렇지 않을 수 있습니다. 모든 트리플 저장소가 특성 경로 표현식을 구현하는 것은 아닙니다. –
감사합니다. – auino
@msalvadores 업데이트로 오래된 트리플 스토어가있을 수 있지만 속성 경로는 SPARQL 1.1로 만들었으므로 현재 표준을 지원하는 모든 트리플 스토어는 속성 경로를 지원합니다. –