实践篇(一)本体建模与知识表示

本体(Ontology)通过对于概念(Concept)、术语(Terminology)及其相互关系(Relation, Property)的 规范化(Conceptualization)描述,勾画出某一领域的基本知识体系和描述语言。本文旨在利用protege工具构建特定领域的本体框架并实现对领域知识的描述和初步推理,从而完成对领域知识图谱模式层的构建。

一、protege简介

  1. protege的用途:
  • 类模拟(Class modeling):protégé提供了一个图形化用户界面来模拟类(领域概念)和它们的属性 及关系。
  • 实例编辑(Instance editing):从这些类中,protégé自动产生交互式的形式,全用户或领域专家进 入的有效实例成为可能。
  • 模型处理(Model processing):protégé有一个插件库,可以定义语义、解答询问以及定义逻辑行为。
  • 模型交换(Model exchange):最终的模型(类和实例)能以各种各样的格式被装载和保存,包括 XML、UML和资源描述框架RDF。
  1. protege使用Manchester syntax作为推理语言
    Protege使用Manchester syntax

  2. 操作界面

    Active ontology是显示当前的实体名称,以IRI的形式显示,前面是www.semanticweb.org,后面跟着主机名,再后面是默认的根据时间命名实体,可以修改。

    Entities,可以看作是实体的总览,能够看到我们创建实体的一些主要信息,是对实体信息的汇总。

    Classes,是对本体模型中,类型部分的编辑,能够定义类之间的层次关系,相互之间的关系。

    Object properties,对象属性,可以理解为编辑实体外部的关系,也就是实体和实体之间的关系。

    Data properties,数据属性,可以理解为编辑实体内部的属性,用来定义实体本身所具有的属性以及属性值。

    Annotation Properties,标注属性,是w3c定义的一些常用的属性,根据URI可以看到这些属性的具体说明。

    Individuals by class,根据类型创建的实例,用来编辑实例信息,类似于java程序中的对象,要归于某个类别。

    OntoGraf,本体关系图,用来展示我们创建的本体里面各个实体之间的层次关系。

    SPARQL Query,SPARQL查询,使用SPARQL语言,对创建的本体进行查询,获取查询结果。

二、protege建模实例

实例一:Game本体建模

step1 :IRI命名
在这里插入图片描述
step2:创建类(class)
方式一:右键Add Subclasses逐条添加
方式二:选中“Tools”中Create Class Hierarchy批量添加
在这里插入图片描述
类的构建初始化完成后,以“chess”为例,点击右侧“usage”,可以看到一些已定义的公理
在这里插入图片描述
step3:创建关系

  • 创建对象属性(object property)
  • 创建数据属性(data property)

在这里插入图片描述
step4:增加属性描述
在这里插入图片描述

  • Equivalent to:同等数据关联
  • SubPropertyOf:从属关联
  • Domains:该属性(关系)的主语;施事者
  • Ranges:该属性(关系)的宾语;受试者
  • DisjointWith:互斥关联;两个属性没有交集,指同一个类不能同时拥有这两个属性
  • Super PropertyOf:父关联
  • Inverse properties:逆关联

step5(非必须)勾选特性
在这里插入图片描述
属性描述所呈现出的逻辑描述一般被认为是公理,而对于特性的选择则可视为是对推理机制的一种验证。
Functional:函数性,标注该特性说明对象属性只能连接一个个体。
Inverse functional:逆函数性,对于一个给定的个体,最多只有一个个体能通过该属性连接那个个体
Transitive:传递性
Symmetric:对称性,两个个体对称不能具有函数性和逆函数性
Asymmetric:不对称性
Reflexive:自反性,自己和自己相关联
Irreflexive:反自反性

step6 :添加自定义规则
规则一:chess可以安装在任何系统上
【逻辑描述】
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021032112413311.png
在这里插入图片描述

在这里插入图片描述
规则二:创建一个Game的子类为“多人游戏类”,规定凡是Genre为MutiPlayer的,都是“多人游戏类”
在这里插入图片描述
step7:可视化
在这里插入图片描述
step8:保存
可以保存为XML/RDF格式或turtle格式等。下图展示了另存为turtle格式后的代码文件
在这里插入图片描述
step9:使用推理机推理
使用 OWL-DL 描述的本体的一大特点是其可以通过推理机进行处理。推理机的功能主要有两个:

推理类的层级结构(一个类是否为另一个类的子类)
测试一个类的稳定性(是否可能存在实例)
在 protege 中的菜单中选择推理机,执行推理。推理机会给出推理的层级结构,并标红不稳定的类:
在这里插入图片描述

实例二:Movie本体建模

step1 创建类
在这里插入图片描述
step2:创建属性
对象属性:
在这里插入图片描述
数据属性:
在这里插入图片描述
step3:添加实例
在这里插入图片描述
step4:可视化
在这里插入图片描述
step5:文件保存
在这里插入图片描述

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本体建模的七个步骤中,"define constraints"是其中之一。该步骤主要是为本体中的概念和关系定义约束条件。 本体中的约束条件可以是属性或关系的限制条件,以确保本体模型的规范性和一致性。通过定义约束条件,可以对本体中的实体及其之间的关系进行更加精确和明确的描述。 在"define constraints"步骤中,首先需要明确本体模型中的需求和目标,以确定需要定义的约束条件。随后,可以使用规则语言(如OWL中的SWRL)或者领域特定语言(DSL)等方式来定义约束条件。 约束条件可以包括以下几个方面: 1. 类型约束:定义概念的属性类型,如某个概念的属性只能是字符串类型或数字类型等。 2. 唯一性约束:确保某个属性或者关系的取值在本体模型中是唯一的。 3. 值域约束:限定属性或关系的取值范围,如某属性只能取特定的枚举值。 4. 域与值约束:定义属性或关系的具体域和值,确保属性或关系只能与特定的实体或取值相关联。 5. 限制约束:对属性或关系的取值进行约束,如某属性的取值必须满足某个条件。 通过定义这些约束条件,可以保证本体模型的一致性和有效性。同时,在使用本体模型进行推理和查询时,约束条件也可以作为过滤条件来获取所需的信息。 总之,“define constraints”步骤是本体建模中非常重要的一步,它可以确保本体模型的规范性和一致性,并且为进一步使用本体模型提供了更加准确和精确的描述。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值