如何建模两个资源之间的复杂关系?

时间:2013-05-19 11:41:23

标签: semantic-web rdfs

考虑在两个资源之间建立关系/谓词: <#A> <#isRelatedTo> <#B个。

我想在<#isRelatedTo>中添加属性关系:关系强度,描述等。

所以我可以建模:

  1. 定义谓词的实例,并向那些类似于here
  2. 所描述的实例添加属性
  3. 使用四元组商店,因此我有三元组的唯一ID,并为三元组添加属性 (问题是因为数据库限制我必须使用三重商店)
  4. 定义一类关系(isRelatedToClass),其具有<#From>,< #To>,< #RelStrength>,<#Description>属性。创建表示关系的该类的实例,并连接A和B.
  5. 例如:

    <#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”

1 个答案:

答案 0 :(得分:1)

除了评论中提到的RDF具体化之外,您还可以执行以下操作:对于与(A,B)关系密切的每对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只保留{O}对的(A,B)对:

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

小心翼翼,它将成为一个有效的OWL DL本体。