万维网本体语言OWL2
文章目录
- 万维网本体语言OWL2
- 一、引言
- 二、本体语言的需求
- 三、OWL2和RDF/RDFS的兼容性
- 3.1 OWL2 Full:基于RDF的语义
- 3.2 OWL2 DL:直接语义
- 四、OWL语言
- 五、OWL2 概要
- 六、实验 OWL的构造
- 七、总结
一、引言
通俗的讲,RDF被限定为二元闭谓词,而RDF模式被限定为子类层次和属性层次。而RDF的这些特征还不够精确,需要更具表达力的知识表述更多的特征,因此产生了OWL2,适合表达术语知识。
二、本体语言的需求
一个领域中概念的显示的形式化规约成为本体(ontology),表达本体的语言称为本体语言(ontology language)。
本体语言主要包括一下几个方面:
- 良定语法:(well-defined syntax),使用它以一种无二义的方式写出某种语言允许你表达的所有事物。
- 形式语义:(formal semantic),精确描绘一种语言的含义,不涉及主观想象。形式语义使得可以对表达在句子中的知识进行推理。
- 表达能力:在基于RDF的基础上,需要有更精确的表达推理能力
- 类成员关系: ( 属 性 , 值 ) ⇔ 类 (属性,值) \Leftrightarrow 类 (属性,值)⇔类
- 分类: 类 成 员 关 系 ⇒ 自 身 关 系 类成员关系 \Rightarrow 自身关系 类成员关系⇒自身关系
- 等价关系与相同性:共享所有成员
- 不相交关系和不同性:不共享任何实例/明确不同的事物
- 类的二元组合:并集等超出子类关系的组合
- 属性的局部作用域:区别不同情境中的值域限制
- 属性的特性:传递/唯一/互逆
- 基数限制:限制属性的不同取值数目
- 一致性:能够检测类属性之间的冲突
- 推理支持:(reasoning support),基于形式语义,自动推理本体的正确性。其基本过程是将一个本体语言映射到一个已知的逻辑系统,利用该系统机型推理,获取本体语言的形式语义和推理支持。本体语言需要在表达能力和高效推理支持之间权衡。
三、OWL2和RDF/RDFS的兼容性
OWL2采用RDFS含义的类和属性,但是对于RDF的基础建模原语不能以简单的形式包含。
两种语义:OWL2分为两个不同的子语言,各自用油不同的底层语义,面向满足需求全集的不同方面。从而将高效的表达能力和完整的逻辑组合相融合。
3.1 OWL2 Full:基于RDF的语义
OWL2 Full允许以任意的方式将OWL2原语与RDF和RDF模式组合。其优点在于被映射到一个基于RDF的语义(RDF-based semantic),因此在结构和语义上能够完全向上兼容RDF;而其缺点是由于其过于强大而变得不可判定和无法推理。
3.2 OWL2 DL:直接语义
OWL2 DL被映射到描述逻辑(DL)上,限制了OWL2、RDF和RDFS的原语使用方式:不允许OWL2的原语运用于其它原语;只能定义非文字资源的类;严格区分了值域包含非文字资源的属性和关联文字值的属性。
这些限制保证该语言维护了与一个广泛理解的描述逻辑之间的直接对应,允许高效的推理支持;但与此同时,也摒弃了与RDF之间的兼容性。
四、OWL语言
- 在OWL2中,类的成员被称为个体(individal)而非实例(instance)。
- 当声明某个资源是一个特定类型时,称这是一个断言(assertion)。
- 当组合类、属性和实例时,形成了表达式(expression)。
- 如果随后将这个定义关联到某个类,就创建了公理(axiom)。
语法:OWL2建立在RDF上,通过原有的RDF,和新定义的OWL2,构造了许多OWL2语法,其各有优缺点:
- 函数式语法:本体形式化,用于语言规范文档、本体的语义定义、与RDF语法的相互映射,以及OWL的不同概要中
EquivalentClasses(:Person ObjectUnionOf(:Man :Woman))
- OWL/XML:适用于OWL2的XML语法,不遵从RDF习惯,但是便于现成的XML编辑器与本体交互。
<EquivalentClasses><Class abbreviatedIRI=":Person"/><ObjectUnionOf><Class IRI="#Man"/><Class IRI="#Woman"/></ObjectUnionOf>
</EquivalentClasses>
- 曼彻斯特语法:贴近于人类阅读,最常用的本体编辑器在用户界面中使用的语法。
Class: PersonEquivalentTo: Man or Woman
本体文档:(使用Turtle语法)OWL2本体文档最少包含下面几个命名空间:
@prefix owl: <http://www.w3g.org/2002/07/owl#>.
@prefix rdf: <http://www.w3g.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3g.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3g.org/2001/XMLSchema#>.
只有一个断言会影响本体的逻辑含义:owl:imports指向其他本体。命名空间用来消歧,而被导入的本体提供了可以被使用的定义。
属性类型:在RDF的基础上,OWL还提供了额外的类型。
- 对象属性:将个体与个体关联,:rents、:livesIn
:rents rdf:type owl :ObjectProperty;rdf:domain :Person;rdf:range :Apartment.
- 数据类型属性:将个体与数据类型文字值关联,:name、:age
:age rdf:type owl:DatatypeProperty;rdf:range xsd:nonNegativeInteger;rdfs:subPropertyOf rdf:label
- 标注属性:不携带OWL2 DL直接语义含义的属性。通常标注属性拥有文字值,但也可以关联非文字资源。
:label rdf :type owl:AnnotationProperty
:Apartment :label "Apartment"@en,"Appartement"@nl.
-
顶层和底层属性:owl:topObjectProperty是顶层属性,owl:bottomObjectProperty不关联任何个体,owl:topDataProperty关联任何可能的文字值,owl:bottomDataProperty不关联任何个体到任何值。
-
传递属性:传递属性是复合属性,可以通过多步被声明。
:isPartOf rdf:type owl:ObjectProperty;rdf:type owl:TransitiveProperty.
- 对称和非对称属性:与自身的逆等价的是对称属性,比如:isAdjacentTo;反之是非对称属性。
- 函数型和反函数型属性:属性只对应一个相关个体的是函数型属性,如:hasNumberOfRooms;反之如:hasRoom是反函数型属性。
- 自反和反自反属性:自反性意味着个体通过该属性关联到自身。
属性公理:根据属性与类及其他属性如何关联来指定属性的额外特性。包括定义域和值域,逆属性,等价属性,不相交属性,属性链等等。
- 属性链:指定关联各种个体的属性的图的捷径
类公理:类通过断言某个资源的类型时owl:Class来定义。owl:Thing是最一般的类,每个可能的OWL2个体都是该类成员。owl:Nothing类是空类,没有成员。
- 子类关系:rdfs:subClassOf
- 类等价:owl:EquivalentClass
- 枚举:owl:oneOf
- 不相交类:owl:disjointWith
- 并集:owl:unionOf;不相交并集:owl:disjointUnionWith
- 交集:owl:intersectionOf
属性上的类公理:指定额外的类公理来约束个体的集合,类限制公理通过关联到一个特别类型的匿名类(在Turtle中,一个owl:Restriction)被连接到一个owl:Class,它将满足限制的个体聚在一起。
- 全称限制:owl:allValuesFrom
- 存在限制:owl:someValuesFrom
- 充分必要条件:owl:equivalentClass
- 基数限制:owl:cardinality
- 数据类型:owl:onDataType
- 数据值域限制:owl:withRestrictions
- 自限制:ex
- 键:ex:Dwelling
个体事实:通过类公理,可以从实体的知识来推导其额外信息,关于个体的声明称为断言。
- 类和属性断言:类似于RDF中的声明方式
- 同一性断言:显示地声明两个个体是同一个实体,owl:sameAs;相反不同的有owl:differentFrom
- 负断言:显式排除不成立的事物,owl:NegativePropertyAssertion
五、OWL2 概要
OWL2 规范包括一组称为概要的内容,它们中的一些是OWL2 DL规范中的著名的子集,而另一些更具有表达能力,但是不含OWL2 Full的完整语义。这些概要包括:
- 通过语法限制。一个概要语法的语义由OWL2 DL提供。
- 通过逻辑定义,使其能够在多项式时间内处理一些有趣的推理服务。
OWL2中定义的概要及其典型应用领域:
- OWL2 EL:EL概要是EL描述逻辑的扩展。主要优势在于可以用多项式时间推理拥有大量类公理的本体,适用于实例较多的情况,如医学领域。
- OWL2 QL:QL为类公理的推理而优化,当处理拥有相对不复杂的类定义但包含大量个体断言的本体时则相对低效。 OWL2 QL概要被开发用于高效低处理对这些本体的查询应答,适用于概念多的情况。
OWL2 RL:RL概要基于称为描述逻辑编程的语言,使得描述逻辑和规则能够交互:它是使用规则能够实现的OWL2 DL的最大语法部分。因为规则可以高效地并行执行,允许实现最大规模推理。
六、实验 OWL的构造
采用之前构造RDF文件类似的方式,添加一些OWL2的属性,可以构造出一个OWL的文件。同样使用的是rdflib库。
类似的读取json文件,并根据其结构分析数据。通过rdflib构造Graph模型,并将json数据写入到模型中,最后用.ttl格式的文件存储,最终的输出方式为Turtle格式的内容。
首先构造自定义的命名空间,并通过命名空间构造subject。
BASE = rdflib.Namespace("http://cnschema.org/")
mygraph = rdflib.Graph()subdata = data["@graph"]
for item in subdata:s = rdflib.URIRef(BASE[item['name'].replace(' ', '-').replace('\\', '')])mygraph.add((s, rdflib.RDF.type, rdflib.OWL.Class))for key in item:···
根据不同的predicate,采用不同的构造方法:
for key in item:try:txt = item[key]if key == '@type':p = rdflib.RDFS.subClassOffor object in txt:o = rdflib.URIRef(BASE[object])gg.add((s, p, o))elif key == 'address':p = rdflib.RDF.abouto = rdflib.URIRef(BASE[txt["addressCountry"].replace(' ', '-')])gg.add((s, p, o))elif key == 'geo':p = rdflib.OWL.unionOfo = rdflib.Literal('LAT: ' + txt["latitude"] + ', LON: ' + txt["longitude"])gg.add((s, p, o))
构造完成后,以Turtle格式输出:
@prefix base: <http://cnschema.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .base:7-Novembre a owl:Class ;rdf:about base:Tunisia ;rdfs:subClassOf base:Airport,base:CivicStructure,base:Place,base:Thing ;owl:unionOf "LAT: 36.978333, LON: 8.876389" .base:A-511 a owl:Class ;rdf:about base:South-Korea ;rdfs:subClassOf base:Airport,base:CivicStructure,base:Place,base:Thing ;owl:unionOf "LAT: 36.962214, LON: 127.031072" .
七、总结
- OWL2扩展了RDF和RDF模式,引入了一组表达能力更强的语言特征,例如基数约束、类的等价性、交集和并集。
- 通过OWL与逻辑之间的对应关系提供了形式语义和推理支持。
- OWL2分为两类。OWL2 DL在OWL2和RDFS语言元素的组合上施加某些限制来保留可判定性;OWL2 Full则是RDF模式的完全兼容扩展,拥有所有的OWL2语言特征,但是它被证明是不可判定的。
- 3个概要:OWL2 EL、OWL2 QL和OWL2 RL,是满足计算性质要求的语法子集。特别地,OWL2 RL可以使用基于规则的技术实现,并且已经成为在语义网上表示推理的事实标准。
- OWL2有4种标准:RDF/XML、曼彻斯特语法、OWL/XML和函数式语法。