I was experimenting with the new PATHS feature as I was interested in how to get from one person to another in my database. I formulated the below query:
paths
start ?s = <http://example.com/Rawl_B502/minigud_senchassa_lagen_tuath_gabair_&_des_gabair.ttl#Ádam>
end ?e = <http://example.com/LL/lagin.ttl#Find>
via <http://purl.org/vocab/relationship/ancestorOf>
I ran the query explainer with reasoning enabled on it and received this:
The Query Plan:
Projection(?nbxqvhgc, ?s, ?e) [#100]
`─ ShortestPaths((?s = <http://example.com/Rawl_B502/minigud_senchassa_lagen_tuath_gabair_&_des_gabair.ttl#Ádam>) -> ?e) [#100]
+─ Canonicalize(?e)
│ `─ VALUES (?e) {
│ +─ ( <http://example.com/LL/lagin.ttl#Find-b1db9300> )
│ +─ ( <http://example.com/Duanaire_Finn/PoemXXXVII.ttl#Fionn> )
│ +─ ( <http://example.com/Duanaire_Finn/PoemXI.ttl#Finn> )
│ +─ ( <http://example.com/Duanaire_Finn/PoemXXXVII.ttl#Fionn-f4006b50> )
│ +─ ( <http://example.com/Rawl_B502/de_peritia_&_de_genealogis_dál_niad_cuirp_incipit.ttl#Find> )
│ +─ ( <http://example.com/NLS.Adv.72.1.1/18vb58.ttl#Find> )
│ +─ ( <http://example.com/LL/lagin.ttl#Find> )
│ `─ ( <http://example.com/Rawl_B502/genelach_find_m_h-umaill.ttl#Find> )
│ }
`─ Distinct [#158K]
`─ Projection(?e, ?s) [#158K]
`─ Union [#158K]
+─ Union [#17K]
│ +─ Scan[POSC](?e, <http://purl.org/vocab/relationship/childOf>, ?s) [#17K]
│ `─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/parentOf>, ?e) [#160]
`─ Union [#141K]
+─ PropertyPath(?s -> ?e, minLength=1, sorted by=?s) [#70K]
│ `─ Union [#35K]
│ +─ Union [#18K]
│ │ +─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/parentOf>, ?e) [#160]
│ │ `─ Union [#18K]
│ │ +─ Scan[POSC](?e, <http://purl.org/vocab/relationship/descendantOf>, ?s) [#537]
│ │ `─ Scan[POSC](?e, <http://purl.org/vocab/relationship/childOf>, ?s) [#17K]
│ `─ Union [#17K]
│ +─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/ancestorOf>, ?e) [#112]
│ `─ Union [#17K]
│ +─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/parentOf>, ?e) [#160]
│ `─ Scan[POSC](?e, <http://purl.org/vocab/relationship/childOf>, ?s) [#17K]
`─ PropertyPath(?e -> ?s, minLength=1, sorted by=?s) [#70K]
`─ Union [#35K]
+─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/parentOf>, ?e) [#160]
`─ Union [#35K]
+─ Union [#17K]
│ +─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/ancestorOf>, ?e) [#112]
│ `─ Union [#17K]
│ +─ Scan[PSOC](?s, <http://purl.org/vocab/relationship/parentOf>, ?e) [#160]
│ `─ Scan[POSC](?e, <http://purl.org/vocab/relationship/childOf>, ?s) [#17K]
`─ Union [#18K]
+─ Scan[POSC](?e, <http://purl.org/vocab/relationship/descendantOf>, ?s) [#537]
`─ Scan[POSC](?e, <http://purl.org/vocab/relationship/childOf>, ?s) [#17K]
There are no pipeline blockers that I can see here. As an aside, when running Stardog on my laptop, I find that anything that shows around 10K solutions or more will pretty much never finish. When I attempt to run this, the query will return -1 and I see the following in my stardog.log file:
ERROR 2018-05-26 20:01:41,061 [stardog-user-1] com.complexible.stardog.protocols.http.server.StardogHttpServiceLoader:accept(229): An unexpected exception was handled by the server
org.openrdf.query.QueryEvaluationException: -1
at com.complexible.common.rdf.query.IteratorAsPathQueryResult.hasNext(IteratorAsPathQueryResult.java:86) ~[stardog-utils-rdf-5.3.0.jar:?]
at com.complexible.common.rdf.query.PathsAsTupleQueryResult.hasNext(PathsAsTupleQueryResult.java:87) ~[stardog-utils-rdf-5.3.0.jar:?]
at org.openrdf.query.QueryResults.report(QueryResults.java:158) ~[sesame-query-4.1.2.jar:?]
at org.openrdf.query.resultio.QueryResultIO.writeTuple(QueryResultIO.java:449) ~[sesame-queryresultio-api-4.1.2.jar:?]
at com.complexible.stardog.protocols.http.server.ProtocolUtils.writeTupleResponse(ProtocolUtils.java:601) ~[stardog-protocols-http-server-5.3.0.jar:?]
at com.complexible.stardog.protocols.http.server.ProtocolUtils.executeReadQuery(ProtocolUtils.java:513) ~[stardog-protocols-http-server-5.3.0.jar:?]
at com.complexible.stardog.protocols.http.server.ProtocolUtils.executeReadQuery(ProtocolUtils.java:493) ~[stardog-protocols-http-server-5.3.0.jar:?]
at com.complexible.stardog.protocols.http.server.SPARQLProtocol.executeQuery(SPARQLProtocol.java:147) ~[stardog-protocols-http-server-5.3.0.jar:?]
at com.complexible.stardog.protocols.http.server.SPARQLProtocol.get(SPARQLProtocol.java:102) ~[stardog-protocols-http-server-5.3.0.jar:?]
at com.stardog.http.server.undertow.jaxrs.ExtractRoutes.lambda$handleIt$5(ExtractRoutes.java:192) ~[stardog-protocols-http-server-5.3.0.jar:?]
at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnable.java:120) [shiro-core-1.3.0.jar:1.3.0]
at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.java:108) [shiro-core-1.3.0.jar:1.3.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at com.complexible.stardog.plan.eval.operator.impl.LeanSolutionFactory.<init>(LeanSolutionFactory.java:67) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.LeanSolutionFactory.variables(LeanSolutionFactory.java:92) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.LeanSolutionFactory.variables(LeanSolutionFactory.java:32) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.PropertyPathOpImpl.<init>(PropertyPathOpImpl.java:49) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.forGeneralPlus(RecursiveOperators.java:341) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.createGeneral(RecursiveOperators.java:242) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.createPropertyPathOperator(RecursiveOperators.java:119) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:713) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.PropertyPathPlanNodeImpl.accept(PropertyPathPlanNodeImpl.java:174) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:813) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.AbstractReasoningPlanNode.accept(AbstractReasoningPlanNode.java:121) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:584) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:584) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:656) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.BindPlanNodeImpl.accept(BindPlanNodeImpl.java:130) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:813) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.AbstractReasoningPlanNode.accept(AbstractReasoningPlanNode.java:121) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:584) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:813) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.AbstractReasoningPlanNode.accept(AbstractReasoningPlanNode.java:121) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:656) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.BindPlanNodeImpl.accept(BindPlanNodeImpl.java:130) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:419) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.ProjectionPlanNodeImpl.accept(ProjectionPlanNodeImpl.java:207) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:341) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.DistinctPlanNodeImpl.accept(DistinctPlanNodeImpl.java:66) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.translate(DefaultTranslator.java:254) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.translate(DefaultTranslator.java:214) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator.translate(DefaultTranslator.java:165) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.ExecutablePlanFactory.translate(ExecutablePlanFactory.java:164) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.ExecutionContext.translate(ExecutionContext.java:290) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.operator(RecursiveOperators.java:623) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.startNodeIterator(RecursiveOperators.java:391) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.forGeneralPlus(RecursiveOperators.java:329) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.createGeneral(RecursiveOperators.java:242) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.RecursiveOperators.createPropertyPathOperator(RecursiveOperators.java:119) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:713) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.PropertyPathPlanNodeImpl.accept(PropertyPathPlanNodeImpl.java:174) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:813) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.AbstractReasoningPlanNode.accept(AbstractReasoningPlanNode.java:121) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:656) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.BindPlanNodeImpl.accept(BindPlanNodeImpl.java:130) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:813) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.AbstractReasoningPlanNode.accept(AbstractReasoningPlanNode.java:121) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:581) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:584) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.UnionPlanNodeImpl.accept(UnionPlanNodeImpl.java:88) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:419) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.ProjectionPlanNodeImpl.accept(ProjectionPlanNodeImpl.java:207) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.unaryVisit(DefaultTranslator.java:280) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.visit(DefaultTranslator.java:341) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.DistinctPlanNodeImpl.accept(DistinctPlanNodeImpl.java:66) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.translate(DefaultTranslator.java:254) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator$TranslateVisitor.translate(DefaultTranslator.java:214) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.DefaultTranslator.translate(DefaultTranslator.java:165) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.ExecutablePlanFactory.translate(ExecutablePlanFactory.java:164) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.ExecutionContext.translate(ExecutionContext.java:290) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.PathOp.translate(PathOp.java:625) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.PathOp.lambda$initSearch$2(PathOp.java:495) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.AbstractPathSearch$1.computeNext(AbstractPathSearch.java:144) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.AbstractPathSearch$1.computeNext(AbstractPathSearch.java:102) ~[stardog-5.3.0.jar:?]
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-18.0.jar:?]
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-18.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.PathOp.nextEnd(PathOp.java:350) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.PathOp.computeNext(PathOp.java:299) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.PathOp.computeNext(PathOp.java:67) ~[stardog-5.3.0.jar:?]
at com.complexible.common.collect.AbstractSkippingIterator.tryToComputeNext(AbstractSkippingIterator.java:143) ~[stardog-utils-common-5.3.0.jar:?]
at com.complexible.common.collect.AbstractSkippingIterator.hasNext(AbstractSkippingIterator.java:130) ~[stardog-utils-common-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.SingleProjectionOp.computeNext(SingleProjectionOp.java:82) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.impl.SingleProjectionOp.computeNext(SingleProjectionOp.java:29) ~[stardog-5.3.0.jar:?]
at com.complexible.common.collect.AbstractSkippingIterator.tryToComputeNext(AbstractSkippingIterator.java:143) ~[stardog-utils-common-5.3.0.jar:?]
at com.complexible.common.collect.AbstractSkippingIterator.hasNext(AbstractSkippingIterator.java:130) ~[stardog-utils-common-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.util.AutoCloseOperator.computeNext(AutoCloseOperator.java:112) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.util.AutoCloseOperator.computeNext(AutoCloseOperator.java:25) ~[stardog-5.3.0.jar:?]
at com.complexible.common.collect.AbstractSkippingIterator.tryToComputeNext(AbstractSkippingIterator.java:143) ~[stardog-utils-common-5.3.0.jar:?]
at com.complexible.common.collect.AbstractSkippingIterator.hasNext(AbstractSkippingIterator.java:130) ~[stardog-utils-common-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.util.OpBasedPathIteration.computeNext(OpBasedPathIteration.java:138) ~[stardog-5.3.0.jar:?]
at com.complexible.stardog.plan.eval.operator.util.OpBasedPathIteration.computeNext(OpBasedPathIteration.java:40) ~[stardog-5.3.0.jar:?]
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-18.0.jar:?]
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-18.0.jar:?]
at com.complexible.common.rdf.query.IteratorAsPathQueryResult.hasNext(IteratorAsPathQueryResult.java:82) ~[stardog-utils-rdf-5.3.0.jar:?]
... 14 more
Above that there is this (truncated as it is very long):
WARN 2018-05-26 20:01:40,608 [stardog-user-1] com.complexible.stardog.plan.optimizer.PopUpRewriter:optimizeUnion(99): Query plan tree not properly collapsed prior to algebraic optimization: Union(card=720[PROBABLY_OFF] cost=Infinity)
Union(card=600[PROBABLY_OFF] cost=Infinity)
Union(card=480[PROBABLY_OFF] cost=Infinity)
Union(card=360[PROBABLY_OFF] cost=Infinity)
Union(card=240[PROBABLY_OFF] cost=Infinity)
PropertyPath[120[PROBABLY_OFF]](http://example.com/Rawl_B502/dúili_sluinti_na_n_genelach.ttl#Ádam -> Var(1) in Var(4) 1+, cost=Infinity)
Scope[60[PROBABLY_OFF]]
Union(card=60[PROBABLY_OFF] cost=Infinity)
Scope[2[PROBABLY_OFF]]
Bind(<http://example.com/Rawl_B502/dúili_sluinti_na_n_genelach.ttl#Ádam> AS 0)
Scope[2[PROBABLY_OFF]]
Union(card=2[PROBABLY_OFF] cost=Infinity)
Scope[1[PROBABLY_OFF]]
Scan[1[ACCURATE]](POS[SortType[-1]], Var(1), http://purl.org/vocab/relationship/childOf, http://example.com/Rawl_B502/dúili_sluinti_na_n_genelach.ttl#Ádam, Var(4), scope=Default)
Scope[1[PROBABLY_OFF]]
Scan[1[ACCURATE]](POS[SortType[-1]], http://example.com/Rawl_B502/dúili_sluinti_na_n_genelach.ttl#Ádam, http://purl.org/vocab/relationship/parentOf, Var(1), Var(4), scope=Default)
Scope[58[PROBABLY_OFF]]
Union(card=58[PROBABLY_OFF] cost=Infinity)
Scope[30[PROBABLY_OFF]]
Union(card=30[PROBABLY_OFF] cost=Infinity)
Scope[26[PROBABLY_OFF]]
Bind(<http://example.com/Rawl_B502/dúili_sluinti_na_n_genelach.ttl#Ádam> AS 0)
Scope[26[PROBABLY_OFF]]
Union(card=26[PROBABLY_OFF] cost=Infinity)
Scope[2[PROBABLY_OFF]]
Union(card=2[PROBABLY_OFF] cost=Infinity)
Scope[1[PROBABLY_OFF]]
Scan[1[ACCURATE]](POS[SortType[-1]], Var(1), http://purl.org/vocab/relationship/childOf, http://example.com/Rawl_B502/dúili_sluinti_na_n_genelach.ttl#Ádam, Var(4), scope=Default)
...
I am not sure if this is a bug or just something that I do not understand about PATHS. Is there something different that I can do to make this query more efficient?
Thanks!