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

时间:2015-09-23 09:59:37

标签: uml semantic-web owl rdfs

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

我读了this paper by Atkinson,它很好地概述了OWL和UML在语义和句法层面的差异和等同性。

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

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

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

OWL和UML之间的区别仅在于研究领域吗?或者我可以使用OWL来描述我的(单个)软件系统的构造吗?

此外,这提出了一个问题,即选择哪种建模语言的决定仅仅取决于我试图实现的目标?

7 个答案:

答案 0 :(得分:9)

综合答案

  • UML是一种用于建模的(图形)语言
  • OWL是一种语义视角下用于knowledge representation(KR)的语言

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

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

详细解释

根据W3C wiki section about OWL

  

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

关于什么是建模语言应该有一些争论。例如,Wikipedia article on the topic考虑​​广义,也可以涵盖OWL。我在这里只考虑建模术语,即软件工程活动(你在问题中关注的那个)。

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

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

使用UML表示OWL知识

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

  

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

an article中引入了UML配置文件的使用。您可能会在ODM 1.0 specification resources中找到此类个人资料,作为非规范性文件。根据这里考虑的内容,这个UML配置文件可能是一个用于建模本体的工具。

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

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

早期(2000)academic work提供了一个对UML元素进行建模的语义RDF文档(基于OMG规范)。这项工作先于draft works on the OWL W3C recommendation(2002)。

答案 1 :(得分:5)

实际上OWL在UML中可用作配置文件。见OMG specfication。所以你可以在一个汤"。

中使用带有OWL配置文件的UML

答案 2 :(得分:4)

让我们从定义开始。

  

统一建模语言(UML)是一种通用的,开发的,   软件工程领域的建模语言,即   旨在提供一种可视化设计的标准方法   系统。 (Wikipedia

UML有许多图表,但没有一个经典版本是为本体建模而设计的。因此,研究人员为此创造了OWL。

  

W3C Web本体语言(OWL)是一种语义Web语言   旨在代表关于事物,群体的丰富而复杂的知识   事物和事物之间的关系。 (W3C

如Thomas Kilian在另一个答案中所说:

  

OWL在UML中作为配置文件提供。请参阅OMG说明。所以你可以   在“一汤”中使用带有OWL配置文件的UML。

因此,OWL可以是软件工程过程中使用的一组UML图的一部分。与传统的UML图相比,OWL的主要优点是必须使用本体设计系统。类图的目的是表示类,而不是本体。如果您的系统不依赖于本体,请坚持使用经典的UML图表;你不需要OWL。如果您的系统使用本体并且您需要在图表上表示它,请使用OWL。

答案 3 :(得分:2)

OWL用于描述域,并且能够使用语义特定地指定域的知识并描述其特性。以Friend of a Friend本体为例。使用它可以描述人们彼此之间的关系。

你可能会说你可以使用UML做同样的事情而且你是对的。您可以使用OWL和UML指定属性,关系等。但是,你可以用UML做的是推断领域知识。作为语义Web语言的OWL使用开放世界或封闭世界假设对域进行建模。基本上,您根据域中描述的内容来假设知识。然后,您可以使用特定指令使用规则推断知识,或只是查看您创建的谓词和语句。此外,您可以使用特定的查询语言(如SPARQL)来查询本体,就像使用SQL查询数据库一样。

TL; DR:使用UML指定如何将特定域转换为软件,使用OWL指定域知识,因为它比UML更丰富。

答案 4 :(得分:2)

要修改UML和OWL比较的参考资料,Jesper Zedlitz博士论文(德文版)Konzeptuelle Modellierung mit UML und OWL – Untersuchung der Gemeinsamkeiten und Unterschiede mit Hilfe von Modelltransformationen (使用UML和OWL进行概念建模 - 使用模型转换探索异同)

在本文中,研究是否可以在两种建模语言之间进行转换。在结论(p.222)中,表明OWL有可能进行更复杂的建模,因此并不总是可以从OWL转换为UML。

答案 5 :(得分:0)

实际上,根据我上次在本体上的工作,我发现使用Protege这样的本体工具非常有帮助,并且在描述实体之间的关系方面非常有用,而使用OLGA这样的工具可以帮助您将该本体映射到许多面向对象语言。

是的,我们不具备使用图形表示来设计模型(如UML)的功能,但是它提供了广泛的选项来描述您的模型。

答案 6 :(得分:-2)

将领域本体映射到UML模型的重要性和好处在于整合这两种建模技术提供的优势和质量。也就是说,如果已经存在具有一定权限级别的域本体,那么这些知识库可以帮助创建UML类图,例如构建它的描述逻辑提供的公理保证,除了启用UML的推理功能外通过这种形式主义,转换旨在显示本体重用可以帮助减少类图中的歧义的证据。