Явно утверждая, что все переходные свойства SubClassOf запрещают возможность запроса для прямого потомка - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть вопрос к этому старому ответу в этом { ссылка }.

Вопрос касается запросов ко всем суперклассам класса. Или наоборот о запросах для всех потомков классов суперкласса.

Сначала я думал о том, чтобы сделать что-то в соответствии с рекомендациями { ссылка }

Передайте ваши данные RDF через аргумент RDF / RDFS, чтобы переадресовать все цепочки в цепочку и утвердить их в вашей базе данных RDF.

Но вот мой вопрос: не помешает ли этот подход мне возможность запроса для всех прямых дочерних классов данного класса ??

Я представляю следующий случай.

Food
  Pizza 
    -SubClassOf Food
    VeggiePizza 
      -SubClassOf Food
      -SubClassOf Pizza
      OlivePizza
       -SubClassOf Food
       -SubClassOf Pizza
       -SubClassOf VeggiePizza
    MeatPizza 
      -SubClassOf Food
      -SubClassOf Pizza
      SausagePizza
       -SubClassOf Food
       -SubClassOf Pizza
       -SubClassOf MeatPizza

С помощью этих явных утверждений я мог бы получить все классы-потомки Food с чем-то вроде SELECT * {?x SubClassOf <Food>}

Но что, если бы захотелось просто получить прямых детей от Food? Разве такой запрос больше невозможен?

(PS. Я понимаю, что существуют другие подходы, например, вместо того, чтобы явно указывать все вложения, я мог бы использовать только SubClassOf для прямого Parent каждого класса, а затем запросить с помощью SELECT ?subClass WHERE { ?x rdfs:subClassOf* <Food> .} Но часть моего вопроса заключается в том, чтобы понять преимущества и недостатки каждого подхода. И я хотел подтвердить, что я правильно понял возможный недостаток вышеуказанного подхода).

...