在 OWL 中的表达式前面列出?

List in front of the expression in OWL?

是否可以在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 .

乌龟

在 Turtle 中,没有类似于 object lists 的主题列表。

possible写成(:a :b) rdfs:subClassOf :c.
但是,这不等于 :a rdfs:SubClassOf :c . :b rdfs:SubClassOf :c.
事实上,在主题位置使用 RDF list 可以写出的最有用的东西是 (:a :b) a rdf:List.

我。即,没有 syntactic 糖。

OWL

使用 OWL 推理能力,有可能实现这样的目标。

可以声明一个逆 属性,然后在序列化中使用 Turtle 对象列表:

:inverseProperty owl:inverseOf :directProperty .
:c :inverseProperty :a, :b .

限制

但是,这不适用于 rdfs:subClassOf。对象属性连接个人,而不是 类。 :c rdfs:superClassOf :a, :b 之类的内容将被视为与同名 个人.

相关

这就是OWL punning works (see also this令人大开眼界的回答。

对于 rdfs:subClassOf 的特殊情况,写 [ owl:unionOf (:a :b) ] rdfs:subClassOf :c,
如果您不需要 :c owl:unionOf (:a :b):c owl:disjointUnionOf (:a :b).

不幸的是,general class inclusion 公理无法保存在曼彻斯特语法中。