protege系列(一):本体开发101:创建第一个本体的指南

protege作为领域本体编辑工作一直为自然语言处理和语义网、知识图谱等行业人士喜爱,但是还没有比较完整的官方Protege中文文档,本系列旨在通过对protege官方网站上教程等内容的翻译和再现,为广大网友提供一个全面的、权威的protege教程。
在这里插入图片描述

本体开发101:创建第一个本体的指南

娜塔莉亚·诺伊(Natalya F. Noy) 和黛博拉·麦坚尼斯(Deborah L.

斯坦福大学,斯坦福,CA,94305

noy@smi.stanford.edu 和 dlm@ksl.stanford.edu

1 为什么要开发一个本体?

近年来,本体的发展(对领域中术语的明确规范以及它们之间的关系(Gruber 1993))已经从人工智能实验室的领域转移到领域专家的桌面。本体在万维网上已经很普遍。Web上的本体包括从对网站进行分类的大型分类法(例如在Yahoo!上)到要销售的产品及其功能的分类(例如在Amazon.com上)。WWW联盟(W3C)正在开发资源描述框架(Brickley和Guha,1999年),该语言用于对网页上的知识进行编码,以使电子代理商可以轻松地搜索信息。 国防高级研究计划局(DARPA)与W3C一起,通过扩展RDF并使用更具表现力的结构来开发DARPA代理标记语言(DAML),旨在促进Web上的代理交互(Hendler和McGuinness 2000)。现在,许多学科都在开发标准化的本体,领域专家可以使用它们来共享和注释其领域中的信息。例如,医学已经产生了大型的,标准化的,结构化的词汇,例如SNOMED (Price和Spackman 2000)和统一医学语言系统的语义网络(Humphreys and Lindberg 1993)。广泛的通用本体也正在兴起。例如, 联合国开发计划署和Dun&Bradstreet共同努力,开发了UNSPSC本体,该本体为产品和服务提供了术语(www.unspsc.org)。

本体为需要在域中共享信息的研究人员定义了通用词汇表。它包括领域中基本概念的机器可解释的定义以及它们之间的关系。

为什么有人要开发一个本体?一些原因是:

· 在人员或软件代理之间共享对信息结构的共识

· 能够重用领域知识

· 明确领域假设

· 将领域知识与运营知识区分开

· 分析领域知识

在人或软件代理之间共享对信息结构的 共识是开发本体论的较常见目标之一(Musen 1992; Gruber 1993)。例如,假设几个不同的网站包含医疗信息或提供医疗电子商务服务。如果这些网站共享并发布它们全部使用的术语的相同基础本体,则计算机代理可以从这些不同的网站中提取和聚合信息。代理可以使用此汇总信息来回答用户查询或作为其他应用程序的输入数据。

启用领域知识的重用是最近本体研究激增的驱动力之一。例如,许多不同领域的模型需要表示时间的概念。此表示形式包括时间间隔,时间点,时间的相对度量等概念。如果一组研究人员详细开发了这种本体,那么其他研究人员可以简单地将其重新用于他们的领域。另外,如果我们需要构建一个大型本体,我们可以集成一些描述大型域各部分的现有本体。我们还可以重用通用的本体,例如UNSPSC本体,并将其扩展以描述我们感兴趣的领域。

如果我们对领域的了解有所变化,则在实现基础上进行明确的领域假设就可以轻松更改这些假设。关于编程语言代码世界的硬编码假设使这些假设不仅难以发现和理解,而且难以更改,尤其是对于没有编程专业知识的人。此外,明确的领域知识规范对于必须了解领域术语含义的新用户很有用。

将领域知识与操作知识分开是本体的另一种常见用法。我们可以描述根据所需规范从其组件配置产品的任务,并实现一个独立于产品和组件本身进行此配置的程序(McGuinness和Wright 1998)。然后,我们可以开发PC组件和特性的本体,并应用该算法来配置定制PC。如果我们将电梯组件本体“馈入”到电梯中,我们也可以使用相同的算法来配置电梯(Rothenfluh et al。1996)。

一旦可以使用术语的声明性规范,就可以分析领域知识。 当试图重用现有本体并扩展它们时,术语的形式分析非常有价值(McGuinness et al。2000)。

通常,领域的本体本身并不是目标。开发本体类似于定义一组数据及其结构以供其他程序使用。解决问题的方法,与领域无关的应用程序和软件代理使用从本体构建的本体和知识库作为数据。例如,在本文中,我们开发了葡萄酒和食物的本体以及葡萄酒和餐食的适当组合。然后,可以将此本体用作一套餐厅管理工具中某些应用程序的基础:一个应用程序可以为当天的菜单创建葡萄酒建议或回答服务员和顾客的查询。另一个应用程序可以分析酒窖的库存清单,并建议扩展哪些酒类别以及为即将来临的菜单或菜谱购买哪些特定酒。

关于本指南

我们基于Protégé-2000 (Protege 2000),Ontolingua (Ontolingua 1997)和Chimaera (Chimaera 2000)作为本体编辑环境的经验。在本指南中,我们以Protégé-2000为例。

我们在本指南中始终使用的葡萄酒和食品示例大致基于本文中描述CLASSIC的示例知识库-基于描述逻辑方法的知识表示系统(Brachman等,1991)。CLASSIC教程(McGuinness等,1994)进一步开发了此示例。Protégé-2000和其他基于框架的系统以声明方式描述了本体,并明确说明了类层次结构以及个人所属的类。

本指南中的一些本体设计思想源于有关面向对象设计的文献(Rumbaugh等,1991; Booch等,1997)。但是,本体开发不同于面向对象程序设计中的类和关系设计。面向对象的程序设计主要围绕类的方法—程序员根据类的操作属性做出设计决策,而本体设计者则根据类的结构属性做出决策。结果,本体中的类结构和类之间的关系不同于面向对象程序中类似域的结构。

无法涵盖本体开发人员可能需要解决的所有问题,因此我们在本指南中并未尝试解决所有问题。相反,我们尝试提供一个起点。可以帮助新的本体设计者开发本体的初始指南。最后,如果领域需要它们,我们建议地方寻找对更复杂的结构和设计机制的解释。

最后,没有一种正确的本体设计方法,我们也没有尝试定义一种方法。我们在这里提出的想法是在我们自己的本体开发经验中发现有用的想法。在本指南的最后,我们建议了替代方法的参考列表。

2 本体是什么?

人工智能文献包含本体的许多定义。其中许多相互矛盾。在本指南中,本体是对话语领域(类(有时称为概念))中的概念的正式显式描述,每个概念的属性描述了概念的各种特征和属性(插槽 (有时称为角色或属性) )以及对插槽的限制(构面(有时称为角色限制))。本体与一组单独的类实例一起构成一个知识库。实际上,在本体结束和知识库开始之间存在一条界限。

类是大多数本体的重点。类描述领域中的概念。例如,一类葡萄酒代表所有葡萄酒。特定的葡萄酒是此类的实例。阅读本文时,杯中 的波尔多葡萄酒是波尔多葡萄酒的一个实例。一个类可以具有表示比超类更具体的概念的子类。例如,我们可以将所有葡萄酒分为红葡萄酒,白葡萄酒和桃红葡萄酒。另外,我们可以将所有葡萄酒分为起泡酒和非起泡酒。

槽口 描述了类和实例的属性: 拉菲堡罗斯柴尔德波雅克酒具有完整的酒体;它由拉菲酒庄(ChâteauLafite Rothschild)酒庄生产。在此示例中,我们有两个描述葡萄酒的位置:具有完整值的位置主体和具有ChâteauLafite Rothschild酒庄价值的位置制造商。在类级别,我们可以说,Wine类的实例 将具有描述其味道, 主体, 糖 水平, 葡萄酒制造商等的位置。[1]

Wine类及其子类Pauillac的所有实例都有一个老虎机制造者, 其值是Winery类的一个实例(图1)。Winery类的所有实例都有一个插槽产品 ,该插槽引用了该酿酒厂生产的所有葡萄酒(Wine及其子类的实例)。

实际上,开发本体包括:

· 在本体中定义类,

· 以分类(子类-超类)层次结构安排类,

· 定义插槽并描述这些插槽的允许值,

· 填写实例的插槽值。

然后,我们可以通过定义这些类的各个实例来填充特定的插槽值信息和其他插槽限制,从而创建知识库。

在这里插入图片描述
图1。 葡萄酒领域中的某些类,实例以及它们之间的关系。 我们将黑色用于类,将红色用于实例。直接链接表示插槽和内部链接,例如instance-of和subclass-of。

3 一种简单的知识工程方法

正如我们之前所说,没有一种“正确”的方法或方法来开发本体。在这里,我们讨论要考虑的一般问题,并提供了一种开发本体的可能过程。我们描述了一种用于本体开发的迭代方法:我们从对本体的初步了解开始。然后,我们修改和完善不断发展的本体,并填写详细信息。在此过程中,我们讨论了设计人员需要做出的建模决策,以及不同解决方案的利弊。

首先,我们想强调本体设计中的一些基本规则,我们将多次参考这些规则。这些规则似乎很教条。但是,它们可以在许多情况下帮助您做出设计决策。

1) 没有一种正确的域建模方法-总是有可行的替代方案。最佳解决方案几乎总是取决于您所考虑的应用程序和预期的扩展。

2) 本体开发必然是一个迭代过程。

3) 本体中的概念应与您感兴趣的领域中的对象(物理或逻辑)和关系紧密。这些最有可能是描述您的域的句子中的名词(宾语)或动词(关系)。

也就是说,决定我们将使用本体的目的以及本体的详细程度或通用程度将指导许多建模决策。在几种可行的选择中,我们将需要确定哪种方法更适合计划的任务,更直观,更可扩展且更易于维护。我们还需要记住,本体是世界现实的模型,本体中的概念必须反映这一现实。在定义了本体的初始版本之后,我们可以通过在应用程序或解决问题的方法中使用它或与本领域的专家进行讨论,或者两者兼而有之,来对其进行评估和调试。结果,我们几乎肯定会需要修改初始本体。

步骤1. 确定本体的范围和范围

我们建议通过定义领域和范围来开始开发本体。也就是说,回答几个基本问​​题:

· 本体将涵盖的领域是什么?

· 对于 我们将使用本体的东西?

· 对于哪种类型的问题,本体中的信息应提供答案?

· 谁将使用和维护本体?

这些问题的答案可能会在本体设计过程中发生变化,但是在任何给定的时间,它们都有助于限制模型的范围。

考虑一下我们前面介绍的葡萄酒和食物的本体。食物和葡萄酒的表示是本体论的领域。我们计划将此本体用于建议葡萄酒和食品良好搭配的应用程序。

自然地,描述不同类型的葡萄酒,主要食物类型,葡萄酒与食物的良好组合以及不良组合的概念将成为我们的本体。同时,本体不大可能包含用于管理酒厂或饭店员工库存的概念,即使这些概念在某种程度上与葡萄酒和食物的概念相关。

如果我们正在设计的本体将用于协助葡萄酒杂志中文章的自然语言处理,则在本体中包含概念的同义词和词性信息可能很重要。如果本体将用于帮助餐厅客户决定订购哪种酒,我们需要包括零售定价信息。 如果将其用于购酒者库存酒窖,则可能需要批发价格和供货情况。 如果维护本体的人员使用与本体用户的语言不同的语言来描述域,

  • 17
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值