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/08/23 16:24:00 UTC

[jira] [Commented] (RYA-300) Implement owl:oneOf inference

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

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

GitHub user ejwhite922 opened a pull request:

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

    RYA-300 Added owl:oneOf inference.

    ## Description
    Inference applies owl:oneOf semantics for queries including statement patterns of the form "?x rdf:type :DefinedClass".
    
    OWL provides a construct for defining a range of data values, namely an enumerated datatype. This datatype format makes use of the owl:oneOf construct, that is also used for describing an enumerated class. In the case of an enumerated datatype, the subject of owl:oneOf is a blank node of class owl:DataRange and the object is a list of literals. Unfortunately, we cannot use the rdf:parseType="Collection" idiom for specifying the literal list, because RDF requires the collection to be a list of RDF node elements. Therefore we have to specify the list of data values with the basic list constructs rdf:first, rdf:rest and rdf:nil.
    
    The InferenceEngine, at refresh time, stores information about owl:oneOf. It stores a mapping of each type that has an enumeration. These mapped definitions can then be accessed by the method: getEnumeration(Resource).
    
    OneOfVisitor processes statement patterns of the form "?x rdf:type :T2", and if :T2 is the value type for any owl:oneOf restriction according to the inference engine, it replaces the statement pattern with a binding set assignment of all the enumeration items
    
    RdfCloudTripleStoreConnection calls the visitor along with the other inference logic.
    
    Added a simple example of a query that relies on this inference to MongoRyaDirectExample.
    
    ### Tests
    Unit tests
    
    ### Links
    [Jira](https://issues.apache.org/jira/browse/RYA-300)
    
    ### Checklist
    - [ ] Code Review
    - [ ] Squash Commits
    
    #### People To Review
    @jessehatfield 
    @meiercaleb 
    @isper3at 
    @pujav65 

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

    $ git pull https://github.com/ejwhite922/incubator-rya RYA-300_OneOfInference

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

    https://github.com/apache/incubator-rya/pull/215.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 #215
    
----
commit 825f1af7e1f9c84b46c02243aa358201cb786b4b
Author: eric.white <er...@parsons.com>
Date:   2017-08-23T15:08:58Z

    RYA-300 Added owl:oneOf inference.

----


> Implement owl:oneOf inference
> -----------------------------
>
>                 Key: RYA-300
>                 URL: https://issues.apache.org/jira/browse/RYA-300
>             Project: Rya
>          Issue Type: Sub-task
>          Components: sail
>            Reporter: Jesse Hatfield
>            Assignee: Eric White
>
> *{{owl:oneOf}}* defines an enumeration by associating a class with a list of resources which belong to that class.
> If the ontology states that {{:PrimaryColor}} is the class representing the enumeration {{(:Red, :Green, :Blue)}} , then a query of the form {{?x rdf:type :PrimaryColor}} should be rewritten to find bindings {{:Red}} , {{:Green}} , and {{:Blue}} for {{?x}}.



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