第2章 业务本体

优质
小牛编辑
131浏览
2023-12-01

1.1 概述

业务本体可以用来描述企业业务里包含的非常丰富的概念知识

业务本体是整个业务模型的语义基础,它可以规范和约束业务所处理的数据,为数据赋予语义。

业务本体不仅可以促进企业知识的重用和共享,还可为企业数据交换和集成带来非常多的好处。

X5采用本体知识描述体系来对业务数据进行建模。可以简单的理解本体就是通过概念、关系和规则对知识的描述体系,把这种描述思想运用到企业信息化。

概念(concept)是对现实世界中各种事物的一种抽象,可以简单理解为数据库中的表,是关系的集合,可以使用它来定义生活中或业务中使用的概念或术语。

关系(relation)是对事物间联系的描述,可以简单理解为数据库表中的字段,但含义更丰富。

1.2  关系

1.2.1   关系的定义

关系(relation)类似于类定义中的域定义,但有本质的差别。在本体定义体系中,关系的定义是独立于概念定义存在的,它表明了客观存在关系这样的事实。目前只支持二元关系。

  • 语法:
<relaltion name="" data-type="" single-valued="true/false"
	inverse-of="" size="" scale="" required="" unique=""
	default-value-expr="" >
	<label language=""></label>
</relaltion>
  • 说明:

name:关系名,建议使用有意义的单词组合。

data-type :关系的类型。

single-valued: 是否是单值关系。

inverse-of : 互逆关系。互逆关系是指从两个方向上描述同一个关联的一对关系,假设r1, r2为互逆关系,则 A –r1-> B,则可推出 B –r2-> A, 如:parent关系和child关系,A是B的parent,则可推出B是A的child。

size : 关系的长度。

scale:关系的精度

required:是否必须

unique:是否唯一

default-value-expr:默认值表达式

label标签:描述关系的label,language属性指明使用的语言。

  • 案例:
<relation name="version" data-type="Integer" single-valued="true"
 	default-value-expr="0">
	<label language="zh_CN">版本</label>
</relation>

1.3  概念

1.3.1   概念的定义

  • 语法:
<concept name="" default-value-expr="" keys="">
	<label language="en"></label>
	<has-relation relation="" local-name="" data-type=""
		single-valued="true/false" inverse-of="" size="" scale="" readonly=""
required="" unique="" default-value-expr="" whole-part="composition/aggregation">
		<label language="en"></label>
		<tree path-relation="" path-seperator=""/>
	</has-relation>
</concept>
  • 说明:

name:概念名称,建议概念名称全部使用有意义的单词组合,首字母大写。

default-value-expr:概念主键的默认值表达式。

keys:指明哪些关系组成概念的主键,使用“:”分隔,例如“sName:sAge”。组成keys的关系必须在has-relation中出现。

label标签:表示概念的label,language属性表示使用的语言。

has-relation标签:表示概念包含哪些关系,在has-relation中可以重新指定relation上绝大部分属性,同时新增了几个属性:

  • local-name,表示关系在此概念中的别名。
  • whole-part:整体部分关系,用于表示两个概念之间的关联关系,它的取值范围是{composition,aggregation},composition表示组合,当删除关系所在的本体时,同时删除关系指向的本体。aggregation表示聚合,当删除关系所在的本体时,置空关系的互逆关系。
  • tree标签:指明概念通过此关系形成树,属性path-relation指出树形使用的path关系名,path-seperator表示path的分隔符。
  • 案例:
<concept name="SA_OPAgent" default-value-expr="guid()">
	<label language="zh_CN">代理</label>
	<has-relation relation="sOrgFID">
		<label language="zh_CN">委托人</label>
	</has-relation>
	<has-relation relation="sOrgFName">
		<label language="zh_CN">委托人</label>
	</has-relation>
	<has-relation relation="sAgentID" />
	<has-relation relation="sActive" data-type="Integer"
		default-value-expr="0" />
	<has-relation relation="sStartTime" />
	<has-relation relation="sFinishTime" />
	<has-relation relation="version" />
</concept>