Домен и диапазон свойства RDF для подклассов вместо экземпляров? - PullRequest
2 голосов
/ 07 октября 2019

Есть ли какой-нибудь способ заявить в RDF / RDF, что любой ресурс, имеющий данное свойство, является подклассом определенного класса? (или другой случай с объектом, а не с субъектом)

rdfs: домен (соответственно диапазон) близок к этому, но определение домена включает «экземпляр», а не «подкласс»:

rdfs: domain является экземпляром rdf: Property, который используется для указания того, что любой ресурс с данным свойством является экземпляром одного или нескольких классов. RDF Schema 1.1

В качестве примера сценария, где это необходимо (как диапазон, а не домен), представьте, что вы хотите выразить, что :John :likes :Vegetable, где :Vegetable - этоподкласс пищи.

:likes rdfs:range owl:Class будет охватывать пример, но он будет слишком общим.

:likes rdfs:range :Food будет неверным, поскольку :Vegetable не является экземпляром :Foodно подкласс.

Что-то вроде :likes rdfs:range Powerset(:Food) было бы лучше, но я не знаю, как указать это с использованием RDF и RDF.

В Java это будет:

public abstract class Person
{
    public static class Food {}

    abstract Class<? extends Food> likes();
}

Можно смоделировать это с использованием аксиом OWL с универсальным количественным определением, но мне интересно, возможно ли это без OWL, потому что у меня есть большое количество статистических данных, которые я хочу загрузить в конечную точку SPARQL, а выражение аксиом OWL в RDF увеличивает количествобольшого количества троек и усложняет практическое использование, например, запросов SPARQL.

...