OWL,通过数据属性定义class
OWL, define class by data property
出于大学学习的目的,我正在学习 OWL。我正在尝试根据 class 必要和充分条件自动 class 验证个人。
现在,我有一部 class 智能手机,其中有个人 "x",其中有数据 属性 "hasCores"“4 整数”。
现在我尝试自动 class 将其确认为 "fast smartphone"。我尝试通过将新 class "fast smartphone" 作为 "smartphone" 的子 class 来做到这一点。例如(相当于(智能手机和(hasCores min 2 integer))。
但这并没有查看数据属性值,在本例中为 4,但它查看了个人拥有的 "hasCores" 属性的数量。因此,如果我将 2 hasCore 属性 添加到 indivual 中,它就可以工作。但我只想要 1 个 hasCore 属性,并让推理者查看 hasCore 属性 的值。这可能吗?
提前致谢。
Now, I have a class smartphone, which has the individual "x" which has
a data property "hasCores" "4 integer".
我希望你的意思是真的
:x :hasCores "4"^^xsd:integer
其中值是具有 数据类型 xsd:integer.
的数据类型文字
这里您实际上想要的是数据类型分面推理。并非所有推理机都一定支持它,但 OWL 语言支持它。你基本上会使用像
这样的东西
FastSmartphone equivalentClass Smartphone and (hasCores only xsd:integer[>4])
my answer to Encoding mathematical properties in RDF 中有此类表达式的直接示例:
现在,您可以从两个方向进行推理。您可以执行某种必要条件,这将使您进行一致性检查。
FastSmartphone subclassOf hasCores only xsd:integer[>=4]
这意味着如果某物被断言为 FastSmartphone,那么无论它拥有多少个内核,该值都必须至少为四个。它仍然有可能没有这样的价值,如果你想防止这种情况发生,你可以做类似
的事情
Smartphone subClassOf hasCores min 1
现在,如果您想能够说,例如,一部智能手机有五个内核,从而推断它是一部快速智能手机,您需要另一个方向:
hasCores some xsd:integer[>=5] and Smartphone subClassOf FastSmartphone
(您可能只需要 ,但没有声明核心数的智能手机也将是 FastSmartphones。)
不过,如果你想定义快速智能手机为至少有四个内核的智能手机,你会说:
FastSmartphone equivalentClass Smartphone and hasCores some xsd:integer[>=4]
相关
- How to express numeric intervals in datatype property in the ontology?
- OWL's EquivalentClass vs. SubClassOf
出于大学学习的目的,我正在学习 OWL。我正在尝试根据 class 必要和充分条件自动 class 验证个人。
现在,我有一部 class 智能手机,其中有个人 "x",其中有数据 属性 "hasCores"“4 整数”。
现在我尝试自动 class 将其确认为 "fast smartphone"。我尝试通过将新 class "fast smartphone" 作为 "smartphone" 的子 class 来做到这一点。例如(相当于(智能手机和(hasCores min 2 integer))。
但这并没有查看数据属性值,在本例中为 4,但它查看了个人拥有的 "hasCores" 属性的数量。因此,如果我将 2 hasCore 属性 添加到 indivual 中,它就可以工作。但我只想要 1 个 hasCore 属性,并让推理者查看 hasCore 属性 的值。这可能吗?
提前致谢。
Now, I have a class smartphone, which has the individual "x" which has a data property "hasCores" "4 integer".
我希望你的意思是真的
:x :hasCores "4"^^xsd:integer
其中值是具有 数据类型 xsd:integer.
的数据类型文字这里您实际上想要的是数据类型分面推理。并非所有推理机都一定支持它,但 OWL 语言支持它。你基本上会使用像
这样的东西FastSmartphone equivalentClass Smartphone and (hasCores only xsd:integer[>4])
my answer to Encoding mathematical properties in RDF 中有此类表达式的直接示例:
现在,您可以从两个方向进行推理。您可以执行某种必要条件,这将使您进行一致性检查。
FastSmartphone subclassOf hasCores only xsd:integer[>=4]
这意味着如果某物被断言为 FastSmartphone,那么无论它拥有多少个内核,该值都必须至少为四个。它仍然有可能没有这样的价值,如果你想防止这种情况发生,你可以做类似
的事情Smartphone subClassOf hasCores min 1
现在,如果您想能够说,例如,一部智能手机有五个内核,从而推断它是一部快速智能手机,您需要另一个方向:
hasCores some xsd:integer[>=5] and Smartphone subClassOf FastSmartphone
(您可能只需要 ,但没有声明核心数的智能手机也将是 FastSmartphones。)
不过,如果你想定义快速智能手机为至少有四个内核的智能手机,你会说:
FastSmartphone equivalentClass Smartphone and hasCores some xsd:integer[>=4]
相关
- How to express numeric intervals in datatype property in the ontology?
- OWL's EquivalentClass vs. SubClassOf