7

RDF では、ステートメントは S、P、および O で表されます。OWL では、owl:ObjectProperty は述語ロジックを表します。

 (S) (P) (O)   
  I like dog

<owl:Class rdf:about="Person" />
<owl:NamedIndividual rdf:about="I">
    <rdf:type rdf:resource="Person"/>
    <like rdf:resource="Dog"/>
</owl:NamedIndividual>

<owl:Class rdf:about="Pet" />
<owl:NamedIndividual rdf:about="Dog">
    <rdf:type rdf:resource="Pet"/>
</owl:NamedIndividual>

<owl:ObjectProperty rdf:about="like">
    <rdfs:domain>
        <owl:Restriction>
            <owl:onProperty rdf:resource="like"/>
            <owl:someValuesFrom rdf:resource="Person"/>
        </owl:Restriction>
    </rdfs:domain>
    <rdfs:range>
        <owl:Restriction>
            <owl:onProperty rdf:resource="like"/>
            <owl:someValuesFrom rdf:resource="Pet"/>
        </owl:Restriction>
    </rdfs:range>
</owl:ObjectProperty>

しかし、犬が好きな「程度」を説明するのはどうですか?プロパティまたは値を述語に与えるにはどうすればよいですか? 私が得た 1 つの解決策は、1 つの (S,P,O) ステートメントを 3 つのステートメントに拡張することです。例えば、

(S)             (P)        (O) 
 Person       isSrcOf    LikeRelation
 Pet          isTargetOf LikeRelation
 LikeRelation hasValue   [0~100]

それはうまくいくはずですが、明らかにオントロジーを3倍大きくします:(

提案をいただければ幸いです。

4

4 に答える 4

7

私はRDF reificationを使用しません。この場合も、ほとんどの場合も使用しません。RDFの具体化は、物事をより複雑にするだけです。あなたがコメントしたように、それはオントロジーを膨らませますが、それだけでなく、オントロジーを OWL 推論に適用することを非常に難しくします。

私はあなたが提示したのと同じシナリオを扱ってきましたが、ほとんどの場合、次の設計になりました。

(S) (P) [ (P) (O) (P) (O)]
私は [ 「好きなもの」 犬 、「どれだけ好きか」 「たくさん」] が好きです

Class: LikeLevel //it represents class of things a person likes with a degree factor.

ObjectProperty: likeObject
    Domain: LikeLevel
    Range: Pet //(or Thing)

ObjectProperty: likeScale
    Domain: LikeLevel
    Range: xsd:int //(or an enumeration class i.e: 'nothing', 'a bit', 'very much',...)

ObjectProperty: like
    Domain: Person
    Range: LikeLevel

このモデルでいくつかのインスタンス データを表現したい場合 (RDF/Turtle 構文で):

:I :like [ a :LikeLevel; 
   :likeObject :dogs;
   :likeScale 5.7] . 

この場合、オブジェクトの空のノードを作成してLikeLevelいますが、グラウンド オブジェクトを作成することもできます。場合によっては、bNode を回避する必要がある場合もあります。その場合:

:I :like :a0001 .
:a0001 a :LikeLevel; 
   :likeObject :dogs;
   :likeScale 5.7.

この設計は、具体化の軽いケースと考えることができます。RDF の具体化との主な違いは、オントロジーの設計をユーザーのモデルに保持することです。

于 2010-09-09T09:51:04.613 に答える
2

あなたの提案は有効です。これは具体化と呼ばれ、オントロジーまたは RDF グラフの 2 つの項目間の関係に固有のプロパティを表す標準的な方法であり、ステートメントは項目間でペアごとに作成されます。具体化が必要になるのは、データ モデル自体の制限です。時折。

具体化がオントロジーを膨張させるのではないかと心配している場合は、代わりに次のことを試すことができますが、一般的にはあまり望ましくなく、独自の問題があります。

  1. somewhatLikesdoesntLike、などの特定のプロパティを作成しますlovesこれは、代替のセットが限られている場合に適している可能性があり、追加のプロパティを作成してもかまいません。「類似度」を整数(またはさまざまな代替手段)でエンコードする場合、これは面倒で面倒です(そして、私は間違いを示唆するまで行きます)-このアプローチに従うと、プロパティがありますのようlikes0likes1、、... likes99、、likes100。この方法では、たとえば、程度の値の範囲内で人が好きなすべての犬をクエリすることもできなくなります。これは、SPARQL では指定した具体化アプローチを使用して可能ですが、このアプローチでは不可能です。
  2. 個々のインスタンスではなく、 のすべてのタイプ/インスタンスに対して個人に対してアサーションを行うことができる場合は、likesDogsプロパティをインスタンスに添付します。もちろん、これはここでキャプチャしようとしているものに依存します。後者の場合、これも適切ではありません。PersonDog

幸運を!

于 2010-09-08T06:25:41.710 に答える
0

イエナの文書から一文が目に留まりました。

...OWL Full allows ... state the following .... construction:

<owl:Class rdf:ID="DigitalCamera">
  <rdf:type owl:ObjectProperty />
</owl:Class>
..

OWL Fullは、ObjectPropertyをクラスにすることを本当に許可していますか? ObjectProperty がクラスであり、個体を持つことができる場合、ステートメントを次のように記述することができます。

S_individual P_individual O_individual

P_individual にさらにプロパティを設定できます。そうですか?または私はいくつかのポイントを逃していますか?

次のRDFは有効であるため、対応するOWLが達成可能であるはずです。

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:j.0="http://somewhere/" > 

  <rdf:Description rdf:about="http://somewhere/Dog_my_dog">
    <j.0:name>Lucky</j.0:name>
  </rdf:Description>
  <rdf:Description rdf:about="http://somewhere/like_dog">
    <j.0:degree>80</j.0:degree>
  </rdf:Description>

  <rdf:Description rdf:about="http://somewhere/Cat_my_cat">
    <j.0:name>Catty</j.0:name>
  </rdf:Description>
  <rdf:Description rdf:about="http://somewhere/like_cat">
    <j.0:degree>86</j.0:degree>
  </rdf:Description>

  <rdf:Description rdf:about="http://somewhere/Person_I">
    <j.0:name>Bob</j.0:name>
    <j.0:like_dog rdf:resource="http://somewhere/Dog_my_dog"/>
    <j.0:like_cat rdf:resource="http://somewhere/Cat_my_cat"/>
  </rdf:Description>

</rdf:RDF>
于 2010-09-09T14:56:57.750 に答える