3

プロパティが順序付けられた値のセットを持たなければならないことをOWLでどのように述べるのですか?

例: プログラムにはシリーズの rdf:Seq が必要であり、シリーズにはエピソードの rdf:Seq が必要です。

http://purl.org/ontology/po/オントロジーは、代わりにプロパティhttp://purl.org/ontology/po/position使用します。

どちらのアプローチが優れていますか?

4

2 に答える 2

0

プロパティが順序付けられた値のセットを持たなければならないことをOWLでどのように述べるのですか? 例: プログラムにはシリーズの rdf:Seq が必要であり、シリーズにはエピソードの rdf:Seq が必要です。

OWL (DL) で作業している場合、実際には RDF コレクションを使用するべきではありません。 関係を具体化し、位置番号を含めることができれば、loopasamの答えは良いですが、RDFリストに類似したOWLで独自のリスト構造を宣言することもできます(これは、単一リンクリストのRDFエンコーディングです)。したがって、あなたは持つことができます

:series hasEpisodeList [ ex:first :episodeA ;
                         ex:rest [ ex:first :episodeB ;
                                   ex:rest [ :episodeC ;
                                             ex:rest ex:nil ] ] ] .

ただし、このアプローチの欠点は、数値情報が暗黙的であり、DL クエリを使用して再構築するのが難しいことです (ただし、SPARQL を使用するとそれほど難しくありません)。シーケンスを表現する両方のアプローチについては、オントロジー内のエンティティの順序付けと、それがリンクしている他の質問と回答でもう少し詳しく説明しています。

于 2014-06-25T15:51:24.137 に答える
0

OWL (および RDF) でシーケンスを表現するのは難しく、順序付けされていないものの集合に関するものです。私が見つけたこれを行う最善の方法は、プロパティを介して番号を割り当てることです。その後、このインデックスを追跡し、必要に応じてそれを使用して繰り返します。

キャプチャしたいものを表す OWL オントロジーは次のようになります (Manchester 構文を使用 - .owl ファイルとして保存し、Protegeで開くことができます-#コメントです):

Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: : <brain#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: dc: <http://purl.org/dc/elements/1.1/>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Ontology: <brain.owl>

Datatype: xsd:int

ObjectProperty: has
  Characteristics: 
    Transitive

# Property used to save the number in the sequence
DataProperty: episode-number
  Range: 
    xsd:int

# Definition of a program: A program as at least a series
Class: Program
  SubClassOf: 
    has some Series

Class: owl:Thing

# Definition of series: A series as at least one episode
Class: Series
  SubClassOf: 
    has some Episode

Class: Episode

# Instance of episode
Individual: episode1
  Types: 
    Episode

  # Episode number
  Facts:  
   episode-number  "1"^^xsd:int

# Second instance of episode
Individual: episode2
  Types: 
    Episode

Facts:  
 episode-number  "2"^^xsd:int

次に、エピソードのインスタンスを繰り返し処理したいとしましょう。これは、OWL クエリで実現できますEpisode and episode-number value 1。自分で番号を更新する必要があります。

于 2013-03-30T17:35:33.017 に答える