呆瓜语义网 笔记5

Chapter 5: Why the Semantic Web Is New Technology, Not Hype

追寻语义网的根源:

  1. 图形系统,网络数据库,语义网络
  2. 框架语言,面向对象的系统
  3. 专家系统,描述逻辑程序,知识表达

意识到:英特网是由页面构成的,而不是由数据构成的

英特网是文档的网络,语义网是数据的网络。
一个文档可以有很多的文本在其中,但是数据本身并不是以一种计算机可以识别的方式来组织/结构的。

意识到:Web2.0是人的网络,而语义网是软件的网络

Web2.0的技术:Ajax、Flash、Ruby on Rails、JSON以及XML的自由使用,并没有改变英特网的基础:网络由页面和文档驱动着。

Hinchcliffe & Company 的Web2.0概念图:

Web2.0 concept

Tim Berners-Lee描述Web2.0是一个 “业内术语” 而且”没有人知道这个术语是什么意思”,”如果对你来说Web2.0是博客、维基,那么就是意味着从人到人。但是这其实是网络一直以来的存在意义。”

Web2.0并不是技术设施的根本改变,而仅仅是人们开始充分的利用已经存在了好些年的媒介(英特网)的全部能力。

数据库和语义网

数据库主要分为几类:

  1. 关系数据库relational databases
  2. 纵列数据库columnar databases
  3. 对象数据库object databases
  4. 图形数据库graph databases

虽然语义网以网络形式存在,但是语义网数据的详细操作仍然在一个数据库平台内部进行。

传统的数据库中,数据被装载之前需要提前定义它们的架构(schema),然而语义网数据库可以含有持续变化的数据架构。

语义网有的时候被称为知识库,因为:

  1. 语义网的架构对于数据能有更强的逻辑表达能力。
  2. 语义网能够持续不断地随着时间的推移而进化,而不需要对软件的主要建筑有大的改变。

关系数据库:

在关系数据库中,结构化的数据记录,有事也被称作一个元祖,被安排在表格中。
表格最初被称为关系,因为表格本身是列名之间的关系,有时候也被称为对象属性。

一个含有一些数据的关系数据库表格示例:

relational database- table

在更复杂的数据库结构中,记录通常由表格的集合来构成,这些表格的组合通常有两种方式:

  1. 直接在数据架构中使用键(key)
    键的关系成为数据模型中数据可靠且一致的定义。
  2. 使用结构化的查询语言(Structured Query SQL)的语句在检索时(如UNION、INTERSECT、INNER、OUTER等)联接记录
    这些基于SQL的数据连接明显对于操作记录和结果集非常有用,但是他们不能可靠地、始终地融入一个分离的信息或数据模型中去。

星型关系架构是最流行和普遍的商用智能检索方式,因为它具有灵活性而且在只读情况中工作。

一个星型关系架构的例子:

A relational star schema

Margot Seltzer(Berkeley Database的发明者)和Michael Stonebraker (早期关系数据库先锋)在 “与Michael Stonebraker和Margo Seltzer的一次对话”的采访中表示:关系型数据库是一个通用的工具。

下列四种情况下,关系数据库并不是最好的选择:

  1. 最好的写入性能,通过一个单独的基于磁盘的数据库平台无法实现,应该通过内存中的缓存来实现。
  2. 最好的读取性能——读取那些本身的结构是通过元组的索引来组织并且在硬盘上有效管理的数据——通过纵列式数据库可以实现。
  3. 存储像XML和其他信息的文档的最佳存储结构是层次型数据库结构。
  4. 对于经常改变的数据或者结构很不规范的数据的存储结构应该是使用图形数据库。

纵列式数据库

纵列式数据库也被称作柱状存储或者C-存储。

纵列式数据库系统的核心思想是最优化数据库,使得其读取速度操作的速度加快。这钟极端优化读取访问是通过按照列而不是行的方式来物理地安排数据。

纵列式数据库按照列来安排数据:

Columnar databases arrange data by column

 

纵列式数据库可以通过在检索翻译器和其他规划器之下为普通的SQL数据库或者关系数据库提供一个不同的记录管理系统来实现。
同样的,在纵列式的方法可以应用到任何检索系统的索引策略上来加以优化,使其具有非常快速的文本匹配算法。//Google的BigTable系统。

层次结构数据库(Hierarchical database):

层次结构在软件需要在其原先固定的层次结构上获取和保存记录时 ,将结构针对读和写的用例进行了优化。

一个带有一些数据记录的层次架构:

A hierarchical schema with some record data.

分层数据库系统的缺陷在于,当关系变得复杂,或者记录需要被联接进一个非层次的结构(例如父类和子类型结构)时,层次结构的效率就消失了。

图形数据库

今天,语义网的主要数据结构是基于图形结构的。但是相较于本地化到一个具体的数据库管理系统,在语义网的图形数据库的概念中,数据库应该是存在于网络规模中的。

网络规模(Web-scale)的含义是数据可以在世界各地任何联网的计算机上被联接。这个“空中的数据库”的观念已被一些人用户,而语义网实际上就是按这种方式设计的。

图形数据结构本身就是一种语义的网络,这个语义的网络是一种经典的通过有向图起作用的人工智能框架,这个框架最初被引入计算机科学是作为一种将人类语言变成计算机能解释的语言。

对象数据库

对象数据库原本的构想是作为关系数据库的一个代替,使其变成面向对象软件程序的一种更加自然的数据存储方式。对象数据库应该带来的好处是一个更简单的由对象到存储的映像和快速的基于指针的对象检索。

实际使用中,对象数据库在处理一些实现预定好的数据检索任务时,由于数据指针能够得到优化,因而更加快速。实际上,许多对象数据库是通过关系数据库的接入点(ODBC或者JDBC)甚至更多时候是通过关系数据库的引擎来实现的。

软件对象和面向对象的主意根植于老的人工智能概念框架系统。框架系统是一种软件语言类型,它包含框架和槽(slot)。一个框架是一个类(class),一个槽是一个属性(attribute)。

一个对象系统架构:

an object style schema

语义网和数据库的共同之处

语义网规格并不指定任何一个特定的技术手段。实际上,语义网解决方案实在前面提到的各种类型数据库平台的基础上建立起来的。

语义网本身是一个对于计算上合理的基于框架的有向图的数据和元数据规格标准。(Semantic Web is itself a data and metadata specification for a computationally sound, frame-based directed graph.)

或者这么说:

  1. 语义网是基于正式的数学(Semantic Web is based on formal mathematics)
    这意味着任何系统使用语义网都将能够保证持久的可靠的,可以预测的线性扩展的查询结果。(类似关系数据库)
  2. 语义网能够提供本地的层次定义(The Semantic Web is capable of native hierarchy definitions)
    语义网中树型数据结构能够有效地组织和检索。(类似层次数据库)
  3. 语义网是一个语义的网络(The Semantic Web is a semantic network)
    语义网中对于现实世界数据进行建模是极其自然的。(类似于网络/图形数据库)
  4. 语义网是一个基于框架的系统(The Semantic Web is a frame-based system)
    语义网的底层数据模型中,面向对象将被保留。(就像对象数据库)

语义网的规格标准——RDF和OWL,都在努力结合关系数据库(稳定和性能)和图表数据库(灵活,自然,非结构数据)以及对象数据库(强力的基于框架的分类和基于逻辑关系)的优点。

理解:SOA/Integration是对于信息而言的,而不是数据结构

语义网和集成(Integration)技术的最大区别主要在于数据传送(data movement)上。

每一种类型的集成技术都依赖于特定的数据传送方式:通过一些带有数据传送保证的协议,语义网则是完全与数据是如何传递的相分离的。

历史上,商用数据集成问题的解决主要有以下几种方式:

  1. 面向信息的中间设备MOM(Message-oriented middleware)
    有的时候也叫publish and subscribe构架,主要是通过应用的APIs来集成
  2. 企业应用集成EAI(Enterprise application integration)
    即一个集成了众多MOM功能的复杂的集成产品平台
  3. 面向服务的构架SOA(Service-oriented architecture)
    SOA的最基本层面就是标准化为核心的面向信息的中间构架模式。(SOA is at its most basic level a standardization of the core message-oriented middleware architecture patterns.)
  4. 企业信息集成EII(Enterprise information integration)
    其特行为:
    a.使用联合查询的方式进行数据检索
    b.对于查看和访问其他不同的数据模型时采用合成的数据模型
    EII缺乏元数据规范,EII合成模型不能解决任何特殊的有关核心数据模型的问题。
  5. 抽取、转换和加载ETL(Extract, transform, and load)
    ETL平台的主要目的是迅速的点对点数据转换。
    ETL平台有意义的语义只存在于优化的数据传输规则和收起影响的物理数据模型之上。

语义网与其他集成技术的共同点:

集成系统和语义网是不能比较的问题。但是语义网能够对集成系统有如下帮助:

  1. 基于语义网的推理引擎是一个理想的发布和查找网络服务的方法。(像基于网络的图表一样)
  2. 语义网数据模型是理想的抽取SOA、EII消息系统内数据视图的方法。
  3. 语义网检索标准是被设计成适合网络规模的数据联合。

意识到:XML是就文档而言,而不是对数据

XML并不能解决数据集成的问题。

  • XML和它的架构语言XSD并不是真正的数据模型,而是文档模型,区别在于模型的语义要求。
  • 使用XML你可以声明一个标签嵌套在其他的标签内。嵌套可以表示父类——子类关系,也可以表示整体——部分关系,也可以是单向关联,或者双向关联关系。
  • 根据XML的基本定义,标签的嵌套仅仅是一个未定义的关系,因为这些标签语义比较弱,一个特定的XMLSchema标签可以表示着任何含义。

一个XML文档实例:

An XML document with some data

比较弱的语义结构定义,是XML的流行的原因,但是XML只是标记语言,而不是数据模型,也不是应用软件通用的标记或元数据框架。

XML中<employee> <firstname value=”Jeff”/></employee>是语法正确的
但是没有XML解析软件(parser)能够将其解析成:有一个类叫employee而其中有一个实体(instance)叫jeff。

然而这样的一个RDF三元组:<#employee><#firstName><#Jeff>
任何N3 RDF解析软件都能够正确理解它。

因此新的RDF三元组格式,如N3和龟背(Turtle)都已经放弃了将XML作为语法,而是提倡使用一个更简单的三元组格式。

新的标签标记如mircofomarts、RDFa或者GRDDL都允许开发者将基于RDF的三元组编码进它们本身的语法中去,这些新的标记框架的移植性更佳。

意识到:面向对象是探试/启发的(Heuristic)

  • 面向对象编程这种编程方式不是基于数学模型的
  • 而语义网是完全建立在数学模型的基础之上的

面向对象探试程序/启发算法同时包含数据对象的结构和其行为。

面向对象的特点:

  1. 继承性(Inheritance):父类——子类关系
  2. 多态性(Polymorphism):类成员的重写和重载 Overloading and overriding class members
  3. 封装性(Encapsulation):在行为背后隐藏数据 Hiding data behind operations

统一建模语言(Unified Modeling Language UML)

UML的主要缺点是缺乏数据基础,仅仅符合UML的程序,将缺乏一致性和可重复性。

一个不含数据的UML模型简例:

A simple UML model with no data

JAVA

当程序在主存中执行的时候,许多数据对象都被各种各样的数据属性所列集(marshaled with various data attibutes)。单数这些数据属性的连接、导航和操作都是软件程序本身的功能。

软件程序对于数据是如何依据算法被连接、构建和操作的限制规定太少,因而不适合将知识编码进程序内部。

语义网与面向对象的共同点

  1. 语义网使用类作为数据概念/种类 has classes as data concepts/categories.
  2. 语义网使用实体做实际的数据值 has instances as actual data values.
  3. 语义网支持类的继承 supports inheritance among classes.
  4. 语义网支持强类型的数据类型 supports strongly typed data types.
  5. 语义网支持整个——部分的关系 supports whole-part relations.

语义网不能代替任何编程语言,语义网也不能代替UML,但它提供了一个数据建模的常识性的方法,而不要仅仅的依赖UML或者任何单一的编程语言。

意识到:人工智能的新起点

语义网技术根植于语义网络(semantic nets)和描述逻辑(description logic),这两者都是知识表现领域内的。

人工智能界内,有关知识表现的研究,围绕着寻找最佳的将人类知识编码成机器可以理解的结构的方法。这个长期的研究领域里已经产生了许多不同种类的知识编码的形式体系,其中有一些是现在的语义网、RDF和OWL的根源。

在语义网诞生之后出现了两个重要的不同:

一个正式的数据模型理论的标准化

人工智能知识表现语言和网络架构的交集

理解:语义网的新颖和不同

How Semantic Web Is New and Different

Semantic Web For Dummies

Semantic Web For Dummies
作者: Jeffrey T. Pollock
出版社: For Dummies
出版年: 2009-03-23
页数: 412
ISBN: 9780470396797

Leave a Reply

Your email address will not be published. Required fields are marked *