I was rolling up my my sleeves and trying to dig back into writing a custom property function and had a curious thought. Can you use reasoning with a user defined property function?
Say I defined a property function that had a single input and single result ?s ex:myPropertyFunction ?o. Can I then say something like ex:myPropertyFunction rdfs:domain ex:MyClass?
That will not work in general because the predicate will be replaced with the function invocation. The rewriting done by the reasoner happens after this replacement at which point ex:myPropertyFunction will not be part of a BGP.
Nothing is changing at the moment regarding property functions. We’re not using Calcite in any of the core planning. The current planner/optimizer is specialized and very effective for our capabilities and RDF indexing approach. Calcite is being used only for rewriting queries from SPARQL to answer queries over virtual graphs.
The assured variables are the set of variables that are guaranteed to be bound by a given point in the plan.