CostFed icon indicating copy to clipboard operation
CostFed copied to clipboard

Type EmptyStatementPattern not supported for cost estimation

Open tfrancart opened this issue 6 years ago • 6 comments

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]

tfrancart avatar Dec 20 '18 11:12 tfrancart

thanks for this issue. Unfortunately, our main Costfed's developer left our group. We will consider this once some alternative person is available.

saleem-muhammad avatar Dec 26 '18 20:12 saleem-muhammad

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

tfrancart avatar Jan 02 '19 15:01 tfrancart

@apotocki (main developer) will have a look at this issue and will reply you. We haven't tested CostFed with property paths queries.

saleem-muhammad avatar Jan 04 '19 18:01 saleem-muhammad

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.

saleem-muhammad avatar Jan 04 '19 18:01 saleem-muhammad

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

tfrancart avatar Jan 06 '19 20:01 tfrancart

On property path queries and related exceptions, see also #5 and #6.

tfrancart avatar Jan 06 '19 20:01 tfrancart