SPARQL-Star with inferred value not retrieving embedded triples

Hi folks,

I may be doing something stupid...but here goes.

I have a series of embedded triples using RDF-Star that describe a series of code flow events (See attached file). File1 writesFile File2, File1 readsFile File3, etc. Each embedded triple is associated with a "Step" IRI which in turn has more details about that step including step number, description, and a hasNext predicate for order. hasNext has owl:inverseOf hasPrevious. I want to query up and down the order of steps which I can do when reasoner is on using :hasNext+ or :hasPrevious+ . See attached query.

When I try to "Find the embedded triples that occur previous to Step 3" using the attached query, I get the message:

000012: com.complexible.stardog.plan.eval.ExecutionException: com.complexible.stardog.reasoning.blackout.HybridReasoningPlanNode cannot be cast to com.complexible.stardog.plan.ScanNode

When I comment out the last line, the query executes without error and proves the reasoner is on. I just cant get the embedded triples associated with the code steps it returns in ?prevStep.

What am I doing wrong or missing?

  • Database has edge properties turned on.
  • Reasoner is on
  • StardogServer 7.4.0
  • StardogStudio 1.34.2.1159

Thanks,

Tim

RDFStarCodeOrder-TestDB.rq (294 Bytes)

CodeOrderTestRDFStar.TTL (1.4 KB)

Tim,

Stardog does not yet support inference with edge properties. Obviously it shouldn't throw this sort of error, and we will look into that. But it won't compute inferences over edge properties.

Thanks for the report,
Pavel

Thanks, Pavel! At least I know I was not missing something obvious.

The following query will work with reasoner=OFF and fails with reasoner=ON even though I am not using an inferred predicate. I was hoping to write something more elegant. Do you have any suggestions that will give me the desired result, preferably using the :hasPrevious+ inferred predicate or similar approach?

SELECT * 

WHERE{
    # Step 3:  FILE1  writes File4
   << :FILE_ID1 :writesFile :FILE_ID4  >>  :hasStep ?st .
     ?st :stepNum  ?selectedStepNum .
   # Next statmements will NOT work with reasoner=ON  
   <<?file1 ?action ?file2  >>   :hasStep ?stAll .
     ?stAll :stepNum  ?allStepNum ;
   FILTER (?allStepNum < ?selectedStepNum )
}

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.