开始阅读 R2RML 我想知道这种语言是否也适合将遵循实体-属性-值模型的数据库表映射到RDF,以及一个简单示例的外观。
对 RDB 到 RDF 转换方法和工具的调查提到了“1 表到 n 类”功能,如下所示:
能够使用列的值作为分类模式:表的元组将根据该属性的值转换为不同本体类的实例。此功能可以看作是“选择条件”功能的扩展,因为它不仅会过滤掉行,而且过滤器有助于选择要转换为一个或另一个类的实例的行。
开始阅读 R2RML 我想知道这种语言是否也适合将遵循实体-属性-值模型的数据库表映射到RDF,以及一个简单示例的外观。
对 RDB 到 RDF 转换方法和工具的调查提到了“1 表到 n 类”功能,如下所示:
能够使用列的值作为分类模式:表的元组将根据该属性的值转换为不同本体类的实例。此功能可以看作是“选择条件”功能的扩展,因为它不仅会过滤掉行,而且过滤器有助于选择要转换为一个或另一个类的实例的行。
一个简单的映射可能如下所示:
[
rr:logicalTable [ rr:tableName "eav_table" ] ;
rr:subjectMap [ rr:template "http://example.com/ontology.rdf#Entity/{entity_column}/" ] ;
rr:predicateObjectMap [
rr:predicateMap [
rr:template "http://example.com/ontology.rdf#{attribute_column}"
] ;
rr:objectMap [
rr:template "http://example.com/ontology.rdf#Value/{value_column}/"
]
]
] .
如果需要更复杂的 SQL 语句,可以使用rr:sqlQuery
代替rr:tableName
:
rr:logicalTable [
rr:sqlQuery "SELECT entity_column, attribute_column, value_column FROM eav_table;"
] ;
对于可用属性的集合,相应的谓词可以进一步通过附加映射来表征。