Свойство данных с d2rq

Я использую язык D2RQ для создания файла сопоставления. У меня есть класс Persona с таким определением:

# Table persone
map:Persona a d2rq:ClassMap;
    d2rq:dataStorage map:database;
    d2rq:uriPattern "persona/@@persona.cognome_persona@@";
    d2rq:class prova_rules_M:Persona;
    .

Я хотел бы создать data_property под названием "anni_persona" для этого класса. Как я могу сделать? Может кто-нибудь помочь мне с синтаксисом?

Спасибо!

1 ответ

Свойства не "принадлежат" классам в RDF или OWL. Вместо этого свойства могут иметь домены и диапазоны, что указывает на то, что субъект или объект тройки со свойством принадлежит определенному классу или типу данных. Например, если мы говорим, что доменом hasName является агент, то всякий раз, когда мы видим "x hasName {что-то}", мы можем вывести этот "агент x rdf:type". Похоже, вы пытаетесь сказать, что есть свойство anni_persona, и что его доменом является Persona. Это всего лишь вопрос утверждения anni_persona rdfs: домена Persona где-то.

Теперь, чтобы получить значения из таблицы базы данных в данные RDF, я думаю, что вы просто захотите взглянуть на раздел 6 в документации:

6. Добавление свойств к ресурсам (d2rq: PropertyBridge).

d2rq:PropertyBridge связывает столбец базы данных со свойством RDF. Мосты свойств используются для присоединения свойств к ресурсам RDF, созданным картой классов. Значения этих свойств часто являются литералами, но также могут быть URI или пустыми узлами, которые связывают ресурс с другими ресурсами, например, значением документа. :author свойство может быть URI, представляющим человека.

Если один из столбцов, используемых в мосте свойств, NULL для некоторых строк базы данных не создается свойство для ресурсов, соответствующих этим строкам.

Исходя из примеров в этой документации, похоже, что в итоге вы получите что-то вроде:

map:AnniPersona a d2rq:PropertyBridge ;
    d2rq:belongsToClassMap map:Persona ;
    d2rq:property :anni_persona ;
    d2rq:column "Persone.Anni" .
Другие вопросы по тегам