Yes, you are correct that path update works if I turn off the reasoner. I’m still interested in knowing if there is a query that will work with the OWL reasoner enabled. Part of my research is to evaluate how a reasoner can/can not be beneficial. So this is actually good data point.
Thanks, Chris > On Dec 22, 2015, at 2:09 PM, A. Soroka <[email protected]> wrote: > > Were you using that with an inferring model? Because then you are going to > materialize a bunch of fresh rdf:type triples, which are going to turn up as > the other (super) classes. > > --- > A. Soroka > The University of Virginia Library > >> On Dec 22, 2015, at 1:58 PM, Chris Snyder <[email protected]> wrote: >> >> Yeah, I tried that route but it still returns all the class in the >> inheritance structure. >> >> Thanks, >> Chris >> >> >>> On Dec 22, 2015, at 11:52 AM, A. Soroka <[email protected]> wrote: >>> >>> I am _no_ SPARQL guru, but I think you might be able to do this without >>> inference, with property paths: >>> >>> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> >>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> >>> PREFIX owl: <http://www.w3.org/2002/07/owl#> >>> PREFIX modelica: <http://mind-tap.net/kbswt/modelica#> >>> >>> SELECT ?instance ?label >>> WHERE { >>> ?instance rdf:type ?type. >>> ?type rdfs:subClassOf+ modelica:BinaryExpression . >>> ?type rdfs:label ?label. >>> } >>> >>> --- >>> A. Soroka >>> The University of Virginia Library >>> >>>> On Dec 22, 2015, at 11:41 AM, Chris Snyder <[email protected]> wrote: >>>> >>>> I’m using the Jena OWL reasoner with this ontology: >>>> http://www.mind-tap.net/kbswt/simple_no_inheritance.ttl >>>> >>>> I want to get the named individuals that are instances of a >>>> modelica:BinaryExpression along with the rdfs:label of the class directly >>>> implemented by the named individual. >>>> >>>> I hope there is a SPARQL guru who can help identify what I need to do. If >>>> adding a Jena rule to the reasoner would help I have no problem going that >>>> route either. >>>> >>>> In essence: >>>> c subClassOf b >>>> b subClassOf a >>>> >>>> c rdfs:label “class c” >>>> b rdfs:label “class b” >>>> a rdfs:label “class a” >>>> >>>> x typeOf c >>>> x rdfs:label “instance x” >>>> >>>> I need to run a query to get: >>>> “instance x”, “class c” >>>> >>>> but my SPARQL gives me: >>>> “instance x”, “class c” >>>> “instance x”, “class b” >>>> “instance x”, “class a” >>>> >>>> I’ve tried some filter expressions but they wind up filtering out all the >>>> results. I was thinking there is some path modifier that might work but >>>> haven’t been successful going down that route either. >>>> >>>> My starter SPARQL: >>>> >>>> PREFIX modelica: <http://mind-tap.net/kbswt/modelica#> >>>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> >>>> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> >>>> PREFIX : <http://mind-tap.net/kbswt/simple_no_inheritance#> >>>> >>>> select distinct * { ?s rdfs:subClassOf modelica:BinaryExpression ; >>>> rdfs:label ?equationName . >>>> ?i a ?s. >>>> } >>>> ORDER BY ?i >>>> >>>> Thanks in advance, >>>> Chris >>>> >>>> >>> >> >
