2015-01-30 2 views
1

제 질문은 RDF 트리플의 SPARQL 쿼리 언어에 대한 것입니다. RDF/XML 형식으로 작성된 패밀리 온톨로지가 있다고 가정 해보십시오.SPARQL의 카디널리티 제한

는 지금, 나는 SPARQL 적어도 두 아이 (hasChild 관계에 카디널리티), 예를 들어, 모든 부모을 조회 할.

내 질문은 SPARQL 언어이 쿼리를 작성할 수 있습니다, 그러나 나는이 DL 쿼리 언어 (설명 논리)보다 일반적인 형태에서

에서이 쿼리를 작성할 수 있습니다 알고있다, 그것은 할 수 있습니다 SPARQL 언어에서 일부 카디널리티 제한을 적용 하시겠습니까?

+0

"RDF/XML 형식으로 작성된 패밀리 온톨로지"OWL 온톨로지를 의미합니까? RDFS "온톨로지"? RDF/XML은 RDF에 대한 하나의 직렬화 * 형식이지만 RDF에 여러 가지 다른 온톨로지 언어를 인코딩 할 수 있습니다. –

답변

5

는 지금, 나는 SPARQL 적어도 두 어린이 (hasChild와의 관계에 카디널리티), 예를 들어, 모든 부모를 조회 할.

당신은 단지 부모에 의해 각 행의 부모와 자식, 다음 그룹을 선택한 다음 외아들 적어도 두 개의 값이 그들 걸릴

:

select ?parent where { 
    ?parent :hasChild ?child 
} 
group by ?parent 
having (count(distinct ?child) >= 2) 

하지만 조심을; OWL에서는 최소한 두 명의 자식이 있어야하지만이 쿼리는 반환되지 않는 개인을 가질 수 있습니다. 예를 들어, 경우

TwoChildParent subClassof (hasChild min 2) 
Joe a TwoParentChild 

을 가지고 있지만

Joe hasChild ?x 

트리플이없는,이 쿼리는 적어도 두 명의 아이들이있다하더라도, 를 반환하지 않습니다.

+0

고마워요 조슈아! 내 온톨로지는 OWL 유형이고 쿼리는 완벽하게 작동했습니다. –

+0

@abforce 그래도 조심하십시오. OWL에서는 최소한 두 명의 자식이 있어야하지만이 쿼리는 반환되지 않는 개인을 가질 수 있습니다. 예를 들어,'TwoChildParent subClassof (hasChild min 2)'와'Joe a TwoParentChild'를 가지지 만'Joe hasChild x' 트리플을 가지지 않는다면 Joe는 최소한 두 개의 자식을 가지고 있습니다. . –

+0

그것을 얻었습니다! 다시 한번 감사드립니다. Joshua –