2016-04-22 12 views
0

私はデータベーステーブルを持っており、データをRDFに変更しています。D2RQ多対多の関係を設定する方法

は、これまでのところ私はこのように、主キーを持つ行が、その行の列から来た値を、持っているものにいずれかを実行することができる午前:ここで各

map:Artist a d2rq:ClassMap; 
    d2rq:dataStorage map:database; 
    d2rq:class to:Artist; 
    d2rq:uriPattern "to:Artist/@@[email protected]@"; 
    . 

map:ArtistName a d2rq:PropertyBridge; 
    d2rq:belongsToClassMap map:Artist; 
    d2rq:property to:hasName; 
    d2rq:column "M3.ARTIST.ARTIST_NAME"; 
    d2rq:datatype xsd:string; 
    . 

Artist_IDはトリプルの対象となり、その値でhasNameというプロパティは、これまでARTIST_NAME列

から来ているので、良いがあるだろう、今、私はこのような多くの多くのテーブルを持っている:

アーティスト(テーブル)アルバム(テーブル)アーティストアルバム(テーブル)

アルバムとアーティストの両方にforactiveキーがあります

どうすればr2rqでどうすればいいですか?

+0

作品:「列リテラル値を作成するために使用される場合や、オブジェクトがClassMapの列を含むデータベーステーブルにない場合、テーブルは1つ以上のd2rq:joinプロパティを使用して結合されなければなりません " – AKSW

+0

@AKSWはい私はそれを見ました。 1対1ですが、私は多くの人と多くの人とのやり方を知ることができませんでした。私はそれのためのクラスマップを持っていない場合、それらのテーブルですか? –

+0

R2RMLは、リレーショナルデータをRDFにマッピングするためのW3C標準です。 –

答えて

0

私はD2RQから人に連絡しましたが、これは彼らの返事です:

は、2つのテーブルのインスタンスを接続する例は、ここを参照してください(それは、多対多のではない、多くの1つです) : http://d2rq.org/d2rq-language#example-refers

異なるテーブルからプロパティを受け取り、テーブルは多対多の関係テーブルを介して接合され、例えばここで参照: http://d2rq.org/d2rq-language#example-join

は、2つの例を追加するために結合あなたのシナリオを再現します。

私は、彼らが言ったものでしたが、このマッピング

map:ArtistAlbum a d2rq:PropertyBridge; 
    d2rq:property to:hasArtist; 
    d2rq:belongsToClassMap map:Album; 
    d2rq:refersToClassMap map:Artist; 
    d2rq:join "blabla.ARTIST.ARTIST_ID = blabla.ARTISTALBUM.ARTIST_ID"; 
    d2rq:join "blabla.ARTISTALBUM.ALBUM_ID = blabla.ALBUM.ALBUM_ID"; 
    . 

を思い付いたし、それは完全にドキュメントから撮影