Github user jessehatfield commented on a diff in the pull request: https://github.com/apache/incubator-rya/pull/174#discussion_r127007411 --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/RdfCloudTripleStoreConnection.java --- @@ -345,6 +346,7 @@ protected void commitInternal() throws SailException { && this.inferenceEngine != null ) { try { --- End diff -- Yeah, this is a general issue with Rya's approach to inference (for example, TransitivePropertyVisitor is applied before SubPropertyOfVisitor and SameAsVisitor, and any expansion produced by any of the three will be passed over by the others). In this case, since the original statement is preserved as one branch of the union, there's no conflict as long as the HasValueVisitor is applied first. In cases where there is a conflict, keep in mind that it only manifests when both inference rules in question actually would apply to the same query (e.g. if hasAncestor is transitive, and is a subproperty of hasRelative, and the data says A hasAncestor B has Ancestor C hasAncestor D, I don't believe a query for "?x hasRelative D" will return A). A related limitation is that each visitor only applies once, even if another visitor later produces an expansion that would be relevant. For example, if p1 and p2 are inverse properties, and we have a hasValue condition for p1, queries for p2 won't trigger the hasValue expansion.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---