GitHub user jessehatfield opened a pull request:

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

    RYA-297 Added owl:equivalentClass inference

    If A and B are equivalent classes, then A is a subclass of B and B is a 
subclass of A. Handled the same way as owl:equivalentProperty.
    
    <!--
    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
    Modified InferenceEngine to add equivalentClass information to the subclass 
graph. (Semantics: for two classes to be equivalent means that they represent 
the same set, while for one class to be a subclass of another means that it 
represents a subset. Therefore to say that two classes are equivalent is 
identical to saying that each is a subclass of the other.) Pulled the query 
logic into a helper function because the same basic pattern is used for 
subclass, subproperty, equivalent property, and now equivalent class relations.
    
    Because subClassOf inference is already supported, this means no new 
visitor is required.
    
    Slightly edited one line in SubClassOfVisitor to avoid adding the same 
subclass relation to the FixedStatementPattern twice, which would otherwise be 
possible: equivalent classes are mutual subclasses of each other, creating a 
cycle in the subclass graph. and allowing findParents to return a set 
containing the original node. Therefore, instead of always adding a statement 
corresponding to the original type, just add the original type to the set 
returned by findParents, which will do nothing if it was already included. This 
is identical to the logic in SubPropertyOfVisitor.
    
    ### Tests
    Added two tests to InferenceEngineTest, one for classes and one for 
properties, to verify that the inference engine builds the expected 
subclass/subproperty graph given an ontology involving sub- and equivalent- 
relations. Added a test to InferenceIT that inserts schema and instance data, 
then runs a query that depends on the application of subclass and equivalent 
class inference.
    
    ### Links
    [Jira](https://issues.apache.org/jira/browse/RYA-297)
    
    ### Checklist
    - [ ] Code Review
    - [ ] Squash Commits
    
    #### People To Reivew
    @meiercaleb 

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

    $ git pull https://github.com/jessehatfield/incubator-rya 
RYA-297-equivalentClass-inference

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

    https://github.com/apache/incubator-rya/pull/184.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 #184
    
----
commit df49b04386c6e0ccb92757f31f1865c913eb85d3
Author: Jesse Hatfield <[email protected]>
Date:   2017-07-25T21:08:31Z

    RYA-297 Added owl:equivalentClass inference
    
    If A and B are equivalent classes, then A is a subclass of B and B is a 
subclass of A. Handled the same way as owl:equivalentProperty.

----


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to