2009-12-08 5 views
1

임이 RDF에 문제가 있습니다. 내가 같이 트리플의 몇 가지 정의가 있습니다RDF 문에 대한 카디널리티 정의

<User rdf:about="#T"> 
<hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">T</hasName> 
<hasFavourite rdf:resource="#x"/> 
<hasFavourite rdf:resource="#y"/> 
</User> 

임은 추가하고자하는 (사용자, hasFavourite는, x)와 (사용자가 hasFavourite, y)는 내가 그들과 함께 정수를 연결해야으로 세배. Im은 정수에 트리플을 추가하는 방법을 조금 확신하지 못합니다. 이것이 간단해야하지만, 메신저 그냥 내 머리를 RDF 주위에 가져 오기 때문에 어떤 도움을 주셔서 감사합니다.

감사합니다. 앨리

답변

1

나는 질문 dajobe의 게시물에 의견을 읽고 있어요 경우 제대로 당신은 아마 이런 식으로 뭔가를 원하는 (다시 거북이 표기법에 훨씬 더 읽을 이후) :

@base <http://example.org/ns#> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 
@prefix : <> . 

:T 
    :hasFavourite :fave1, :fave2 ; 
    :hasName "T" ; 
    a :User . 

:fave1 a :Favourite ; 
     :band :x ; 
     :playCount 10 . 

:fave2 a :Favourite ; 
     :band :y ; 
     :playCount 4 . 

:x a :Band ; 
    :hasName "Band 1" . 

:y a :Band ; 
    :hasName "Band 2" . 

그래서이 개별적으로 각 사용자의 즐겨 찾기를위한 플레이 수를 유지할 수 있습니다 각 밴드는 새로운 즐겨 찾기를 생성하여 다른 사용자가 즐겨 찾기로 선택할 수있다 필수.

나는 당연히 물론 완전히 틀릴 수도 있고 이것은 실제로 당신이 원하는 것과 다를 수 있습니다!

+0

문제에 대한 설명이 주어지면, 이것이 나에게 맞는 데이터 모델 인 것 같습니다. 때로는 종이에 그려 내기가 더 쉽지만, 웹 페이지에 적어 두는 것은 까다 롭습니다! – dajobe

+0

분명히 종이에 적어두기가 더 쉽지만, 웹에서는 RDF/XML보다 거북이에 넣는 편이 낫다. – RobV

+0

건배. 방금 시도하고 라운드에있어 그것을 작동합니다. 기본적으로 관계가되는 유형을 만드는 것에 대해 생각하지 않았습니다 !! 다시 한 번 감사드립니다. – allyLogan

1

여기 모델링 할 항목이 확실하지 않습니다. 사용자 자원이 정수 값을 가진 트리플 또는 X 및 Y 자원이 정수 값을 가짐을 나타냅니다. 더 복잡하기 때문에 후자를 추측하겠습니다.

<?xml version="1.0" encoding="utf-8"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns="http://example.org/ns#"> 
<User rdf:about="#T"> 
<hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">T</hasName> 
<hasFavourite rdf:resource="#x"/> 
<hasFavourite rdf:resource="#y"/> 
</User> 
<hasFavourite rdf:about="#x"> 
    <integerThatMeansSomething rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</integerThatMeansSomething> 
</hasFavourite> 
<hasFavourite rdf:about="#y"> 
    <integerThatMeansSomething rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">20</integerThatMeansSomething> 
</hasFavourite> 
</rdf:RDF> 

이 거북이에서 읽을 약간 쉽게 : (내 Raptor 소프트웨어에서 rapper -q -o turtle foo.rdf 'http://example.org/ns#'를 통해 변환)

@base <http://example.org/ns#> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 
@prefix : <> . 

:T 
    :hasFavourite :x, :y ; 
    :hasName "T"^^<http://www.w3.org/2001/XMLSchema#string> ; 
    a :User . 

:x 
    :integerThatMeansSomething 10 ; 
    a :hasFavourite . 

:y 
    :integerThatMeansSomething 20 ; 
    a :hasFavourite . 

면책 조항 : 나는, RDF/XML을 편집 거북이를 발명하고 위의 소프트웨어를 썼다!

"T는 사용자이고 두 개의 즐겨 찾기 x 및 y와 문자열 이름을가집니다 .X는 즐겨 찾기이며 값이 10 인 정수 속성을가집니다." 이 전자가 Y.

에 대한 등이었다 경우, RDF/XML은 간단하다 : 그래서

<User rdf:about="#T"> 
<hasName rdf:datatype="http://www.w3.org/2001/XMLSchema#string">T</hasName> 
<hasFavourite rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10</hasFavourite> 
<hasFavourite rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">20</hasFavourite> 
</User> 
+0

답장을 보내 주셔서 감사합니다. 당신은 이제 당신의 RDF처럼 보입니다! 나는 내 문제를 올바르게 설명하지 않았다는 것을 깨달았다. 내가 언급해야 할 것은 두 명 이상의 사용자가있을 수 있고 기본적으로 각각 (사용자, hasfavourite, 밴드) 트리플 i에 대해 동일한 'x'또는 'y'(실제로는 밴드 임)에서 hasFavourite 관계를 가질 수 있다는 것입니다. 각 밴드가 여러 개의 hasFavoutite 트리플을 가질 수 있기 때문에 정수 값 (playCount)을 사용자 또는 밴드가 아닌 개별적인 실제 트리플과 연관시켜야합니다. 시간 내 주셔서 감사합니다. Ally – allyLogan