rr:objectMap 内的 R2RML 空白节点
R2RML Blank Node within rr:objectMap
我想知道如何使用 r2rml 对以下内容进行建模:
人 -> 有地址 --> 空白节点 [街道名称、邮政编码、城市]
我记下了如何将街道名称、邮政编码和城市添加到 rr:objectMap
中的空白节点
(附加问题:rr:class
对 rr:BlankNode
是强制性的吗?)
有什么建议吗? :)
<#Person>
rr:logicalTable [ rr:tableName "PERSON" ];
rr:subjectMap [
rr:template "http://ex.com/data/PersonClass/{ID}";
rr:class ex:PersonClass;
];
rr:preciateObjectMap [
rr:predicate ex:hasAddress;
rr:objectMap [
rr:termType rr:BlankNode;
## How/where can a add the street name, postal code, city? ##
];
].
应该不会太难。首先,您使用已创建的 R2RML 映射并为地址创建一个空白节点。使用模板为其指定唯一名称,但不为其指定 IRI,因此它被解释为空白节点。
<#Person>
rr:logicalTable [ rr:tableName "PERSON" ];
rr:subjectMap [
rr:template "http://ex.com/data/PersonClass/{ID}";
rr:class ex:PersonClass;
];
rr:preciateObjectMap [
rr:predicate ex:hasAddress;
rr:objectMap [
rr:template "BlankAddressNode{ADDRESSID}";
rr:termType rr:BlankNode;
];
].
注意:table PERSON 中的 ADDRESSID 被认为是 ADDRESS table.
的主键的外部对象
接下来您使用 rdf:type 和其他所有内容创建空白节点。
<#Address>
rr:logicalTable [ rr:tableName "ADDRESS" ];
rr:subjectMap [
rr:template "BlankAddressNode{ID}";
rr:termType rr:BlankNode;
rr:class ex:AddressClass;
];
rr:predicateObjectMap [
rr:predicate ex:street;
rr:objectMap [ rr:column "Street"]
];
.
注意:ID是ADDRESS的主键table。
您也可以通过连接来做到这一点...但我认为从教程的角度来看这更清楚。
我想知道如何使用 r2rml 对以下内容进行建模:
人 -> 有地址 --> 空白节点 [街道名称、邮政编码、城市]
我记下了如何将街道名称、邮政编码和城市添加到 rr:objectMap
(附加问题:rr:class
对 rr:BlankNode
是强制性的吗?)
有什么建议吗? :)
<#Person>
rr:logicalTable [ rr:tableName "PERSON" ];
rr:subjectMap [
rr:template "http://ex.com/data/PersonClass/{ID}";
rr:class ex:PersonClass;
];
rr:preciateObjectMap [
rr:predicate ex:hasAddress;
rr:objectMap [
rr:termType rr:BlankNode;
## How/where can a add the street name, postal code, city? ##
];
].
应该不会太难。首先,您使用已创建的 R2RML 映射并为地址创建一个空白节点。使用模板为其指定唯一名称,但不为其指定 IRI,因此它被解释为空白节点。
<#Person>
rr:logicalTable [ rr:tableName "PERSON" ];
rr:subjectMap [
rr:template "http://ex.com/data/PersonClass/{ID}";
rr:class ex:PersonClass;
];
rr:preciateObjectMap [
rr:predicate ex:hasAddress;
rr:objectMap [
rr:template "BlankAddressNode{ADDRESSID}";
rr:termType rr:BlankNode;
];
].
注意:table PERSON 中的 ADDRESSID 被认为是 ADDRESS table.
的主键的外部对象接下来您使用 rdf:type 和其他所有内容创建空白节点。
<#Address>
rr:logicalTable [ rr:tableName "ADDRESS" ];
rr:subjectMap [
rr:template "BlankAddressNode{ID}";
rr:termType rr:BlankNode;
rr:class ex:AddressClass;
];
rr:predicateObjectMap [
rr:predicate ex:street;
rr:objectMap [ rr:column "Street"]
];
.
注意:ID是ADDRESS的主键table。
您也可以通过连接来做到这一点...但我认为从教程的角度来看这更清楚。