Special case treatment of shape validation failure?

Dear all,

I have been entertaining the idea of use shape constraints in query 
execution planning. There are some papers about that too.

Then, it occurred to me that there is a special case of that, where the 
query contains a graph pattern that itself fails validation, and thus would 
return no results. It would probably be a lot faster to validate the graph 
pattern and return no results than to create a plan, execute the plan and 
then arrive at the same conclusion. 

Then, there's the open world and all that. Say that the dataset has been 
created under an open world assumption, whereas the query engine operates 
under shape constraints and thus assumes a closed world. It seems 
legitimate for a query engine to do so, but in that case, it should 
probably let the user know somehow that the query was not actually 
evaluated against the dataset, but rather returned no result because the 
graph pattern failed shape validation.

Should we have some mechanism to communicate that? On the protocol? Or 
should this be kept entirely as an implementation detail that would not be 
communicated? Or doesn't it make sense at all for the query engine and 
dataset creation to be operating under mutually exclusive assumptions?

Cheers,

Kjetil

Received on Friday, 30 April 2021 00:06:29 UTC