是否可以在OWL中的表达式前面列出一个列表?类似的东西:
( :Dairy :Egg :Nut ) rdfs:subClassOf :FoodGroup .
或:
:Dairy , :Egg , :Nut rdfs:subClassOf :FoodGroup .
或者一般来说,对于一组类型为?的表达式是否存在语法糖:
:Diary rdfs:subClassOf :FoodGroup .
:Egg rdfs:subClassOf :FoodGroup .
:Nut rdfs:subClassOf :FoodGroup .
答案 0 :(得分:3)
<强>龟强>
在Turtle中,没有与object lists类似的主题列表。
写(:a :b) rdfs:subClassOf :c
之类的内容possible
但是,这不等于:a rdfs:SubClassOf :c . :b rdfs:SubClassOf :c
事实上,您在主题位置使用RDF list撰写的最有用的内容是(:a :b) a rdf:List
。
予。例如,没有句法糖。
<强> OWL 强>
使用OWL推理功能,可以实现这样的功能。
可以声明一个反向属性,然后在序列化中使用Turtle对象列表:
:inverseProperty owl:inverseOf :directProperty .
:c :inverseProperty :a, :b .
<强>限制强>
但是,这对rdfs:subClassOf
不起作用。对象属性连接个体,而不是类。 :c rdfs:superClassOf :a, :b
之类的内容将被视为与同名个人相关。
这就是OWL punning的工作原理(另见this令人大开眼界的答案)。
对于rdfs:subClassOf
的特定情况,请写[ owl:unionOf (:a :b) ] rdfs:subClassOf :c
,
如果您不仅需要:c owl:unionOf (:a :b)
或:c owl:disjointUnionOf (:a :b)
。
不幸的是,general class inclusion公理不能用曼彻斯特语法保存。