Причина, по которой
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 как сына. То есть, он просит братьев и сестер человека B, то есть других детей отца B отца.
Например, вот запрос о семье Симпсонов, где Барт и Лиза каждый есть Гомер, как их отец, и Гомер каждый из них, как ребенок:
![simpsons query](https://i.stack.imgur.com/U3H2y.png)
Эти данные:
@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 .