Как написать вложенный запрос DL

Я хочу написать вложенный запрос DL в Protege. Я могу выполнить простой запрос, как:

Персона и имеет значение отца

Он извлекает имя всех людей, чьим отцом является PersonA. Но я хочу, чтобы значение PersonA также было получено из некоторого запроса, например

Значение Person и hasFather (Значение Person и hasSon PersonB)

Это показывает синтаксическую ошибку в Protege. Пожалуйста, помогите мне с правильным форматом.

1 ответ

Решение

Причина того, что

Person and hasFather value (Person and hasSon value PersonB)

синтаксическая ошибка не в том, что она "вложенная", а в том, что value требует человека, но (Person and hasSon value PersonB) это класс. Если вы используете

Person and hasFather some (Person and hasSon value PersonB)

вместо этого вы должны быть все готово. Этот запрос запрашивает людей, которые являются людьми, у которых есть отец, который является человеком, и имеет человека B как сына. То есть он просит братьев и сестер человека Б, то есть других детей отца человека Б.

Например, вот запрос о семье Симпсонов, где Барт и Лиза имеют Гомера в качестве отца, а Гомер каждого из них в детстве:

запрос Симпсонов

Данные:

@prefix :      <http://www.example.org/families#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix families: <http://www.example.org/families#> .

<http://www.example.org/families>
        a       owl:Ontology .

families:Person  a  owl:Class .

families:hasFather  a  owl:ObjectProperty .

families:hasChild  a  owl:ObjectProperty .

families:Bart  a            owl:NamedIndividual , families:Person ;
        families:hasFather  families:Homer .

families:Lisa  a            owl:NamedIndividual , families:Person ;
        families:hasFather  families:Homer .

families:Homer  a          owl:NamedIndividual , families:Person ;
        families:hasChild  families:Bart , families:Lisa .

families:Milhouse  a  owl:NamedIndividual , families:Person .
Другие вопросы по тегам