CostFed
CostFed copied to clipboard
Type EmptyStatementPattern not supported for cost estimation
Again, since the exception asks me to do so, I am reporting the following exception using the query below :
private static String TEST_QUERY_3 = "SELECT DISTINCT ?this\n" +
"WHERE\n" +
" { ?this a <http://www.cidoc-crm.org/cidoc-crm/E27_Site> .\n" +
" ?this (((<http://www.cidoc-crm.org/cidoc-crm/P53_has_former_or_current_location>|((((<http://www.cidoc-crm.org/cidoc-crm/P53_has_former_or_current_location>/<http://www.geonames.org/ontology#parentFeature>)/<http://www.geonames.org/ontology#parentFeature>)/<http://www.geonames.org/ontology#parentFeature>)/<http://www.geonames.org/ontology#parentFeature>))|(((<http://www.cidoc-crm.org/cidoc-crm/P53_has_former_or_current_location>/<http://www.geonames.org/ontology#parentFeature>)/<http://www.geonames.org/ontology#parentFeature>)/<http://www.geonames.org/ontology#parentFeature>))|(<http://www.cidoc-crm.org/cidoc-crm/P53_has_former_or_current_location>/<http://www.geonames.org/ontology#parentFeature>))|((<http://www.cidoc-crm.org/cidoc-crm/P53_has_former_or_current_location>/<http://www.geonames.org/ontology#parentFeature>)/<http://www.geonames.org/ontology#parentFeature>) <http://sws.geonames.org/2972191/> .\n" +
" }";
com.fluidops.fedx.exception.FedXRuntimeException: Type EmptyStatementPattern not supported for cost estimation. If you run into this, please report a bug.
at com.fluidops.fedx.optimizer.OptimizerUtil.getFreeVars(OptimizerUtil.java:105) ~[classes/:na]
at com.fluidops.fedx.optimizer.OptimizerUtil.getFreeVars(OptimizerUtil.java:79) ~[classes/:na]
at com.fluidops.fedx.optimizer.OptimizerUtil.getFreeVars(OptimizerUtil.java:79) ~[classes/:na]
at org.aksw.simba.quetsal.core.JoinOrderOptimizer.optimizeJoinOrder(JoinOrderOptimizer.java:157) ~[classes/:na]
at com.fluidops.fedx.optimizer.StatementGroupOptimizer.meetNJoin(StatementGroupOptimizer.java:172) ~[classes/:na]
at com.fluidops.fedx.optimizer.StatementGroupOptimizer.meetOther(StatementGroupOptimizer.java:78) ~[classes/:na]
at com.fluidops.fedx.algebra.NJoin.visit(NJoin.java:51) ~[classes/:na]
at org.eclipse.rdf4j.query.algebra.UnaryTupleOperator.visitChildren(UnaryTupleOperator.java:81) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.Projection.visitChildren(Projection.java:84) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meetNode(AbstractQueryModelVisitor.java:661) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meetUnaryTupleOperator(AbstractQueryModelVisitor.java:687) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meet(AbstractQueryModelVisitor.java:457) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.Projection.visit(Projection.java:76) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.UnaryTupleOperator.visitChildren(UnaryTupleOperator.java:81) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meetNode(AbstractQueryModelVisitor.java:661) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meetUnaryTupleOperator(AbstractQueryModelVisitor.java:687) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meet(AbstractQueryModelVisitor.java:223) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.Distinct.visit(Distinct.java:30) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.UnaryTupleOperator.visitChildren(UnaryTupleOperator.java:81) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meetNode(AbstractQueryModelVisitor.java:661) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor.meet(AbstractQueryModelVisitor.java:475) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at org.eclipse.rdf4j.query.algebra.QueryRoot.visit(QueryRoot.java:47) ~[rdf4j-client-2.3.2.jar:2.3.2+5a43663]
at com.fluidops.fedx.optimizer.StatementGroupOptimizer.optimize(StatementGroupOptimizer.java:65) ~[classes/:na]
at com.fluidops.fedx.optimizer.Optimizer.optimize(Optimizer.java:153) ~[classes/:na]
at com.fluidops.fedx.FedXConnection.evaluateInternal(FedXConnection.java:333) ~[classes/:na]
at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.evaluate(AbstractSailConnection.java:267) [rdf4j-storage-2.3.2.jar:2.3.2+c6541e7]
at org.eclipse.rdf4j.repository.sail.SailTupleQuery.evaluate(SailTupleQuery.java:54) [rdf4j-storage-2.3.2.jar:2.3.2+c6541e7]
at org.aksw.simba.start.OpenArchaeoCostfedTest.runTestQuery(OpenArchaeoCostfedTest.java:97) [classes/:na]
thanks for this issue. Unfortunately, our main Costfed's developer left our group. We will consider this once some alternative person is available.
Thanks Muhammad As I plan to integrate CostFed into another production application, could you give me some insight on your plans for this component : do you plan to maintain it ? will it be abandonned ? in which timeframe do you plan to have an alternative developper ? Best Regards Thomas
@apotocki (main developer) will have a look at this issue and will reply you. We haven't tested CostFed with property paths queries.
however it seems the engine does not find any relevant source for the given statement pattern thats why the error is thrown. May be the used triple patterns in the query cannot be answered by the underlying datasets.
however it seems the engine does not find any relevant source for the given statement pattern thats why the error is thrown.
That's a possibility (I did a lot of testing so I cannot recall exactly if I expected an answer on this query) - however in this case shouldn't the query simply return an empty result ? I did some other testing with empty statistics and in this case I got empty results for my queries.
Thanks for the answer. It is also good to know that property paths were not tested with CostFed. Thomas
On property path queries and related exceptions, see also #5 and #6.