mindpin / owl-viewer

以非常酷炫的力反馈拖拽效果来呈现的 owl 元数据关联图。当然我们希望把这个效果用在更多地方!演示戳这里:http://mindpin.github.io/owl-viewer/
0 stars 0 forks source link

OntologyClass 之间的关系 #3

Open ben7th opened 11 years ago

ben7th commented 11 years ago

OntologyClass 之间,目前有三种关系。

我们把它们都作为抽象的 OntologyRelation 处理

一个 OntologyClass 对象可以通过其上的 .relations 属性取到所有与他关联的 OntologyRelation 对象。

OntologyRelation 对象具有不同的 type

type: 'parent-sub', 父子关系,具有如下属性 this.parent this.sub


type: 'equivalent' 对等关系,具有如下属性 this.classes 返回包含两个 OntologyClass 对象的对象数组


type: 'disjoint' 互斥关系,具有如下属性 this.classes 返回包含两个 OntologyClass 对象的对象数组

fushang318 commented 11 years ago

class.relations

type: 'parent-sub' # 父子关系
this.parent # 返回 OntologyClass
this.sub # 返回 OntologyClass
type: 'equivalent' # 对等关系
this.classes # 返回包含两个 OntologyClass 对象的对象数组
type: 'disjoint' # 互斥关系
this.classes # 返回包含两个 OntologyClass 对象的对象数组
type: 'class-individual' # 所属关系
this.class # 返回 OntologyClass
this.individual # 返回 OntologyIndividual
type: 'annotation-domain-class'
this.annotation
this.class
type: 'annotation-range-class'
this.annotation
this.class
type: 'object-property-domain-class'
this.object_property
this.class
type: 'object-property-range-class'
this.object_property
this.class
type: 'data-property-domain-class'
this.data_property
this.class
type: 'annotation-value'
this.host # OntologyClass
this.annotation
this.data_type
this.value

individual.relations

type: 'class-individual' # 所属关系
this.class # 返回 OntologyClass
this.individual # 返回 OntologyIndividual
type: 'individual-same' # 类似关系
this.individuals # 返回包含两个 OntologyIndividual 对象的对象数组
type: 'individual-different' # 类似关系
this.individuals # 返回包含两个 OntologyIndividual 对象的对象数组
type: 'object-property-value'
this.host # OntologyIndividual
this.object_property
this.value # OntologyIndividual
type: 'data-property-value'
this.host # OntologyIndividual
this.data_property
thid.data_type
this.value 
type: 'annotation-value'
this.host # OntologyIndividual
this.annotation
this.data_type
this.value

annotation.relations

type: 'annotation-domain-class'
this.annotation
this.class
type: 'annotation-range-class'
this.annotation
this.class
type: 'annotation-parent-sub'
this.parent
this.sub
type: 'annotation-value'
this.host # OntologyAnnotation
this.annotation
this.data_type
this.value

object_property.relations

type: 'object-property-parent-sub'
this.parent
this.sub
type: 'object-property-equivalent'
this.object_properties
type: 'object-property-inverse'
this.object_properties
type: 'object-property-disjoint'
this.object_properties
type: 'object-property-domain-class'
this.object_property
this.class
type: 'object-property-range-class'
this.object_property
this.class
type: 'annotation-value'
this.host # OntologyObjectProperty
this.annotation
this.data_type
this.value

data_property.relations

type: 'data-property-equivalent'
this.data_properties
type: 'data-property-parent-sub'
this.parent
this.sub
type: 'data-property-disjoint'
this.data_properties
type: 'data-property-domain-class'
this.data_property
this.class
type: 'data-property-range-data-type'
this.data_property
this.data_type
type: 'annotation-value'
this.host # OntologyDataProperty
this.annotation
this.data_type
this.value

data_type.relations

type: 'data-property-range-data-type'
this.data_property
this.data_type
type: 'annotation-value'
this.host # OntologyDataType
this.annotation
this.data_type
this.value
fushang318 commented 11 years ago

第一轮需要展示的

所有箭头都有红底白字浮动说明 所有节点都有黄底黑字浮动说明

class.relations

type: 'parent-sub' # 父子关系
this.parent # 返回 OntologyClass
this.sub # 返回 OntologyClass

由父节点指向子节点的紫色箭头连线表示。 OWL中允许A是B的父,同时B是A的父。

type: 'equivalent' # 对等关系
this.classes # 返回包含两个 OntologyClass 对象的对象数组

由紫色箭头一来一去表示对等关系。 (逻辑上和图像效果上都相当于A是B的父,B又是A的父这种情况。)

type: 'disjoint' # 互斥关系
this.classes # 返回包含两个 OntologyClass 对象的对象数组

互斥关系不通过节点间的箭头表示,但在两个节点各自的浮动说明内会有描述 (逻辑上来说 互斥关系是无向的)

type: 'class-individual' # 所属关系
this.class # 返回 OntologyClass
this.individual # 返回 OntologyIndividual

由class节点指向individual节点的蓝色箭头表示

type: 'annotation-value'
this.host # OntologyClass
this.annotation
this.data_type
this.value

image

individual.relations

type: 'class-individual' # 所属关系
this.class # 返回 OntologyClass
this.individual # 返回 OntologyIndividual

参考class里的对应关系

type: 'individual-same' # 等同关系
this.individuals # 返回包含两个 OntologyIndividual 对象的对象数组

不以箭头表示,只在浮动说明中描述

type: 'individual-different' # 不同关系
this.individuals # 返回包含两个 OntologyIndividual 对象的对象数组

不以箭头表示,只在浮动说明中描述

type: 'object-property-value'
this.host # OntologyIndividual
this.object_property
this.value # OntologyIndividual

以浅红色箭头显示,由host指向value image

type: 'data-property-value'
this.host # OntologyIndividual
this.data_property
thid.data_type
this.value 

只显示在浮动说明中,三部分对应 host prop.name value

type: 'annotation-value'
this.host # OntologyIndividual
this.annotation
this.data_type
this.value

参考class的相同概念

image

ben7th commented 11 years ago

箭头小结: 目前只存在三种箭头: 1 class之间的父子关系(把对等关系当成互为父子关系看待),紫色箭头,父指向子。 2 individual 是 class 的实例,由 class 指向 individual 的蓝色箭头。 3 individual 的 object_prop,由 host 指向 value(另一个 individual) 的浅红色箭头。

自指的特殊情况: 1 class 可以声明自己为父 2 individual 可以声明自己的 object_prop.value 是自己