420 likes | 631 Views
语义 网技术浅析. 1. 什么是语义网 2. 语义网基本技术 3. XML/S 4. RDF/S 5. OWL 6. 逻辑和推理. 什么是语义网. 语义网运动是由万维网联盟( world wide web consortium ,简称 W3C )发起的,是对万维网的一次革命,其倡导者正是 1989 年发明万维网的 Tim Berners-Lee 。他希望用一种更容易被机器处理的表示方法来描述网上内容,并采用智能技术来利用这种表示方法所提供的便利。 Tim Berners-Lee 的个人信息参见:
E N D
语义网技术浅析 • 1. 什么是语义网 • 2. 语义网基本技术 • 3. XML/S • 4. RDF/S • 5. OWL • 6. 逻辑和推理
什么是语义网 • 语义网运动是由万维网联盟(world wide web consortium,简称W3C)发起的,是对万维网的一次革命,其倡导者正是1989年发明万维网的Tim Berners-Lee。他希望用一种更容易被机器处理的表示方法来描述网上内容,并采用智能技术来利用这种表示方法所提供的便利。 • Tim Berners-Lee 的个人信息参见: http://www.w3.org/People/Berners-Lee/
语义网 vs万维网 万维网 语义网 识别语义 使用智能代理 自动推理 检索结果更精准 更加机械化 • 基于关键词 • 统计学方法 • 高匹配,低精度 • 低匹配或无匹配 • 检索结果对词汇高度敏感 • 检索结果是单一的网页 • 检索结果适合人工处理
语义网设计蓝图的主要层次(Tim Berbers-Lee) • rules • data • data self -descripted files
语义网结构蓝图第一层 • Unicode和URI。Unicode是一个字符集,这个字符集中所有字符都用两个字节表示,可以表示65536个字符,基本上包括了世界上所有语言的字符。数据格式采用Unicode的好处就是它支持世界上所有主要语言的混合,并且可以同时进行检索。URI(Uniform Resource Identifier),即统一资源定位符,用于唯一标识网络上的一个概念或资源。在语义网体系结构中,该层是整个语义网的基础,其中Unicode负责处理资源的编码,URI负责资源的标识。
语义网结构蓝图第二层 • XML+NS+xmlschema。 XML是一个精简的SGML,它综合了SGML的丰富功能与HTML的易用性,它允许用户在文档中加入任意的结构,而无需说明这些结构的含意。NS(Name Space)即命名空间,由URI索引确定,目的是为了避免不同的应用使用同样的字符描述不同的事物。XML Schema是DTD(Document Type Definition )的替代品,它本身采用XML语法,但比DTD更加灵活,提供更多的数据类型,能更好地为有效的XML文档服务并提供数据校验机制。正是由于XML灵活的结构性、由URI索引的NS而带来的数据可确定性以及XML Schema所提供的多种数据类型及检验机制,使其成为语义网体系结构的重要组成部分。该层负责从语法上表示数据的内容和结构,通过使用标准的语言将网络信息的表现形式、数据结构和内容分离。
语义网结构蓝图第三层 • RDF+rdfschema。RDF是一种描述W3上的信息资源的一种语言,其目标是建立一种供多种元数据标准共存的框架。该框架能充分利用各种元数据的优势,进行基于Web 的数据交换和再利用。RDF解决的是如何采用XML标准语法唯一地描述资源对象的问题,使得所描述的资源的元数据信息成为机器可理解的信息。如果把XML看作为一种标准化的元数据语法规范的话,那么RDF就可以看作为一种标准化的元数据语义描述规范。Rdfschema使用一种机器可以理解的体系来定义描述资源的词汇,其目的是提供词汇嵌入的机制或框架,在该框架下多种词汇可以集成在一起实现对Web资源的描述。
语义网结构蓝图第四层 • Ontology vocabulary。该层是在RDF(S)基础上定义的概念及其关系的抽象描述,用于描述应用领域的知识,描述各类资源及资源之间的关系,实现对词汇表的扩展。在这一层,用户不仅可以定义概念而且可以定义概念之间丰富的关系。
语义网结构蓝图第五层 • Logic、Proof、Trust。Logic负责提供公理和推理规则,而Logic一旦建立,便可以通过逻辑推理对资源、资源之间的关系以及推理结果进行验证,证明其有效性。通过Proof交换以及数字签名,建立一定的信任关系,从而证明语义网输出的可靠性以及其是否符合用户的要求。
语义网的实现需要三大关键技术 XML RDF Ontology
XML • XML(Extensible Markup Language,即可扩展标记语言)可以让信息提供者根据需要,自行定义标记及属性名,从而使XML文件的结构可以复杂到任意程度。它具有良好的数据存储格式和可扩展性、高度结构化以及便于网络传输等优点,再加上其特有的NS机制及XML Schema所支持的多种数据类型与校验机制,使其成为语义网的关键技术之一。
XML语法规则(部分) • 在文档的最外层只能有一个元素(称为根元素)。 • 每个元素都包含一个起始标签和一个结束标签。 • 标签之间不能重叠,如<name><first>Mary</first></name>。 • 同一元素内部的属性名不可相同。 • 元素名和标签名必须合法。
XML文档举例 <? Xml version=“1.0” encoding=“UTF-16”?> ……………..声明序言 <!DOCTYPE email system “email.dtd”> ………………引用 <email>………………………………………………………………………..其实标签 <head> <from name=“Mary” address=“mq2828@126.com”/>…………………..空元素 <to name=“Mary Ma” address=“malizsu@163.com”/>…………………….空元素 <subject> Hello Dr. Ma </subject> <head> <body> Hi Mary Ma! Have you made your presentation ready? </body> <email>…………………………………………………………………………结束标签
XML 的结构化 • DTD方式 • XMLschema方式
DTD实例分析 <! ELEMENT email (head, body)> <! ELEMENT head (from, to+, cc*,subject)> <! ELEMENT from EMPTY> <! ATTLIST from name CDATA #IMPLIED address CDATA #REQUIRED > <! ELEMENT to EMPTY> <! ATTLIST to name CDATA #IMPLIED address CDATA #REQUIRED > <! ELEMENT cc EMPTY> <! ATTLIST cc name CDATA #IMPLIED address CDATA #REQUIRED > <! ELEMENT subject (#PCDATA)> <! ELEMENT body( text, attachment*)> <! ELEMENT text (#PCDATA)> <! ELEMENT attachment EMPTY)> <! ATTLIST attachment encoding (mime| binhex) “mime” file CDATA #REQUIRED >
XMLschema实例分析 <element name=“email” type=“email Type”/> <complexType name=“emailTpye”> <sequence> <element name=“head” type=“headtype”/> <element name=“body” type=“bodytype”/> <sequence> </complexType> <complexType name=“headType”/> <sequence> <element name=“from” type=“nameAddress”/> <element name=“to” type=“nameAddress” minOccurs=“1” maxOccurs=“unbounded”/> <element name=“cc” type=“nameAddress” minOccurs=“0” maxOccurs=“unbounded /> <element name=“subject” type=“string”/> <sequence> </complexType>
XMLschema实例分析 <compleType name=“nameAddress”/> <attribute name=“name” type=“string” use=“optional”/> <attribute name=“address” type=“string” use=“required”/> </compexType> <complexType name=“bodyType”> <sequence> <element name=“text” type=“string”/> <element name=“attachment” minOccurs=“0” maxOccurs=“unbounded”/> <complexType> <attribute name=“encoding” use=“default” value=“mime”/> <simpleType> <restriction base=“string”> <enumeration value=“mime/”> <enumeration value=“binhex/”> </restriction> </simpleType> </attribute> <attribute name=“file” type=“string” use=“required”/> </complexType> </element> </sequence> </complexTtpe>
XML小结 • XML是一种元语言,允许用户借助标签为文档定义标记。 • 标签的嵌套引入了结构,可以用XML schema 或者DTD 来规定文档的结构。 • XML将内容和结构与格式分离。 • XML是网上结构化信息表示的默认标准,支持信息的机器处理。 • XML借助标记、结构和转换支持不同应用之间的结构化信息的交换。 • 查询语言支持XML。 • 标签嵌套没有标准含义。 • 机器不能解读XML文档的语义,只有人可以做到这点。 • 如果对词汇表存在共同的理解,则XML将支持协作和交流。因此,在使用领域专用或团体专用词汇表的紧密合作场合,XML的适用性很好,但对于全球性交流则没有这么好。
RDF 资源描述框架(resource Description Framework, RDF) 通常称为一种“语言”,但它实际上是一个数据模型。它由一系列陈述(statement)即“对象-属性-值”三元组(object-attribute-value triple)组成。
RDF语法 • 一个RDF文档由一个rdf: RDF 元素构成,其内容是一系列描述。例如:北京大学2010年度逻辑学的课程和授课者的领域知识可描述如下: <! DOCTYPE owl [ <! ENTITY xsd “http: // www. W3. org/2001/XMLSchema#”> ]> <rdf: RDF xmlns: rdf=www.w3.org/ 1999/02/22-rdf-syntax-ns# xmlnssxd=“http: // www. W3.org/2001/XMLSchema#” Xmlns: uni=“http: //www.mydomain.org/uni-ns#”> <rdf:Descriptionrdf: about=“http: //www.mydomain.org/uni-ns/#102325”> <uni: name> 周北海<uni: name> <uni: title>教授</uni: title> </rdf: Description>
<rdf: Description rdf: about=“http: //www.mydomain.org/uni-ns/#t102328”> <uni: name>刘壮虎</uni: name> <uni: title>教授</uni: title> <uni: age rdf: datatype=“&xsd; integer” 55</uni: age> </rdf: Description> <rdf: Description rdf: about=“http: //www.mydomain.org/uni-ns/#c123”> <uni: Coursename>邻域语义学</uni: Coursename> <uni: isTaughtBy>刘壮虎</uni: isTaughtBy> </rdf: Description> <rdf: Description rdf: about=“http: //www.mydomain.org/uni-ns/#c456”> <uni: Coursename>高级模态逻辑</uni: Coursename> <uni: isTaughtBy>周北海</uni: isTaughtBy> </rdf: Description> </rdf: RDF>
RDF schema • RDF 虽然是允许用户使用自己的词汇描述资源的语言,但是他是领域无关的,没有定义任何领域的语义,这要由用户助RDF schema 来完成。 • RDFS 的建模原语是用RDF形式语言,使用资源和属性定义的。
RDFS核心类 • rdfs: Resource 所有资源的类 • rdfs: Class 所有类的类 • rdfs: Literal 所有文字的类 • rdfs: Property 所有属性的类 • rdfs: Statement 所有具体化陈述的类
用于定义关系的核心属性 • rdfs: type 声明该资源是所属类的一个实例 • rdfs: subClassOf一个类的所有实例也是其父类的实例 • rdfs: subPropertyOf把一个属性和它的父属性联系起来
用于约束属性的核心属性 • rdfs: domain 限定一个属性的定义域 • rdfs: range 限定一个属性的值域 • rdfs: ConstraintResourse所有约束的类 • rdfs: ConstraintProperty包含定义约束的所有属性
用于具体化的常用属性 • rdf: subject 把一个具体化的陈述映射为他的主语 • rdf: predicate 把一个具体化的陈述映射为他的谓语 • rdf: object 把一个具体化的陈述映射为他的宾语
容器类 • rdf: Bag 所有无序容器的类 • rdf: Seq所有有序容器的类 • rdf: Alt 所可选项容器的类 • rdf: Container 所有容器的类的父类,包括上述三个
工具属性 • rdfs: seeAlso把资源和解释它的另一资源联系起来 • rdfs: isDefinedBy把资源和定义它的位置联系起来 • rdfs: comment 注释,通常是一段话,与资源相联系 • rdfs: label 资源可以附带一个用户友好的标签
RDF和RDFS的公理语义 • RDF和RDFS的建模原语是用谓词逻辑形式化定义的,用以刻画RDF和RDFS的语义,形式化中出现的公式称为公理。 • 用逻辑描述的RDF和RDFS的语义排除了二义性,并且能为机器解读,同时也借助逻辑推理机支持RDF和RDFS的自动推理提供基础。
RDF和RDFS语义逻辑描述方法 • 基本方法是: 将RDF和RDFS的所有原语都表示成常原,如Resource, Class, Property, subClassOf等。引入几个预定义的谓词描述这些常元之间的联系。同时还需要一个关于表(List)的辅助理论,他有下述函数词 nil:空表 cons(x,l): 在表头添加一个元素x first(l): 返回表l 的第一个元素 rest(l): 返回表l 的其余部分 item(x,l): 测试x是不是 在表l 中出现 list(l): 测试l 是否是一个表
基本谓词 • PropVal(P, R,V) 表示资源R的属性为P,值为V。 • Type(R, T)是PropVal(type, R, T)的简写。 至此,RDF和RDFS的公理语义可以用以上资源进行描述。详见:参考文献[1].
RDF小结 • RDF为比偶按时和处理元数据提供一个基础。 • RDF有一个基于图的数据模型,其核心概念是资源、属性和陈述。一个陈述是一个三元组。 • RDF有一个基于XML的语法,支持语法可共用性。XML和RDF彼此互补,因为RDF支持语义可共用性。 • RDF体现了分布式数据的思想,允许知识的递增构建和共享、复用。 • RDF是领域无关的。RDFS提供了一种描述具体领域知识的机制。 • RDFS是一种原始的本体语言,提供了一套具有固定语义的建模原语。其核心概念是类、子类关系、属性、子属性关系,以及定义域、值域的限定。
RDF和RDFS的不足 • RDFS做为网络建模语言是相当原始的,很多需要的建模原语尚未定义。 • 因此需要在RDFS/RDFS之上建立一个本体层。
网络本体语言OWL • 属性的局部辖域 • 类不相交性 • 类的布尔组合 OWL • 基数约束 • 属性的特殊性质
三个OWL子语言 • 一种语言的表达能力越强,其计算复杂性就越大 • 为了满足表达能力和计算复杂性的不同需求,现有三种OWL的子语言: • OW Lfull表达能力过强,不可判定,不能支持高效的推理 • OWL DL 保持了高效推理,但不能与RDF完全兼容 • OWL Lite表达能力有限,但容易掌握和实现
OWL描述的本体实例分析 • 一个非洲野生生物本体 <rdf: RDF xmlns: rdf=“http:// www. W3. org/1999/02/22-rdf-syntax-ns#” xmlns: rdfs=“http:// www. W3. org/2000/01/rdf-schema#” 文档头 xmlns: owl=“http:// www. W3. org/2002/07/owl#”> <owl: Ontology rdf: about= “xml:base”/> <owl: Class rdf: ID= “动物”> <rdfs: comment>动物类 </rdfs: comment> </owl: Class> <owl: Class rdf: ID= “植物”> <rdfs: comment>植物和动物不相交</rdfs: comment> <owl: disjointWithrdf: resource= “#动物”/> </owl: Class>
<owl: Class rdf: ID= “树”> <rdfs: comment>树是植物</rdfs: comment> <owl: subClassOfrdf: resource= “#植物”/> </owl: Class> <owl: Class rdf: ID= “树枝”> <rdfs: comment>树枝是树的一部分</rdfs: comment> <rdfs: subClassOf> <owl: Restriction> <owl: onPropertyrdf: resource=“#部分”> <owl: allValueFromrdf: resource=“#树”/> </owl: Restriction> </rdfs: subClassOf> </owl: Class> <owl: Class rdf: ID= “树叶”> <rdfs: comment>树叶是树枝的一部分</rdfs: comment> <rdfs: subClassOf> <owl: Restriction> <owl: onPropertyrdf: resource=“#部分”> <owl: allValueFromrdf: resource=“#树枝”/> </owl: Restriction> </rdfs: subClassOf> </owl: Class>
<owl: Class rdf: ID=“食草动物”> <rdfs: comment>食草动物是只吃植物的动物</rdfs: comment> < owl: intersectionOfrdf: parseType=“Collection”> <owl: Class rdf: about =“#动物”> <owl: Restriction> <owl: onPropertyrdf: resource =“#吃”/> <owl: allValueFrom> <owl: Class> <owl: unionOfrdf: parseType=“#Collction”> <owl: Class rdf: about=“#植物”/> <owl: Restriction> <owl: onPropertyrdf: resource=“#部分”/> <owl: allValueFromrdf: resource=“#植物”/> </owl: Restriction> </owl: unionOf> </owl: Class> </owl: allValueFrom> </owl: Restriction> </ <owl: Class> </owl: intersectionOf>
. . (该本体其余部分略去,详见参考文献【1】p100-103 ) . OWL小结: 1.OWL是网络本体的建议标准,用于描述知识的语义以便供机器处理。 2. OWL以RDFS为基础:使用基于XML的RDF语法,用RDF描述定义实例,使用了大部分的RDFS建模原语。 3. 借助OWL到逻辑的映射提供了形式语义和推理支持,为此使用了谓词和描述逻辑。
逻辑和推理:规则 • XML/S, RDF/S, OWL 都是旨在知识表示,使智能代理利用这些知识进行推理,还需要借助逻辑。 • 一阶逻辑的强表达能力和高效推理能力与XML/S, RDF/S, OWL 技术相结合。 • Horn 逻辑是谓词逻辑的一个存在高效率推理的子集。它与谓词逻辑的另一个子集描述逻辑是正交的。 • Horn逻辑是单调规则的基础。 • 非单调规则在信息不完全的情况下是有用的。这些规则可以在相反的证据(其他规则)面前失效。 • 优先序用来解决非单调规则之间的冲突。 • 可以在类XML语言中简洁地表达规则。
参考文献 • 1. Grigoris Antoniou, Frank van Harmelen. 2004. A Semantic Web Primer. MIT Press. • 2. http://baike.baidu.com/view/1967.htm • 3. http://www.w3.org/People/Berners-Lee/ • 4. http://junsheng.itpub.net/post/860/41344 • 5.http://tech.163.com/05/0908/16/1T52D93V00091K8Q.html • 6. http://bbs.w3china.org/dispbbs.asp?boardid=3&id=9940&star=1