`
lcf11824
  • 浏览: 87807 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

owl本体语言学习笔记(二)

 
阅读更多

6. 本体映射

用于实现本体的共享。

 

6.1 类和属性之间的等价关系(equivalentClass,equivalentProperty)

      属性owl:equivalentClass被用来表示两个类有着完全相同的实例。但我们要注意,在OWL DL中,类仅仅代表着个体的集合而不是个体本身。然而在OWL FULL中,我们能够使用owl:sameAs来表示两个类在各方面均完全一致。

关系 蕴涵

subClassOf TexasThings(x) implies locatedIn(x,y) and TexasRegion(y)

equivalentClass TexasThings(x) implies locatedIn(x,y) and TexasRegion(y)

类似的,我们可以通过使用owl:equivalentProperty属性声明表达属性的等同。

 

6.2 个体间的同一性

SameAs:描述个体之间相同的机制与描述类之间的相同机制类似,仅仅只要两个个体的声明形成一致的就可以了。

假如hasMaker是一个函数型属性,那么下面的例子就不一定会产生冲突。

<owl:Thing rdf:about="#BancroftChardonnay">

  <hasMaker rdf:resource="#Bancroft" />

  <hasMaker rdf:resource="#Beringer" />

</owl:Thing>

除非和我们本体中的其他信息发生冲突,不然的话这样的描述是没有冲突的,他说明Bancroft和Beringer是相同的个体。

要清楚,修饰(或引用)两个类用sameAs还是用equivalentClass效果是不同的。用sameAs的时候,把一个类解释为一个个体,就像在OWL Full中一样,这有利于对本体进行分类。在OWL Full中,sameAs可以用来引用两个东西,如一个类和一个个体、一个类和一个属性等等,无论什么情况,都将被解释为个体。

 

6.3 不同的个体(DifferentFrom,AllDifferent)

这一机制提供了与sameAs相反的效果。

 

说明了三个值互不相同。如果我们没有用 differentFrom元素来申明既干又甜的葡萄酒,这意味着“干葡萄酒”和“甜葡萄酒”是相同的。但是我们从上面申明的元素来推断,这又是矛盾的。还有一种更便利的定义相互不同个体的机制,如下

 

要注意,owl:distinctMembers属性声明只能和owl:AllDifferent属性声明一起结合使用。


7. 复杂类

用于创建类的表达式。OWL支持基本的集合操作,即并,交和补运算。它们分别被命名为owl:unionOf,owl:intersectionOf,和owl:complementOf.此外,类还可以是枚举的。类的外延可以使用oneOf构造子来显示的声明。同时,我们也可以声明类的外延必须是互不相交的。

注意:OWL类外延是由个体组成的集合,二这些个体都是类的成员。

 

7.1 集合运算符

7.1.1 交运算

<owl:Class rdf:ID="WhiteWine">

   <owl:intersectionOf rdf:parseType="Collection"> /*这是必须的,因为必须对集合操作*/

     <owl:Class rdf:about="#Wine" />

     <owl:Restriction>

       <owl:onProperty rdf:resource="#hasColor" />

       <owl:hasValue rdf:resource="#White" />

     </owl:Restriction>

   </owl:intersectionOf>

 </owl:Class>

【这个例子表示,白葡萄酒就是葡萄酒和白色物体的相交的集合。如果不这么表示,计算机只知道,白葡萄酒有白色的属性;却不知道,所有白色的葡萄酒是白葡萄酒】

 

最后,WhiteBurgundy类恰好是白葡萄酒和Burgundies的交集。依次,Burgundies生产在法国一个叫做Bourgogne的地方并且它是干葡萄酒(dry wine)。因此,所有满足这些标准的葡萄酒个体都是WhiteBurgundy类的外延的一部分。

 

7.1.2 并运算

表示两个集合的∪。

 

使用方法同上图,将intersectionOf改成unionOf

7.1.3 补运算

就是表示差集,complementOf典型的用法是与其它集合运算符联合使用,如下

 

【上面的例子定义了一个NonFrenchWine类,它是Wine类与所有不位于法国的事物的集合的交集。】

7.2 枚举类 one of

以直接枚举的方式描述类的成员。特别的,这个定义完整的描述了类的外延(类的范围?),因此任何其他个体都不能声明为属于这个类。如下:

 

【这段代码说明,WineColor只包含三种,white rose和red,任何其他的颜色都不是winecolor类的实例】

oneOf结构的每一个元素都必须是一个有效声明的个体。一个个体必须属于某个类。在上面的例子中,每一个个体都是通过名字来引用的。我们使用owl:Thing简单地进行引用,尽管这有点多余(因为每个个体都属于owl:Thing)。另外,我们也可以根据具体类型WineColor来引用集合中的元素:

 

另外,较复杂的个体描述同样也可以是oneOf结构的有效元素,例如:

 

7.3 不相交类disjointWith

使用owl:disjointWith构造子可以表达一组类是不相交的。它保证了属于某一个类的个体不能同时又是另一个指定类的实例。

 

Pasta例子声明了多个不相交类。注意它只声明了Pasta与其它所有类是不相交的。例如,它并没有保证Meat和Fruit是不相交的。为了声明一组类是互不相交的,我们必须对每两个类都使用owl:disjointWith来声明。

在下面的例子中,我们定义了Fruit是SweetFruit和NonSweetFruit的并集。而且我们知道这些子类恰好将Fruit划分成了连个截然不同的子类,因为它们是互不相交的。随着互不相交的类的增加,不相交的声明的数目也会相应的增加到n的2次方。然而,在我们已知的用例中,n通常比较小。

 


8. 本体版本的控制

本体和软件一样需要维护,因此它们将随着时间的推移而改变。在一个owl:Ontology元素(如上面讨论的http://www.w3.org/TR/2004/REC-owl-guide-20040210/#OntologyHeaders) 内,链接到一个以前定义的本体版本是可能的。属性owl:priorVersion被用来提供这种链接,并能用它跟踪一个本体的版本历史。

本体版本可能彼此互不兼容,例如,一个本体以前的版本可能包含与现在版本中的陈述相矛盾的陈述。在一个owl:Ontology元素中,我们使用owl:backwardCompatibleWith和owl:incompatibleWith这些属性来指出本体版本是兼容还是不兼容以前的版本。如果没有进行owl:backwardCompatibleWith声明,那么我们假定就不存在兼容性。除了上面讲到的两个属性,还有一个属性owl:versionInfo适用与版本控制系统,它提供了一些相关信息(hook)。和前面三个属性相反的是,owl:versionInfo的客体是一个文字值(literal),这一属性除了可以用来注释本体之外还可以用来注释类和属性。

 

1
0
分享到:
评论
1 楼 陈佩佩 2016-01-14  
如果一个类ClassA拥有function属性,function的值域很大。我想表示A具有的function只有function1和function2。这种约束如何表示/?

相关推荐

    Web本体语言(OWL)学习笔记

    - **SPARQL查询**:SPARQL是查询语义网数据的标准语言,可用于从OWL本体中检索信息。 5. **应用与工具**: - **语义应用**:OWL广泛应用于知识管理系统、智能搜索引擎、数据互操作等领域。 - **开发工具**:除了...

    Protege构建本体笔记

    #### 二、OWL语言 OWL可以分为三种子语言:OWL-Lite、OWL-DL和OWL-Full。这三种语言的主要区别在于它们的描述能力和适用场景不同。 ##### 1. OWL-Lite - **描述能力**:最简单,适用于只有简单的类层次和定义约束...

    protege初学者资料集

    通过学习这些材料,初学者不仅可以掌握Protege的使用,还能深入理解OWL本体语言,从而在实际项目中构建出高质量的本体模型。同时,对本体推理的理解将有助于提升数据的智能分析和知识发现能力。在学习过程中,理论与...

    基于Jena学习笔记,新手使用更方便

    **基于Jena学习笔记,新手使用更方便** Jena是一个由Apache软件基金会开发的Java框架,主要用于构建语义网和链接数据应用。它提供了一套API来处理RDF(Resource Description Framework)、RDFS(RDF Schema)以及...

    protege-owl

    【Protege-OWL 教程笔记】 Protege-OWL 是一个强大的本体编辑器,主要用于构建和编辑使用Web本体语言(OWL)的...Protege-OWL 提供了用户友好的界面,便于创建、编辑和管理OWL本体,是学习和实践本体工程的重要工具。

    protege学习笔记(中级)(附实例)

    **Protege学习笔记(中级): 通过实例掌握建模与推理** Protege是一款开源的、强大的本体编辑和管理工具,广泛应用于知识工程、数据集成和语义Web等领域。它提供了一个用户友好的图形界面,使得非专业程序员也能进行...

    semantic web学习笔记

    在《语义网学习笔记》中,你可以找到关于这些核心技术的详细解释、示例和应用,这将帮助你深入理解语义网的概念和实践。同时,`README.txt`文件可能包含了对笔记的概述、使用说明或作者的额外注解,对于学习过程也...

    Protege新手入门(入门篇+进阶篇+推理篇+使用笔记)

    在Protege中创建本体,首先需要选择适当的本体语言,如OWL DL或OWL Full。然后,通过“文件”-&gt;“新建本体”开始创建新项目。为本体命名并指定存储位置。接着,开始构建类层次结构,通过右键点击类列表,选择“新建...

    protege学习资料(入门、进阶、推理)

    Protege支持OWL(Web Ontology Language)和OWL DL等本体语言,这些语言是构建和表达领域知识的基础,尤其在生物医学、信息集成和智能系统等领域有着广泛应用。 **二、版本差异:Protege 4.2与3.2** 尽管Protege ...

    protege使用笔记

    Protege 使用笔记 Protege 是一个功能强大且流行的本体编辑器,能够帮助用户快速构建本体模型。本文将介绍 Protege 的基本使用方法,并讲解如何使用 Protege 来构建一个简单的本体模型。 安装和配置 首先,需要...

    protege教程

    OWLAPI插件则提供了对OWL语言更深入的操作。 3. **版本控制**:Protege支持版本管理,便于团队协作和历史追踪。 4. **导入与导出**:Protege可以导入其他格式的本体(如RDF、OWL),也可以导出为不同格式,方便与...

    1.Protege新手入门(基础篇).doc

    **Protege新手入门(基础篇)** **1. Protege简介** ...通过以上步骤,初学者可以基本掌握Protege中构建OWL本体的基本操作,进一步深入学习可以涉及更复杂的逻辑约束、个体实例的添加、导入导出本体等高级功能。

    本体论学

    同时,你还能学习如何使用工具(如Protégé或OWLAPI)来编辑和管理本体,以及如何利用SPARQL查询语言来提问和提取知识。此外,你可能还会接触到如何将本体应用于自然语言处理、推荐系统、智能问答等实际应用场景。 ...

    Protege新手入门(推理篇)笔记

    ### Protege新手入门(推理篇)笔记 #### 一、引言 Protege是一款广泛应用于语义网和本体工程领域的开源工具,它...希望这篇笔记能够帮助新手用户快速掌握Protege的基本使用方法,并激发更多关于本体工程的学习兴趣。

    知识图谱笔记+代码

    5. **查询与推理**:介绍SPARQL(SPARQL Protocol and RDF Query Language)等查询语言,以及基于规则的推理方法,如基于本体的推理。 6. **知识图谱应用**:在搜索引擎、智能助手、推荐系统等领域的应用案例,展示...

    awesome-knowledge-graph-master.zip

    笔记和论文可能涵盖了知识增强的机器学习模型,如基于知识图谱的半监督学习、迁移学习等,以及如何将知识图谱应用于自然语言处理、图像识别等领域,提高模型的解释性和泛化能力。 总之,"awesome-knowledge-graph-...

    知识图谱技术体系

    - **Extractor**:借助自然语言处理技术和机器学习算法,用于处理文本类数据。 ##### 知识融合 - **合并外部知识库**:包括数据层的融合和模式层的融合,确保知识的一致性和完整性。 - **开放数据集成框架**:如...

Global site tag (gtag.js) - Google Analytics