Rdf Protege 5:如何通过个人的数据属性推断其类成员身份?

Rdf Protege 5:如何通过个人的数据属性推断其类成员身份?,rdf,owl,protege,pellet,Rdf,Owl,Protege,Pellet,我使用OWL/XML语法在Protégé5中创建了一个本体。我已经包括了一个类Cerveza和另一个类颜色等。在“颜色”下,我有3个子类:Claro(浅)、Medio(中)和Oscuro(深): 我创建了一个名为EBC xsd:int的数据属性,它的域是Cerveza类: 因此,我对Claro课程进行了限制,使其最多有12个EBC学位: 然后我创建一个名为kk的个体,并断言属性EBC=10: 我启动了reasoner Pellet,它推断出,由于kk有EBC,kk必须属于Cerveza类

我使用OWL/XML语法在Protégé5中创建了一个本体。我已经包括了一个类Cerveza和另一个类颜色等。在“颜色”下,我有3个子类:Claro(浅)、Medio(中)和Oscuro(深):

我创建了一个名为EBC xsd:int的数据属性,它的域是Cerveza类:

因此,我对Claro课程进行了限制,使其最多有12个EBC学位:

然后我创建一个名为kk的个体,并断言属性EBC=10:

我启动了reasoner Pellet,它推断出,由于kk有EBC,kk必须属于Cerveza类。但我希望能推断出kk属于Color类/claro子类

此设计有什么问题?

您混淆了数据类型限制()和数据属性基数限制()

而不是:

Class: Claro
  SubClassOf: EBC max 12 xsd:int
你应该写:

Class: Claro
  EquivalentTo: EBC some xsd:int[<= 12]
Class:Claro
EquivalentTo:EBC some xsd:int[您混淆了数据类型限制()和数据属性基数限制()

而不是:

Class: Claro
  SubClassOf: EBC max 12 xsd:int
你应该写:

Class: Claro
  EquivalentTo: EBC some xsd:int[<= 12]
Class:Claro

EquivalentTo:EBC some xsd:int[说“最大12个EBC度”和“最大12个EBC度”是有区别的-你在本体中犯的错误
EBC max 12 int
表示“最大12个EBC度”,但你的数据
KK EBC 10
表示“KK的EBC度值为12”。说“最大12个EBC度”是有区别的vs“maximum degrees of 12”-您在本体中犯的错误
EBC max 12 int
意味着“maximum 12 EBC degrees of 12”,但是您的数据
KK EBC 10
意味着“KK拥有EBC degrees of value 12”。感谢Stanislav。我应该如何做一个间隔?我写道:Class:Medio equivalento:EBC some xsd:int[>12]和xsd:int[47]但这两个类中都有12岁以上的人。
EBC-some-xsd:int[>12,<47]
再次感谢,但我仍然在使用Medio(EBC-some-xsd:int[>12,<47])一个EBC为“80”的人˄xsd:intIs
EBC
一个函数属性?我的意思是,这个人对于
EBC
属性有两个值吗?谢谢Stanislav。我应该如何做一个间隔?我写道:Class:Medio equivalento:EBC一些xsd:int[>12]和xsd:int[47]但这是一个共同点。我在两个类中都有12个以上的个体。
EBC some xsd:int[>12,<47]
再次感谢,但我仍然在使用Medio(EBC some xsd:int[>12,<47])一个拥有EBC“80”˄xsd:intIs
EBC
一个函数属性的个体?我的意思是,这个个体对于
EBC
属性有两个值吗?