我正在玩 R2RML,我想知道是否可以根据 RDB 表格单元格的内容创建一个属性。
D2RQ 映射语言d2rq:condition
可以处理这个问题。
例如:
如果列/表格单元格“名称”中的值为“abc”,则创建属性“abc”
rr:predicateObjectMap [
rr:predicate ex:abc
rr:objectMap [
rr:column "name";
rr:datatype xsd:string;
# equivalent for d2rq:condition "name='abc'"
];
]
如果列/表格单元格“名称”中的值为“xyz”,则创建属性“xyz”
rr:predicateObjectMap [
rr:predicate ex:xyz
rr:objectMap [
rr:column "name";
rr:datatype xsd:decimal;
# equivalent for d2rq:condition "name='xyz'"
];
];
我在 W3C 的 R2RML 推荐中找不到任何建议。
有任何想法吗?:-)
更新:
我有使用rr:sqlQuery
例如的想法
rr:SQLQuery """
select (case TABLENAME.COLUMNNAME
when 'this' then 'propertyOne'
when 'that' then 'propertyTwo'
end) as VARIABLE_PREDICATE
from TABLENAME """;
并将其应用于 a rr:predicate
or rr:predicateMap
with
rr:predicateObjectMap [
rr:predicateMap [ rr:template "ex:{VARIABLE_PREDICATE}" ];
rr:objectMap [ rr:column "COLUMNNAME"; ];
];
但这没有用。我想predicateMaps
可以是rr:constant
s only 而不是rr:template
s :( 。至少 W3C 建议只显示predicateMap
.
仍在寻找解决方案...:/
PS 我很失望像 d2rq 这样的专有语言似乎更强大(在这一点上)。