我有一个数据库表,并将数据更改为RDF。
到目前为止,我能够做到一行对一行具有主键的行有一个值,该值来自该行中的一个列,如下所示:
map:Artist a d2rq:ClassMap;
d2rq:dataStorage map:database;
d2rq:class to:Artist;
d2rq:uriPattern "to:Artist/@@M3.ARTIST.ARTIST_ID@@";
.
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列。
到目前为止还不错,现在我有了这样的一张桌子-多到多:
艺人(表)专辑(表)ArtistAlbum(表)
这位艺人对专辑和艺术家都有很高的要求。
请问在r2rq里怎么做?
发布于 2016-04-26 16:40:27
我已经联系了D2RQ的人,这是他们的回复:
请参阅下面的示例,该示例连接两个表中的实例(但它是一对多的,而不是多对多的):http://d2rq.org/d2rq-language#example-refers 下面是一个从不同表获取属性的示例,该表是通过一个多到多关系表:http://d2rq.org/d2rq-language#example-join连接的。 结合这两个例子来解决您的场景。
我照他们说的做了,想出了这张地图
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";
.而且它工作得很完美
https://stackoverflow.com/questions/36798914
复制相似问题