2009-12-08 21 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)的三倍,因爲我需要一個整數與他們交往。我有點不確定如何將一個整數加到三元組中。我確定這一定很簡單,但即時讓我的頭繞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 2009-12-09 17:14:01

+0

絕對容易在紙上寫下來,儘管對於網絡而言,我寧願在任何一天在Turtle中輸入它,而不是RDF/XML – RobV 2009-12-10 10:42:59

+0

Cheers guys。我剛開始嘗試它,它的工作原理。我沒有考慮創建一個基本上是關係的類型! 再次感謝 – allyLogan 2009-12-10 20:26:27

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> 

這是稍微容易在龜閱讀:(通過rapper -q -o turtle foo.rdf 'http://example.org/ns#'從我Raptor軟件轉換)

@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

嗨dajobe謝謝你的回答。你看起來像你現在你的rdf! 我意識到我沒有正確解釋我的問題。我應該提到的是,可以有多個用戶,並且他們可以在同一個'x'或'y'(實際上是樂隊)上擁有hasFavourite關係,所以對於每個用戶(hasfavourite,band)需要將整數值(playCount)與此實際三元組相關聯,而不是單獨分配用戶或樂隊,因爲每個樂隊可能有多個hasFavoutite三元組。 謝謝你的時間。 Ally – allyLogan 2009-12-09 09:05:17