为了我的单身学习目的而学习OWL。我试图根据必要的子类自动对个体进行分类。足够的条件。
现在,我有一款智能手机,它有个人" x"它有一个数据属性" hasCores" " 4整数"。
现在我尝试将其自动归类为快速智能手机"。我尝试通过制作新课程"快速智能手机"作为"智能手机"的子类。例如(相当于(智能手机和(hasCores min 2整数))。
但是这并没有看到数据属性值,对于这个实例是4,但是它会查看" hasCores"的数量。个人拥有的财产。因此,如果我将2个hasCore属性添加到它的工作原理。但是我只需要1个hasCore属性,并让理由器查看hasCore属性的值。这甚至可能吗?
提前致谢。
答案 0 :(得分:3)
现在,我有一款智能手机,它有个人“x” 数据属性“hasCores”“4 integer”。
我希望你的意思是
:x :hasCores "4"^^xsd:integer
其中值是数据类型的文字,其中数据类型 xsd:integer 。
您实际上想要的这里是数据类型方面推理。并非所有的reasoners都必须支持它,但它在OWL语言中得到支持。你基本上使用像
这样的东西FastSmartphone equivalentClass 智能手机和(仅限hasCores xsd:整数[> 4] )
在my answer到Encoding mathematical properties in RDF中有这种表达方式的直接示例:
现在,您可以通过两个方向进行推理。您可以执行一些必要的条件,这将使您进行一致性检查。
FastSmartphone subclassOf hasCores 仅 xsd:整数[> = 4]
这意味着如果某些东西被断言为FastSmartphone,那么无论它拥有多少个核心,该值必须至少为4。它仍然可能没有这样的价值,如果你想阻止它,你可能会做类似的事情
智能手机 subClassOf hasCores min 1
现在,如果您希望能够说明,例如,智能手机有五个内核,从而推断它是一个FastSmartphone,那么您需要另一个方向:
hasCores 某些 xsd:整数[> = 5] 和智能手机 subClassOf FastSmartphone
(您可能希望仅,但是没有声明核心数量的智能手机也将是FastSmartphone。)
但是,如果您尝试定义快速智能手机作为至少拥有四个核心的智能手机,那么您只需说:
FastSmartphone equivalentClass 智能手机和 hasCores 一些 xsd:整数[> = 4]