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.
---

Reply via email to