Protégé术语解释 - 蓝色守望
3种OWL语言
OWL可以分为三种子语言:OWL-Lite,OWL-DL,OWL-Full。子语言的特征是由它的描述能力来分类的。其中,OWL-Lite描述能力最弱,OWL-Full描述能力最强,OWL-DL的能力 属 于中间,同时,OWL-Full可以视为是OWL-DL的一个扩展。
OWL-Lite:在语法上,OWL-Lite是最简单的语言。一般用于只有一个简单的类层次和定义的约束比较简单的情况。比如,根据一个现有的百科全书建立的本体。
OWL-DL:OWL-DL是建立在描述逻辑基础上的的,描述能力比OWL-Lite强得多。描述逻辑是第一顺序逻辑的决定性部分,可以进行自动推理。因此,可以自动的计算分类层次,并且检查本体的一致性。
OWL-Full:OWL-Full的表达能力是最强的。OWL-Full可以适用于需要很强的表达能力的情况。
OWL本体的组成
OWL本体由个体、关联和类组成,三者分别和实例(Instances)、扩展连接点(Slot)、类(Classes)相通信。
个体(Individuals):个体就是在领域中,我们所感兴趣的物体。Protégé和OWL之间有一个显著的区别,就是OWL没有独立名字假定(Unique Name Assumption, UNA)。这意味着两个不同的名字可以指向同一个个体。个体就是我们常说的实例,个体可以被理解为“类的实例”。
关联(Properties):关联指的是两个个体之间的二元关系,比如,一个关联可以把两个个体连接在一起。例:关联hasSibling,因为Matthew和Gemma是两兄弟,就可以通过hasSibling这个关系把Matthew和Gemma连在了一起,关联也可以只有一个参数,如使某种功能化的关联,如transitive(传递)或symmetric(对称)。在Protégé中,关联基本和扩展连接点(Slot)的意思是一致的。在描述逻辑中,扩展连接点是一个角色,在UML中是关系,也可以是指向其他物体的概念。在GRAIL(另一种本体语言)和其他的形式化语言中,也被称作属性。
类(Classes):OWL类是一组包含了个体的集合。它是通过使用形式化的数学语言,精确描述类成员的特性。比如,类Cat包括了特定领域中所有包括“猫”的类。类由超类(superclass)和子类(subclass)的层次结构分类构成,也被称作taxonomy。子类是超类的细化,子类可以继承超类的性质,也就是说,超类的条件是形成子类的必要条件。同时超类-子类关系式OWL-DL的关键特性之一,这可以为推理机自动调用。同时,概念(concept)一词也类中也时有出现,类是表述概念的基础。
建立一个OWL类,就是建立一个说明类的环境的描述,这个环境首先必须满足描述此类的一个个体成员的要求。
OWL本体的构建
建立类
一个类层次(class hierarchy)也被称之为一个分类法(taxonomy)。
不相交类(disjoint class):不相交类的定义是,一个个体(或事物)不可能成为多个(>1)类的实例。
子类(subclass)
建立关联(properties)
关联的作用是表示两个个体之间的关系。关联主要分为两种:事物关联(object properties)和数据类型关联(datatype properties)。
事物关联连接两个个体。数据类型关联连接一个个体和一个XML Schema 数据类型值(XML Schema Datatype value)或RDF描述(RDF literal)。OWL也有第三种关联,称为注释关联(Annotation properties),注释关联可以向类、个体或者事物/数据类型关联里添加信息(元数据)
逆关联(Inverse Properties):每个事物关联都可能有一个逆关联。如果一个关联连接个体a和b,那么它的逆关联就将连接b和a。比如关联hasChild就是关联hasParent的逆关联
OWL关联的特征(OWL Property Characteristics)
功能性关联(Functional Properties):具有某种特定功能的关联。最常见的是,通过一个关联,将两个个体连接在一起。
反向功能关联(Inverse Functional Properties)
传递关联(Transitive Properties):若一个关联是传递的,那么如果关联P关联了a和b,且P也关联了b和c,那么,可以推知,P也可以关联a和c。
对称关联(Symmetric Properties):若关联P是对称的,P关联了个体a和b,那么P同样可以关联a和b。
关联的定义域和值域:关联把个体从定义域连接到值域。例子……在关联P中,把个体从定义域a连接到值域b。那么在它的反向关联P’中,定义域就是b,值域是a,就是把个体从定义域b连接到值域a。
描述和定义类
关联约束:OWL关联的作用是定义约束,约束的作用是限制归属类的个体,OWL中的约束主要有三种:
计量约束(Quantifier Restrictions)
基数约束(Cardinality Restrictions)
赋值约束(hasVaule Restrictions)
首先我们来看计量约束:
存在约束(existential restrictions ])
任意约束(universal restrictions ∨)
例如,约束 hasTopping MozzarellaTopping表示存在一个个体中类或者集合,其中至少有一个个体含有MozzarellaTopping。事实上,约束所描述的是一个佚名的类,这个类包含的个体满足这个约束。当约束描述一个类的时候,它事实上也描述了(限定)这个类的超类,比如,MargheritaPizza是一个事物的子类,那么Pizza也至少含有一个满足MozzarellaTopping的子类。
存在约束.在OWL本体中,存在约束是最常用的约束。存在约束定义了,存在一个特定类的个体,满足一个给定的关联关系。
例如,]hasBase PizzaBase描述了在所有的个体中,至少有一个个体,满足在hasBase关联中,与类PizzaBase的一个个体相连接。
使用推理机
前面谈到OWL有3种子语言:OWL-Lite,OWL-DL(Description Logics)和OWL-Full。本体的一个主要特征就是可以被OWL-DL语言所描述,并被推理机所运行。
推理机的一个主要服务就是测试一个类是否是其他类的一个子类,测试的结果被放在Protégé的inferred ontology class hierarchy中。
推理机提供的另一个标准服务是一致性检查,推理机给予类的描述可以确定,类是否可能拥有实例,当类被认为是不可能实例化的,类就是不一致的,比如与其他的类(如父类)的定义相冲突。
使用RACER.首先,本体的推理是通过Protégé-OWL的DIG接口进行的,首先要安装完整的RACER机,并且打开它。Protégé默认的推理机URL是http://localhost:8080,如果要使用其他的推理端口,就要在Protégé的OWL Preferences Dialog中设置它。
调用RACER。完成了RACER或者其他的推理机的设置以后,本体会“自动的”发送到推理机,自动计算分类层次,并且检查本体的逻辑完整性。Protégé中,手动建立的类层次叫做“asserted hierarchy”,通过推理过后生成的类层次叫做“inferred hierarchy”。
必要和充分条件(Necessary And Sufficient Conditions)
目前,我们创建的所有类,都只用了必要条件来描述。必要条件就是,如果某个个体是一个类的成员,那么它必须满足的条件。换句话说,就是如果某个个体满足这些条件,那么它一定是这个类的成员。
如果一个类只有必要条件,我们称之为简单类(Primitive Class)。
如果一个类至少含有一组充分必要条件,我们称之为规范类(Defined Class)。
如果一个类只有必要条件,也可称之为部分类(Partial Class),如果一个类至少含有一组充分必要条件,就可以成为完整类(Complete Class)。
如果类A有一个必要条件,我们就可以说如果一个个体是类A的成员,它一定满足该条件。但是我们不能说任意满足这个条件的个体一定是类A的成员。
如果类A是规范的,有一个充分必要条件,我们可以说,如果某个个体满足这个条件,这个个体就是A的成员;且任意一个满足这个条件的个体,都一定是类A的成员,这个条件不仅对A的成员是必要的,也是充分的,因此,满足此条件的个体,一定是A的成员。
简单类和规范类(Primitive And Defined Classes)
至少有一组充分必要条件的类就是规范类,我们可以定义,任何一个满足这个定义的个体都是这个类的成员。只有一个必要条件的类是简单类。
自动分类
使用OWL-DL子语言可以自动的对本体的类层次进行分类,当建立一个很大的本体时,我们可以通过推理机计算子类-超类之间的关系,从而提高一个大规模本体的可维护性,保持其处于一个逻辑上的正确状态。当一个本体的类有很多的超类的时候,最好的办法就是把类层次关系构建成为一个树的结构。因此,在asserted hierarchy中(人工构建的层次)的类不能有多个超类。计算和维护复杂的类关系是推理机的主要功能,通过推理计算,使类之间的关系保持一个可维护和标准的状态。这不仅提高了本体的可重用性,也把维护复杂层次关系时的人工错误降到了最低。
任意约束(universal restrictions):任意约束限制了在一个给定的关联关系中,和某一个个体相连接的一个特定类的所有成员;该约束所包括的是符合这一条件的所有成员,而不是特定成员。
任意约束和存在约束的区别在于,在一个给定的关联中,任意约束不是指定一个关系的存在,它仅仅表示,如果一个关联关系存在,其关联的个体一定是特定类的所有成员。
自动分类和开放世界推理(Automatic Classification and Open World Reasoning)
闭合公理(Closure Axioms):关联的闭合公理由一个任意约束构成,表示只能被特定的参数所填充的关联关系。此约束有一个参数集,该参数集是所有该关联的存在约束参数的并集。
例如,对MargheritalPizza而言,hasTopping的闭合公理是关联hasTopping的任意约束,其参数是MozzarellaTopping和TomatoTopping的并集,就是∨hasTopping (MozzarellaTopping∪TomatoTopping)。
值分割(Value Partitions):值分割不是OWL的一部分,也不是其他本体语言的内容,而是一种设计模式(design pattern),其作用是用于改进对类的描述。在本体设计中,设计模式的作用类似于在面向对象程序设计中——对一个模式化的问题可以重复使用的解决方案。这些设计模式通常由专家设计,其正确性经过证明,可以解决一般的模式化问题。
比如,创建一个“SpicinessValuePartition”的值分割,用于描述PizzaTopping的香味,值分割限定了一个可能值范围的一个详细列表,其中枚举出所有可能值。比如,在SpicinessValuePartition中限定范围为“Mild”,“Medium”,“Hot”。
覆盖公理(Covering Axioms):覆盖公理包括两部分,被覆盖的类和形成覆盖的类。
例如,我们有类A、B和C,类B和C是A的子类。假设A被B和C所覆盖,这意味着A的成员必须是B和/或C的成员。如果B和C是不相交(disjoint)的,A的成员必须是B或者C的成员。
基数约束(Cardinality Restrictions):OWL中,我们可以描述与其他个体或者数据类型有关系的类的个体的至少、至多或者准确的数目。这个描述的约束就是基数约束。对于一个给定的关联P,最小基数约束定义了可以加入P关系的个体的最小数目;最大基数约束确定了这个最大数目;也可以确定可以加入P关系的个体的准确个数。