그림에 표시된 것과 같은 것을 나타내려면 일반적으로이 관계를 n-ary 관계로 취급하십시오. 당신은 W3C의 작업 노트 Defining N-ary Relations on the Semantic Web을 살펴해야하지만, 짧은 버전이 3 진 관계를 가지고 있다는 것입니다, 그리고 당신이 그 각각에 대한
hasTask(list,1,socks)
hasTask(list,2,shoes)
hasTask(list,3,leash)
을 표현하고, 당신은 할 것
_:rel1 rdf:type :taskItem ;
:hasList :list ;
:hasord 1;
:hasTask :socks .
_:rel2 rdf:type :taskItem ;
:hasList :list ;
:hasord 2;
:hasTask :shoes .
_:rel3 rdf:type :taskItem ;
:hasList :list ;
:hasord 3;
:hasTask :leash .
약간의 변화는 물론, 여기있다 : 자원, 일반적으로 빈 노드는, 그러나 아마 유형, 너무 URI, 그리고 다양한 구성 요소에 관련된 속성을 가지고 있고, 수 있습니다. 오히려 구체화 관계가 속성 값으로 목록, 번호, 작업이 필요없이 목록이 각 작업 항목과 관련이있을 수 :
:list :hasTaskItem [ rdf:type :taskItem ;
:hasord 1;
:hasTask :socks ] ,
[ rdf:type :taskItem ;
:hasord 2;
:hasTask :shoes ] ,
[ rdf:type :taskItem ;
:hasord 3;
:hasTask :leash ] .
기본 개념은 비록 동일합니다. 또는 목록을 사용할 수도 있습니다. 순수한 RDF, 당신은 RDF 목록을 사용할 수 있으며처럼, 암시 적 숫자를 떠나 제 1 및 RDF : OWL에서
:list :hasTasks [ rdf:first :socks ;
rdf:rest [ rdf:first :shoes ;
rdf:rest [ rdf:first :leash ;
rdf:rest rdf:nil ]]].
단지 속기의 그
:list :hasTasks (:socks :shoes :leash) .
, 당신은 RDF를 사용할 수 없습니다 나머지 하지만 자신 만의 유사한 속성을 정의하고 동일한 구조를 구현할 수 있습니다. 내 대답은 Can I specify a range for rdf:List members? (누군가가 특정 유형이어야하는 모든 요소의 목록을 원했던 곳)에서 목록 클래스를 지정하는 예제가 있습니다. 이 경로를 사용하고 목록의 각 요소의 위치를 복구하려면 Is it possible to get the position of an element in an RDF Collection in SPARQL?에 대한 응답에서 설명한대로 RDF를 통한 SPARQL 쿼리를 사용하여 실제로 수행 할 수 있습니다.
예를 들어 더 많은 응답을 유도 할 수 있습니다. 특히, 나는 복수라는 말을 잘 모릅니다. 올빼미 카디널리티 기능을 이해하고 필요로하는 것을하지 않을 것이라고 추측합니다.하지만 필요한 것을 추측 할 수는 없습니다. –
@EdStaub, 그렇습니다. 카디널리티는 좋지만 저는 일종의 순서를 찾고 있습니다. 예를 들면 다음과 같습니다.'1. 양말을 신고, 2. 신발을 신고, 3. 집을 나간다. 내 술어에서 순서를 인코딩 할 수 있기를 원합니다. (이 상황에서, DoList에서 DoList 로의 엔티티가있는 DoList라는 엔티티가 있고, 최대 카디널리티가 없습니다. –
시퀀스의 인코딩 만 원합니까? 꽤 쉽게 코드를 작성하거나 "hasTask (taskList, 1, socks), hasTask (taskList, 2, shoes)"와 같은 3 차 관계를 만들 수 있습니다 (예 : "hasTask (thing, rank, task) 기타." –