Skip to content
This repository has been archived by the owner on Feb 16, 2022. It is now read-only.

don't assume all predicates are transitive. #28

Open
superfell opened this issue May 6, 2019 · 1 comment
Open

don't assume all predicates are transitive. #28

superfell opened this issue May 6, 2019 · 1 comment

Comments

@superfell
Copy link
Contributor

Currently the query engine assumes that all predicates are transitive, unless it knows the target object is a literal. This is a pretty expensive default. It would be better to only treat predicates explicitly declared as transitive as transitive. the owl:TransitiveProperty predicate seems like the best thing to use to indicate that.
The query rewriter could be updated to fetch this property for all the predicates used in the query, and then pass this info along with the rest of the query structure.

@darrengarvey
Copy link

Agreed that's the ideal way to implement this.

The kleene star property path would also be useful for ad-hoc transitive queries. In general a user should have to be explicit about transitivity though so using owl:TransitiveProperty is more user-friendly.

One nice-to-have would be to ensure the matched edges are returned in the order that they are traversed. I don't see any mention in the SPARQL specs that this is an expected guarantee.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants