You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/07/12 16:07:00 UTC

[jira] [Commented] (RYA-291) Implement owl:hasValue inference

    [ https://issues.apache.org/jira/browse/RYA-291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16084231#comment-16084231 ] 

ASF GitHub Bot commented on RYA-291:
------------------------------------

Github user meiercaleb commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/174#discussion_r126992494
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/InferenceEngine.java ---
    @@ -360,7 +362,47 @@ public void refreshGraph() throws InferenceEngineException {
                 	  }
                 	}
                 }
    -            
    +
    +            // Get a set of all property restrictions of any type
    +            iter = RyaDAOHelper.query(ryaDAO, null, OWL.ONPROPERTY, null, conf);
    --- End diff --
    
    Oof!  That refreshGraph method is getting out of control.  Maybe start compartmentalizing the refresh logic by the rule that is getting updated.  For example, the logic below could be relegated to an updateHasValue(...) method.  I think this is important, especially given that you will be more than doubling the number of rules that the inference engine needs to update.


> Implement owl:hasValue inference
> --------------------------------
>
>                 Key: RYA-291
>                 URL: https://issues.apache.org/jira/browse/RYA-291
>             Project: Rya
>          Issue Type: Sub-task
>          Components: sail
>            Reporter: Jesse Hatfield
>            Assignee: Jesse Hatfield
>
> *{{owl:hasValue}}* is used to define a property restriction representing the set of resources with a specific value for a specific predicate.
> If the ontology states that the class {{:ChildOfJohn}} represents all resources with {{:parent}} equal to {{:John}}, then the inference engine should be able to:
> 1. Rewrite a query pattern {{?X rdf:type :ChildOfJohn}} to check for resources whose {{:parent}} is {{:John}} (in addition to those explicitly stated to have type {{:ChildOfJohn}})
> 2. Rewrite a query pattern {{:Jane :parent :?Y}} to check whether :Jane has the type {{:ChildOfJohn}} (in addition to querying for any specifically stated {{:parent}} s)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)