服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

互联网发展web的未来是语义的

naveen balani 在向您介绍组织如何利用基于存在论开发的同时,还探索了语义 web 技术的基础。语义 web 有助于有效的知识管理和有成本效益的产品生命周期自动化,实现更快的开发和集成过程。

 

一般来说,语义学(semantics 研究的是意义。(“semantic”这个词来自希腊语 semantikos,或者说“显著意义”,派生于 sema ,或者说“标记(sign)”)。语义 web 技术有助于利用基于开放标准的技术,从数据、文档内容或应用程序代码中分离出意义。如果计算机理解文档的语义,那么它就不仅仅是解释构成文档的一系列字符:它能够理解文档的意义。

 

语义 web 提供了公共的框架,允许在应用程序之间、企业之间和社区边界之间共享和重用数据。可以把语义 web 想像成在万维网世界中表示数据的有效途径,或者把它当成一种数据库,用某种能够由机器理解的方式,链接到全球 web 文档中的内容。语义技术用存在论(ontology 表示意义,并通过这些存在论中表示的关系、规则、逻辑和条件来提供推理。

 

构成语义 web 的技术

 

要表示语义 web,需要使用以下技术:

 

全球性的命名方案(uri

描述数据的标准语法(rdf

描述数据属性的标准机制(rdf schema

描述数据条目间关系的标准机制(用 owl web 存在论语言定义的存在论)

我们来深入研究这些技术。

 

全球性的命名方案:uri

 

uri 就是 web 标识符,就像在万维网上经常看到的用 http ftp 开始的字符串。任何人都可以创建 uri,而且 uri 的所有权委托得很清晰,所以它们构成了理想的技术基础,可以在其上构建全球性的 web。实际上,万维网就是这样的:任何拥有 uri 的事物都被认为是“在 web 上”。语义 web 中的每个数据对象和每个数据模式/模型都必须拥有惟一的 uri

 

统一资源定位符(url 是一种 uri,除了标识资源外,通过描述资源的主要访问机制或网络位置,url 还提供了对资源的表示进行操作或获取的方式。例如,url http://www.webifysolutions.com 是一个 uri,标识了一个资源(webify solutions 的主页),还代表这个资源的表示形式(例如主页目前的 html 代码,作为编码字符)是可以从名为 www.webifysolutions.com 的网络主机通过 http 得到的。

 

统一资源名称(urn 也是一种 uri,根据特定名称空间中的名称来标识资源。可以用 urn 表示资源,而不用指明资源的位置或者如何取消对它的引用。例如,urn urn:isbn:1-0-7666-98-0 是一个 uri,像 isbn 图书编号一样,它允许您谈到一本书,但是并未指明在哪里能实际得到它的拷贝和如何得到。

 

描述数据的标准语法:rdf

 

rdf 是一个规范,它定义了表达世界的模型,定义了序列化和交换这个模型的语法。w3c 已经开发了 rdf xml 序列化。rdf xml 是语义 web rdf 的标准交换格式,虽然它并不是惟一的格式。例如,notation3 是可以替代 rdf xml 的一种优秀的纯文本序列化方式。

 

rdf 提供了一致的、标准化的方式来描述和查询 internet 资源,资源从文本页面和图片一直到音频文件和视频剪辑。它提供了句法的互操作性,还提供了构建语义 web 的基础层。rdf 定义了关系的导向图。这些是由对象-属性-值三元组表示的 ―― 即对象 o 拥有属性 a,属性 a 的值是 v

 

清单 1 提供了 rdf xml 的示例。

 

清单 1. rdf xml 示例

<?xml version="1.0"?>

<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

             xmlns:contact="http://www.w3.org/2000/05/contact#">

 

  <contact:company rdf:about="http://www.w3.org/organization/contact#webifysolutions">

    <contact:name>webify solutions</contact:name>

    <contact:mailbox rdf:resource="mailto:info@webifysolutions.com"/>

    <contact:phone>1-800-4webify</contact:phone>

   </contact:company>

 

</rdf:rdf>

 

清单 1 中的这段 rdf 基本上构成了关于一个资源的陈述,在这个示例中是公司 http://www.w3.org/organization/contact#webifysolutions。公司可以用 uri http://www.w3.org/organization/contact#webifysolutions 来标识;公司名称是 webify solutions,公司的电子邮件地址是 info@webifysolutions.com,公司的电话号码是 1-800-4webify

 

关系导向图如 1 所示。

 

1. 描述 webify solutions 联系人细节的 rdf

 

互联网发展web的未来是语义的(图一)


描述数据属性的标准机制:rdf schema

 

rdf schema rdf 的语义扩展。它提供了描述相关资源以及这些资源之间关系的机制。

 

rdf schema 的类和属性系统与面向对象编程语言(比如 java 语言)的类型系统类似。rdf 与许多这样的系统不同。rdf 词汇描述语言不是用实例的属性来定义类,而是用属性要在其上应用的资源类来描述属性。

 

rdf rdf schema 都基于 xml xml schema。描述数据的标准(rdf)和描述数据属性的标准(rdf schema)的存在,促进了从多个源读取和利用数据的工具集的开发。不同应用程序能够共享和利用数据的程度,有时叫做句法互操作性(syntactic interoperability)。这些数据操纵工具越标准化、越广泛,句法互操作性的程度就越高,那么使用语义 web 方式取代点对点集成解决方案就越容易,也越有吸引力。

 

要获取全套 w3c rdf schema 数据模型和规范,请参阅 参考资料。

 

描述数据项目间关系的标准机制:使用 owl web 存在论语言的存在论

 

在多个应用程序可以真正理解数据并把它当作信息之前,语义的互操作性是必需的。语义互操作性就是正确地解析数据。它要求术语间的映射,映射又要求内容分析。

 

这个内容分析要求正式和明确的域模型规范,规范定义了使用的术语和它们的关系。这类正式的域模型有时叫做存在论。存在论用类、子类和属性来定义数据模型。

 

使用 w3c 推荐的 owl web 存在论语言,可以表示存在论。owl(存在论工作语言)添加了比 rdf rdf schema 更多的词汇来描述属性和类:除了其他东西之外,它还能描述类之间的关系(比如剥离)、 基数(例如“确切的一”)、等价、更丰富的属性类型化,以及属性的特征(比如对称性)。

 

owl web 存在论语言设计用于的应用程序,不仅仅是向人类呈现信息,更需要处理信息的内容。owl 既提供了正式的语义,又提供了附加的词汇,所以比起 xmlrdf rdf schema,对 web 内容实现了更好的机器互操作性。owl 有三个子语言:按表现能力降序排列,分别是 owl fullowl dl owl lite

 

owl web 存在论语言的总和叫做 owl fullowl full 使用 owl 语言的所有原始材料,并允许这些原生材料按任意方式与 rdf rdf rdf schema 组合。owl full 完全向上兼容 rdf,从句法上和语义上都兼容:任何合法的 rdf 文档也都是合法的 owl full 文档。要让推理软件支持 owl full 的每个特性是不太可能的,因为它提供了最大的表现力和 rdf 的句法自由,但是在计算上没有保证。

 

owl dl 支持的用户需要在不损失计算完整性的前提下得到最大表现力。owl dl owl full 语言构造的子语言,但是有一些限制,比如类型分离 (例如,类不能还是个体或属性,而属性不能还是个体或类)。

 

owl lite 支持的用户需要分类层次结构和简单的约束特性。这个语言的优势在于理解和实现起来比前两个语言都容易;但是,它限制了表现力。例如,虽然 owl lite 支持基数约束,但是只支持基数值 0 1

 

存在论的例子包括:amazon.com 这样的在线购物站点的目录,unspsc (用于产品和服务的术语体系)这类特定域的标准术语体系,或者 web 上各种各样的分类,比如“my yahoo”分类。

 

接下来,我将进一步研究 owl 的组成部分。

 

owl web 存在论语言的组成部分

 

owl 基本组成部分包括类、属性 和个体,下面将依次介绍它们。

 

 

owl 存在论的基本构建块。类是域中的概念。类通常构成分类的层次结构(子类-超类的层次结构)。

 

类是用 owl:class 元素定义的。owl 自带了两个预定义的类:owl:thing owl:nothingowl:thing 是最通用的类,它包含任何东西;owl:nothing 是一个空类。所有自定义的类都是 owl:thing 的子类,是 owl:nothing 的超类。银行领域的类的例子可能包括 account customer

 

清单 2 展示了 owl 类的一个示例。

 

清单 2. owl 类示例

 

<owl:class rdf:id="savingsaccount">

 <rdfs:subclassof rdf:resource="#account"/>

</owl:class>

 

清单 2 中的代码指定 savingaccount 是一个类,而且是 account 的子类。

 

owl 支持 6 种主要的描述类的方式。最简单的一种是命名 类。其他方式是交叉 类、联合 类、补充 类、限制 类和 枚举 类。清单 2 演示了两种描述类的方式:限制把 savingaccount 定义为命名类 account 的子类。要获得全套 w3c owl 类规范,请参阅 参考资料。

 

属性

 

属性有两大类:

 

对象属性,它把个体关联到其他个体。

 

数据类型属性,它把个体关联到数据类型的值,比如 integerfloat string 类型。owl 利用 xml schema 定义数据类型。

 

属性可以有关联的域和范围。每个属性可以属于以下一个类别:

 

功能的: 对于给定对象,属性只能有一个值。例子包括人的年龄、身高或体重。

 

反转功能的: 两个不同个体不能拥有相同的值。例如,banknumber ssn 属性对每个人来说都是惟一的。

 

对称的:如果某个属性把 a 链接到 b,那么就可以推断 b 链接到了 a。对称属性的例子包括:“兄弟”或“相同”。

 

传递的:如果某个属性把 a 链接到 b,而 b 链接到 c,那么可以推断它也把 a 链接到了 c。例如,如果 a b 高,b c