呆瓜语义网 笔记6

Chapter 6: The Problem with Metadata

  • 元数据就是关于数据的数据 (metadata is data about data)
  • 元数据可以指很多不一样的东西。
  • 文档中的元数据,文档内容知识库(repository)中的元数据,文字处理软件程序中的元数据,网络中用来发布文档格式的元数据,这些元数据都是不一样的东西。
  • 当别人使用元数据这个词的时候,需要搞清楚他究竟指的是什么。
  • 元数据的真正问题是,它应该是软件开发中非常严格和正式的规范,然而实际上元数据已经成为了业内充满了的无数无意义的、过度使用的专业术语中的一个。

理解数据和信息的基础

以收音机为例:

  • 静电干扰=noise
  • 收音机信号=data
  • 听众从电台中理解的意思=information
  • 将信息付诸实际行动=knowledge
  • 从经验中积累的理解能力=wisdom

一个知识的延续(continuum of knowledge)的示意图:

典型的知识连续

  • 元数据并没有什么魔力。
  • 元数据只是丰富数据的方法,使得软件系统可以与信息交互。
  • 有关模型、词汇甚至编程语言的元数据都只是提供”关于数据的数据”,使得一个解码器、处理器或者算法能够知道该做什么。
  • 语义网元数据只是对原本数据、信息的丰富,使得原本数据、信息的意义能够在数据、信息之外保存。

语义网数据库通常被称为知识数据库(Knowledgebases KBs)。知识数据库允许更多更有表达力的元数据应用于结构化的数据上,允许更多更复杂的算法通过对数据结构的推理来理解数据。


指定一个元数据分类框架

元数据各不相同,元数据以各种各样的模式存在着:

  1.  ”300779834″ 是一个实例数据.
  2.  ”int ssn = 300779834;” 句法
  3.  ”table PERSON; Primary Key = SSN” 是一个结构.
  4.  ”table ORDER; Foreign Key = PERSON.SSN” 是一个指涉.
  5.  ”object ORDERS from ANSI X12 EDI Order Series (855 Purchase Order Acknowledgment” 是一个域指涉.

理解下面的框架层次,将帮助你认识语义网格式和规范是如何在软件开发的各个领域内发挥作用的。

第0层:实体数据和记录(Instance data and records)

在最底层,数据不依赖数据类型或者特定的编程语言,例如字符串“Jeff Pollock”的值。

第1层:语法元数据(Syntactic metadata)

程序变量和文本等的定义是通过编程语言的语法来完成的。对于XML、HTML这样的文档格式,语法的含义几乎与标识相同了。

第2层:结构元数据(Structural metadata)

如果说语法规定了怎样说一件事情能被程序的解释器理解,那么结构元数据则反映了你能够说的内容。

四种主流的数据治理模式(governing schema)

  1. 关系:数据通过表格来组织
  2. XML:数据通过层次来组织
  3. Object:数据在软件程序的主存内组织,它有转换成其他方式的潜力。
  4. Graph: 数据在一个网络中组织,任意一个东西都可以和其他东西相连。

数据结构决定且限制了软件算法查询数据库并找到所需内容的方式。数据结构决定计算的使用和限制。

第3层:指涉元数据(Referent metadata)

一个指涉是定义了一个与其他任何真实或想象东西的关系的对象、动作、状态、关系或者属性。(A referent is an object, action, state, relationship, or attribute that defines a relationship to anything real or imaginary.)

一个指涉元数据可以仅仅是一个页面上字符串和字符之间关系,更实际地说,指涉元数据是对象和实例之间的联系。

在一个模型中,指涉元数据是一系列在对象和实例之间允许存在的关系。下面是一些UML统一建模语言、XML和网络本体语言OWL中的典型模型:

  1. 继承/超类/子类 Inheritance/superclass/subclass
  2. 聚合 Aggregation
  3. 生成 Composition
  4. 层次/分类 Hierarchy/taxonomy
  5. 联合Unions
  6. 交集Intersection
  7. 不相交Disjointedness
  8. 等价Equivalence

指涉元数据中可以包括规定不同的模式和域内的对象和实例如何联系的元数据。通常是以点对点的映射的形式存在——要么在一个图中声明,要么通过编程算法声明——这种类型的指涉元数据可以以ETL图、XSLT图和在任何程序语言中使用手工编码来转换路径或者自动生成为其他工具的一部分。

在任何情况下,指涉元数据都以数据集成为目的,定义数据之间的关联。

第4层:域元数据(Domain metadata)

域元数据确定了结构元数据和指涉元数据所在的环境。

域元数据将跨系统数据交换作为理解和将外界数据联接进本地数据模型的方法。

有时域元数据只能被开发者或者负责数据映射的数据架构师理解。然而更多现代的系统能够将本地域模型与行业标准的数据模型相连接,使得移植性和数据交换更加便捷。


元数据中的逻辑和规则

在元数据层次的每一层中,都可以通过规则和逻辑来优化。逻辑与规范是每一种元数据语言的一部分。

  • 语法层中可以使用数学运算符和条件测试以及其他内联(inline)技术来操纵数据。
  • 结构系统可以使用规则和逻辑来帮助对象和记录的分类和组织。
  • 指涉元数据在特定的条件下可以包含约束关系(constraining relationship)
  • 域元数据可以包含一些在保持逻辑一致性前提下合并数据的技术。

规则与逻辑的区别

逻辑指的是数据模型的约束方式。而规则通常是数据在一个特定的程序内受到的行为规范。

与数据模型冲突的数据不能够被纳入该数据库或者知识库;而有加在其上的规则的数据能够产生一些行为事件,或者一些新数据的输出。

约束建模(Modeling constraints)

每种软件建模语言都含有可用于数据和数据模型的具体的、特定的约束。这些约束是模型元数据的一部分并且通常在运行时有很大影响。

一个关系数据库内约束有下面几种:

  1. 主键(Primary Keys)
  2. 外部键(Foreign Keys)
  3. 非空(NOT NULL)
  4. 各种SQL Check约束如:布尔、值范围等等
UML的约束,通常使用一种对象约束语言(OCL Object Constraint Language),OCL使得UML建模者能够描述类、属性、参数、运算符。

探索各种元数据

Web元数据: HTML, XML,和 Web services

HTML、XML文档使用元数据来显示内容。

Web services使用元数据来定义应用程序编程接口、捆绑以及在不同系统之间传递的信息和文档的结构。

数据库元数据:OLTP, OLAP等

关系型数据库,依赖于模式、表、和键(表之间的关系)的构建以及更多结构赋值。这一切都是数据库的元数据,而实际记录和者数据都包含在这些描述性元数据的语境内。

立方体式数据库,也叫联机分析处理(OLAP online analytical processing),也依赖于元数据来描述它们的层面、计算和其他聚集属性(aggregation properties.)。

面向对象语言的元数据:C#和Java

面向对象软件程序的通用开发模式,使用继承(inheritance)、多态性(polymorphism)和数据封装(encapsulation)等方法。

C#、Java和SMALLTALK这些语言中的元数据功能允许开发者能赋予他们所编写的程序面向对象的特性。

下面是一个带有元数据记号的对象模型例子:

A sample object model with metadata notations

1
2
3
4
5
6
7
8
9
10
import java.util.*;
public class Backorder extends Order {
  public Date backDate;
  public Date estShipDate;
  //overrides the method from parent class   
  public void checkForOutstandingOrders() { 
    super.checkForOutstandingOrders ();
    System.out.format(super.orderNumber,this.estShipDate);
  }
}

上面的例子展示了如何在一个软件程序中通过关键词extends来实现简单的继承性。

代码中的关键词,被用来告诉编译器或者解释器如何将它保持在主存内的数据连接起来。如果没有元数据,程序员将可能仍然在直接使用汇编语言编写应用软件。

编程框架元数据(Programming framework metadata): IBM EMF, 和 Oracle ADF

编程框架超越基本的编程语言功能,包含了预先实施了的附加功能,帮助开发者进一步简化复杂应用软件的建设过程。大多数主要软件供应商已经实施了自己的框架,有的是付费的有的是免费开源的。

下面是IBM的EMF ECore模型的对象框架:

EMF ECore

IBM使用Eclipse模型架构(Eclipse Model Framework),开发者可以在自己的应用程序中使用EMF核心ECore对象来利用这些预置功能,这些功能只提供给使用Ecore模型的程序。//避免使用 plain-old Java object (POJO)

ECore模型定义了一种元模型的类型。当开发人员使用IBM EMF编写应用程序的时候,他们必须变得十分熟悉EMF的工作原理和特性,这叫做模型的语义。通过学习一个框架,并且在框架内编写自己的程序,开发者将该框架的元数据和语义加入了自己的程序。

下面是Oracle的应用程序开发框架ADF的模型—视图—控制器模式图:

Oracle ADF

IBM EMF、Oracle ADF和Microsoft .NET framework都是一个像c#或者Java这样的核心编程语言的一个扩展。

大型机系统元数据:Copybook和JCL

JCL即Job Control Language, 用来指大型机系统采用的任何脚本环境。

下面是一个JCL代码的例子,大型机系统程序元数据大约就像这样:

1
2
3
4
5
6
7
8
//TSOUSR123A JOB (12345),'JEFF POLLOCK',
// MSGCLASS=X,CLASS=A,NOTIFY=TSOUSR123
//* SAMPLE JOB
//STEP1 EXEC PGM=SAMPLE1
//STEPLIB DD DSN=TSOUSR123.LOAD
//INFILE DD DSN=TSOUSR123.DATA(MEMBER),DISP=SHR
//OUTFILE DD SYSOUT=*
//SYSOUT DD SYSOUT=*

网络和协议元数据:TCP, IP, HTTP, FTP

TCP是一个面向连接的协议,其终端点在开始传输之前必须建立一个连接。TCP协议数据单元被称为段(segment)。发出和接受TCP实体的客户端使用段作为交互数据的方式。

下图中包括一个固定的20字节的头部,以及一个可以变化大小的数据字段。

IP和HTTP协议是TCP层以上的协议,它们帮助你的浏览器正确地接受和呈现网页。

低级协议的行为通常是语义定义的,绝大多数情况下是受语法和结构元数据来驱使的。

OMG元数据: CWM/IMM, MOF, 和MDA

对象管理小组(OMG:object management group),是维护面向对象编程语言的正式规范的国际组织。

模型驱使架构(MDA:Model-Driven Architecture),其核心是计算独立模型(CIM computation independent model),CIM与语义网的本体层有许多共同的特点。CIM是一个典型的环境模型,在该环境中系统将操作和行为都作为给定域内的共同词汇和共享理解的来源。

OMG和MDA,以及相关的标准都建立在元数据基础上,它们本质上是一组在特定的标准内的约定的模型和语义。


公共仓库元模型(CWM:Common Warehouse Metamodel)是为了促进商务智能系统和数据仓库之间的元数据交流的创造的。

一些厂商采用CWM规格作为他们的元数据储存库的核心规格,也有一些厂商选择提供导入/导出功能能,从CWM规格中提取元数据。

CWM提供一个理解如何处理元数据规格问题的基线。软件架构师无论是在处理一个数据仓库问题、数据包应用问题,或者信息的互操作问题的时候,CWM可以提供一个建模和制定底层业务模型和元数据基础实施的实现方法。

CWM规格提供了联机分析处理(OLAP online analytical processing)的模型。


2005年之后的新的努力是将CWM重铸成一个新的框架:信息管理模型(IMM:Information Management Model)。

OMG的IMM倡议企图将CWM元模型扩大到其他信息管理领域内。OMG特别关注使IMM与XML为中心的建模相适应,从而提供一个普遍的MOF/UML框架内的新的XML及数据仓库模型轮廓。

OMG与W3C的合作

A sample OLAP object model from the CWM specification.

为了纠正缺失的基本数学形式,OMG将其核心的元模型通过W3C语义网标准来绘制。例如:OMG本体定义元模型(Ontology Definition Metamodel)建议按照W3C RDF和OWL规范来描绘MOF框架,而不是选用其他标准。ODM的目的是提供一个可以重用的MOF模型转变方法,并且使得RDF和OWL可以通过如UML这样的OMG视觉标注方法来建模。

  • W3C提供基础
  • OMG侧重开发

W3C元数据:网络基础设施元数据

ISO元数据:10303, 11179, 都柏林核心和其他

ISO 10303, STEP (Standard for the Exchange of Product Data) 生产和交换数据的标准

ISO 11179, the ISO standard for metadata registriesISO标准元数据登记系统,该ISO标准不是很成功,由六部分组成:

  1. Framework
  2. Classification
  3. Registry Metamodel and Basic Attributes
  4. Formulation of Data Definitions
  5. Naming and Identification Principles
  6. Registration
11179元数据框架数据元素组成:
 Core ISO 11179 metadata framework data element construction.

ISO 15836, the Dublin Core Metadata Element Set. 都柏林核心元数据元素集合。

都柏林核心元数据核心规定了15个基本元素:

  1. Title
  2. Creator
  3. Subject
  4. Description
  5. Publisher
  6. Contributor
  7. Date
  8. Type
  9. Format
  10. Identifier
  11. Source
  12. Language
  13. Relation
  14. Coverage
  15. Rights

下面是一个使用都柏林核心元数据的RDF片段,该RDF被用来标注网络上的内容。

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0"?>
<rdf:RDF
<rdf:Description rdf:about="http://me.jtpollock.us/">
<dc:title>Jeff's Homepage!</dc:title>
</rdf:Description>
<rdf:Description rdf:about="http://me.jtpollock.us/">
  <dc:creator   rdf:resource="http://me.jtpollock.us/foaf.rdf#me"/>
</rdf:Description>
</rdf:RDF>

OASIS元数据: SAML, UDDI, 和其他:

OASIS与W3C、OMG相比更加倾向于关注应用标准。

SAML:Security Access Markup Language,安全访问标记语言

一个简单的SAML结构:

A sample SAML structure

业务词汇:

元数据的问题是:有那么多种元数据,很少的元数据是可以重用的。元数据被用作为制订业务词汇。只要有贸易就有数据交换。


语义和元数据:

广义上讲,数据的语义,仅仅是数据意思的定义。软件中的语义与各种不同的代码解释器、编译器、数据库引擎以及其他软件算法紧密相关。Java的语义是一种语义,XML的语义则是另一种语义。每一种数据格式,每一种编程语言都需要进过编译或者解释,在解释或者编译的过程中,给定的一组数据或者程序指令的语义是非常清楚的,如果不清楚,那么解释器会提示有错误。

一分钟语义模型理论

语义网是以集合理论为基础的。它基于模型理论(model-theoretic)的观点,该观点认为集合内的数据行为应该符合一个已有定义的理论集合。该理论的集合被称为理论模型语义(modeltheoretic semantcs)。有一个理论模型的语义上下文是非常重要的,因为它使得软件能够对查找你所检索的数据进行经过计算的保障,并且能以自动化代替我们的一些辛勤劳动。语义网有两种数据语言:RDF和OWL。每一种语言都有其自己的模型理论,他们并不相连,但是所有OWL都是有效的RDF。

涵蕴性、表达性和闭包性(Entailment, expressiveness and closure)

在关系数据库中,如果你所寻找的数据不存在一个特定的构架中,那么封闭的数据便会认为你所寻找的数据根本不存在。

在一个语义网知识库中,知识库知道什么样的答案可能是正确的,知道什么样的答案可能是错误的,知道什么样的答案可能模棱两可。语义网开放途径找出所有可能的答案并且尝试发现能够支持或者否定检索的数据。

RDF和OWL的表达性被描述在它们的模型理论中。两种语言都包含一个域,一个区间以及类型扩展,一个性质扩展。这些定义了数据模型是如何构建以及模型是如何在不同的数学考验中是如何工作的。RDF和RDFS语言指定一些引理(lemmas),引理被用来验证指定模型的有效性,这些引理有:

  1. Subgraph Lemma 子图引理:每一个图都涵蕴其所有子图
  2. Instance Lemma 实例引理:每一个图都被其所有实例均涵蕴
  3. Conjunction Lemma 连接引理:如果实体是有基础的,那么当且仅当词汇满足所有实体的每一个RDF三元组的时候,词汇才满足实体。
  4. Plain Subgraph Lemma 纯子图引理:如果两个实体都是有基础的,那么当且仅当第二个实体为第一个实体的子图的时候,第一个实体涵蕴第二个实体。
  5. Herbrand Lemma 海尔勃朗引理:任何RDF图都含有一个令人满意的解释
  6. Minimality Lemma 极小性引理:如果词汇是能满足实体解释的最小词汇,那么这个词汇无法满足这个实体集合中不含有实例的每一个三元组。
  7. Strong Herbrand Lemma 强海尔勃朗引理:任何RDF图实体都有一个令人满意的解释,并且这个解释不满足任何从该RDF图实体中间分离出来的图。
  8. Merging Lemma 合并引理:一个RDF集合的合并,涵蕴同一集合的RDF以及该集合的所有成员。
  9. Interpolation Lemma 插值引理:如果一个集合的一个子图是一个图的一个实例的话,那么这个集合涵蕴这个图。

完整的RDF模型理论语义可以参见W3C RDF语义文档: www.w3.org/TR/rdf-mt/

OWL的直接模型理论语义文档见 www.w3.org/TR/owl-semantics/direct.html

可判定性

可判定性是一个算法判断一些数据是否属于一个集合的能力。

许多高级的知识系统通过引入丰富建模结构,产生了使得这些语言变得不可判定的性质。这也叫概率性(probabilistic)。

可判定性是OWL的一个特性。


将语义网视为元数据的超集

元数据的问题在于,有太多种类的元数据,只有很少的元数据可以实际相互工作,语义网是这个问题的解决方案。

语义网说到底只是一种数据模型规范。但是语义网数据模型完全具备成为一种兼容几乎所有元数据和模型格式的超集语言。

我们将语义网想想成员数据的一把伞。

semantic web like umbrella to metadata

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 *