2013-05-19 45 views
2

考慮在兩個資源之間存在關係/謂詞: < #A> < #isRelatedTo> < #B>。如何建模兩個資源之間的複雜關係?

我想屬性添加到< #isRelatedTo>關係:關係強度,描述等

所以,我可以模擬這種:

  1. 定義謂詞的實例和屬性添加到那些類似於所描述的實例here
  2. 使用四方商店,所以我有一個三重的唯一ID並將三重性能添加到 (問題是我必須使用三重存儲,因爲數據庫限制)
  3. 定義一類關係(isRelatedToClass),其具有< #From>,< #To>,<#RelStrength>,< #Description>屬性。創建表示一種關係,即類的實例和連接A和B.

例如爲:

<#isRelatedToInstance1> <rdf:type> <#isRelatedToClass> 
<#isRelatedToInstance1> <#isRelated/From> <#A> 
<#isRelatedToInstance1> <#isRelated/To> <#B> 
<#isRelatedToInstance1> <#isRelated/RelStrength> "2" 
<#isRelatedToInstance1> <#isRelated/Description> "some desc" 

4。其他實現?

實際的例子是:
- 連接城市/由運輸系統,其中每個傳輸性能都有它的國家自己的屬性
- 連接在這裏我想說的「X知道(自1955年)Y」或「X人評分(5星)ZProduct」

+0

這是一個陳述,而不是一個問題。我同意這些是替代關係的設計問題的替代方案,以便您可以對此進行斷言(注意,RDF Reification [http://www.w3.org/TR/rdf-primer/#reification]本身也是如此),但是StackOverflow存在可以很好地回答問題。你有什麼問題? –

+0

似乎我忘了物化。我的問題是我在標題中寫的那個,我提供了我認爲可能的實現,並且我期待一個答案來澄清什麼是解決這個問題的推薦方法,哪一個可以避免,爲什麼......或者一般來說,什麼是在這種情況下的最佳實踐。 – eugen

回答

1

除了已經在評論中提到RDF具體化,你可以做到以下幾點:每個對(A,B)是在關係WRT isRelatedTo,創建您指定強度子屬性isRelatedTo_A_B,描述等。

<#A> <#isRelatedTo_A_B> <#B> . 
<#isRelatedTo_A_B> rdfs:subPropertyOf <#isRelatedTo>; 
    <#relStrength> 2; 
    <#description> "A is in relation with B"@en . 

你甚至可以限制isRelatedTo_A_B只持有一對(A,B),與OWL:

<#isRelatedTo_A_B> rdfs:domain [ 
    a owl:Class; 
    owl:oneOf (<#A>) 
]; rdfs:range [ 
    a owl:Class; 
    owl:oneOf (<#B>) 
] . 

有了一定的照顧,它將使一個有效的OWL DL本體。

相關問題