We can define the followin property chain:
SubObjectPropertyOf(
ObjectPropertyChain( :hasParent :hasParent )
:hasGrandparent
)
And using a reasoner would add the hasGrandparent relation accordingly. This process is obviously reasoning.
I can define a SPARQL query like this that uses the same knowledge and therefore (also do reasoning) about who a grandparent is:
SELECT ?person ?grandparent
WHERE {
?person x:hasParent ?x.
?x x:hasParent ?grandparent.
}
Now I would get a list of a ?person and a ?grandparent and add them with the following relationship to the RDF data model:
?person :hasGrandparent ?grandparent
This would obviously result in the same as done with the property chain and a reasoner.
Following this way of thought, I would say that both are a way of reasoning. In both cases, I reason who is a grandparent. So I would say exciting this SPARQL query can be considered as reasoning since I made implicit knowledge explicit. This is done in both cases. So would it be wrong to say this is reasoning, and not inference? Any why? Any sources about this?
People often argue that SPARQL queries are only inference.