一种owl信息到关系数据库的转换方法及装置的制作方法

文档序号:6470693阅读:153来源:国知局

专利名称::一种owl信息到关系数据库的转换方法及装置的制作方法
技术领域
:本发明涉及计算机
技术领域
,特别涉及Web信息的数据库存储技术,具体地讲是一种OWL信息到关系数据库的转换方法及装置。
背景技术
:当前大多数的Internet数据信息都是通过Web服务的方式来对外发布的,传统的Web服务都是通过固定的输入、输出接口来对外提供信息资源,并且常常需要通过服务组合的方式来得到用户想要的数据。OWL(WebOntologyLanguage)是W3C(WorldWideWebConsortium,万维网联盟)开发的一种网络本体语言,用于对本体进行语义描述。OWL是以RDF(ResourceDescriptionFramework,资源描述框架)为基础,并在其上增加了一种能够对Web文档中的术语间关系含义进行形式化描述的本体语言。OWL可被用来明确表示词汇表中术语的含义以及术语间的关系。这种对术语及术语间的关系的明确表示被称为本体(ontology)。使用本体有助于跨越不同的应用系统,从而实现计算机系统之间信息共享,数据的自动化处理、集成与复用。相比XML、RDF(ResourceDescriptionFramework,资源描述框架)和RDF-S(ResourceDescriptionFrameworkSchema),OWL提供了更多对含义和语义的表达手段,因此在表达机器可理解Web信息方面,OWL具备超越这些语言的描述能力。OWL提供了三个表达能力递增的子语言OWLLite,OWLDL和OWLFull,以分别用于特定的实现者和用户团体。关系数据库是基于Web的应用的主要信息来源,只有将OWL描述的信息存储到数据库中才能实现共享,才能便于其它应用复用集成,所以将基于OWL的信息持久化具有重要意义。而如何将符合OWL描述的共享信息模型的数据存储在数据库中,并使其在进入数据库之后还保持原有的语义,以及提供灵活的数据查询功能,则是共享管理信息模型发挥作用过程中至关重要的环节。OWL语言所描述的本体的各元素及其间关系在数据库表中应该呈现的形式,是实现OWL描述的信息到关系数据库表转换装置的核心,它对于能否达到真正意义上的"共享"起着举足轻重的作用。中国发明专利公幵号CN101158959,发明名称为"一种基于语义査询重写的柔性数据服务组合的方法"的技术方案公开了一种在互联网上进行查询的方法,实现如何在互联网上匹配关键字、分类等操作。中国发明专利公开号CN101044479,发明名称为"用于关系数据库系统中基于本体的语义匹配的系统"的技术方案公开了一种将OWL文件中词和词对之间的关系本体存储于数据库中,形成包含语义匹配算子的数据库查询,这些査询识别本体数据并进而规定两个输入词之间的陈述关系,该査询被执行以调用语义匹配算子来通过参考所述本体数据确定这两个输入词是否以陈述关系相关联。上述方法都只是笼统的说要将OWL文件存储于数据库中,并在以后的Internet应用中使用,然而并没有给出一套完整的并且高效率的OWL文件存储于数据库中的方案。《河海大学学报自然科学版》,2006年34巻1期公幵了一篇名为《从OWL本体到关系数据库模式的转换》的论文,该论文论述了从OWL本体到关系数据库模式的转换是可行的,然而并没有说明如何实现OWL本体存储于数据库的方法和步骤。以弓I入方式将上述技术内容合并于本申请。
发明内容本发明的目的在于提供一种OWL信息到关系数据库的转换方法,用于解决现有技术中OWL文件存储于数据库中效率低,并且在进行检索时时间复杂度高的问题,从而实现资源共享的目的。本发明的另一目的在于提供一种OWL信息到关系数据库的转换装置,用于解决现有技术中不能自动的实现OWL文件存储于数据库的不足,并且提髙存储于数据库的OWL文件的检索效率,从而实现资源共享的目的。为了实现上述目的,本发明实施例提供一种OWL信息到关系数据库的转换方法,该方法包括加载OWL文件,对所述OWL文件进行建模,通过所述建模后生成的接口读取所述OWL文件中的所有基本元素,将所述基本元素无损的映射并存储于数据表中。根据本发明所述的一种OWL信息到关系数据库的转换方法的一个进一步的方面,在读取所述OWL文件时,判断当前读取的类是否为复杂类,如果为复杂类则逐一读取构成该复杂类的类,如果为简单类则直接读取所述简单类。根据本发明所述的一种OWL信息到关系数据库的转换方法的再一个进一步的方面,如果所述当前读取的类是由"并"集合关系构成,则所述当前类为复杂类;或者如果所述当前读取的类是由"交"集合关系构成,则所述当前类为复杂类;或者如果所述当前读取的类是由"补"集合关系构成,则所述当前类为复杂类。根据本发明所述的一种OWL信息到关系数据库的转换方法的另一个进一步的方面,所述逐一读取构成所述复杂类的类和直接读取所述简单类还包括,如果读取的类是匿名类,则为该匿名类起名,读出所述匿名类的受约束的属性,并且读出该受约束的属性受到的约束限制信息。根据本发明所述的一种OWL信息到关系数据库的转换方法的另一个进一步的方面,所述逐一读取构成所述复杂类的类和直接读取所述简单类还包括,如果读取的类是具名类,则读取该具名类的实例、属性、关系信息。根据本发明所述的一种OWL信息到关系数据库的转换方法的另一个进一步的方面,所述将所述基本元素无损的映射并存储于数据表中包括,根据所述读取出的OWL文件的所有基本元素建立实体表、关系表、构造子表和属性表;其中,实体表包括具名类表和匿名类表,将所述读取的OWL文件中具名类信息存储于所述具名类表,将所述读取的匿名类信息存储于所述匿名类表;将所述OWL文件中类的关系和属性的关系信息存储于所述关系表;将所述OWL文件中关于复杂类的定义存储于所述构造子表;将所述OWL文件中所有属性的属性特征存储于所述属性表。根据本发明所述的一种OWL信息到关系数据库的转换方法的另一个进一步的方面,所述将读取的OWL文件中具名类信息存储于所述具名类表是指,针对于不同的具名类建表,以属于该具名类的ID作为主键,将该实例的属性作为表项进行存储;所述将读取的匿名类信息存储于所述匿名类表是指,针对于不同的匿名类建表,将该匿名类的名字作为所述匿名类表的主键,该匿名类受约束的属性和相应的约束条件作为表项进行存储;所述将所述OWL文件中类的关系和属性的关系信息存储于所述关系表是指,将所有类的继承关系、属性的继承关系和类的等价关系相应的二元关系存储于所述不同的关系表中;所述将所述OWL文件中关于复杂类的定义存储于所述构造子表是指,根据复杂类的集合关系,将所述构成复杂类的元素存储于相应集合关系的构造子表中;所述将所述OWL文件中所有属性的属性特征存储于所述属性表是指,将属性名称作为属性表的主键,将相应属性特征存储于相应的表项中。根据本发明所述的一种OWL信息到关系数据库的转换方法的另一个进一步的方面,读取所述实例时还包括,顺序读取所述实例中的属性值,初始化计数器等于O,每读取一个属性值计数器加1,当读完所述实例每个属性的所有属性值后,如果计数器为l,则将属性值存储于所述实例的相应属性列中,如果所述计数器大于1则建立新表,将计数器个属性值填入新表中,并在所述实例的相应属性列中填入新表名。根据本发明所述的一种OWL信息到关系数据库的转换方法的另一个进一步的方面,在将所述OWL文件映射并存储于数据库中后,还包括用户査询步骤,接收用户的输入查询命令,将该命令转换为SQL语句,在数据库中进行检索,最后将检索结果返回给用户,并显示于用户的显示器上。为了实现以上目的,本发明实施例还提供了一种OWL信息到关系数据库的转换装置,该装置包括,OWL文件,加载单元,建模单元,读取单元,映射单元,数据库;通过加载单元加载OWL文件,利用建模单元对所述OWL文件进行建模,所述读取单元通过所述建模单元生成的接口读取所述OWL文件中的所有基本元素,通过映射单元将所述基本元素无损的映射并存储于数据表中。根据本发明所述的一种OWL信息到关系数据库的转换装置的一个进一步的方面,所述读取单元判断当前读取的类是否为复杂类,如果为复杂类则逐一读取构成该复杂类的类,如果为简单类则直接读取所述简单类。根据本发明所述的一种OWL信息到关系数据库的转换装置的再一个进一步的方面,所述读取单元判断当前读取的类是由"并"集合关系构成,则所述当前类为复杂类;或者判断当前读取的类是由"交"集合关系构成,则所述当前类为复杂类;或者判断当前读取的类是由"补"集合关系构成,则所述当前类为复杂类。根据本发明所述的一种0WL信息到关系数据库的转换装置的另一个进一步的方面,所述读取单元判断读取的类是匿名类,则为该匿名类起名,读出所述匿名类的受约束的属性,并且读出该受约束的属性受到哪些约束限制。根据本发明所述的一种0WL信息到关系数据库的转换装置的另一个进一步的方面,所述读取单元判断读取的类是具名类,则读取该具名类的实例、属性、关系。根据本发明所述的一种0WL信息到关系数据库的转换装置的另一个进一步的方面,所述映射单元根据所述读取出的0WL文件的所有基本元素建立实体表、关系表、构造子表和属性表;其中,实体表包括具名类表和匿名类表,将所述读取的0WL文件中具名类信息存储于所述具名类表,将所述读取的匿名类信息存储于所述匿名类表;将所述OWL文件中类的关系和属性的关系信息存储于所述关系表;将所述OWL文件中关于复杂类的定义存储于所述构造子表;将所述OWL文件中所有属性的属性特征存储于所述属性表。根据本发明所述的一种OWL信息到关系数据库的转换装置的另一个进一步的方面,所述映射单元针对于不同的具名类建表,以属于该具名类的ID作为主键,将该实例的属性作为表项进行存储;针对于不同的匿名类建表,将该匿名类的名字作为所述匿名类表的主键,该匿名类受约束的属性和相应的约束条件作为表项进行存储;将所有类的继承关系、属性的继承关系和类的等价关系相应的二元关系存储于所述不同的关系表中;根据复杂类的集合关系,将所述构成复杂类的元素存储于相应集合关系的构造子表中;将属性名称作为属性表的主键,将相应属性特征存储于相应的表项中。根据本发明所述的一种OWL信息到关系数据库的转换装置的另一个进一步的方面,所述读取单元顺序读取所述实例中的属性值,初始化计数器等于0,每读取一个属性值计数器加1,当读完所述实例每一个属性的所有属性值后,如果计数器为l,则将属性值存储于所述实例的相应属性列中,如果所述计数器大于1则建立新表,将计数器个属性值填入新表中,并在所述实例的相应属性列中填入新表名。根据本发明所述的一种0WL信息到关系数据库的转换装置的另一个进一步的方面,还包括用户访问单元,接收用户的输入查询命令,将该命令转换为SQL语句,在所述数据库中进行检索,最后将检索结果返回给用户,并显示于用户的显示器上。本发明实施例的有益效果在于,是一种实现基于0WL的信息到数据库表转换时无损的、自动化的、实用的装置,可以将上述0WL文件的信息存储于数据库中,并方便别人查询其中信息,实现资源共享的目的。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中图1所示为本发明一种OWL信息到关系数据库的转换方法流程图;图2所示为本发明加载OWL文件步骤详细流程图;图3所示为本发明读取OWL文件基本元素的流程图;图4所示为本发明复杂类读取步骤流程图5所示为本发明匿名类读取步骤流程图6所示为本发明具名类读取步骤流程图7所示为本发明对OWL文件进行存储步骤详细流程图8所示为本发明装置结构图9所示为本发明用户访问单元结构图10所示为本发明实施例OWL文件内容示意图。具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。本发明实施例提供一种OWL信息到关系数据库的转换方法及装置。以下结合附图对本发明进行详细说明。如图1所示为本发明一种OWL信息到关系数据库的转换方法流程图,包括步骤101,加载OWL文件,用户输入文件名和路径,在磁盘上査找该文件,如果存在则返回文件正在读取的信息,否则提示用户输入有误。步骤102,对上述加载的OWL文件进行建模,解析该OWL文件,把该文件加载到内存中,并定义了访问标准OWL文件所有基本元素的接口。其中所述基本元素包括W3C组织0WL推荐标准中的所有基本元素,例如具名类、匿名类、类的继承关系、属性、属性的继承关系等。可以使用JENA解析工具进行建模,创建访问接口。步骤103,利用上述接口读取所述加载的OWL文件中的基本元素,所述加载的0WL文件的基本元素可能少于上述W3C标准中的标准基本元素。步骤104,按照映射规则对上述读取的基本元素在数据库中进行存储,主要是建立实体表、关系表、构造子表和属性表,实体表是指按类建表,分为具名类表和匿名类表,其中将类的属性作为表项,将类的实例作为数据存储于具名类表中,将匿名类的受限的属性和相应的约束条件存储于匿名类表;关系表是指,所有类继承关系表作为一个二元关系表存储,所有等价关系作为一个二元关系表存储,所有不相交关系作为一个二元关系表存储,所有属性继承关系作为一个二元关系表存储;构造子表是指,将复杂类的构成映射到表中,例如将通过并、交、补、枚举或互不相交的关系定义的复杂类的构成元素映射到数据库表中;属性表是指,将属性特征映射到一张表中。具体过程如下面所述。如图2所示为本发明加载0WL文件步骤详细流程图,包括步骤201,用户通过用户界面输入OWL文件名和其路径。步骤202,査找文件是否存在,如果不存在,则将错误信息返回用户界面,提示用户重新输入;如果存在,则进入步骤203。步骤203,分配内存,设置一个缓冲区(buffer)。步骤204,然后调用函数InFile(Stringname)加载OWL文件的内容,存入buffer中。如图3所示为本发明读取OWL文件基本元素的流程图,包括步骤301,幵始读取流程。步骤302,判断当前类是否由"并"运算构成,如果是则进入步骤401,进行读取复杂类的步骤,否则进入步骤303。步骤303,判断当前类是否由"交"运算构成,如果是则进入步骤401,进行读取复杂类的步骤,否则进入步骤304。步骤304,判断当前类是否由"补"运算构成,如果是则进入步骤401,进行读取复杂类的步骤,否则进入步骤305认定为简单类。步骤401,进行读取复杂类的步骤。步骤305,判断当前的简单类是否为匿名类,如果是匿名类则进入步骤501,否则进入步骤601。步骤501,访问该匿名类。步骤601,访问具名类。作为优选的实施例,上述判断复杂类的步骤可以使用步骤301至303中的一种或者多种,并且先后顺序并不作限制。如图4所示为本发明复杂类读取步骤流程图,包括步骤401,开始复杂类读取流程。步骤402,逐一读取构成复杂类的基本元素,判断复杂类是属于哪类运算构成的,即判断是并、交、补哪种运算构成的。步骤403,判断所述基本元素是否为匿名类,如果是匿名类则进行步骤501的匿名类读取流程,否则为具名类则进入步骤404进行处理。步骤404,读取构成复杂类的具名类的类名。步骤405,读取构成复杂类的匿名类的类名。步骤406,结束复杂类读取步骤流程。如图5所示为本发明匿名类读取步骤流程图,包括步骤501,开始匿名类读取流程。步骤502,判断该匿名类是否已经被命名,如果已经被命名则进入结束步骤506,否则进入步骤503。步骤503,为匿名类起名,匿名类表命名规则"a—"+ni—anonCount,m_anonCount是一个计数器,初始化为0,每当新命名一个匿名类后计数器加1,以保证不同的匿名类有不同的名字。步骤504,读出受约束的属性。步骤505,读出受约束的属性受到哪些约束限制。步骤506,结束匿名类的读取步骤。读取具名类时,将具名类的每个基本元素包括,实例、属性、关系等都作为数据进行读取。如图6所示为本发明具名类读取步骤流程图,包括步骤601,开始读取具名类的流程。步骤602,读取当前类的属性。步骤603,读取所述当前类的实例。步骤604,初始化计数器count-O。步骤605,获得实例的属性值。步骤606,判断是否读取完所有属性值,如果是则进入步骤608,否则进入步骤607,计数器coimi:+l,返回步骤605继续读取其余属性值。步骤608,判断计数器是否为1,如果为1则进入步骤609,否则进入步骤610。步骤609,将属性值填入具名类表中的对应的列。步骤610,建立新表,将count个属性值填入新表中,并在具名类表中填入新表名,以作为索引。步骤611,判断当前类的实例是否已经全部读完,如果读完则进入步骤612,否则返回步骤603继续读取实例。步骤612,读取当前类的关系,包括父类、不相交类、等价类和枚举类等。步骤613,判断当前关系的类是否为匿名类,如果是则进入读取匿名类的步骤501,否则迸入步骤614。步骤614,读取具名类的类名。步骤615,读取匿名类的类名。步骤616,结束。在读取上述OWL文件后,建立相应的数据库表,将上述读取出的类的基本元素进行存储。如图7所示为本发明对0WL文件进行存储步骤详细流程图,包括步骤701,建立实体表。首先是建立类的映射表,类定义了共有某些属性和动作而同属一组的一些个体的抽象模板。在OWLDL语言(OWL语言中的一种)中,提供了基本的构词owl:class对类进行描述。此处的类包括具名类和匿名类两种。1.当遇到具名类时,将OWL文件中的每一个具名类转换为关系数据库中的一张表,以属于该具名类的ID作为主键,将类的属性作为表项,将类的实例作为数据。2.当遇到匿名类时,为每一个匿名类创建一张表(读取步骤时为每个匿名类起不同的名字加以区分),匿名类的名字作为表的主键,onProperty(该匿名类的属性〉,后面的列为对该属性的限制,例如可以用字段allValuesFrom,someValuesFrom,hasValue,maxCardinality,minCardinality,Cardinality分别作为类对应表的列。例如表l所示为匿名类表的一实施例。表l匿名类表<table>tableseeoriginaldocumentpage14</column></row><table>表示匿名类的名称为Anonymous—a—0,onProPerty此列表示该匿名类的hasAuthor属性受约束,hasValue,allValuesFrom,someValueFrom,minCardinality,maxCardinality,Cardinality是表示通过这几个中的一个或者几个来约束这个属性,从而定义一类事物,即匿名类。一个类可以拥有零个或多个属性,用来描述类多个方面的特征。属性有定义域和值域。定义域描述了包含该属性的类。值域描述了该属性可能的取值类型。0WL中有两种类型的属性数据类型属性和对象属性。1.对于类的每个数值属性,把其作为类所对应表的一列,数值属性名为列名。并把该属性的值域映射为数据库中的数值类型。2.对于类的每个对象属性,把其作为类所对应表的一列,列名为该属性名。步骤702,建立关系表。对于类的继承关系,进行如下处理如果一个类A是类B的子类,则建立关系表,表名为A-subclass-B。表中有两列,一列名为A-subclass-,另一列名为B。将所有类继承关系填入此表。为了避免信息重复,超类就可以不作处理。(A,B)作为类继承关系表的主键。例如表2所示为类继承关系表的一实施例。表2类的继承关系表<table>tableseeoriginaldocumentpage15</column></row><table>根据表2所示,类goodbook(好书)是匿名类Anonymous—a—0的子类,同时类goodbook也是类book(书)的子类,femaleauthor(女性作者)是author(作者)的子类。类似的有属性继承关系的处理如果属性P是属性Q的子属性,则建立关系表,表名为P-subpr叩ertyof-Q。表中有两列,一列名为P-subpropertyof-,另一列名为Q。将所有属性继承关系填入此表。为了避免信息重复,超属性就可以不作处理。(P,Q)作为属性继承关系表的主键。当我们要把一些本体组合在一起作为另一个新的本体的一部分时,能说明在一个本体中的某个类与另一个本体中的某个类是等价的,这往往很有用。当等价类关系要存储在数据库中时按下面规则处理如果类A等价于类B,表名为A-equivalent-B。表中有两列,一列名为A-equivalent-,另一列名为B。将所有等价关系填入此表。(A,B)作为类等价关系表的主键。步骤703,建立构造子表。0WL另外还提供了一些用于构建复杂类的构造子。这些构造子被用于创建所谓复杂类的表达式。OWL支持基本的集合操作,即并,交和补运算。此外,类还可以是枚举的。同时,我们也可以声明类的外延必须是互不相交的。当把这些构造子映射到数据库表时,进行如下规则处理l.如果类A是集合并(交、补)来定义的,则建一张关系表,第一列为AJJnionof(并)或交(A—Intersectionof)或补(A_Complementof),将此列作为主键,其他各列为构成并(交、补)集复杂类的元素ID(即类ID)。例如表3所示为交集定义的构造子表的一实施例。表3交集定义的复杂类表maleauthorintersectionofauthor类maleauthor(男性作者)是类author(作者)和类male(男性)的交集。只有一行内容。对于另外一个由交集定义的类famousbook(有名的书)则另外建立一张表,如表4所示。交集、并集不一定是二元关系。表4交集定义的复杂类表(构成元素中包含匿名类)F柳ousbookintersectionofbookAnonymous一a一l表示类famousbook是类book禾口匿名类A画ymous一a」的交集'例如表5所示为补集定义的构造子表的一实施例。表5补集定义的复杂类表femaleauthor—complementofraaleauthor表示类femaleauthor(女性作者)的补集是maleauthor(男性作者)。这个表是二元关系,因为补集是二元关系。2.如果类A是枚举类,则建一张表,第一列为A_Enumeratedoneof,可能具有多列,其他各列为构成该枚举类(复杂类)的元素的ID(此处即实例的ID)。例如表6所示为枚举类定义的构造子表的一实施例。表6枚举定义的复杂类表<table>tableseeoriginaldocumentpage17</column></row><table>表示类badbook(不好的书)通过枚举来定义,它的元素包含piao,chun,jia三个实例其它任何个体都不能声明为属于这个类。因为枚举的个数是不定的,所以为每个枚举类建一张表。3.如果类A不相交于类B,C,D...,则建立一个表,表名为A—disjointWith—B。表中有两列,分别为A_disjointWith—和B。将所有具有不相交关的类系都填入此表。A—disjointWith—所汾应的类A,和B列所对应的类B的ID联合作为不复杂类相交构造子表的主键。步骤704,建立属性表。将OWL的基本元素存储到数据库中后,为了做到无损映射,特意建一张表来存储属性特征建一张所有属性的表,属性的ID作为表的主键,inverseof,isFunctionalProperty,isInverseFunctiona!Property,isTransitiveProperty,isSymmetricProperty(五个属性特征),依次作为表的列。然后每一个具体的属性及其具有的属性特征作为一个元组依次填入表中。例如表7所示为属性表的一实施例。表7属性表<table>tableseeoriginaldocumentpage18</column></row><table>第一列为属性的名字。第二列是函数的逆属性,如属性haspublisher的逆属性是ispublisher。第三列判断属性是否函数属性,如属性haspublisher是函数属性,因为我们认为一本书只能有一个出版社。isInverseFunctionalProperty表示属性是否是逆函数属性。isTransitiveProperty表示属性是否是传递属性。isSy咖etricProperty表示属性是否是对称属性。在属性表中,对于任意一个属性,属性表中的每一列并不一定有值,在处理时是把属性可能具有的约束和限制都作为属性表的一列,具体到每一个属性有哪些约束和限制,则填入表中即可,没有的项置为空(NULL)。作为优选的实施例,在将所述OWL文件分析存储于数据库中后,还包括用户查询步骤,接收用户的输入查询命令,将该命令转换为SQL语句,在数据库中进行检索,最后将检索结果返回给用户,并显示于用户的显示器上。如图8所示为本发明装置结构图,包括OWL文件801,用户访问单元802,OWL文件加载单元803,建模单元804,基本元素读取单元805,映射单元806,数据库807。所述OWL文件801与所述加载单元803相连接,所述加载单元803与所述建模单元804相连接,所述建模单元804与所述读取单元805相连接,所述读取单元805与所述映射单元806相连接,所述映射单元806与所述数据库807相连接,还包括用户访问单元802,分别与数据库807和加载单元803相连接。所述0WL文件801,为待处理的数据载体,可以为网络接口从网络上获得OWL文件,或者USB移动存储器,从所述存储器中获得OWL文件。所述加载单元803,查找文件是否存在,如果不存在,则将错误信息返回用户界面,提示用户重新输入;如果存在,则调用函数InFile(Stringname)读出OWL文件的内容,存入buffer中。所述建模单元804,解析该OWL文件,把该文件加载到内存中,并定义访问标准OWL文件所有基本元素的接口。所述读取单元805,利用上述建模单元804生成的接口读取所述加载单元803加载的OWL文件中的基本元素,并且区分复杂类和简单类,所述加载的OWL文件的基本元素可能少于上述W3C标准中的标准基本元素。所述映射单元806,按照映射规则对上述读取的基本元素在数据库807中进行存储,主要是建立实体表、关系表、构造子表和属性表,实体表包括具名类表和匿名类表,所述具名类表是指按类建表,将具名类的属性作为该表的一项,将类的实例及其属性值作为一个元组;关系表包括类的关系表和属性的关系表,所述的关系表和属性的关系表均为二元关系;构造子表是指,将复杂类的构成映射到表中,例如将通过并、交、补、枚举或互不相交的关系定义的复杂类的构成元素映射到数据库表中;属性表是指,将属性特征映射到一张表中。所述用户访问单元802,用于与用户交互,包括两部分功能模块,如图9所示为本发明用户访问单元结构图输入模块901,为用户提供输入OWL文件名和路径的界面,并设置运行按钮;查询模块902,为用户提供査询功能,用户只需输入某个实例名及査询条件,按下查询按钮后,即可在用户界面上显示查询结果。查询结果包括实例名以及所有属性值。如图10所示为本发明实施例0WL文件内容示意图,该test.owl文件作为输入文件,用户在用户访问单元802上填上输入文件名和路径,用户访问单元802将这个信息传给所述加载单元803,所述加载单元803在磁盘上查找该文件,如果存在则返回文件test.owl的内容,否则提示用户输入有误。当所述加载单元803读入test.owl的内容后,将其传递给所述建模单元804进行建模。所述建模单元804为读入的内容建模,并为所述读取单元805提供类、属性、实例和其它OWL关键概念的接口。如利用现有技术中的Jena等工具进行建模。所述读取单元805可以类为主线依次读出每个类的属性、实例以及其它基本元素。所述读取单元805调用建模单元804返回的一个迭代器(以存储变量),用一个循环可以依次访问到每一个类(包括返回当前类的父类、不相交类、等价类及枚举类的每个成员)。如图10中的片段经处理后就可返回book和author两个类,并且调用所述读取单元805返回author的实例A001和A003,book的实例B001和B004。所述映射单元806针对所述读取单元805中的基本元素按照映射规则依次转化为数据库表。此例中为类book和author分别建立一张表,以实例的ID作为主键,它们的每个属性分别作为表的一列。并将其对应的实例填入表中,如表8所示为类author转换成的数据库表,其中hasNamel和isAuthor为author类的属性,其中hasNamel为作者的姓名,isAuthor为该作者所对应的书。表8类author对应表<table>tableseeoriginaldocumentpage20</column></row><table>其中实例A003有多值属性,我们采用索引的方式,在原来的位置填入A003—multivalue,同时另建一张表名为A003—multivalue来存储属性isAuthor的所有值,如表9所示,表A003—multivalue中含有B001和B004两个值。表9A003_multivalueA003一multivalueB004B001自此,test,owl中的信息已经转化为数据库表,并存储于数据库807,用户可以通过用户访问单元802来查询信息。本发明的有益效果在于,本发明的转化方法是无损的。在本发明中,不仅涉及到OWL类的映射、数据类型属性的映射、函数属性的映射、类的继承关系的映射,而且还包括了OWL的其它元素如匿名类、对象属性、属性的继承关系、等价类、并、交、补、枚举,不相交关系等的相应处理。同时,本发明中的转换装置真正实现了OWL文件自动映射为数据库表。输入为OWL文件,输出是关系数据库表。在本发明中的转换装置的基础上,通过友好的用户界面,用户不需要具备专业知识,就可以方便地执行信息转换和查询功能;同时,系统也可以利用接口来复用数据库中的信息,实现数据的共享。本发明中的转换装置是一种实现基于OWL的信息到数据库表转换时无损的、自动化的、实用的装置,可以将上述OWL文件的信息存储于数据库中,能够支撑信息的高效方便查询,并实现资源共享的目的。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1.一种OWL信息到关系数据库的转换方法,其特征在于该方法包括加载OWL文件,对所述OWL文件进行建模,通过所述建模后生成的接口读取所述OWL文件中的所有基本元素,将所述基本元素无损的映射并存储于数据表中。2.根据权利要求1所述的一种0WL信息到关系数据库的转换方法,其特征在于,在读取所述OWL文件时,判断当前读取的类是否为复杂类,如果为复杂类则逐一读取构成该复杂类的类,如果为简单类则直接读取所述简单类;其中,如果所述当前读取的类是由"并"集合关系构成,则所述当前类为复杂类;或者如果所述当前读取的类是由"交"集合关系构成,则所述当前类为复杂类;或者如果所述当前读取的类是由"补"集合关系构成,则所述当前类为复杂类。3.根据权利要求2所述的一种0WL信息到关系数据库的转换方法,其特征在于,所述逐一读取构成所述复杂类的类和直接读取所述简单类还包括,如果读取的类是匿名类,则为该匿名类起名,读出所述匿名类的受约束的属性,并且读出该受约束的属性受到的约束限制信息;如果读取的类是具名类,则读取该具名类的实例、属性、关系信息。4.根据权利要求2所述的一种0WL信息到关系数据库的转换方法,其特征在于,所述将所述基本元素无损的映射并存储于数据表中包括,根据所述读取出的OWL文件的所有基本元素建立实体表、关系表、构造子表和属性表;其中,实体表包括具名类表和匿名类表,针对于不同的具名类建不同的具名类表,以属于该具名类的ID作为主键,将该实例的属性作为表项进行存储;将所述读取的匿名类信息存储于所述匿名类表,针对于不同的匿名类建表,将该匿名类的名字作为所述匿名类表的主键,该匿名类受约束的属性和相应的约束条件作为表项进行存储;将所述OWL文件中类的关系和属性的关系信息存储于所述关系表,将所有类的继承关系、属性的继承关系和类的等价关系相应的二元关系存储于所述不同的关系表中;将所述OWL文件中关于复杂类的定义存储于所述构造子表,根据复杂类的集合关系,将所述构成复杂类的元素存储于相应集合关系的构造子表中;将所述OWL文件中所有属性的属性特征存储于所述属性表,将属性名称作为属性表的主键,将相应属性特征存储于相应的表项中。5.根据权利要求3所述的一种0WL信息到关系数据库的转换方法,其特征在于,读取所述实例时还包括,顺序读取所述实例中的属性值,初始化计数器等于0,每读取一个属性值计数器加l,当读完所述实例每一个属性的所有属性值后,如果计数器为l,则将属性值存储于所述实例的相应属性列中,如果所述计数器大于1则建立新表,将计数器个属性值填入新表中,并在所述实例的相应属性列中填入新表名。6.—种OWL信息到关系数据库的转换装置,其特征在于该装置包括,OWL文件,加载单元,建模单元,读取单元,映射单元,数据库;通过加载单元加载0WL文件,利用建模单元对所述0WL文件进行建模,所述读取单元通过所述建模单元生成的接口读取所述0WL文件中的所有基本元素,通过映射单元将所述基本元素无损的映射并存储于数据表中。7.根据权利要求6所述的一种0WL信息到关系数据库的转换装置,其特征在于,所述读取单元判断当前读取的类是否为复杂类,如果为复杂类则逐一读取构成该复杂类的类,如果为简单类则直接读取所述简单类-,其中,所述读取单元判断当前读取的类是由"并"集合关系构成,则所述当前类为复杂类;或者判断当前读取的类是由"交"集合关系构成,则所述当前类为复杂类;或者判断当前读取的类是由"补"集合关系构成,则所述当前类为复杂类。8.根据权利要求7所述的一种0WL信息到关系数据库的转换装置,其特征在于,所述读取单元判断读取的类是匿名类,则为该匿名类起名,读出所述匿名类的受约束的属性,并且读出该受约束的属性受到的约束限制信息;并且所述读取单元判断读取的类是具名类,则读取该具名类的实例、属性、关系信息。9.根据权利要求7所述的一种0WL信息到关系数据库的转换装置,其特征在于,所述映射单元根据所述读取出的OWL文件的所有基本元素建立实体表、关系表、构造子表和属性表;其中,实体表包括具名类表和匿名类表,所述映射单元将所述读取的OWL文件中具名类信息存储于所述具名类表,针对于不同的具名类建表,以属于该具名类的ID作为主键,将属于该具名类的实例的属性作为表项进行存储;所述映射单元将所述读取的匿名类信息存储于所述匿名类表,针对于不同的匿名类建表,将该匿名类的名字作为所述匿名类表的主键,该匿名类受约束的属性和相应的约束条件作为表项进行存储;所述映射单元将所述OWL文件中类的关系和属性的关系信息存储于所述关系表,将所有类的继承关系、属性的继承关系和类的等价关系相应的二元关系存储于所述不同的关系表中;所述映射单元将所述OWL文件中关于复杂类的定义存储于所述构造子表,根据复杂类的集合关系,将所述构成复杂类的元素存储于相应集合关系的构造子表中;所述映射单元将所述OWL文件中所有属性的属性特征存储于所述属性表,将属性名称作为属性表的主键,将相应属性特征存储于相应的表项中。10.根据权利要求8所述的一种OWL信息到关系数据库的转换装置,其特征在于,所述读取单元顺序读取所述实例中的属性值,初始化计数器等于0,每读取一个属性值计数器加1,当读完所述实例每一个属性的所有属性值后,如果计数器为l,则将属性值存储于所述实例的相应属性列中,如果所述计数器大于1则建立新表,将计数器个属性值填入新表中,并在所述实例的相应属性列中填入新表名。全文摘要本发明为了解决现有技术中没有有效对OWL文件进行存储的问题,提供一种OWL信息到关系数据库的转换方法及装置。本发明方法公开了以下技术手段实现上述目的,加载OWL文件,对所述OWL文件进行建模,通过所述建模后生成的接口读取所述OWL文件中的所有基本元素,将所述基本元素无损的映射并存储于数据表中。本发明的有益效果在于,是一种实现基于OWL的信息到数据库表转换时无损的、自动化的、实用的装置,可以将上述OWL文件的信息存储于数据库中,并方便别人查询其中信息,实现资源共享的目的。文档编号G06F17/30GK101350033SQ200810222030公开日2009年1月21日申请日期2008年9月5日优先权日2008年9月5日发明者峰亓,张慧吉,李文璟,颖王,王智立,芮兰兰,陈兴渝,高志鹏申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1