Я играю с R2RML, и мне было интересно, могу ли я создать свойство в зависимости от содержимого ячейки таблицы RDB.Условное создание свойства в R2RML
Язык отображения D2RQ имеет d2rq:condition
, который может обрабатывать это.
например:
, если значение «имени» столбца/ячейки таблицы является «ABC» создать свойство «а»
rr:predicateObjectMap [
rr:predicate ex:abc
rr:objectMap [
rr:column "name";
rr:datatype xsd:string;
# equivalent for d2rq:condition "name='abc'"
];
]
, если значение «имени» столбца/ячейку таблицы является «хуг» создать свойство «хуг»
rr:predicateObjectMap [
rr:predicate ex:xyz
rr:objectMap [
rr:column "name";
rr:datatype xsd:decimal;
# equivalent for d2rq:condition "name='xyz'"
];
];
Я не мог найти какие-либо предложения в R2RML Рекомендации W3C в.
Любые идеи? :-)
Update:
У меня была идея использования rr:sqlQuery
например
rr:SQLQuery """
select (case TABLENAME.COLUMNNAME
when 'this' then 'propertyOne'
when 'that' then 'propertyTwo'
end) as VARIABLE_PREDICATE
from TABLENAME """;
и применить его к rr:predicate
или rr:predicateMap
с
rr:predicateObjectMap [
rr:predicateMap [ rr:template "ex:{VARIABLE_PREDICATE}" ];
rr:objectMap [ rr:column "COLUMNNAME"; ];
];
Но это не сработало. Я думаю predicateMaps
может быть rr:constant
s только и не rr:template
S :(По крайней мере, W3C Recommendation просто показывает константы в predicateMap
Тем не менее поиск решения ...:../
PS Я разочарован тем, что собственный язык, такой как d2rq, кажется более мощным (на данный момент).
Этот документ упоминает 'RR: joinCondition' как аналог' d2rq: condition': https://github.com/RMLio/D2RQ_to_R2RML – CaptSolo
Спасибо за ссылку! Но, к сожалению, это неверно. Я проверял страницу рекомендации W3C для R2RML, а также эту страницу https://www.w3.org/ns/r2rml#joinCondition .... Он просто работает для присоединений :( – Kody
Жаль, что это не сработало. Возможно, есть список рассылки, где спросить об этом? – CaptSolo