Semantic Web China » 语义网 Semantic Web, Ontology, RDF, OWL, 机器可理解自然语言 » OWL Web本体语言指南(2)
本页主题: OWL Web本体语言指南(2) 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

qihnju



该用户目前不在线
级别: 新手上路
精华: 1
发帖: 9
威望: 12 点
金钱: 110 RMB
贡献值: 0 点
好评度: 0 点
注册时间:2007-07-31
最后登录:2007-08-15

OWL Web本体语言指南(2)

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

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

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

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

2.1. 命名空间
在我们使用一组术语之前,我们需要一个精确地指出哪些具体的词汇表将被用到。一个标准的本体开头部分里包括一组XML命名空间(namespace)声明(被包含在rdf:RDF标签里)。这些命名空间声明提供了一种无歧义地解释标识符的方式,并使得剩余的本体表示具有更强的可读性。一个典型的OWL本体以一个命名空间声明(namespace declaration) (http://www.w3.org/TR/2004/REC-owl-guide-20040210/#XMLNS)开始(就像下面的例子那样)。当然,被定义本体的URIs未必都是w3.org的。
    <rdf:RDF
    xmlns    ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"
    xmlns:vin ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"     
    xml:base  ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"     
    xmlns:food="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#"   
    xmlns:owl ="http://www.w3.org/2002/07/owl#"
    xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:xsd ="http://www.w3.org/2001/XMLSchema#">
前两个声明标识了与该本体相关的命名空间。第一个声明指定了缺省命名空间,即表明所有无前缀的限定名(qualified names)都出自当前本体。第二个声明为当前本体指定了前缀 vin:。第三个声明为当前文档(参见下文 (http://www.w3.org/TR/2004/REC-owl-guide-20040210/#owl_imports))指定了基准URI(base URI)。第四个声明指出食物(food)本体将用前缀food:来标识。

第五个命名空间声明指出,在当前文档中,前缀为owl:的元素应被理解是对出自http://www.w3.org/2002/07/owl#中的事物的引用。这是引入OWL词汇表的惯例用法。

OWL要依赖RDF、RDFS以及XML Schema数据类型中的构词(constructs)。在本文档中,rdf:前缀表明事物出自命名空间 http://www.w3.org/1999/02/22-rdf-syntax-ns#。接下来的两个命名空间声明分别为RDF Schema和XML Schema数据类型指定前缀rdfs:和xsd:。

为帮助书写冗长的URLs,在本体的定义之前,在文档类型声明(DOCTYPE)中提供一些实体定义(entity definitions)常常是很有用的。这些被命名空间声明定义的名称仅当作为XML标签的一部分时才具有意义。属性值(attribute values)是不具有命名空间的。但是在OWL里,我们经常要用属性值来引用本体标识符。我们可以写出它们的完整URI形式,比如“http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#merlot”。或者,利用实体定义来简略URI的书写,例如:
<!DOCTYPE rdf:RDF [
    <!ENTITY vin  "http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#" >
    <!ENTITY food "http://www.w3.org/TR/2004/REC-owl-guide-20040210/food#" > ]>

在声明这些实体后,我们可以将“&vin;merlot”作为“http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#merlot”的简写。

更为重要的是,这样rdf:RDf命名空间声明可以被简化,并且只需对实体声明作修改即可在整个本体范围内应用URI的变化。
<rdf:RDF
    xmlns    ="&vin;"
    xmlns:vin ="&vin;"
    xml:base  ="&vin;"
    xmlns:food="&food;"
    xmlns:owl ="http://www.w3.org/2002/07/owl#"
    xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:xsd ="http://www.w3.org/2001/XMLSchema#">

2.2. 本体头部
建立了命名空间后,接下来我们通常要在owl:Ontology标签里给出一组关于本体的声明。这些标签支持一些重要的常务工作比如注释、版本控制以及其他本体的嵌入等。
<owl:Ontology rdf:about="">
  <rdfs:comment>An example OWL ontology</rdfs:comment>
  <owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/>
  <owl:imports rdf:resource="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/>
  <rdfs:label>Wine Ontology</rdfs:label>
  ...
注意:我们使用“...”表明这里有一些文本被略去了。

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

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

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

owl:priorVersion是一个为用于本体的版本控制系统提供相关信息(hook)的标准标签。本体的版本控制将在后面 (http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyVersioning)作进一步讨论。

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

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

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

注意:不必为了使用OWL本体词汇,而导入owl.rdf (http://www.w3.org/2002/07/owl)本体。实际上,这样导入是不推荐的。

一个理想的可被嵌入的标签集合是部分标准的Dublin Core (http://www.w3.org/TR/2004/REC-owl-guide-20040210/#DublinCore)元数据标签。该子集包含一些值为简单类型或字符串的标签。比如:Title, Creator, Description, Publisher和Date等(参见RDF声明 (http://purl.org/dc/elements/1.1/))。

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

<owl:AnnotationProperty rdf:about="&dc;creator" />

OWL提供了若干其他的机制来将当前本体与被导入本体相关联(参见本题映射 (http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyMapping)部分)。

我们也可以用rdfs:label来对本体进行自然语言标注。

本体头部定义在下列标签处结束:
</owl:Ontology>
在这段开头之后跟随的是构成本体的实际定义,最终由
</rdf:RDF>
终止。

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

语义网的连接来自多源的信息的能力是一个理想的、强大的特性,它可被用在许多应用 (http://www.w3.org/TR/2004/REC-owl-guide-20040210/#IntegratingApplications)中。但是合并来自多源数据的能力,加上OWL的推理能力,确实存在被误用的可能。OWL用户应对潜在的隐私问题予以警惕。具体的安全方案超出了工作组的工作范畴。一些组织正在用各种不同的安全和偏好方案来处理这些问题,比如SAML (http://www.oasis-open.org/committees/security/charter.php)和P3P (http://www.w3.org/P3P/)。
My sorrow is my castal
顶端 Posted: 2007-08-06 16:38 | [楼 主]
Semantic Web China » 语义网 Semantic Web, Ontology, RDF, OWL, 机器可理解自然语言

Total 0.016647(s) query 4, Time now is:09-06 09:50, Gzip enabled
Powered by PHPWind v5.3 Certificate Code © 2003-07 PHPWind.com Corporation