目录 |
OIL是在Web上描述本体的语言。OIL的语义基于描述逻辑,语法建立在RDF上,OIL的设计目标是尽量与RDF应用结合。因此,大多数RDFS都是有效的OIL本体,能够被RDF处理器所理解。与RDF不同的是,OIL具有良好的语义。
作为语义Web的通用标记语言,OIL综合了基于框架系统(Frame-based System)、描述逻辑(Description Logics)及Web标准(XML、RDF)3个方面的成果。具体地说,OIL使用了基于框架的语言中的建模原语来描述类(也称为框架)和属性(也称为槽),继承了DL的形式化语义和有效的推理机制,遵循XML和RDF的语法规则对信息进行标记。
OIL的结构可分为4个层次:核心层(Core OIL)、标准层(Standard OIL)、实例层(Instance OIL)和重量级层(Heavy OIL),高层建立在低层上,在低层上增加功能。
(1)核心层基本上与RDFS一致,因此,即使是简单的RDFS处理系统,也能够处理用OIL描述的信息,并在自身能力范围内尽可能多地解释这些信息的语义。
(2)标准层在核心OIL层上增加了一系列的描述逻辑原语,是目前OIL工作的核心。主要目的是提供足够的表达方式和易于理解的简单模式,可以准确地指定语义和进行完整的推理。
(3)实例层包含了具体个体的集成能力,可以对实例个体进行描述,是对标准层建模功能的扩展,它与标准有相同的Schema,可以直接使用RDF来描述具体的实例。
(4)重量级层是一个未定义的层,主要用于在未来进行扩展,从而具有额外的表示和推理能力。
OIL这种分层的方法使得具体应用可以用语言预定子集来管理复杂的OIL,同时,也使得OIL可以满足不同层次应用的需要。由于每增加一层都是在原有的层次的基础上增加一些新的功能,这样,仅能处理低层次语言的处理程序也能对用高层次语言描述的信息做出一定程度的理解。同样,由于OIL的层次关系是逐层递增的,层次与层次之间存在一定的交互性,因此,复杂的高级应用仍然可以理解用简单层次语言所描述的信息。
OIL是在RDFS的基础上建立起来的,它对RDFS的语义表示能力又做了进一步扩展。在OIL中,有两种基本类:原语类和定义类。原语类是普通的RDF类;定义类为成员提供必要的和充分的条件,定义类要求使用类表达式,布尔表达式是类和槽限定的布尔组合。OIL提供的标准布尔操作包括oil:AND、oil:OR和oil:NOT。
槽限定用于限制类的实例必须是满足某些范围限制的属性域实例。槽限定主要包括值限定、值类型、势限定、属性限定、类限定等。值限定oil:HasValue表明槽是特定类表达式的一个成员,必须至少有一个值;值类型限定oil:ValueType表明槽的所有值必须是特定类表达式成员;势限定oil:MaxCardinality和oil:MinCardinality表明对于特定槽至多(或至少)存在的实例值;属性限定oil:hasProperty用来指出限定应用的属性;类限定oil:hasClass用于指明限定的类表示。
OIL使用RDF结构对槽进行定义,如rdfs:subclassOf、rdfs:domain和rdfs:range。此外,OIL还增加了属性和类来对槽进行更精确的定义。例如,如果属性是oil:inverseRelationOf,则说明两个属性是可逆关系;如果属性是oil:TransitiveRelation的实例,则属性是传递的;如果属性是oil:symmetricRelation的子类,则它是对称关系。
除了定义类和槽外,OIL还可以使用标准元属性、输入机制和规则库。标准元属性集合基于都柏林核心集,包括本体的名称、本体的作者等。输入机制使用XML命名空间。规则库则试图为本体提供公理和全局限制,但OIL目前还未对此做出明确的定义。OIL以描述逻辑为基础,所以,如果两个本体在定义中使用相同的术语集,就可以自动得出包含关系来合并这两个本体。此外,OIL的丰富模型结构允许进行一致性检查,为构建高质量本体提供了方便。但由于实例化可引起语义网上的逻辑不一致,且难以进行控制,目前OIL还没有提供处理这种不一致的方法。
以上这些设计目标引发了下面3点需求: