Онтологии. Получают ли суперклассы экземпляры своих подклассов?

Мой вопрос о наследовании суперкласса. Мое понимание говорит, что если у меня есть экземпляры, которые принадлежат к классу B, то класс A, который является родительским классом класса B, также будет иметь эти экземпляры. Например: предположим, у меня есть суперкласс Car и два класса подклассов Sedan и SUV. Экземпляры классов Sedan и SUV также являются экземплярами класса Car, это правильно? Если это так, то я не вижу никакой отдачи от моего запроса sparql, когда говорю "дай мне все экземпляры класса Car". Я что-то здесь упускаю?

Я использую редактор Topbraid.

2 ответа

Решение

На самом деле это определение суперкласса / подкласса - что все экземпляры подкласса являются экземплярами суперкласса.

Не знаю, почему не работает запрос sparql. Я думаю, это сработает, только если двигатель работает.

Если вы хотите использовать подклассы для вашего запроса SPARQL без необходимости запуска механизма вывода, вы можете использовать стандартные пути свойств SPARQL, в частности транзитивный оператор:

SELECT *
WHERE {
   ?cls rdfs:subClassOf* :ClassA .
   ?inst a ?cls .
}

Первый тройной шаблон возвращает все подклассы:ClassA в корень. Второй тройной шаблон получает экземпляры всех этих классов, фактически получая ту же самую операцию подчинения, которую выполняет рассуждатель.

Другие вопросы по тегам