1

現在、リレーショナル データベースから RDF モデルへの変換に取り組んでいます。リレーショナル データベースには、1) 継承、2) 関連、3) 集約の 3 種類の関係があります。

継承関係をマッピングするために、RDF トリプルを追加しました。

{ Child_Table <rdfs:subClassOf> Parent_Table }

このように書かれていますか?関連付けと集約の関係を RDF モデルにマッピングしたいと考えています。テーブル間の関連付けと集計関係をマッピングするには、どの述語 (プロパティ) を使用する必要がありますか? マップしたいスキーマです。

TableA と TableB の間に集約関係があるとしましょう。この関係を RDF で表現する方法はありますか?

{ tableA <predicate> tableB}

この初心者を啓発してください。:'(

4

1 に答える 1

4

シンプルなデータ マッピング

リレーショナル データベースのデータを RDF で表現するにはさまざまな方法があり、最適な方法は手元にある特定のデータに大きく依存します。継承、関連付け、および集計関係があると述べていますが、データの例がないと、最善のアプローチが何であるかを知るのは困難です. ただし、次のようなリソースに興味があるかもしれません。

継承

継承、関連付け、および集約の関係は通常、クラスのコンテキスト内で説明されますが、リレーショナル データベースのコンテキストでは意味がある場合とない場合があります。あなたの情報がデータベースでどのように表現されているかを知らなければ、

ChildTable rdfs:subClassOf ParentTable

意味があるかどうか。たとえば、各行が動物の個々のインスタンスを表すAnimalテーブルがあり、さらに各行が哺乳類の個々のインスタンスを表すMammalテーブルがある場合、それぞれが哺乳類のインスタンスは、対応する動物の行へのキーも持っています。たとえば、次の表があるとします。

Animal 
AnimalId, LatinName, CasualName, FavoriteFood
71, Heloderma suspectum, "Jim the Gila Monster", "Eggs"
72, Canis lupus familiaris, "Semour", "Pizza"
73, Canis lupus familiaris, "Spot", "Kibble"
74, Felis catus, "Fluffy", "Fish"
75, Homo sapiens, "Fry", "Bachelor Chow"

Mammal
AnimalId, isBipedal
72, false
73, false
74, false
75, false

哺乳類と動物の間の遺伝を表すには、次のように言えます。

Mammal rdfs:subClassOf Animal

もちろん、MammalwithAnimalId 72が wi​​th と同じリソースでAnimalあることを確認する必要がありAnimalId 72ますが、リレーショナル データの直接マッピングを既に実装している場合、これは問題になりません。

協会

純粋な RDF(S) では、継承以上のことはできません。もちろん、ドメインとプロパティの範囲を宣言し、いくつかの型情報を推測することはできますが、たとえば、それぞれAnimalが少なくとも 1 つの好きな食べ物を持っていることを保証する方法については、実際には多くのことを行うことはできません。少なくとも、rdfs:commentデータに何を含める必要があるかを示すために、プロパティとクラスに s の注釈を付ける必要があります。例えば:

Animal rdfs:comment "Each animal instance MUST have:
                       exactly one ID (hasID);
                       exactly one latin name (hasLatinName); and
                       exactly one favorite food (hasFavoriteFood).
                     Each animal instance MAY have:
                       up to one casual name (hasCasualName)." . 

ただし、OWL を使用できる場合は、制限クラスとサブクラスの公理を使用して、これらのタイプの関係を表現できます。たとえば、次のOWL公理は、前のコメントで表現された制約を表しています:

Animal SubClassOf (hasId exactly 1 xsd:integer) 
Animal SubClassOf (hasLatinName exactly 1 xsd:string)
Animal SubClassOf (hasFavoriteFood exactly 1 xsd:string)
Animal SubClassOf (hasCasualName max 1 xsd:string)

集計

RDF (および OWL) は、個人に関する情報を宣言的に表現するためのものであり、オブジェクト指向プログラミングのオブジェクトである必要はありません。オブジェクトの有効期間や所有権の概念が組み込まれていないため、関連付けと集約の区別はほとんどなくなります。OWLで表現できる公理のタイプは、アソシエーション関係の場合と同様に、プロパティが集約関係にどのように適合するかを説明するのにも役立ちます。

ただし、RDF および OWL クラスは、オブジェクト指向プログラミング クラスではなく、セットとしてより適切に考えられることに注意してください。これの優れた機能の 1 つは、多くの一般的なプログラミング言語とは異なり、クラスが 1 つの親クラスを持つことに制限されないことです。これは、集約が必要なオブジェクト指向プログラミングのいくつかのケースでは、多重継承の RDF 類似物が同様に機能することを意味します。

于 2013-05-31T15:46:12.897 に答える