Список перед выражением в OWL?

Возможно ли иметь список перед выражением в OWL? Что-то типа:

( :Dairy :Egg :Nut ) rdfs:subClassOf :FoodGroup .

or:

:Dairy , :Egg , :Nut rdfs:subClassOf :FoodGroup .

Или вообще есть синтаксический сахар для группы выражений вида?:

:Diary rdfs:subClassOf :FoodGroup .
:Egg rdfs:subClassOf :FoodGroup .
:Nut rdfs:subClassOf :FoodGroup .

person Siegmeyer    schedule 14.04.2018    source источник


Ответы (1)


Черепаха

В Turtle нет списков тем, которые были бы похожи на списки объектов .

можно написать что-то вроде (:a :b) rdfs:subClassOf :c.
Однако это не так. равно :a rdfs:SubClassOf :c . :b rdfs:SubClassOf :c.
Фактически, самое полезное, что вы можете написать, используя RDF list в позиции темы (:a :b) a rdf:List.

То есть нет никакого синтаксического сахара.

СОВА

Используя возможности вывода OWL, можно добиться чего-то подобного.

Можно объявить обратное свойство, а затем использовать списки объектов Turtle в сериализации:

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

обратный

Ограничения

Однако это не работает для rdfs:subClassOf. Свойства объекта связывают людей, а не классы. Что-то вроде :c rdfs:superClassOf :a, :b будет рассматриваться как относящееся к лицам с тем же именем.

каламбур

Вот как работает каламбур OWL (см. также этот поучительный ответ).

В конкретном случае rdfs:subClassOf напишите [ owl:unionOf (:a :b) ] rdfs:subClassOf :c,
если вам не нужны просто :c owl:unionOf (:a :b) или :c owl:disjointUnionOf (:a :b).

gci

К сожалению, общие аксиомы включения классов нельзя сохранить в манчестерском синтаксисе.

person Stanislav Kralin    schedule 14.04.2018
comment
Кстати: lists.w3.org/Archives/Public/ public-sparql-dev/2015JanMar/. И, очевидно, вы можете написать что-то вроде ?c ^rdfs:subClassOf :a, :b в SPARQL. - person Stanislav Kralin; 15.04.2018