2011-12-27 3 views
1

나는 가계도를 작성했습니다. 전이 속성 : childOf도 정의했습니다. 이제는 가족 구성원 중 하나의 모든 자손을 제공하는 SPARQL 쿼리를 만들고 싶습니다. 내가 어떻게 해? 감사합니다owl : 쿼리의 TransitiveProperty

당신의 트리플 저장소가 OWL 추론을 지원하고 이행 할 수 있도록 childOf 속성을 정의한 경우

답변

1

는 (방법으로 descendantOf를 호출 할 수 없습니다!), 다음은 모든 관련 노드간에 직접 childOf 속성을 추론한다. 당신의 트리플 저장소가 OWL 추론을하지 않는 경우

SELECT DISTINCT * { 
    ?x :childOf ?y 
} 

그러나, 당신은 SPARQL 1.1 속성 경로를 사용하여 동일한 결과를 얻을 수 있습니다 : 그래서,이 (간결함을 위해 생략 접두사)처럼 쿼리에 충분합니다 간접적 인 관계를 쿼리 :

SELECT DISTINCT * { 
    ?x :childOf+ ?y 
} 

참고 '+'를 childOf 후,이 술어가 1 회 이상 매칭 될 수 있음을 의미한다. SPARQL 1.1 속성 경로에 대한 자세한 내용은 http://www.w3.org/TR/sparql11-property-paths/입니다.