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/06/26 19:58: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=16063664#comment-16063664 ] 

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

GitHub user jessehatfield opened a pull request:

    https://github.com/apache/incubator-rya/pull/174

    RYA-291 Added owl:hasValue inference

    Given a type associated with a hasValue property restriction: 1) expand queries
    for members of the type to also check for anything with the value; and 2) expand
    queries for values of that property to check for instances of the type.
    
    <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
      http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
    -->
    ## Description
    1. Inference engine now stores information about owl:hasValue property restrictions, which relate a property, a value, and a type, such that members of the type are defined to have that value for that property. (https://www.w3.org/TR/2012/REC-owl2-syntax-20121211/#Individual_Value_Restriction) These type/property/value associations can be retrieved by type or by property.
    2. HasValueVisitor rewrites queries according to the hasValue restrictions, expanding statement patterns referencing either the type or the property. Class hierarchy is considered, so if something is declared to belong to a subclass of such a type, then its value can be inferred; and if something has the property/value associated with such a type, then its membership in that type and any superclasses can be inferred. The resulting query tree is a union of the hasValue logic and the original statement pattern. Other inference visitors may still transform the original statement pattern.
    
    ### Tests
    InferenceEngineTest verifies that the correct schema is extracted from the ontology triples; HasValueVisitorTest verifies that query trees are expanded as expected; and InferenceIT verifies expected query results given ontology and instance triples.
    
    ### Links
    [Jira](https://issues.apache.org/jira/browse/RYA-291)
    
    ### Checklist
    - [ ] Code Review
    - [ ] Squash Commits
    
    #### People To Reivew
    @meiercaleb 
    @ejwhite922 

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jessehatfield/incubator-rya RYA-291-hasValue-inference

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-rya/pull/174.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #174
    
----
commit c0cc9596673904f9b9f8dea7be84de75066f73a5
Author: Jesse Hatfield <je...@parsons.com>
Date:   2017-06-26T18:06:06Z

    RYA-291 Added owl:hasValue inference
    
    Given a type associated with a hasValue property restriction: 1) expand queries
    for members of the type to also check for anything with the value; and 2) expand
    queries for values of that property to check for instances of the type.

----


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