0

Protégéを使用してOWLでモデル化するには、次の問題があります。

複数Songの を異なる で実行できますPerformance。それぞれSongArranger、異なるPerformance.

SongPerformanceusing オブジェクト プロパティに関連付ける方法は既に知っています。Songでは、 -Performanceペアを?にマッピングする方法はArranger? (リレーショナル データベースでは、これを多対多の関係の「記述属性」と呼びますSong) Performance

オブジェクト プロパティに注釈を使用できることはわかっていますが、このプロパティから何かを推測できるようにしたいと考えています。(例: 何Songに何に、何にArranger配置されているのPerformance?) 私の知る限り、アノテーションから推論することはできません。

4

1 に答える 1

1

このシナリオをモデル化するためにプロパティのプロパティを追加する必要はありませんが、プロパティはオブジェクト (URI) であるため、注釈プロパティだけでなく、任意のプロパティを含めることができます。rdfs:subPropertyOf が良い例です。ステートメントの具体化も必要ありません。曲とパフォーマンスに関する情報を保持するオブジェクトを作成するだけです。

以下は、編曲者とソングパフォーマンスとの関係を表すモデルです。

ex:SongPerformance a owl:Class .
ex:Arranger a owl:Class .
ex:arranged rdfs:domain ex:Arranger ;
    rdfs:range ex:SongPerformance .
ex:songPerformed rdfs:domain ex:SongPerformance ;
    rdfs:range ex:Arranger .
ex:performedIn rdfs:domain ex:SongPerformance ;
    rdfs:range ex:Arranger .

このリストを考えると、インスタンスの例は次のとおりです。

ex:Arranger-1 ex:arranged ex:SP1 .
ex:SP1 ex:performedIn ex:Performance_1 ;
    ex:songPerformed ex:Song1 .

次に、次の SPARQl クエリを使用して、特定のパフォーマンスで編曲者がアレンジした曲を見つけることができます。

SELECT ?arranger ?song ?performance
WHERE {
   ?arranger a ex:Arranger ;
       ex:arranged ?sp .
   ?sp ex:songPerformed ?song ;
      ex:performedIn ?performance .
}
于 2016-06-22T17:02:51.620 に答える