部分层次结构的名称集表示
基本名称集
部分层次中的每个组织都由从根到组织的路径上的组件名称集来标识(包括组织本身的组件名称)。例如,在H1中,体节5和20的皮肤肌节分别表示为{皮肤肌节,体节,体体节05}和{皮肤肌节,体节,体位20};在H2体节20的皮肤肌节表现为{皮肤肌节,体节,体位20}。使用NS(T)表示组织的名称集吨,两个组织之间的等效性通过其名称集的等效性来确定:
NS公司(吨
我
) =NS公司(吨
j
) →吨
我
=吨
j
让吨
我
吨
j
表示吨
我
有吨
j
作为直接子公司,并让吨
我
吨
j
表示吨
我
有吨
j
作为子部分(直接或间接)1,即。吨
我
吨
j
...吨
k个
暗示吨
我
吨
k个
,则可以从名称集派生关系的一部分,如下所示:
NS公司(吨
我
)⊂ NS公司(吨
j
) →吨
我
吨
j
和
吨
我
吨
j
∧(¬∃k个·吨
我
吨
k个
∧ 吨
k个
吨
j
) →吨
我
吨
j
第一行简单地说吨
我
有吨
j
作为子部分,如果第一个名称集是第二个名称集的适当子集。第二行说明吨
我
有吨
j
作为直接子部分(或儿童组织),如果吨
我
有吨
j
作为其子部分之一吨
我
他们自己也有吨
j
作为他们自己的子部分之一。在表示本体的图中,从吨
我
到吨
j
如果且仅当,吨
我
吨
j
.
名称集表示并不显式处理时间关系。例如,必须明确捕捉发育中胚胎解剖结构的变化,即,如果某一特定子部分从一个发育阶段消失到下一个阶段,这应反映在后一阶段的本体论表示中缺少该子部分。此外,给定的表示并没有明确区分类和实例组织。例如,虽然一般认为腿有小腿部分,但在特定情况下可能不是这样。拟议代表不处理此类实例问题;当今生物信息学中使用的许多现有模型生物解剖本体也同样不表示实例级别的信息。
组织的休息
“修复”组织是指代表该组织的所有部分的组织,而不是那些在修复组织的“兄弟”中明确表示的组织。例如,胚胎间充质标记为吨1在图中4不包括第一鳃弓的间质(标记为吨三)或胚胎的任何其他部分(图中未显示)。
查看的名称集表示吨1和吨三(在图中4),我们看到了NS公司(吨1)⊂ NS公司(吨三). 根据上述定义,吨1 吨三跟随。然而,事实并非如此。换句话说,前面介绍的基本名称集表示法不足以处理剩余组织。
正负名称集
为了处理“排除项”,例如恢复纸巾所需的排除项,我们引入负名称集(NS公司
n个
)除了我们已有的名称集之外(我们将称之为正名称集(NS公司
第页
)从现在起)。一张纸巾吨
第页
在其负名称中包含任何“兄弟”组织的组件名称吨
秒
,如果吨
秒
具有与相同组件名称的子部分吨
第页
例如,鳃弓被添加到吨1因为吨三(摘自图4).
现在可以从组织的名称集表示中导出部分关系,如下所示:
NS公司
第页
(吨
我
)⊂ NS公司
第页
(吨
j
)∧ NS公司
n个
(吨
我
) ∩NS公司
第页
(吨
j
) =∅→吨
我
吨
j
和
吨
我
吨
j
∧(¬∃ k个·吨
我
吨
k个
∧ 吨
k个
吨
j
) →吨
我
吨
j
第一行说明吨
我
有吨
j
作为子部分,如果吨
我
是吨
j
,和的正名称集的交集吨
j
和的负名称集吨
我
为空。添加了交集部分,以强制执行处理重新提交案件所需的排除。第二行的含义与之前相同。
返回图中的示例4,吨1现在表示为NS公司
第页
(吨1)={胚胎、肌酶}和NS公司
n个
(吨1)={鳃弓},吨三表示为NS公司
第页
(吨三)={第一弓、鳃弓、胚胎、间充质}和NS公司
n个
(吨三) = {}. 自NS公司
n个
(吨1) ∩NS公司
第页
(吨三)={鳃弓},即非空,吨三不是的子部分吨1,根据需要。
为了使排除能够正常工作,必须将否定名称集传播到其子部分,正如正名称集已经隐含的情况一样。因此,吨2(在图中4)也将包括鳃弓在其负面名称集,保持吨三成为其子公司之一。
多部分层次结构的集成
假设两个或多个层次结构的一部分基于同一组组件名称,那么集成这些层次结构就成了一项微不足道的任务。不同层次组织之间的关系(身份和部分)直接遵循上述规则。例如,将这些规则应用于图中的层次结构三,图形层次结构的集成部分5可以自动生成。
给定两个或多个层次的集成名称集表示,无法确定哪个组织属于哪个原始层次。例如,如果根据管理部分关系的规则,要求提供体节的直接子部分,则图中第二级的所有组织5将被退回。为了解决这个问题,需要捕获额外的信息。通过添加视图集每个组织。例如,体节的视图集将是{H1,H2},就像图中所有叶节点组织的视图集一样5中间组织节点的视图集为{H1}(左侧)或{H2}(右侧)。因此,重新创建一个原始层次结构只需要使用视图集过滤集成层次结构。除了重建原始层次结构外,还可以使用适当的名称集“查询”轻松创建集成层次结构上的新视图,甚至是原始层次结构上的新视图。
原型
在Prolog中实现了鼠标地图集解剖本体的名称集表示原型;我们为工作开发的原型的扩展小鼠胚胎解剖的形式化[6]. 这个原始原型包含以下两个谓词:
组织(S、T、FN)。
hasPart(TID1、TID2)。
为了评估名称集表示,我们使用组织谓词的扩展版本(原型描述中省略了视图处理以保持示例简单):
ext_tissue(S、T、FN、NSp、NSpL、NSn、NSnL)。
例如,图中的胚胎间充质组织4表示为:
ext_tissue(14705,[“胚胎”,“间充质”],
[“胚胎”,“间充质”],2,
[“鳃弓”、“肢”、“器官系统”],3)。
以下Prolog子句用于确定吨
第页
吨
c(c)
为真:
子部分(Tp,Tc):-
外部发行(Sp、Tp、_、NSpp、NSpLp、NSnp、_),
外部发布(Sp、Tc、_、NSpc、NSpLc、_和_),
NSpLc>NSpLp,
ord_subset(NSpp、NSpc),
ord_disjoint(NSpc、NSnp)。
Prolog库中的谓词ord_subset和ord_disjoint用于实现表示的集合论方面。尽管这些谓词支持有序集,但这对于我们的表示来说是不需要的(但库中没有无序集谓词)。NSpLc>NSpLp需要强制执行真子集关系。
以下两个Prolog子句用于确定吨
第页
吨
c(c)
为真:
not_immediate_subPart(Tp,Tc):-
子部分(Tp,Tm),
子部分(Tm,Tc)。
immediate_subPart(Tp,Tc):-
子部分(Tp,Tc),
不是not_imediate_subPart(Tp,Tc)。
给定的Prolog实现并不是特别有效,可以进行一些优化。然而,由于原型的目的不是为最终用户提供一个健壮的应用程序,而是为评估目的提供拟议方法的参考实施,因此证明它已经足够了。
本文没有对所提出方法的不同实施策略的相对优点提出任何主张。Prolog的替代方案包括使用关系数据库系统或本体语言,例如OWL(W3C提供了OWL的更多详细信息[18]). 后者特别令人感兴趣,因为它在生物信息学领域得到了广泛接受。在这项工作开始时,使用OWL开发本体的工具仍处于早期阶段,因此,我们决定不使用它们。然而与此同时,Protege[19]和OilEd[20]已经足够成熟,并确实提供了适当的替代实现平台。