You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by jessehatfield <gi...@git.apache.org> on 2017/08/24 02:13:22 UTC

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

GitHub user jessehatfield opened a pull request:

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

    RYA-294 owl:someValuesFrom inference

    <!--
    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
    Inference applies owl:someValuesFrom semantics for queries including statement patterns of the form "?x rdf:type :DefinedClass".
    
    An owl:someValuesFrom property restriction is an existential class expression: it defines type T1 to be the set of individuals, such that, for a given property p and type T2, there is at least one value of type T2 for that property, i.e. for any subject belonging to T1 there exists a triple whose predicate is p and whose object belongs to T2. Therefore, if an individual is known to belong to the value type (T2), then any individual having it as a value for property p by definition belongs to T1. This is similar to rdfs:domain except that it only applies when the object of the triple belongs to the appropriate class expression. It is the converse of owl:allValuesFrom, in which the subject's type and the predicate are used to infer the object's type.
    
    (It's also theoretically true that if something belongs to the set defined by owl:someValuesFrom, then there must exist some individual which is the value and belongs to that type. But we don't have a direct way to use that implication to answer queries, so it is ignored for now.)
    
    InferenceEngine stores someValuesFrom information nearly identically to allValuesFrom information, except that it can be accessed by the type of the restriction rather than the type of the value. Some edits to allValuesFrom logic for consistency/simplicity/reuse.
    
    SomeValuesFromVisitor processes statement patterns of the form "?x rdf:type :T1", and if :T2 is the type of an owl:someValuesFrom restriction according to the inference engine, it replaces the statement pattern with a union: of 1) the same statement pattern; and 2) a subquery of the form "?y rdf:type :T2. ?x :p ?y." for the appropriate (restriction type, property) pairs.
    
    RdfCloudTripleStoreConnection adds this to its list of visitors to call on a query.
    
    Added an example to MongoRyaDirectExample, using a slightly modified piece of the LUBM example schema (can't use the exact formulation from LUBM because it relies on composing intersection and property restriction logic, where Rya will not presently apply both).
    
    ### Tests
    Unit test to verify that InferenceEngine stores and returns the schema; unit test to verify that type queries are rewritten appropriately; integration test to verify correct results for sample ontology+instances+query.
    
    ### Links
    [Jira](https://issues.apache.org/jira/browse/RYA-294)
    
    ### Checklist
    - [ ] Code Review
    - [ ] Squash Commits
    
    #### People To Reivew
    @meiercaleb @ejwhite922 @isper3at @pujav65 


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

    $ git pull https://github.com/jessehatfield/incubator-rya RYA-294-someValuesFrom-inference

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

    https://github.com/apache/incubator-rya/pull/217.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 #217
    
----
commit 870bc57f909cb76ed9603ad2a27ff9824e4be0c7
Author: Jesse Hatfield <je...@parsons.com>
Date:   2017-08-24T01:14:48Z

    RYA-294 owl:someValuesFrom inference

----


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by ejwhite922 <gi...@git.apache.org>.
Github user ejwhite922 commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135117970
  
    --- Diff: extras/indexingExample/src/main/java/MongoRyaDirectExample.java ---
    @@ -522,6 +523,59 @@ public static void testIntersectionOfInference(final SailRepositoryConnection co
             Validate.isTrue(resultHandler.getCount() == 2);
         }
     
    +    public static void testSomeValuesFromInference(final SailRepositoryConnection conn, final Sail sail) throws MalformedQueryException, RepositoryException,
    +    UpdateExecutionException, QueryEvaluationException, TupleQueryResultHandlerException, InferenceEngineException {
    +        final String lubm = "http://swat.lehigh.edu/onto/univ-bench.owl#";
    --- End diff --
    
    I think it's:    ...swat.**cse**.lehigh.edu.....


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by ejwhite922 <gi...@git.apache.org>.
Github user ejwhite922 commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135118191
  
    --- Diff: sail/src/test/java/org/apache/rya/rdftriplestore/inference/InferenceIT.java ---
    @@ -48,6 +50,8 @@
     import junit.framework.TestCase;
     
     public class InferenceIT extends TestCase {
    +    private final static String LUBM = "http://swat.lehigh.edu/onto/univ-bench.owl#";
    --- End diff --
    
    I think it's:    ...swat.**cse**.lehigh.edu.....


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya issue #217: RYA-294 owl:someValuesFrom inference

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit commented on the issue:

    https://github.com/apache/incubator-rya/pull/217
  
    
    Refer to this link for build results (access rights to CI server needed): 
    https://builds.apache.org/job/incubator-rya-master-with-optionals-pull-requests/447/



---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya issue #217: RYA-294 owl:someValuesFrom inference

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit commented on the issue:

    https://github.com/apache/incubator-rya/pull/217
  
    
    Refer to this link for build results (access rights to CI server needed): 
    https://builds.apache.org/job/incubator-rya-master-with-optionals-pull-requests/455/



---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by ejwhite922 <gi...@git.apache.org>.
Github user ejwhite922 commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135034229
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/InferenceEngine.java ---
    @@ -1220,6 +1266,71 @@ public void setSchedule(final boolean schedule) {
         }
     
         /**
    +     * Given some schema mapping types to (type, property) pairs that somehow imply the key type,
    +     * and given a particular type being queried for, expand the combinations of types and
    +     * properties that can imply the query type by including any pairs that could imply subtypes of
    +     * the query type (using the subclass graph), and by expanding each property into a set of all
    +     * subproperties that imply it (using the subproperty graph). Does not consider subtypes of
    +     * potential triggering types.
    +     * @param queryType The type whose possible derivations are needed
    +     * @param schemaMap Map of schema information such that each key represents a type that can
    +     *      somehow be derived from (other type x property) combinations, and the value provides
    +     *      those combinations that can be used for the implication.
    +     * @return Combinations of types and properties that can directly or indirectly imply the query
    +     *      type according to the schema provided and the subclass/superproperty graphs. Any
    +     *      individual type/property combination is sufficient.
    +     */
    +    private Map<Resource, Set<URI>> getTypePropertyImplyingType(final Resource queryType, final Map<Resource, Map<Resource, URI>> schemaMap) {
    +        final Map<Resource, Set<URI>> implications = new HashMap<>();
    +        if (schemaMap != null) {
    +            // Check for any subtypes which would in turn imply the type being queried for
    +            final HashSet<Resource> queryTypes = new HashSet<>();
    +            queryTypes.add(queryType);
    +            if (queryType instanceof URI) {
    +                queryTypes.addAll(getSubClasses((URI) queryType));
    +            }
    +            for (final Resource querySubType : queryTypes) {
    +                if (schemaMap.containsKey(querySubType)) {
    +                    final Map<Resource, URI> otherTypeToProperty = schemaMap.get(querySubType);
    +                    for (final Resource otherType : otherTypeToProperty.keySet()) {
    +                        if (!implications.containsKey(otherType)) {
    +                            implications.put(otherType, new HashSet<>());
    +                        }
    +                        final URI property = otherTypeToProperty.get(otherType);
    +                        implications.get(otherType).add(property);
    --- End diff --
    
    Check that property isn't null before adding.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

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


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya issue #217: RYA-294 owl:someValuesFrom inference

Posted by jessehatfield <gi...@git.apache.org>.
Github user jessehatfield commented on the issue:

    https://github.com/apache/incubator-rya/pull/217
  
    Added option to disable someValuesFrom inference. Added null checks to underlying methods, documented behavior in calling methods.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by meiercaleb <gi...@git.apache.org>.
Github user meiercaleb commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135061758
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/InferenceEngine.java ---
    @@ -878,6 +902,28 @@ private static void addStatementEdge(final Graph graph, final String edgeName, f
             return findParents(subClassOfGraph, type);
         }
     
    +    /**
    +     * Returns all superproperties of the specified property based on the
    +     * internal subproperty graph.
    +     * @param property the property {@link URI} to find superproperties for.
    +     * @return the {@link Set} of {@link URI} properties that are superproperties
    +     * of the specified {@code property}. Returns an empty set if nothing was found.
    +     */
    +    public Set<URI> getSuperProperties(final URI property) {
    --- End diff --
    
    Null check.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya issue #217: RYA-294 owl:someValuesFrom inference

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit commented on the issue:

    https://github.com/apache/incubator-rya/pull/217
  
    
    Refer to this link for build results (access rights to CI server needed): 
    https://builds.apache.org/job/incubator-rya-master-with-optionals-pull-requests/437/



---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by meiercaleb <gi...@git.apache.org>.
Github user meiercaleb commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135061720
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/InferenceEngine.java ---
    @@ -878,6 +902,28 @@ private static void addStatementEdge(final Graph graph, final String edgeName, f
             return findParents(subClassOfGraph, type);
         }
     
    +    /**
    +     * Returns all superproperties of the specified property based on the
    +     * internal subproperty graph.
    +     * @param property the property {@link URI} to find superproperties for.
    +     * @return the {@link Set} of {@link URI} properties that are superproperties
    +     * of the specified {@code property}. Returns an empty set if nothing was found.
    +     */
    +    public Set<URI> getSuperProperties(final URI property) {
    +        return findChildren(subPropertyOfGraph, property);
    +    }
    +
    +    /**
    +     * Returns all subproperties of the specified property based on the
    +     * internal subproperty graph.
    +     * @param property the property {@link URI} to find subproperties for.
    +     * @return the {@link Set} of {@link URI} properties that are subproperties
    +     * of the specified {@code property}. Returns an empty set if nothing was found.
    +     */
    +    public Set<URI> getSubProperties(final URI property) {
    --- End diff --
    
    Null check.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by ejwhite922 <gi...@git.apache.org>.
Github user ejwhite922 commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135021324
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/SomeValuesFromVisitor.java ---
    @@ -0,0 +1,110 @@
    +package org.apache.rya.rdftriplestore.inference;
    +/*
    + * 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.
    + */
    +
    +import java.util.Map;
    +import java.util.Set;
    +import java.util.UUID;
    +
    +import org.apache.rya.api.RdfCloudTripleStoreConfiguration;
    +import org.apache.rya.api.utils.NullableStatementImpl;
    +import org.apache.rya.rdftriplestore.utils.FixedStatementPattern;
    +import org.openrdf.model.Resource;
    +import org.openrdf.model.URI;
    +import org.openrdf.model.vocabulary.OWL;
    +import org.openrdf.model.vocabulary.RDF;
    +import org.openrdf.query.algebra.StatementPattern;
    +import org.openrdf.query.algebra.Var;
    +
    +/**
    + * Expands the query tree to account for any existential class expressions (property restrictions
    + * using owl:someValuesFrom) in the ontology known to the {@link InferenceEngine}.
    + *
    + * Operates on {@link StatementPattern} nodes whose predicate is rdf:type and whose object is a
    + * defined type (not a variable) which corresponds to a someValuesFrom expression in the ontology.
    + * When applicable, replaces the node with a union of itself and a subtree that matches any instance
    + * that can be inferred to have the type in question via the semantics of owl:someValuesFrom.
    + *
    + * An existential class expression references a predicate and a value class, and represents the set
    + * of individuals with at least one value of that class for that predicate. Therefore, membership
    + * in the class expression should be inferred for any individual which is the subject of a triple
    + * with that predicate and with an object belonging to the value type. This implication is similar
    + * to rdfs:domain except that it only applies when the object of the triple belongs to a specific
    + * type.
    + *
    + * (Note: The inference in the other direction would be that, if an individual is declared to belong
    + * to the class expression, then there exists some other individual which satisfies the requirement
    + * that there is at least one value of the appropriate type. However, this other individual may be
    + * any arbitrary resource, explicitly represented in the data or otherwise, so this implication is
    + * not used.)
    + */
    +public class SomeValuesFromVisitor extends AbstractInferVisitor {
    +    /**
    +     * Creates a new {@link SomeValuesFromVisitor}, which is enabled by default.
    +     * @param conf The {@link RdfCloudTripleStoreConfiguration}.
    +     * @param inferenceEngine The InferenceEngine containing the relevant ontology.
    +     */
    +    public SomeValuesFromVisitor(RdfCloudTripleStoreConfiguration conf, InferenceEngine inferenceEngine) {
    +        super(conf, inferenceEngine);
    +        include = true;
    --- End diff --
    
    A config value for SomeValuesFrom inferencing should be added to RdfCloudTripleStoreConfiguration.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by meiercaleb <gi...@git.apache.org>.
Github user meiercaleb commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135061587
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/InferenceEngine.java ---
    @@ -1220,6 +1266,71 @@ public void setSchedule(final boolean schedule) {
         }
     
         /**
    +     * Given some schema mapping types to (type, property) pairs that somehow imply the key type,
    +     * and given a particular type being queried for, expand the combinations of types and
    +     * properties that can imply the query type by including any pairs that could imply subtypes of
    +     * the query type (using the subclass graph), and by expanding each property into a set of all
    +     * subproperties that imply it (using the subproperty graph). Does not consider subtypes of
    +     * potential triggering types.
    +     * @param queryType The type whose possible derivations are needed
    +     * @param schemaMap Map of schema information such that each key represents a type that can
    +     *      somehow be derived from (other type x property) combinations, and the value provides
    +     *      those combinations that can be used for the implication.
    +     * @return Combinations of types and properties that can directly or indirectly imply the query
    +     *      type according to the schema provided and the subclass/superproperty graphs. Any
    +     *      individual type/property combination is sufficient.
    +     */
    +    private Map<Resource, Set<URI>> getTypePropertyImplyingType(final Resource queryType, final Map<Resource, Map<Resource, URI>> schemaMap) {
    +        final Map<Resource, Set<URI>> implications = new HashMap<>();
    +        if (schemaMap != null) {
    +            // Check for any subtypes which would in turn imply the type being queried for
    +            final HashSet<Resource> queryTypes = new HashSet<>();
    +            queryTypes.add(queryType);
    +            if (queryType instanceof URI) {
    +                queryTypes.addAll(getSubClasses((URI) queryType));
    +            }
    +            for (final Resource querySubType : queryTypes) {
    +                if (schemaMap.containsKey(querySubType)) {
    +                    final Map<Resource, URI> otherTypeToProperty = schemaMap.get(querySubType);
    +                    for (final Resource otherType : otherTypeToProperty.keySet()) {
    +                        if (!implications.containsKey(otherType)) {
    +                            implications.put(otherType, new HashSet<>());
    +                        }
    +                        final URI property = otherTypeToProperty.get(otherType);
    +                        implications.get(otherType).add(property);
    +                        // Also add subproperties that would in turn imply the property
    +                        implications.get(otherType).addAll(getSubProperties(property));
    +                    }
    +                }
    +            }
    +        }
    +        return implications;
    +    }
    +
    +    /**
    +     * For a given type, return information about any owl:someValuesFrom restriction that could
    +     * imply an individual's membership in that type: When a property restriction R applies to
    +     * property p and states "R owl:someValuesFrom T", then whenever the object of a triple belongs
    +     * to T, and the predicate is p, then the subject of the triple is implied to have the type R
    +     * (it belongs to the class defined by the restriction).
    +     * @param restrictionType The type to be inferred, which is the type of the subject of the
    +     *      triple, or the type for which all members are stated to have some value of the
    +     *      appropriate type. Takes class hierarchy into account, so possible inferences include
    +     *      any ways of inferring subtypes of the restriction type, and object types that trigger
    +     *      inference include any subtypes of relevant value types. Also considers property
    +     *      hierarchy, so properties that trigger inference will include subproperties of those
    +     *      referenced by relevant restrictions.
    +     * @return A map from object type (the object of the someValuesFrom condition or the subtype of
    +     *      such a type) to the set of properties (including any property referenced by such a
    +     *      restriction and all of its subproperties) such that for any individual which belongs to
    +     *      the object type, any subject which has some value of that type for that property belongs
    +     *      to the restriction type.
    +     */
    +    public Map<Resource, Set<URI>> getSomeValuesFromByRestrictionType(Resource restrictionType) {
    --- End diff --
    
    Null check.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by ejwhite922 <gi...@git.apache.org>.
Github user ejwhite922 commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135029368
  
    --- Diff: sail/src/test/java/org/apache/rya/rdftriplestore/inference/InferenceIT.java ---
    @@ -191,6 +193,64 @@ public void testDomainRangeQuery() throws Exception {
         }
     
         @Test
    +    public void testSomeValuesFromQuery() throws Exception {
    +        final String ontology = "PREFIX lubm: <http://swat.cse.lehigh.edu/onto/univ-bench.owl#>\n"
    --- End diff --
    
    Turn lubm into a constant since it's commonly used throughout this file:
    private static final String LUBM = "http://swat.cse.lehigh.edu/onto/univ-bench.owl#";


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya pull request #217: RYA-294 owl:someValuesFrom inference

Posted by meiercaleb <gi...@git.apache.org>.
Github user meiercaleb commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/217#discussion_r135061520
  
    --- Diff: sail/src/main/java/org/apache/rya/rdftriplestore/inference/InferenceEngine.java ---
    @@ -1236,30 +1347,7 @@ public void setSchedule(final boolean schedule) {
          *      values it has for any of those properties belong to the value type.
          */
         public Map<Resource, Set<URI>> getAllValuesFromByValueType(final Resource valueType) {
    --- End diff --
    
    Null check.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] incubator-rya issue #217: RYA-294 owl:someValuesFrom inference

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit commented on the issue:

    https://github.com/apache/incubator-rya/pull/217
  
    
    Refer to this link for build results (access rights to CI server needed): 
    https://builds.apache.org/job/incubator-rya-master-with-optionals-pull-requests/448/



---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---