Пустой узел R2RML в 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? ##
      ];
    ].

1 ответ

Решение

Должно быть не так уж сложно. Сначала вы берете созданное вами отображение 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;
      ];
    ].

Примечание: ADDRESSID в таблице PERSON считается внешним по отношению к первичному ключу таблицы ADDRESS.

Затем вы создаете пустой узел с помощью 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.

Вы также можете сделать это с помощью объединения... но я думаю, что с точки зрения учебника это более понятно.

Другие вопросы по тегам