方案一、基于关系型数据库的映射原理:database也被称作schema。我们可以认为数据库中的每一张表都是一个(Class),表中的每一行都是该类的一个实例或者对象。表中的每一列就是这个类所包含的属性
两种思路:
1. 三元组数据存储在sql中,并将sql数据转化为RDF数据,与本体OWL文件关联
优点: (1)直接映射,用户更灵活的编辑和设置映射规则
(2)当对外提供服务,查询操作比较频繁的情况下,最好是将RDB的数据直接转为RDF,会节省很多SPARQL到SQL的转换时间
缺点:需要人为手工编写映射文件,半自动化方法
2. 将本体存储在关系型数据库中,通过外键联结由于本体模型和关系模型的差异,基于关系型数据库的本体存储存在多种模式:
(1) 水平模式
该模式在数据库中只用一张表来表示本体,表中列为本体的属性,表中的一个记录对应本体中的每个实例。由于在本体的更新、进化过程中,本体属性数量和名称都可能发生变化,且并非所有实例都具有相同属性。
(2) 垂直模式
这种模式只包含一张三元组表,表中每个记录对应一个三元组,用三元组的形式来描述本体全部信息。此模式结构稳定,但是可读性差,难以构造SQL以进行查询,不利于本体应用。
(3) 分解模式
基本思想是将数据库进行模式分解。现有的分解模式的方法中,第一种是基于类的分解模式,即以类名为表名,类的属性为表的列,为本体中的每个类都创建一张单独的表;另外一种是基于属性的分解模式,即以属性名为表名,表中包含两列