首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Virtuoso R2RML rr:IRI生成

Virtuoso R2RML rr:IRI生成
EN

Stack Overflow用户
提问于 2014-11-08 20:37:56
回答 2查看 430关注 0票数 1

在Virtuoso中生成rr:termType rr:IRI有问题。我不知道我是否做错了,但我遵循了W3C规范。

我的地图是这样的。当我用CONSTRUCT语句生成三元组时,我仍然可以得到"URL",而不是IRI => <url> (OWNER_LINKBRAND_LINK列)。是Virtuoso不支持的东西,还是我用错误的方式编码它?

代码语言:javascript
复制
DB.DBA.TTLP 
   (  '
        @prefix    rr:  <http://www.w3.org/ns/r2rml#>                                .
        @prefix  foaf:  <http://xmlns.com/foaf/0.1/>                                 .
        @prefix    gr:  <http://purl.org/goodrelations/v1#>                          .
        @prefix     s:  <http://schema.org/>                                         .
        @prefix   pod:  <http://linked.opendata.cz/ontology/product-open-data.org#>  .

        <#TriplesMap3>
           a                 rr:TriplesMap  ;
           rr:logicalTable 
              [
                 rr:tableSchema "POD"  ;
                 rr:tableOwner  "DBA"  ;
                 rr:tableName   "BRAND_OWNER_BSIN"
              ];
           rr:subjectMap 
              [ 
                 rr:template  "http://linked.opendata.cz/resource/brand-owner-bsin/{BSIN}"  ;
                 rr:class     gr:BusinessEntity                                             ;
                 rr:graph     <http://linked.opendata.cz/resource/dataset/product-open-data.org/2014-01-01>
              ];
        rr:predicateObjectMap 
              [
                 rr:predicate gr:hasBrand  ;
                 rr:objectMap 
                    [
                       rr:parentTriplesMap <#TriplesMap4>  ;
                       rr:joinCondition 
                          [
                             rr:child "OWNER_CD"   ;
                             rr:parent "OWNER_CD"  ;
              ];    ];    ];
        .


        <#TriplesMap4>
           a                rr:TriplesMap  ;
           rr:logicalTable 
              [
                 rr:tableSchema  "POD"          ;
                 rr:tableOwner   "DBA"          ;
                 rr:tableName    "BRAND_OWNER"
              ];
           rr:subjectMap 
              [ 
                 rr:template  "http://linked.opendata.cz/resource/brand-owner/{OWNER_CD}"  ;
                 rr:class     gr:BusinessEntity                                            ;
                 rr:graph     <http://linked.opendata.cz/resource/dataset/product-open-data.org/2014-01-01>
              ];

        rr:predicateObjectMap 
           [
              rr:predicate  gr:legalName  ;
              rr:objectMap
                 [ rr:column  "OWNER_NM" ];
           ];
        rr:predicateObjectMap 
           [
              rr:predicate  s:url  ;
              rr:objectMap
                 [
                    rr:termType  rr:IRI        ; 
                    rr:column    {OWNER_LINK}  ;
           ];    ];
        rr:predicateObjectMap 
           [
              rr:predicate  gr:hasBrand  ;
              rr:objectMap
                 [
                    rr:parentTriplesMap  <#TriplesMap3>  ;
                    rr:joinCondition 
                       [
                          rr:child   "OWNER_CD"   ;
                          rr:parent  "OWNER_CD"  ;
           ];   ];     ];
        .

        <#TriplesMap2>
           a                rr:TriplesMap;    
           rr:logicalTable 
              [
                 rr:tableSchema "POD"; 
                 rr:tableOwner  "DBA"; 
                 rr:tableName   "BRAND_TYPE" 
              ];
           rr:subjectMap 
              [ 
                 rr:template  "http://linked.opendata.cz/resource/brand-type/{BRAND_TYPE_CD}"  ;
                 rr:class     gr:BusinessEntityType                                            ;
                 rr:graph     <http://linked.opendata.cz/resource/dataset/product-open-data.org/2014-01-01>
              ];
           rr:predicateObjectMap 
              [
                 rr:predicate  gr:name  ;
                 rr:objectMap
                    [ rr:column  "BRAND_TYPE_NM" ];
              ];
        .


        <#TriplesMap1>
           a                rr:TriplesMap;    
           rr:logicalTable 
              [
                 rr:tableSchema "POD"   ; 
                 rr:tableOwner  "DBA"   ; 
                 rr:tableName   "BRAND" 
              ];
           rr:subjectMap 
              [ 
                 rr:template  "http://linked.opendata.cz/resource/brand/{BSIN}"  ;
                 rr:class     gr:Brand                                           ;
                 rr:graph     <http://linked.opendata.cz/resource/dataset/product-open-data.org/2014-01-01>
              ];
           rr:predicateObjectMap 
              [
                 rr:predicate  pod:bsin               ;
                 rr:objectMap  [ rr:column  "BSIN" ]  ;
              ];   
           rr:predicateObjectMap
              [
                 rr:predicate  gr:name                    ;
                 rr:objectMap  [ rr:column  "BRAND_NM" ]  ;
              ];
           rr:predicateObjectMap 
              [
                 rr:predicate  s:url  ;
                 rr:objectMap
                    [
                       rr:termType  rr:IRI        ; 
                       rr:column    "BRAND_LINK"  ;
              ];    ];

           rr:predicateObjectMap 
              [
                 rr:predicate  gr:BusinessEntityType  ;
                 rr:objectMap 
                    [
                       rr:parentTriplesMap  <#TriplesMap2>  ;
                       rr:joinCondition 
                          [
                             rr:child "BRAND_TYPE_CD"    ;
                             rr:parent "BRAND_TYPE_CD"   ;
              ];    ];    ];
        .
      ', 
      'http://product-open-data.org/temp', 
      'http://product-open-data.org/temp' 
   );

exec ( 'sparql ' || DB.DBA.R2RML_MAKE_QM_FROM_G ('http://product-open-data.org/temp') );
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-15 19:12:46

所以我发现我的代码是错的,应该是这样的

代码语言:javascript
复制
 rr:predicateObjectMap 
    [
       rr:predicateMap
          [
             rr:constant  s:url 
          ]; 
       rr:objectMap 
          [ 
             rr:termType  rr:IRI          ; 
             rr:template  "{BRAND_LINK}"  ;
          ];

     ];.

而且它起作用了

谢谢。

票数 1
EN

Stack Overflow用户

发布于 2014-11-09 14:22:21

要明确的是--您是说R2RML映射正在成功加载,但是当运行SPARQL CONSTRUCT查询时,rr:termType rr:IRI映射没有显示在结果集中?

如文档所示,目前只不支持rr:sqlQuery .

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26821813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档