2016-11-30 69 views
0

如果我的问题太基本了,但是在一段时间寻找答案之后,我无处可去,但是在这里,我很抱歉。如何在OWL2中声明一个自定义类关系

假设本体中的(在OWL 2文件表示)以下类别:

<owl:Class rdf:ID="ClasseOne"> 
</owl:Class> 

<owl:Class rdf:ID="ClasseTwo"> 
</owl:Class> 

什么我是ClassOne 1000个实例和ClassTwo 5000个实例。在我的现实所有ClassOne实例是以相同的方式相关(假设关系被命名为“isRelatedTo”)到所有ClassTwo的实例。

我的想法是声明一个类关系,并在声明ClassOne中使用它,而不是在每个ClassOne实例中声明一个ObjectProperty。

如何做到这一点?

在此先感谢!

+0

本体中的关系应该用对象属性表示。 –

+0

本体论中的关系描述了个体彼此相关的方式。关系通常可以直接在个人之间表达(本文有作者菲利普•洛德)或概念之间(一篇文章有​​作者一个人);在后一种情况下,这描述了概念的所有个体之间的关系。 –

+0

@ M.Sarmini:谢谢你的回复。是的,这也是我的理解,但你能想象有1000个人拥有5000个ObjectProperties吗?如果我必须将'ClassOne'的每个实例与'ClassTwo'的其他5000个实例关联起来,那将会发生什么。我正在寻找的是一种关联类的方法,因此所有的个人都会隐式地分享这些关系,就像发生在例如'rdfs:subClassOf'中一样。所以,你说的是:没有办法完成我想要的。是这样吗? – AlexSC

回答

2

类与OWL中的属性无关,除了包含/等价。通常,A类别的个人与类别的个人有关,其性质为p,例如, A(a1), B(b1), p(a1, b1)陈述个人的个人a1p有关联到类别B的个人b1

通过使用OWL类表达式作为超类的子类公理,您可以表达与A的任何个人关系为p的关系。

Class: A SubClassOf: p some B

(曼彻斯特OWL语法在这里)

注意,这并不一定意味着周围的其他方式,即方向问题。

+0

感谢您的回答。如果我理解正确,那么上面描述的是'A'(a1,a2,a3,...)的所有实例都与'B'(b1,b2,b3,...)的所有实例隐式相关。是吗?是'ObjectProperty'吗? – AlexSC

+0

因此,'p一些B'作为一个匿名类在这里工作。是对的吗?如果我需要其他类的相同行为会怎么样?像“A”的所有个体都与“B”,“C”和“D”的所有个体隐含相关?我可以在这里有多重继承吗? – AlexSC

+0

@AlexSC是的,p是我例子中的一个对象属性。是的,这是一个匿名课程。是的,您可以添加多个子类语句或使用交叉点'(p some B)和(s some some C)and ...' – AKSW

相关问题