软件工程过程中OWL和UML有什么区别

rzo*_*rzo 11 uml semantic-web owl rdfs

目前我正在试图找出,然后使用OWL,然后使用UML来描述软件工程过程中感兴趣的域.

我阅读了Atkinson的这篇论文,它非常好地概述了OWL和UML在语义和句法层面的差异和等同性.

但是,它没有提供一个明确的指示,在哪些用例中使用OWL而不是 - 例如 - 一个UML类图表可能更好.

它可能是底层开发过程,它决定了建模语言(例如模型驱动=去UML,本体驱动=去OWL),但对我自己来说,这个差异还不清楚吗?

在这两种语言中,我都可以建立一个术语,我作为本体工程师可以重复使用,以便从中推断出新的知识.作为软件工程师,我使用这个术语来构建(单个)系统.

那么OWL和UML之间的差异只是研究领域吗?或者我可以使用OWL来描述我的(单个)软件系统的构造吗?

而且,这就提出了一个问题,即选择哪种建模语言的决定只是由我试图实现的目标驱动的?

bdu*_*lac 9

综合答案

  • UML是一种用于建模的(图形)语言
  • OWL是用于语义视角的知识表示(KR)的语言

首先,OWL的目的不是建模.使用KR技术是软件工程领域的一种选择.它应该与任何软件工程过程截然不同.两种语言都有不同的用途.

当然,您可以[使用] OWL来描述[软件系统]的构造.但是,此举的兴趣主要在于对软件构建过程的自动推理,并且在单个项目的上下文中不会非常有用.这只有在为所有项目完成时才有效,以便获得相应的知识库(KB).

详细解释

根据关于OWLW3C维基部分:

W3C Web本体语言(OWL)是一种语义Web语言,旨在表示关于事物,事物组和事物之间关系的丰富而复杂的知识.OWL是一种基于计算逻辑的语言,使得在OWL中表达的知识可以被计算机程序利用,例如,以验证该知识的一致性或使隐式知识显式化

关于什么是建模语言应该有一些争论.例如,关于该主题维基百科文章考虑了广义,也可以涵盖OWL.我在这里只考虑建模术语软件工程活动(这是你在问题中关注的那个).

您可能需要建模才能定义本体,就像您开发软件项目所需要的那样.但是这个OWL建模不会考虑软件工程元素,而是考虑项目的域数据.换句话说,在软件构建过程中使用UML旨在设置软件元素.使用OWL,除非您尝试自动推理软件构建,否则您不会关注这些元素.

除此之外,UML和OWL之间存在关系.Walter W. Change在W3C框架中的一个注释讨论了这个问题.我会总结一下考虑两种不同关系的问题.

使用UML表示OWL知识

称为ODM(用于Ontology Definition Metamodel)的OMG规范提供了用于定义本体的元模型.在本规范的框架中,引入了UML配置文件的使用,作为弥合两种语言之间差距的方法.在ODM 1.1规范中,第8.4.2节:

从ODM角度来看,UML概要的目标是在有根据的语义基础上提供UML和知识表示社区之间的桥梁,其更广泛的目标是将软件和逻辑方法联系起来以表示信息.

UML配置文件的使用在一篇文章中介绍.您可能会在ODM 1.0规范资源中找到这样的配置文件,作为非规范性文档.根据此处的考虑,此UML配置文件可能是用于建模本体的工具.

使用OWL /语义Web技术来表示UML

RDF是用于编写OWL本体的基础格式.

早期(2000)的学术工作提供了对UML元素进行建模的语义RDF文档(基于OMG规范).这项工作先于OWL W3C建议(2002年)的工作草案.


qwe*_*_so 5

实际上OWL在UML中可用作配置文件.请参阅OMG说明.所以你可以在"一汤"中使用带有OWL配置文件的UML.