文档库 最新最全的文档下载
当前位置:文档库 › owl本体指南

owl本体指南

owl本体指南
owl本体指南

目前这种结构的万维网,很像一本地图做得很差的地理书,我们对于Web 中可以使用的文档和服务的了解,都是基于关键字搜索的,同时还需要灵活地使用文档的链接和使用模式。如果没有强有力的工具的支持,这么大规模的数据是很难管理的,为了能够给Web绘制出更为详实的地图,计算代理需要对于网络上可用资源的内容和能力做一个机器能够读得懂的描述。这些描述是人类能够读得懂的信息的扩展。

OWL,这种本体描述语言,可以用来描述Web文档和应用中内在的类和关系。

这篇文章解释了OWL语言的使用:

通过定义类以及类的属性来形式化某个领域;

定义个体并说明它们之间的属性;

在OWL语言的形式化语义允许的层次上,对类和个体进行推理。

本文的各章节间是按照类、属性、个体的集合的定义给出来的,从最简单的概念开始,逐渐过渡到更为复杂的概念。

本文档的状态

本文档已被W3C成员及其他相关方面审阅,并已被W3C总监(W3C Director)批准为W3C推荐标准(W3C Recommendation)。W3C制定推荐标准的任务是使之受到关注,并促使其被广泛应用。这将增强Web的功能性与互操作性。

本文档是W3C关于Web本体语言OWL的推荐标准的六个部分之一。它已经被Web 本体工作小组(小组章程) 作为W3C语义Web行动 (行动声明) 的一部分于2004年2月10日发布。

本文档的早期版本中所描述的关于OWL的设计已被广泛评阅,并已满足工作小组的技术需求。工作小组充分考虑所有收到的意见,并做了必要的修改。本文档自从候选推荐标准版本以来的所有修改都在文后的变更日志中。

欢迎通过public-webont-comments@https://www.wendangku.net/doc/751624529.html, (历史存档)提出您的意见,也可以通过www-rdf-logic@https://www.wendangku.net/doc/751624529.html, (mailto:www-rdf-logic@https://www.wendangku.net/doc/751624529.html,)(历史存档) 参与相关技术的讨论。

可以访问到有关实现的一个列表。

W3C维护着一个与这些工作相关的专利声明的目录。

这节描述了本文档在发布时的状态。其他文档可能替代这文档。一份当前

W3C的最新出版物的目录和这个技术报告的最新版本可以在 W3C技术报告索引https://www.wendangku.net/doc/751624529.html,/TR/ 上找到。

目录

1. 引言. 3

1.1. OWL的种类. 4

1.2. 本文档的结构. 5

2. 本体的结构. 5

2.1. 命名空间. 5

2.2. 本体头部. 7

2.3. 数据集成与隐私. 8

3. 基本元素(Basic Elements). 8

3.1. 简单的类和个体. 8

3.1.1. 简单的具名类. 9

3.1.2. 个体. 11

3.1.3. 使用方面的考虑. 11

3.2. 简单属性. 12

3.2.1. 定义属性(Defining Properties). 13

3.2.2. 属性和数据类型. 15

3.2.3. 个体的属性. 16

3.3. 属性特性. 16

3.3.1. TransitiveProperty 17

3.3.2. SymmetricProperty 17

3.3.3. FunctionalProperty 17

3.3.

4. inverseOf 18

3.3.5. InverseFunctionalProperty 18

3.4. 属性限制. 19

3.4.1. allValuesFrom, someValuesFrom 19

3.4.2. 基数限制. 20

3.4.3. hasValue [OWL DL] 20

4. 本体映射. 21

4.1. 类和属性之间的等价关系. 21

4.2 个体间的同一性. 22

4.3. 不同的个体. 23

5. 复杂类 [OWL DL] 24

5.1 集合运算符 intersectionOf,unionOf,complementOf 24

5.1.1.交运算 [some uses of OWL DL] 24

5.1.2. 并运算 [OWL DL] 25

5.1.3. 补运算 [OWL DL] 26

5.2. 枚举类 oneOf [OWL DL] 26

5.3. 不相交类 disjointWith [OWL DL] 27

6. 本体的版本控制. 28

7. 使用范例. 29

7.1.葡萄酒门户网站. 29

7.2. 葡萄酒主体(agent). 30

1. 引言

?告诉我我应该买什么酒提供给下列菜单的每道菜,随便说一下,我不喜欢苏特恩白葡萄酒?。

目前构造一个能够查找满足这个查询的酒的Web代理会是困难的。类似地,考虑派给软件代理一个做出合理的旅行安排的任务(更多的用例,参考OWL需求文档)。

为了支持这种计算,不仅仅用关键词而是说明Web上描述的资源的含义是必要的。这个额外的解释层表述了数据的?语义?。

Web本体语言OWL是一种定义和实例化?Web本体?的语言。?本体?这个术语来自于哲学,它是研究世界上的各种实体以及他们是怎么关联的科学。一个?Web本体?可能包含了类,属性和他们的实例的描述。给出这样的一个本体,OWL形式语义说明怎么获得它的逻辑结论,也就是说,不是逐字写在本体中的事实,而是语义蕴涵的事实。这些蕴涵可以是基于单个的文档也或利用OWL机制合

并在一起的多个分布的文档。

本文档是W3CWeb本体工作组(WebOnt)制定的Web本体语言的描述的一部分。 OWL综述([Overview)的文档指南部分描述了不同部分的文档以及他们怎样结合的。

当描述另外一个XML/Web标准时,有一个问题会冒出来:这个标准给了我什么XML和XML Schema不能给的。这个问题有两个答案。

〃本体和XML Schema的区别是它是一种知识表示,而不是一种消息格式。大多数来自工业界的Web标准包含了一个消息格式和协议规范的组合。这些式已经被给予一个操作语义,例如,"一旦收到订单(PurchaseOrder)的消息,从AccountFrom账号转移Amount数量的美元到AccountTo账号,并且发货(Product)",但是这些规范并没有设计为支持此事务上下文之外的推理。例如,一般来说,没有机制让我们推出:因为这个产品的类型是夏敦埃酒(Chardonnay,一种无甜味白葡萄酒),它必定也是一种白色酒。

〃 OWL本体的一个优点是会有能够对其做推理的工具。这些工具提供了不特定于某个主题领域的通用支持,而如果要构建一个能对一个特定的工业界标准XML Schema做推理的系统,它往往是特定于一个领域的。构建一个可靠的和有用的推理系统不是一项简单的工作。而创建一个本体则更为容易处理。我们的期望就是很多团体会着手本体创建。他们会得益于基于OWL语言的形式属性的第三方工具,这些工具提供了多种多样的能力,而这些能力是大部分组织难以复制的。

1.1. OWL的种类

OWL提供了三种表达能力递增的子语言,以分别用于特定的实现者和用户团体。

OWL Lite用于提供给那些只需要一个分类层次和简单约束的用户。例如,虽然OWL Lite支持支持基数限制,但只允许基数为0或1。提供支持OWL Lite 的工具应该比支持表达能力更强的其他OWL语言更简单,并且从辞典(thesauri)和分类系统(taxonomy)转换到OWL Lite更为迅速。

OWL DL 支持那些需要最强表达能力的推理系统的用户,且这个推理系统能够保证计算的完全性(computational completeness,即所有的结论都能够保证被计算出来)和可判定性(decidability,即所有的计算都在有限的时间内完成)。

它包括了OWL语言的所有成分,但有一定的限制,如类型的分离(一个类不能同时是一个个体或属性,一个属性不能同时是一个个体或类)。OWL DL 这么命名是因为它对应于[描述逻辑],这是一个研究一阶逻辑的一个特定可判定片断的领域。OWL DL旨在支持已有的描述逻辑商业处理(business segment)和具有良好计算性质的推理系统。

OWL Full 支持那些需要尽管没有可计算性保证,但有最强的表达能力和完全自由的RDF语法的用户。例如,在OWL Full中,一个类可以被同时看为许多个体的一个集合以及本身作为一个个体。另外一个和OWL DL的重要区别是owl:DatatypeProperty(数据类型属性)能作为一个owl:InverseFunctionalProperty(逆函数型属性)。OWL full允许一个本体增加预定义的(RDF、OWL)词汇的含义。这样,不太可能有推理软件能支持对OWL FULL的所有成分的完全推理

在表达能力和推理能力上,每个子语言都是前面的语言的扩展。这三种子语言之间有如下关系成立,但这些关系反过来并不成立。

〃每个合法的OWL Lite本体都是一个合法的OWL DL本体;

〃每个合法的OWL DL本体都是一个合法的OWL Full本体;

〃每个有效的OWL Lite结论都是一个有效的OWL DL结论;

〃每个有效的OWL DL结论都是一个有效的OWL Full结论。

使用OWL的本体开发者要考虑哪种语言最符合他们的需求。选择OWL Lite 还是OWL DL主要取决于用户在多大程度上需要OWL DL提供的表达能力更强的成分。OWL Lite的推理机会有良好的计算性质。而OWL DL的推理机处理的尽管是一个可判定的子语言,会有更高的最坏情况复杂度。选择OWL DL还是OWL Full 主要取决于用户在多大程度上需要RDF的元模型机制(如定义关于类的类);使用OWL Full相比于OWL DL,对推理的支持是更难预测的。关于此问题的更多信息参考OWL语义文档。

用户在把RDF文档转换到OWL DL或OWL Lite文档时必须谨慎,以保证原来的RDF文档是否满足 OWL DL 或OWL Lite对RDF的一些附加的限制。这些限制在文档OWL参考的附录E中有详细的解释。

当我们介绍只在 OWL DL或 OWL Full中允许的构词(construct)时,他

们被标记为"[OWL DL]"。

1.2. 本文档的结构

为了在这个指南中提供一个一致的例子,我们创建了一个关于酒和食物的本体。它是一个OWL DL本体。我们有些讨论会集中于OWL Full的表达能力,因此会标注出来。这个酒和食物本体是对历史悠久的DAML本体库中的一个元素的重大修改而成的。它最初由McGuinness作为一个描述逻辑CLASSIC的例子开发的,后来扩充为一个描述逻辑教程和一个本体教程。

在这个文档中,我们假设大部分读者熟悉XML,因此用RDF/XML语法表示例子([RDF], 5)。标准的OWL交换语法是RDF/XML。注意OWL在设计时保持了与RDF 和RDF Schema的最大兼容性。这些XML和RDF格式是OWL标准的一部分。

2. 本体的结构

OWL是语义网活动的一个组成部分。这项工作的目的是通过对增加关于那些描述或提供网络内容的资源的信息,从而使网络资源能够更容易地被那些自动进程访问。由于语义网络固有的分布性,OWL必须允许信息能够从分布的信息源收集起来。其中,允许本体间相互联系,包括明确导入其他本体的信息,能够部分实现这样的功能。

另外,OWL提出了一个开放世界的假设。也就是说,对资源的描述并不局限于在一个简单的文件或范围内。类C1本来是由本体O1定义出来的,然而,它也可以是由其他的本体扩展出来的。对C1进行这样的假设的结果是单调的。新的信息不能否定之前的信息。新的信息可以是和旧的信息矛盾的,但是事实和推导只能被增加而不能被删减。

当设计一个本体的时候,设计者必须考虑到这种矛盾的可能性。一种期望是,工具的支持将帮助侦测到这样的情况。

为了能写出一个能被唯一翻译的而且能被软件(代理)使用的本体,我们要求OWL有一个语法和正规的语义。OWL是RDF的一个词汇扩充[RDF语义]。在OWL网络本体语言语义和简明语法中,有OWL的语义定义。

2.1. 命名空间

在我们使用一组术语之前,我们需要一个精确地指出哪些具体的词汇表将被用到。一个标准的本体开头部分里包括一组XML命名空间(namespace)声明

(被包含在rdf:RDF标签里)。这些命名空间声明提供了一种无歧义地解释标识

符的方式,并使得剩余的本体表示具有更强的可读性。一个典型的OWL本体以一

个命名空间声明(namespace declaration)开始(就像下面的例子那样)。当然,

被定义本体的URIs未必都是https://www.wendangku.net/doc/751624529.html,的。

xmlns ="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#"

xmlns:vin ="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#"

xml:base ="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#" xmlns:food="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/food#" xmlns:owl ="https://www.wendangku.net/doc/751624529.html,/2002/07/owl#"

xmlns:rdf="https://www.wendangku.net/doc/751624529.html,/1999/02/22-rdf-syntax-ns#"

xmlns:rdfs="https://www.wendangku.net/doc/751624529.html,/2000/01/rdf-schema#"

xmlns:xsd ="https://www.wendangku.net/doc/751624529.html,/2001/XMLSchema#"> 前两个声明标识了

与该本体相关的命

名空间。第一个声明指定了缺省命名空间,即表明所有无前缀的限定名(qualified names)都出自当前本体。第二个声明为当前本体指定了前缀 vin:。

第三个声明为当前文档(参见下文)指定了基准URI(base URI)。第四个声明

指出食物(food)本体将用前缀food:来标识。

第五个命名空间声明指出,在当前文档中,前缀为owl:的元素应被理解是

对出自https://www.wendangku.net/doc/751624529.html,/2002/07/owl#中的事物的引用。这是引入OWL词汇

表的惯例用法。

OWL要依赖RDF、RDFS以及XML Schema数据类型中的构词(constructs)。

在本文档中,rdf:前缀表明事物出自命名空间

https://www.wendangku.net/doc/751624529.html,/1999/02/22-rdf-syntax-ns#。接下来的两个命名空间声明

分别为RDF Schema和XML Schema数据类型指定前缀rdfs:和xsd:。

为帮助书写冗长的URLs,在本体的定义之前,在文档类型声明(DOCTYPE)

中提供一些实体定义(entity definitions)常常是很有用的。这些被命名空间

声明定义的名称仅当作为XML标签的一部分时才具有意义。属性值(attribute

values)是不具有命名空间的。但是在OWL里,我们经常要用属性值来引用本体

标识符。我们可以写出它们的完整URI形式,比如

?https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#merlot?。或者,

利用实体定义来简略URI的书写,例如:

]>在声明这

些实体后,我们可以将?&vin;merlot?作为

?https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#merlot?的简

写。

更为重要的是,这样rdf:RDf命名空间声明可以被简化,并且只需对实体

声明作修改即可在整个本体范围内应用URI的变化。

xmlns:rdfs="https://www.wendangku.net/doc/751624529.html,/2000/01/rdf-schema#" xmlns:xsd ="https://www.wendangku.net/doc/751624529.html,/2001/XMLSchema#"> 2.2. 本体头部

建立了命名空间后,接下来我们通常要在owl:Ontology标签里给出一组关

于本体的声明。这些标签支持一些重要的常务工作比如注释、版本控制以及其他

本体的嵌入等。

AnexampleOWLontology

rdf:resource="https://www.wendangku.net/doc/751624529.html,/TR/2003/PR-owl-guide-20031215/wine"/>

rdf:resource="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/food"/

> Wine Ontology ...注意:我们使用?...?

表明这里有一些文本被略去了。owl:Ontology元素是用来收集关于当前文档的OWL元数据的。它不确保文档描述一个传统意义的本体。在某些圈子里,本体不是关于个体的,而是仅仅关于某个领域的类和属性的。在使用OWL来描述一个实例数据集合时,owl:Ontology标签也许会被需要用来记录版本信息,和导入文档所依赖的一些定义。因此,在OWL里,本体一词被放宽了,已包含实例数据(如上文)。

rdf:about属性为本体提供一个名称或引用。根据标准,当rdf:about属性的值为""时,本体的名称是owl:Ontology元素的基准URI。典型地,这是一个包含本体的文档的URI。在使用了xml:base的上下文中则是一个特殊情况,这时owl:Ontology元素的基准URI也许会被设为其他URI。

rdfs:comment提供了显然必须的为本体添加注解的能力。

owl:priorVersion是一个为用于本体的版本控制系统提供相关信息(hook)的标准标签。本体的版本控制将在后面作进一步讨论。

owl:imports提供了一种嵌入机制。owl:imports接受一个用rdf:resource 属性标识的参数。

导入另一个本体将把那个本体中的全部声明引入到当前本体中。为了充分利用好这一机制,通常要与命名空间声明结合使用。请注意这两种机制的区别。命名空间声明提供的是一种方便对其他本体定义的名称进行引用的方法。概念上,owl:imports用于表明包含目标本体中的声明。在导入另一个本体02时,在02中导入的其他本体也将被导入。

注意:owl:imports并不是总能成功的。正如你所料的,在涉及语义网时,对分布在Web上的资源的访问也许是不可及的。在这种情况下,工具的响应是与具体实现相关的。

注意:不必为了使用OWL本体词汇,而导入owl.rdf本体。实际上,这样导入是不推荐的。

一个理想的可被嵌入的标签集合是部分标准的Dublin Core元数据标签。该子集包含一些值为简单类型或字符串的标签。比如:Title, Creator, Description, Publisher和Date等(参见RDF声明)。

被用作注解的属性(properties)应用owl:AnnotationProperty来声明。

例如

OWL提供了若干其他的机制来将当前本体与被导入本体相关联(参见本题映射部分)。我们也可以用rdfs:label来对本体进行自然语言标注。

本体头部定义在下列标签处结束:

在这段开头之后跟随的是构成本体的实际定义,最终由终止。2.3. 数据集成与隐私

OWL在表达出现在多个文档中的实例信息的能力方面,支持连接来自异源的数据。下层语义为这些数据提供推理支持,这可以产生意外的结果。特别地,owl:sameAs的表达等价的能力,可被用来表达表面上不同的个体实际上是相同的。Owl:InverseFunctionalProperty也可被用来连接个体。例如,如果一个属性,比如?SocialSecurityNumber?,是一个owl:InverseFunctionalProperty,那么两个分开的个体如果具有相同的SocialSecurityNumber属性,则可被推理出是相同的个体。当个体被这样确定为相同时,来自异源的关于这些个体的信息可以被合并。这种聚合可被用来得出不可直接从单源获得的事实。

语义网的连接来自多源的信息的能力是一个理想的、强大的特性,它可被用在许多应用中。但是合并来自多源数据的能力,加上OWL的推理能力,确实存在被误用的可能。OWL用户应对潜在的隐私问题予以警惕。具体的安全方案超出了工作组的工作范畴。一些组织正在用各种不同的安全和偏好方案来处理这些问题,比如SAML和P3P。

3. 基本元素(Basic Elements)

一个OWL本体中的大部分元素是与类(class)、属性(property)[译注//这里的property也可译作?特性?]、类的实例(instance)以及这些实例间的关系有关的。本节给出应用这些元素所必需的语言成分。

3.1. 简单的类和个体

许多情况下,使用本体是为了用它进行关于个体的推理。为了在一种有效的方式下做到这一点,我们需要一种机制来描述个体所属的类以及这些个体通过类成员关系而继承得到的属性。尽管我们总能为个体声明特定的属性,但是本体的大部分能力在于基于类的推理。

有时,我们希望强调区分一个类是作为对象还是作为包含元素的集合。我们称由属于某个类的个体所构成的集合为该类的外延(extension

3.1.1. 简单的具名类

Class, rdfs:subClassOf

一个领域中的最基本概念应分别对应于各个分类层次树的根。OWL中的所有个体都是类owl:Thing的成员。因此,各个用户自定义的类都隐含地是owl:Thing 的一个子类。要定义特定领域的根类,只需将它们声明为一个具名类(named class)即可。OWL也可以定义空类,owl:Nothing。

在我们所举的葡萄酒领域的例子中,我们创建三个根类:Winery,Region 和ConsumableThing。

注意:我们只是说这里有三个具有指定名称(通过语法?rdf:ID=?)的类。形式上,即使我们使用了熟悉的英语单词作为标签,但我们除了知道这些类的存在以外,仍不了解任何其他关于它们的信息。而这些类尽管存在,但它们可能没有成员。就所有目前我们所知道的信息而言,将这些类分别命名为Thing1、Thing2和Thing3与命名为上述名称没有什么区别。记住这一点很重要,即定义可以是增量的和分布式的。特别地,我们将在后面对Winery作更多的讨论。

语法 rdf:ID="Region" 被用于引入一个名称(作为定义的一部分)。该rdf:ID属性(attribute)([RDF],7.2.22)类似于XML中的ID属性(attribute)。在这一文档中,我们现在可以用#Region来引用Region类,例如rdf:resource="#Region"。而其他的本体可以通过"https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#Region"这一完整形式来引用该名称。

另一种引用类的形式是用语法 rdf:about="#Region" 来扩展对一个资源的定义。语法 rdf:about="&ont;#x" 的使用在分布式本体的创建中是一个关键要素。它允许导入x类的定义并对它进行扩展,而不需修改源定义文档,从而支持增量构建更大的本体。

现在,我们可以在其他OWL的构建中通过这些类的标识符来引用这些类。

比如对于第一个类,同样也在该文档内的话,我们就可以使用相对标识符#Winery。由于其他文档可能也需要引用这个类,因此最合理的方式是提供命名空间和实体定义,在其中包含着这个类的定义文档作为定义源:

...

https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#" >

"https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/food#" >

="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#"

xmlns:food="https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/food#" . .. > ...给定上述定义后,我们便可以通过XML标签vin:Winery或属性(attribute)值&vin;Winery来引用winery类。更确切地说,我们总可以使用资源的完整URL来引用它们,比如这里我们可以用https://www.wendangku.net/doc/751624529.html,/TR/2004/REC-owl-guide-20040210/wine#Winery 来引用Winery类。

rdfs:subClassOf是用于类的基本分类构造符。它将一个较具体的类与一个较一般的类关联。如果X是Y的一个子类(subclass),那么X的每个实例同时也都是Y的实例。rdfs:subClassOf关系是可传递的,即如果X是Y的一个子类,而Y又是Z的一个子类,那么X就是Z的一个子类。

...

上面,我们把PotableLiquid(可饮用的液体)定义为ConsumableThing 的子类。

在基于Web的本体世界中,这两个类可定义在一个分散的本体中,而这个本体又可以作为各种不同的食物和饮料本体的基础。我们已在食物(food)本体中定义了各种不同的食物和饮料本体,并将该食物本体导入葡萄酒(wine)本体中。

食物本体中包含了许多类,如Food、EdibleThing、MealCourse和Shellfish

等不属于葡萄酒的事物,但是如果要做有用的推理,则必须将它们与葡萄酒本体

中的词汇相关联。为了满足我们识别葡萄酒/食物对的需求,食物和葡萄酒本体

是彼此独立的。

一个类的定义由两部分组成:引入或引用一个名称,以及一个限制列表。

被直接包含在类定义中的各个表达式进一步限制了该类的实例,该类的实例属于

所有这些限制的交集。(这里描述的是成为某个类的必要条件,关于描述成为某

个类的充分必要条件,请参见owl:equivalentClass部分。)到目前为止,我们

所看到的例子均为只包含单个限制:强制被描述的新类为某个其它具名类(named class)的子类。

至此,我们可以为Wine类创建一个简单的(和不完整的)定义。Wine是一

个PortableLiquid。同时,我们将Pasta定义为一个EdibleThing。

wine

vin

...

...

rdfs:label是可选的,它为该类提供一个人类可读的名称。

负责呈现的工具可以利用这个元素。?lang?属性为多语言提供了支持。一个label(标号)就像一个注释,不向本体的逻辑解释添加任何内容。葡萄酒的定

义仍然是不完整的。我们除了知道葡萄酒是一种事物并且适于饮用以外,对它别

无所知。但我们有足够的信息来创建个体和对个体进行推理。

3.1.2. 个体

除了描述类,我们还希望能够描述类的成员。我们通常认为类的成员是我

们所关心的范畴中的一个个体(而不是另一个类或属性)。要引入一个个体(individual),只需将它们声明为某个类的成员。

注意:下面代码的含义与上

面的例子相同。

rdf:type是一个RDF属性(RDF property),用于关联一个个体和它所属的类。这里有一些注意点。首先,我们已经决定CentralCoastRegion(一个特定的区域)是Region的成员。这里的Region类包含所有地理上的区域。其次,对于上述这一由两个元素构成的示例,并没有要求这两个陈述必须是相邻的、或必须位于同一文件中(尽管这些名字在这种情况下需要扩充一个URI)。Web本体被设计成为分布式的,我们可以通过导入和补充已有的本体来创建衍生的本体。

为了得到更多的类用于将在下一节引入的属性,我们定义了一个Grape(葡萄)的层次分类以及一个代表Cabernet Sauvignon品种的葡萄的个体。Grapes 在食物本体中是这样定义的:

...

接着,我们在葡萄酒本体中有:

正如下一节将要讨论的,CabernetSauvignonGrape是一个个体,因为它代表的是某个单个葡萄品种。

3.1.3. 使用方面的考虑

关于OWL中类与个体的区别,有一些重要的问题。一个类仅是一个名称和一些描述某集合内个体的属性;而个体是该集合的成员。因此,类应自然地对应于与某论域中的事物的出现集合,而个体应对应于可被归入这些类的实际的实体。

在构建本体时,这个区别常常变得模糊不清,主要有两种情况:

〃表示的层次:在某些上下文中某些事物明显是一个类,但同时其本身又可被视为另一个事物的实例。例如:在葡萄酒本体中,我们有Grape的概念,

它是代表所有葡萄品种的集合。CabernetSauvingonGrape是这个类中的一个实例,它代表Cabernet Sauvignon这一葡萄品种。但是,CabernetSauvignonGrape 其自身也可被视为一个类,即代表所有实际的 Cabernet Sauvignon葡萄这一集合的类。

〃子类 vs. 实例:实例(instance-of)关系和子类(subclass)关系很容易被混淆。例如,也许看上去可以随意地将CabernetSauvignonGrape作为Grape的一个实例,而不是作为Grape的一个子类,但实际上这个决定并不是随意的。Grape类代表的是所有葡萄品种的集合,因此任何Grape的子类应代表这些品种的一个子集。因而,CabernetSauvignonGrape应被认为是Grape的一个实例,而不是一个子类。因为CabernetSauvignonGrape是一个葡萄品种,而不是一个葡萄品种的子类。

注意:对于Wine类也同样有着上述问题。Wine类实际上代表的是所有葡萄酒种类的集合,而不是某人可以购买的瓶装葡萄酒的集合。设想在另一个本体中,各个Wine类的实例代表一个类,该类是某类葡萄酒的瓶装葡萄酒的集合。容易设想这样一个信息系统,例如一个葡萄酒商的库存系统,它需要处理各个瓶装葡萄酒。葡萄酒本体需要有把类作为实例处理的能力,以支持该解释。注意:OWL Full是允许这样表达的,这使得我们可以同时将一个葡萄酒品种的实例视为一个类,而该类的实例是瓶装葡萄酒。

同样的,葡萄酒厂在特定年份所生产的葡萄酒将被视为佳酒。为了表达佳酒这一概念,我们必须考虑将它臵于当前本体中的何处。如前所述,一个Wine 类的实例代表的是某葡萄酒厂所生产的某个单个葡萄酒种类,比如FormanChardonnay。

要表达?2000年生产的葡萄酒被视为佳酒?是有点复杂的,因为我们没有表达某种给定葡萄酒的个体的子集的能力。佳酒并不是一个新的葡萄酒种类,而是一个特殊的葡萄酒子集,即那些产于2000年的葡萄酒。一个方案是使用OWL Full,将Wine类的实例视为类,而后者的子类(子集)代表瓶装葡萄酒。另一个方案是使用变通手法,即将Vintage视为一个单独的类,Vintage的实例与代表它所属种类的Wine类相关联。例如,FormanChardonnay2000是一个Vintage 类的个体,它通过vintageOf属性与Wine类的个体FormanChardonnay相关联。

我们将在后面看到Vintage类的定义。

这里需要注意的一点是,一个本体的开发应坚定地由它的预定用途所驱动。这些问题也存在于OWL Full和OWL DL之间的一个重要区别。OWL Full允许将类(class)用作实例(instance),而OWL DL不允许。由于葡萄酒本体被预定为使用OWL DL,因此不会将个体(例如FormanChardonnay等)同时作为类来看待。

3.2. 简单属性

如果仅允许定义层次分类,那么这个类和个体的世界也许会变得颇为无趣。属性(propertyies)使得我们可以断言关于类成员的一般事实以及关于个体的具体事实。

3.2.1. 定义属性(Defining Properties)

ObjectProperty, DatatypeProperty, rdfs:subPropertyOf, rdfs:domain, rdfs:range

一个属性是一个二元关系。有两种类型的属性:

〃数据类型属性(datatype properties),类实例与RDF文字或XML Schema 数据类型间的关系。

〃对象属性(object properties),两个类的实例间的关系。注意:对象属性这个名称并不是要反映与RDF([RDF],5.3.4)的联系。

在我们定义一个属性的时候,有一些对该二元关系施加限定的方法。我们可以指定定义域(domain)和值域(range)。可以将一个属性定义为某个已有属性的特殊化(子属性)。要进行更详细的限定也是可能的,我们将在后面对此作出介绍。

在OWL中,不含显式操作符的元素序列代表一个隐式的合取(conjunction)。属性madeFromGrape的定义域(domain)为Wine,且值域(range)

为WineGrape。也就是说,它把Wine类的实例关联到WineGrape类的实例。为

同一属性声明多个定义域表明该属性的定义域是所有这些类的交集(多个值域声

明也类似这样)

同样地,属性course将一个Meal与MealCourse相关联。

注意:OWL中值域和定义域信息的使用与程序设计语言中的类型信息有所不

同。在程序设计中,类型被用来检查程序设计语言的一致性。而在OWL中,一个

值域可被用来推断一个类型。比如,根据下面这段代码:

rdf:resource="#ChardonnayGrape" /> ┐我们可以推断出,LindemansBin65Chardonnay是一种葡萄酒,因为madeFromGrape的定义域为Wine。属性也可以像类一样按照层次结构来组织。

...

rdf:resource="#Wine" />

/>

rdf:resource="#WineColor" /> ... WineDescriptor属性将葡萄酒(wine)与它们的颜色(color)和味觉成分(包

括甜、浓、口味)相关联。hasColor是hasWineDescriptor的子属性,hasColor

与hasWineDescriptor的不同在于它的值域被进一步限定为WineColor。

rdfs:subPropertyOf关系表示:任何事物如果具有一个值为X的hasColor属性,

那么它同时具有一个值为X的hasWineDescriptor属性。下面,我们介绍

locatedIn属性,它将事物和事物所在的地区相关联。

...

rdf:resource="https://www.wendangku.net/doc/751624529.html,/2002/07/owl#Thing" />

rdf:resource="#Region" /> 请注意是如何定义locateIn的定义域和值域的。该定义域定义允许任何事物被值域某个区域中,

包括该区域自身。这一关系的传递的组合本质上构建了一个包含子区域和事物的

地理网络。没有包含其他事物于其中的那些事物可以属于任意类,而包含其他事

物或者区域的那些事物则必须是区域。

现在可以扩展Wine的定义来表达?一个葡萄酒是由至少一种WineGrape制

成的?了。和属性定义一样,类定义也由多个隐含相联的部分组成。

rdf:datatype="&xsd;nonNegativeInteger">1

...

上述被高亮的子类限定

rdf:datatype="&xsd;nonNegativeInteger">1

定义了一个无名类(unnamed class),该无名类代表

至少具有一个madeFromGrape属性的事物集合。我们称这些类为匿名类。在Wine

类的定义中包含该限定表明属于Wine类的事物,也是该匿名类的成员。也就是

说,任何葡萄酒都必须参与至少一个madeFromGrape关系。

现在,我们可以描述前面所提到的Vintage类了。

rdf:datatype="&xsd;nonNegativeInteger">1

vintageOf属性将一个Vintage关联到Wine。

┐我们将在下一节把Vintages关联到它们的生产年份。3.2.2. 属性和数据类型根据是将个体关联到个体、还是将个体关联到数据类型,我们可以区分两类属性:前者称为对象属性(object properties);后者称为数据类型属性(datatype properties)。数据类型属性的值域范围是RDF文字或者是XML Schema数据类型中定义的那些简单类型(simple types)。

OWL使用XML Schema内嵌数据类型中的大部分。对这些数据类型的引用是通过对https://www.wendangku.net/doc/751624529.html,/2001/XMLSchema 这个URI引用进行的。下列数据类型是推荐在OWL中使用的:

xsd:string

xsd:normalizedString

xsd:boolean xsd:decimal

xsd:float

xsd:double

xsd:integer

xsd:nonNegativeInteger

xsd:positiveInteger

xsd:nonPositiveInteger

xsd:negativeInteger xsd:long

xsd:int

xsd:short

xsd:byte xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort xsd:unsignedByte xsd:hexBinary xsd:base64Binary xsd:dateTime xsd:time xsd:date xsd:gYearMonth xsd:gYear xsd:gMonthDay xsd:gDay xsd:gMonth xsd:anyURI xsd:token xsd:language xsd:NMTOKEN xsd:Name xsd:NCName上面的数据类型,连同rdfs:Literal构成了OWL的内嵌数据类型。所有的OWL推理机都应支持xsd:integer和xsd:string数据类型。

其他XML Schema内嵌数据类型可被在OWL Full中,但在OWL Semantics and Abstract Syntax中给出了一些警告。

yearValue属性将VintageYears与一个整数值相关联。我们将引入hasVintageYear属性,它将一个Vintage关联到一个VintageYear(如下)。

OWL Reference描述了owl:oneOf的使用、以及用rdf:List和rdf:rest 来定义一个枚举数据类型,那里有个例子展示了如何构建一个值域为整数值列表{0, 15, 30, 40}的数据类型属性tennisGameScore。

3.2.3. 个体的属性

首先,我们描述Region和Winery个体,然后我们定义第一个葡萄酒Cabernet Sauvignon。

OWL本体存储技术研究

0引言 语义Web(semantic web)作为当前万维网的扩展,通过结构化和形式化的方法,以表示Web上的资源,使得计算机程序能够对网络资源进行分析和推理[1-2]。语义网作为下一代万维网,目前成为全球领域的研究热点。尤其随着W3C(world wide web consortium)的一些语义网相关标准,如资源描述框架(resource description framework,RDF)、RDFS、网络本体语言(web ontology language,OWL)等的制定,越来越多的人利用这些标准和技术,去开发基于Semantic Web的应用系统。 在语义网体系的各类技术中,本体是最重要的支撑技术[3],语义网的发展加速了本体的研究。随着最新本体语言OWL 的出现,越来越多的人利用OWL语言开发基于本体的知识系统,使用本体语言描述某个领域的知识,利用本体工具开发特定领域的知识系统[4]。在这些知识系统中,本体提供了知识库构建的基本结构,是整个系统的骨架和核心。OWL本体作为一种全新的数据组织形式,选择合适的存储介质和合理的存储模式对其进行有效存储,是当前人们十分关注的问题,也是开发语义本体知识系统的各类技术中最为关键的基础性支撑技术[5-6]。 1本体存储介质 在本体的存储技术中,存储介质的选择是研究人员首先需要关注的。目前已知的本体存储介质,也是人们经常选择的存储介质有内存、文件、关系数据库等3种方式。 1.1内存存储方法 用内存法存储本体是将本体数据以一定的结构形式直接存储在计算机的主存中,然后在计算机主存中进行数据查询等各种数据操作。这种方法具有较高的运行效率,但囿于物理条件的限制,内存存储方法只能存储很少量的数据,而且记忆能力很差。 1.2文件存储方法 文件存储的方法简单可行,适宜常久存储,很多本体相关工具都支持用文件格式存储的本体进行存取。但是这种方法 收稿日期:2010-08-23;修订日期:2010-12-21。

关系数据库存储OWL 本体方法的研究

—71— 关系数据库存储OWL 本体方法的研究 罗 军,陈 波 (重庆大学计算机学院,重庆 400030) 摘 要:Web 本体语言(OWL)是一种用于对本体进行语义描述语言,不仅提供强大的语义表达能力,而且能够表达机器可以理解的内容。关系数据库在存储与管理大规模数据方面相应技术比较成熟。针对该情况,结合两者的优势,提出一种关系数据库存储OWL 本体的存储模式,在存储大规模数据和保持语义完整性两者之间取得一个平衡点,使关系数据库存储OWL 本体既能存储海量数据,又能最大限度保持其语义完整性。 关键词:关系数据库;Web 本体语言;本体 Research on Method About Relational Database Storing OWL Ontology LUO Jun, CHEN Bo (College of Computer, Chongqing University, Chongqing 400030, China) 【Abstract 】OWL is a language that depicts semantics of ontology. It not only provides the strong semantic expression, but presents content that computer can be understandable. In the area of storage and managing megadata, the relevant techniques of relational database are matured. In this paper, the advantages of both are fully taken. It puts forward a storage model of relational database storing OWL ontology, which means that it can achieve a balance between storing megadata and maintaining the semantic integrity that renders relational database storing OWL ontology not only can store megadata, but also maximum maintain the semantic integrity. 【Key words 】relational database; Ontology Web Language(OWL); ontology 计 算 机 工 程 Computer Engineering 第36卷 第21期 Vol.36 No.21 2010年11月 November 2010 ·软件技术与数据库· 文章编号:1000—3428(2010)21—0071—02 文献标识码:A 中图分类号:N945 1 概述 OWL(Web Ontology Language)是W3C 推荐的语义网(Semantic Web)中本体描述语言的标准[1],在表达含义和语义方面,它继承了XML 与RDF 和RDFS 的优点,以XML 为语法基础,并结合RDF 与RDFS 的丰富语义,能够表达机器可以理解的内容。OWL 的发展经历了RDF 、RDFS 、OIL 、DAML+ONT 、DAML+OIL 等阶段,由OWL Lite 、OWL DL 、OWL Full 3个表达能力递增的子语言组成,可根据不同需求选择这3个子语言。本文研究以OWL DL 为基础。 2 相关研究 关于如何将本体存储在关系数据库中,目前已有一些比较流行的方法,主要有水平模式、垂直模式和分解模式等。 (1)水平模式[2]:该模式只在数据库中创建一张表,表的一条记录是本体中的一个实例,表中的列是本体中的属性。 (2)垂直模式[3]:该模式包含一张三元组表,由subject 、predicate 、object 三列组成,表中的每一条记录对应于一个RDF 的三元组。 (3)分解模式[4]:该模式的基本思想是对数据库进行模式分解。根据分解对象的不同,可将此模式分解为2种模式:1)基于类的分解模式。2)基于属性的分解模式。 上述几种存储模式只注重了对数据的存储,而在对OWL 语义的存储有所欠缺。文献[5]提出一个基于关系数据库的大规模本体的存储模式,不过在存储OWL 语义方面稍显不足。为了结合关系数据库在存储、管理大规模数据方面与OWL 在语义方面的优势,本文提出一种基于关系数据库存储OWL 本体的方法,试图在大规模数据存储和保持语义完整性两者之间取得一个平衡点。使得关系数据库存储OWL 本体既能存储海量数据,又能最大限度保持其语义完整性。 3 OWL DL 介绍 (1)OWL 提供3种表达能力递增的子语言,以分别用于特定的实现者和用户团体: 1)OWL Lite 用于提供给那些只需要一个分类层次和简单约束的用户。 2)OWL DL 支持那些需要最强表达能力的推理系统的用户,且这个推理系统能够保证计算的完全性(computational completeness)和可判定性(decidability)。OWL DL 旨在支持已有的描述逻辑商业处理(business segment)和具有良好计算性质的推理系统。 3)OWL Full 支持那些需要尽管没有可计算性保证,但有最强的表达能力和完全自由的RDF 语法的用户。 (2)OWL DL 的构词(construct): 1)类(Class) owl:Class 用于定义类。OWL 提供6种声明类的方式:通过一个类标识符(引用URI);通过枚举类的个体;通过属性约束;用2个类的交集操作;通过2个类的并集操作;通 作者简介:罗 军(1961-),男,副教授,主研方向:数据库应用系统及办公自动化,基于软件体系结构的重用技术;陈 波,硕士研究生 收稿日期:2010-03-20 E-mail :cqu-frank@https://www.wendangku.net/doc/751624529.html,

将OWL本体文件存储到MySQL数据库

[转发]实现将OWL本体文件存储到MySQL数据库 首先配置好开发环境,我采用的是Eclipse + mysql-essential-5.1.51-win32,对于MySQL的JDBC选择的是 mysql-connector-java-5.0.8。我把JDBC在D盘的根目录下解压缩,在环境变量中将JDBC的所在地址加入原有的 classpath中,然后开始存储本体文件工作。1. 利用MySQL创建一个数据库:create database jena; 2. 打开Eclipse,新建一个Java工程,起名为Persistent。 3. 新建工程的同时,分别导入Jena包和MySQL的JDBC。 4. 在工程Persistent\src\目录下新建一个Java文件,名字为 Persistent.java; 5. 开始编写以下代码: import java.io.*; import java.sql.SQLException; import com.hp.hpl.jena.db.*; import com.hp.hpl.jena.rdf.model.*; public class Persistent { public static final String strDriver = "com.mysql.jdbc.Driver"; public static final String strURL = "jdbc:mysql://localhost:3306/jena"; // localhost的后面要直接写冒号,再写3306; public static final String strUser = "root"; public static final String strPassword = "root"; public static final String strDB = "MySQL"; public static void main(String[] args){ try { DBConnection connection = new DBConnection(strURL, strUser, strPassword, strDB); // 创建连接时,第四个参数需要指定所用的数据库类型;也就是说strDB 的值应该是“MySQL” try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("驱动程序已经安装。"); } catch (ClassNotFoundException e){ System.out.println("ClassNotFoundException, Driver is not available"); } System.out.println("数据库连接成功。"); // 从此处开始读入一个OWL文件并且存储到数据库中; ModelMaker maker = ModelFactory.createModelRDBMaker(connection); // 使用数据库连接参数创建一个模型制造器 Model defModel = maker.createModel("Costume");

OWL本体知识库的面向对象表示

Software Engineering and Applications 软件工程与应用, 2018, 7(3), 132-141 Published Online June 2018 in Hans. https://www.wendangku.net/doc/751624529.html,/journal/sea https://https://www.wendangku.net/doc/751624529.html,/10.12677/sea.2018.73015 Object-Oriented Representation for OWL Ontology Knowledge Base Shaohua Zhang, Yingzhong Zhang School of Mechanical Engineering, Dalian University of Technology, Dalian Liaoning Received: Apr. 26th, 2018; accepted: May 8th, 2018; published: May 15th, 2018 Abstract Ontology technologies can better represent the knowledge implied in various terms and concepts in a structured, computable and shared form. The ontology based knowledge representation me-thod has been widely used in many fields. In view of the lack of efficient OWL (Web Ontology Lan-guage, OWL) ontology knowledge processing and integration tools in the engineering information processing, based on the study of the knowledge representation framework, language syntax and document structure based on the OWL ontology, an object-oriented OWL ontology knowledge base representation model is proposed and designed. A method based on XML document parsing plat-form to parse the OWL documents in a RDF/XML format is implemented, which can convert the OWL ontology knowledge base into an object oriented ontology knowledge base. The presented work lays a foundation for the subsequent engineering semantic information reasoning and knowledge retrieval service. Keywords Ontology, OWL, Knowledge Representation, Knowledge Base, Object-Oriented OWL本体知识库的面向对象表示 张少华,张应中 大连理工大学,机械工程学院,辽宁大连 收稿日期:2018年4月26日;录用日期:2018年5月8日;发布日期:2018年5月15日 摘要 本体技术能更好地以一种结构化的、可计算和可共享的形式表示各种术语、概念所隐含的知识,基于本

owl本体存储的分析与应用

第8卷 第7期 2008年4月167121819(2008)721831204  科 学 技 术 与 工 程 Science Technol ogy and Engineering  Vol .8 No .7 Ap r .2008 Ζ 2008 Sci .Tech .Engng . OWL 本体存储的分析与应用 王 乐 张建军 3 (西北大学信息科学与技术学院,西安710127) 摘 要 知识本体是共享概念的明确形式规范说明,本体合理有效地存储是保证本体共享利用的前提,通过给出OWL 本体和关系数据库模式的形式定义。在分析了OWL 本体和关系数据库模式之间概念对应的基础上,通过对现有本体存储模式的分析,给出了一种本体存储模式的设计原则,应用动体的存储实例表明存储实现简单,查询实验表明查询检索效率有一定提高。 关键词 OWL 本体 语义web 关系数据库模式 模式转换中图法分类号 TP311.131; 文献标志码 A 2007年11月26日收到 第一作者简介:王 乐(1983—),男,陕西西安人,西北大学信息科学与技术学院硕士研究生,研究方向:网络应用技术。E 2mail:wan 2 glexba@https://www.wendangku.net/doc/751624529.html, 。 3通信作者简介:张建军,男,陕西西安人,西北大学计算机学科硕士生导师,研究方向:计算机网络应用及安全,计算机体系结构。 使用本体(Ont ol ogy )来获取某一领域的知识,本体描述该领域的概念,以及这些概念之间的关系。目前有很多种不同的本体语言,它们各有千秋,而W 3C (World W ide W eb Cons ortium )目前的最新标准是OWL 。OWL 让描述各种概念成为可能,与此同时,它还提供了其他很多功能。它具有更丰富的操作符———例如与、或和非;它立足于一个不同的逻辑模型(l ogical model ),该模型能够更好地定义概念,可以从简单概念构造出复杂的概念;不仅如此,该模型还允许使用推理机(reas oner )来检查本体中的陈述(state ment )和定义(definiti on )是否一致,或者判断出哪个概念更适合于哪个概念,从而维护一个正确的本体等等。当允许一个类(Class )拥有多个父类的时候,这一点至关重要。典型的本体一般由一组概念、描述概念特征的属性、概念之间的关系、概念和属性之间的约束来表示静态的领域知识,这在本质上决定了本体可以借助较成熟的关系数据库技术来完成本体存储、查询等工作。 1 本体描述语言 本体主要是面向计算机的,因此,在描述手段上更加强调明确而无歧义。近年来,为了适应W eb 的开放性,本体描述语言的发展历经了RDF 、RDFS 、O I L 、DAML 2ONT 、O I L +DAML 、OWL 。与传统的基于 人工智能的本体描述语言相比,这些语言的共同点都是基于X ML 的。虽然在实际中这些语言都体现了本体的基本结构,但是它们在表达能力上仍然有许多差别。由于X ML 只是定义了语法的标准,而无法表示清晰的语义,因此产生了各种本体语言。 OWL 本质上是一种特殊的RDF .而RDF 可以 看成是一组三元组,每个三元组由一个主体、一个属性名和一个客体组成。一些带有属性的类通过OWL 概要定义,给出对应于其它表示方法的类型和 分类。所有的类都是owls:Class 的子类,通过owls:subClass Of .类之间可以有继承关系。Owls:Pr operty 用于定义类的属性。属性是类的资源。属性通过 o wl:domain,owl:range 等定义语义。Owls:subPr op 2erty Of 指定属性间的继承关系。OWL 对象的这些特 点使之在某些方面类似于面向对象技术。在数据库中存储OWL 数据时,可以参考已经用于O0和X ML 的方法来决定数据表的概要。

XML向OWL本体的映射

XML向OWL本体的映射 摘要:目前,XML在电子商务领域已经作为一种交换数据标准被广泛接受。但只有在商业伙伴对于其领域的基本概念形成一个共同理解并使用相同的语法时,他们之间的协作才能成为可能。XML能够包括语法层,但缺少对于有效概念分享的支持。Web本体语言(OWL)使用类、属性和实例在分布式环境例如互联网中支持领域知识的表达。本体提供了一种XML 中数据模型元素与OWL之间映射的方法,并对其在即将使用的XLST框架中的实现和通用应用评估进行阐述。 1 导言 目前,XML在电子商务领域已经作为一种交换数据标准被广泛接受。但只有在商业伙伴对于其领域的基本概念形成一个共同理解并使用相同的语法时,他们之间的协作才能成为可能。XML能够包括语法层,但缺少对于有效概念分享的支持。Web本体语言(OWL)使用类、属性和实例在分布式环境例如互联网中支持领域知识的表达。 本文的目的是解决XML和OWL之间的差异,我们提出了一种从现有XML数据中自动生成OWL本体的策略,该方法通过在XML不同数据模型和OWL本体之间建立适当映射来完成。 研究者提出了很多XML与OWL映射的方法,部分方法解决XML与RDF之间的通用映射问题,而另外一些方法则解决不考虑XML实例数据时XML Schema与OWL的映射问题。但仍然没有完整的方案来解决从一个“合法”的XML实例文档行到OWL本体之间的转换问题。Stefan Decker甚至断言,XML与RDF之间的自动映射方法是不可能的,因为XML并没有包含任何语义约束,XML表达的是文档的结构,但是并没有包含任何内容含义的信息。 然而另一方面,其他的一些方法则认为XML文档中存在语义,这些语义可以通过文档结构发掘出来。例如,Melnik尝试通过一个简单的语法来检测XML实例文档中的语义并将其映射到RDF文档中,Melnik认为每一个XML文档都包含一个RDF模型。 在[Vie]中,作者提出了一种自动从XML内容映射到RDF元数据的方法(WEESA),该方法通过使用一个从相应XML Schema中创建的本体来完成,其本体只包含模型,并不包含实例。XML数据不会被映射到它的OWL对应项上。目前从XML Schema到OWL本体的映射是通过手动完成的,我们的目标是自动创建该映射。通过结合本体结构定义的RDF标注,WEESA 系统能够被进一步用来生成(X)HTML网页。 Steve Battle [Bat04]的目的是描述一个XML和RDF模型之间的直接映射,而不用通过一个特定的序列化对象,例如RDF/XML。此外Steve Battle还认为,相比于Melnik试图建立通用映射的方法,XML Schema对于指导映射过程是有帮助的。要补充的是,我们试图发现一个中间阶段,如果我们已有了一份XML Schema,我们能够使用它创建相应的OWL模型,但是如果我们没有合适的XML Schema,我们通过XML实例文档来产生一个,因此,我们想在缺少XML Schema时也能抽取出概念关系。 [FZT04]作者描述了XML到RDF和XML Schema到OWL的映射,这两个映射相互独立,这也就意味着OWL实例不一定要适用于OWL模型,因为XML文档中的元素可能会被映射到不同的OWL元素中。然而,该方法并没有继续讨论在缺少XML Schema时如果生成OWL

本体介绍

属性里 rdf:ID用于指定一个片段标识符生成一个资源的完整URI引用,该片段标识符在标识符rdf:ID的属性值里给出(如people1024)。在同一个文档中,可通过“#people1024”标识符引用该资源 rdf:about属性的值知名声明主体的URI引用 首先介绍了本体,本体是用来描述某个领域的知识的。本题描述了该领域内个概念和概念间的关系。不同的本体语言提供不同的特征。最新出现的本体语言是W3C推出的OWL。它有丰富的操作符,如and,or和negation。它基于的逻辑允许它能够定义概念或描述概念。复杂的概念能建立在简单的概念定义之上。而且,这个逻辑模型允许使用推理机检查本体中的statement和定义是否具有一致性,也能识别哪个概念符合哪个定义。推理机有助于维护层次结构。这在处理有多个父类的类时非常有用。 然后介绍了OWL的三个子语言:OWL-Lite,OWL-DL,OWL-Full。它们的表达能力由弱到强。OWL-Lite的语法最简单。OWL-DL比OWL-Lite的表达能力强,它基于描述逻辑,能够自动计算层次分类和检测到本体中的不一致。OWL-Full的表达能力最强,但是推理能力就相对较弱。 接下来介绍了个体,属性,类三个概念。用了大量的图来帮助理解概念。 1.个体用URI标识。 2.类是个体的集合。类可以组成一个由父类和子类构成的层次结构图(也称为taxonomy)。类也称为概念(concept)。 Protege-OWL使用了一个叫English Prose Tooltip Generator的工具来显示类的描述信息。可以指明两个类是不相交(disjoint)的。 3.属性是一个二元关系。它分为: 函数属性(Functional Property)——通过这个属性只能连接一个个体。hasBirthMother 反函数属性(Inverse Functional Property)——即这个属性的反属性是函数属性,也就是对于一个给定的个体,只有最多一个个体能通过该属性连接那个个体。isBirthMotherOf 传递属性(Transitive Property)——hasAncestor 对称属性(Symmetric Property)——hasSibling,如果一个属性是对称的那么它就不能是函数属性。 还可以将属性分为: 对象属性(Object Property)——连接两个个体。

OWL本体在关系数据库中的存储方法研究

OWL本体在关系数据库中的存储方法研究 【摘要】本文给出了OWL本体的形式化定义,对OWL 语言的抽象语法、相应的语义按照表格的方式予以说明。本章的核心内容是OWL 本体在关系型数据库中的存储方法,设计了映射转化后的关系数据库中的基本表的结构,最后对OWL语言中的类、数据类型属性、对象属性和个体的映射规则进行了规范说明。 【关键词】OWL本体关系数据库存储方法 1 OWL本体的形式化定义 一个本体的形式化定义为{I,OP,OPE,DP,DPE,C,CE,DT,DR,a,lt,F},可以看出,一个本体包括以下部分:I表示个体的集合,集合中的每个个体都可能是一个抽象或具体域个体;OP表示一个对象属性;OPE表示一个对象属性的表达式;DP表示数据属性;DPE表示数据属性的表达式;C表示一个类;CE表示一个类的表达式;DT表示一个数据类型;DR表示数据范围;a表示一个个体;lt表示文本;F表示约束面。OWL 本体的完全语法规则(即OWL 抽象语法以及对应的语义)包括键公理、类描述、类描述公理、对象属性公理、数据属性公理、断言。 1.1 类描述

OWL本体的类描述语法规则如图1所示。 1.2类描述公理 OWL 本体的类描述公理语法规则如图2所示。 1.3对象属性描述公理 OWL本体的对象属性描述公理语法规则如图3所示。 1.4断言 OWL本体的断言公理语法规则如图4所示。 2本体在关系数据库中的存储规则 将OWL本体存储在关系型数据库中,即将OWL本体转化成关系型数据库中的表。将本体转化为关系型数据库可以分为两部分来看,外层表示将本体转化为关系型数据库。其中,本体是源,关系数据库是目标;在内层,本体模型按预先设计好的规则映射成为关系模型。这一过程中,本体和本体模型保持一致,关系模型和关系型数据库保持一致,而映射按照预先设计好的规则对应转化这一动作。在现有的映射转化方法基础上,得到改进的映射转化方法,关系型数据库中的主要表结构如图5所示。 OWL本体向关系型数据库映射主要存在以下规则:(1)OWL本体头部映射规则;(2)数据类型映射规则;(3)类映射规则;(4)属性映射规则;(5)个体映射规则。 3 结语 本文详细给出了OWL本体的形式化定义,对OWL语言

相关文档