Sparqlify
Sparqlify copied to clipboard
Errors when using constant in plainLiteral term constructor
When using a constant expression within a plainLiteral
term constructor, e.g.
Create View example As
Construct {
?sth rdfs:comment ?comment .
}
With
?sth = uri(ex:res, ?id)
?comment = plainLiteral("It's wrong", "en")
FROM
tbl
I get the following error:
2014-03-20 21:24:37,839 WARN org.aksw.sparqlify.core.algorithms.CandidateViewSelectorBase: JENA'S ALGEBRA OPTIMIZATION DISABLED
2014-03-20 21:24:37,852 DEBUG org.aksw.sparqlify.core.algorithms.CandidateViewSelectorBase: 41 of 41 candidates remaining (0 filtered)
2014-03-20 21:24:37,852 DEBUG org.aksw.sparqlify.core.algorithms.CandidateViewSelectorBase: Total number of candidates after 1 clauses: 41
2014-03-20 21:24:37,885 INFO org.aksw.sparqlify.core.algorithms.SparqlSqlStringRewriterImpl: [74] Candidate selection completed
Exception in thread "main" java.lang.RuntimeException: Unknow datatype of node: "It's wrong"@en
at org.aksw.sparqlify.expr.util.NodeValueUtils.getValue(NodeValueUtils.java:66)
at org.aksw.sparqlify.core.algorithms.MappingOpsImpl.pushConstants(MappingOpsImpl.java:1317)
at org.aksw.sparqlify.core.algorithms.MappingOpsImpl.pushConstants(MappingOpsImpl.java:1246)
at org.aksw.sparqlify.core.algorithms.MappingOpsImpl.union(MappingOpsImpl.java:1427)
at org.aksw.sparqlify.core.algorithms.OpMappingRewriterImpl.rewrite(OpMappingRewriterImpl.java:101)
at org.aksw.sparqlify.core.algorithms.OpMappingRewriterImpl.rewrite(OpMappingRewriterImpl.java:333)
at org.aksw.sparqlify.core.interfaces.SparqlSqlOpRewriterImpl.rewrite(SparqlSqlOpRewriterImpl.java:95)
at org.aksw.sparqlify.core.algorithms.SparqlSqlStringRewriterImpl.rewrite(SparqlSqlStringRewriterImpl.java:45)
at org.aksw.sparqlify.core.sparql.QueryExecutionSelect._execSelect(QueryExecutionSelect.java:131)
at org.aksw.sparqlify.core.sparql.QueryExecutionSelect.execSelect(QueryExecutionSelect.java:57)
at org.aksw.jena_sparql_api.core.QueryExecutionBaseSelect.executeCoreSelect(QueryExecutionBaseSelect.java:146)
at org.aksw.sparqlify.core.sparql.QueryExecutionSparqlify.executeCoreSelect(QueryExecutionSparqlify.java:182)
at org.aksw.jena_sparql_api.core.QueryExecutionBaseSelect.executeConstructStreaming(QueryExecutionBaseSelect.java:342)
at org.aksw.jena_sparql_api.core.QueryExecutionBaseSelect.execConstructTriples(QueryExecutionBaseSelect.java:371)
at org.aksw.jena_sparql_api.core.utils.QueryExecutionUtils.createIteratorDumpTriples(QueryExecutionUtils.java:65)
at org.aksw.sparqlify.web.Main.main(Main.java:268)
When removing the language tag, as in
Create View example As
Construct {
?sth rdfs:comment ?comment .
}
With
?sth = uri(ex:res, ?id)
?comment = plainLiteral("It's wrong")
FROM
tbl
the error above won't appear, but a Postgres error comes up instead:
Exception in thread "main" java.lang.RuntimeException: org.postgresql.util.PSQLException: FEHLER: Syntaxfehler bei »wrong«
Position: 26367
at org.aksw.sparqlify.core.sparql.QueryExecutionSelect.execSelect(QueryExecutionSelect.java:59)
at org.aksw.jena_sparql_api.core.QueryExecutionBaseSelect.executeCoreSelect(QueryExecutionBaseSelect.java:146)
at org.aksw.sparqlify.core.sparql.QueryExecutionSparqlify.executeCoreSelect(QueryExecutionSparqlify.java:182)
at org.aksw.jena_sparql_api.core.QueryExecutionBaseSelect.executeConstructStreaming(QueryExecutionBaseSelect.java:342)
at org.aksw.jena_sparql_api.core.QueryExecutionBaseSelect.execConstructTriples(QueryExecutionBaseSelect.java:371)
at org.aksw.jena_sparql_api.core.utils.QueryExecutionUtils.createIteratorDumpTriples(QueryExecutionUtils.java:65)
at org.aksw.sparqlify.web.Main.main(Main.java:268)
Caused by: org.postgresql.util.PSQLException: FEHLER: Syntaxfehler bei »wrong«
Position: 26367
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:252)
at com.jolbox.bonecp.StatementHandle.executeQuery(StatementHandle.java:503)
at org.aksw.sparqlify.core.sparql.ResultSetFactory.create(ResultSetFactory.java:61)
at org.aksw.sparqlify.core.sparql.QueryExecutionSelect._execSelect(QueryExecutionSelect.java:174)
at org.aksw.sparqlify.core.sparql.QueryExecutionSelect.execSelect(QueryExecutionSelect.java:57)
... 6 more
Being explicit, using the str
function, as in
Create View example As
Construct {
?sth rdfs:comment ?comment .
}
With
?sth = uri(ex:res, ?id)
?comment = plainLiteral(str("It's wrong"), "en")
FROM
tbl
solves this, but it seems it should work without str
.
I used the 0.6.6-SNAPSHOT.