Hi everybody !
We are very excited that our BaseX kit for Digital Humanities Corpus is almost done and we look forward to presenting it to you ! We only have a last bug using the Full Text functions. The very same function call works fine through the rest api but generates a 500 Servor Internal Error through our restxq files.
Example (you won't be able to access this private server) :
http://ahn-basex.cbp.ens-lyon.fr:8984/rest/Desanti?query=count(collection(%2...) = 'ead']/*[local-name() = 'archdesc']/*[local-name() = 'dsc'] //*[local-name() = 'c']/*[local-name() = 'controlaccess']/*[local-name() = 'persname'][text() contains text 'Aristote']) works fine and returns the number of occurrences whereas let $occurrences := count(collection("Desanti")/*[local-name() = 'ead']/*[local-name() = 'archdesc']/*[local-name() = 'dsc']//*[local-name() = 'c'] /*[local-name() = 'controlaccess']/*[local-name() = 'persname'][text() contains text 'Aristote'])
generates one of the two ERROR 500 below. PS : ft:count does't work and return 0 occurrences Thanks a lot und bis bald ! Maud and Nathalie
HTTP ERROR 500
Problem accessing /desanti/catalogue. Reason:
Unexpected error: Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 7.7 Java: Sun Microsystems Inc., 1.6.0_27 OS: Linux, amd64 Stack Trace: java.lang.NullPointerException
------------------------------------------------------------------------ /Powered by Jetty:///
or
HTTP ERROR 500
Problem accessing /brede/theme. Reason:
Unexpected error: Improper use? Potential bug? Your feedback is welcome: Contact: basex-talk@mailman.uni-konstanz.de Version: BaseX 7.7 Java: Sun Microsystems Inc., 1.6.0_27 OS: Linux, amd64 Stack Trace: java.lang.NullPointerException at org.basex.query.ft.FTContainsExpr.item(FTContainsExpr.java:44) at org.basex.query.ft.FTContainsExpr.item(FTContainsExpr.java:24) at org.basex.query.expr.ParseExpr.ebv(ParseExpr.java:92) at org.basex.query.expr.ParseExpr.test(ParseExpr.java:106) at org.basex.query.expr.Preds.preds(Preds.java:133) at org.basex.query.path.IterStep$1.next(IterStep.java:42) at org.basex.query.path.CachedPath.iter(CachedPath.java:103) at org.basex.query.path.CachedPath.iter(CachedPath.java:106) at org.basex.query.path.CachedPath.iter(CachedPath.java:72) at org.basex.query.expr.ParseExpr.ebv(ParseExpr.java:94) at org.basex.query.expr.ParseExpr.test(ParseExpr.java:106) at org.basex.query.expr.Preds.preds(Preds.java:133) at org.basex.query.path.IterStep$1.next(IterStep.java:42) at org.basex.query.path.IterStep$1.next(IterStep.java:31) at org.basex.query.path.IterPath$1.next(IterPath.java:70) at org.basex.query.path.IterPath$1.next(IterPath.java:41) at org.basex.query.gflwor.For$1.next(For.java:71) at org.basex.query.gflwor.Let$1.next(Let.java:74) at org.basex.query.gflwor.GFLWOR$2.next(GFLWOR.java:72) at org.basex.query.expr.Constr.add(Constr.java:66) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:68) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.gflwor.Let$1.next(Let.java:75) at org.basex.query.gflwor.GFLWOR$2.next(GFLWOR.java:72) at org.basex.query.iter.Iter.value(Iter.java:64) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:71) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.func.StaticFunc.invValue(StaticFunc.java:199) at org.basex.query.func.BaseFuncCall.value(BaseFuncCall.java:62) at org.basex.query.func.StaticFuncCall.iter(StaticFuncCall.java:84) at org.basex.query.gflwor.GFLWOR$2.next(GFLWOR.java:76) at org.basex.query.expr.Constr.add(Constr.java:66) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:68) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.gflwor.Let$1.next(Let.java:75) at org.basex.query.gflwor.GFLWOR$2.next(GFLWOR.java:72) at org.basex.query.expr.Constr.add(Constr.java:66) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:68) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.expr.Switch.value(Switch.java:91) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.gflwor.Let$1.next(Let.java:75) at org.basex.query.gflwor.GFLWOR$2.next(GFLWOR.java:72) at org.basex.query.expr.Constr.add(Constr.java:66) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:46) at org.basex.query.gflwor.GFLWOR$2.next(GFLWOR.java:76) at org.basex.query.iter.Iter.value(Iter.java:64) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:71) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.func.StaticFunc.invValue(StaticFunc.java:199) at org.basex.query.func.BaseFuncCall.value(BaseFuncCall.java:62) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.value.item.FuncItem.invValue(FuncItem.java:180) at org.basex.query.func.DynFuncCall.value(DynFuncCall.java:58) at org.basex.query.func.DynFuncCall.iter(DynFuncCall.java:63) at org.basex.query.QueryContext.iter(QueryContext.java:328) at org.basex.query.expr.Constr.add(Constr.java:65) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:46) at org.basex.query.QueryContext.iter(QueryContext.java:328) at org.basex.query.expr.Constr.add(Constr.java:65) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.iter(ParseExpr.java:46) at org.basex.query.QueryContext.iter(QueryContext.java:328) at org.basex.query.expr.Constr.add(Constr.java:65) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:68) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.func.StaticFunc.invValue(StaticFunc.java:199) at org.basex.query.func.BaseFuncCall.value(BaseFuncCall.java:62) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.value.item.FuncItem.invValue(FuncItem.java:180) at org.basex.query.func.DynFuncCall.value(DynFuncCall.java:58) at org.basex.query.func.DynFuncCall.iter(DynFuncCall.java:63) at org.basex.query.QueryContext.iter(QueryContext.java:328) at org.basex.query.expr.List$1.next(List.java:120) at org.basex.query.expr.Constr.add(Constr.java:66) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:68) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.func.StaticFunc.invValue(StaticFunc.java:199) at org.basex.query.func.BaseFuncCall.value(BaseFuncCall.java:62) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.value.item.FuncItem.invValue(FuncItem.java:180) at org.basex.query.func.DynFuncCall.value(DynFuncCall.java:58) at org.basex.query.func.DynFuncCall.iter(DynFuncCall.java:63) at org.basex.query.QueryContext.iter(QueryContext.java:328) at org.basex.query.expr.List$1.next(List.java:120) at org.basex.query.expr.Constr.add(Constr.java:66) at org.basex.query.expr.CElem.item(CElem.java:91) at org.basex.query.expr.CElem.item(CElem.java:23) at org.basex.query.expr.ParseExpr.value(ParseExpr.java:68) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.func.StaticFunc.invValue(StaticFunc.java:199) at org.basex.query.func.TailFuncCall.value(TailFuncCall.java:47) at org.basex.query.QueryContext.value(QueryContext.java:339) at org.basex.query.func.StaticFunc.invValue(StaticFunc.java:199) at org.basex.query.func.BaseFuncCall.value(BaseFuncCall.java:62) at org.basex.query.func.StaticFuncCall.iter(StaticFuncCall.java:84) at org.basex.query.MainModule.iter(MainModule.java:93) at org.basex.query.QueryContext.iter(QueryContext.java:282) at org.basex.http.restxq.RestXqResponse.create(RestXqResponse.java:73) at org.basex.http.restxq.RestXqModule.process(RestXqModule.java:108) at org.basex.http.restxq.RestXqFunction.process(RestXqFunction.java:100) at org.basex.http.restxq.RestXqServlet.run(RestXqServlet.java:31) at org.basex.http.BaseXServlet.service(BaseXServlet.java:58) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:457) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:679)
Hi Maud,
thanks for your e-mail. I’m pleased to hear you’ve nearly finished your work!
We only have a last bug using the Full Text functions.
Out of curiosity: have you also tried 7.7.2 or the latest snapshot?
works fine and returns the number of occurrences whereas let $occurrences := count(collection("Desanti")/*[local-name() = 'ead']/*[local-name() = 'archdesc']/*[local-name() = 'dsc']//*[local-name() = 'c'] /*[local-name() = 'controlaccess']/*[local-name() = 'persname'][text() contains text 'Aristote'])
…how does the full query look like? If I get it right, everything after "let $occurrences :=" is identical to the first query, and after that, something seems to be missing..
By the way, your query could probably be rewritten as follows:
count(collection('Desanti')/ead/archdesc/dsc/c/controlaccess/persname[text() contains text 'Aristote'])
If you use namespaces, and if you don’t want to specify them explicitly, you could prefix the local names with wildcards:
count(collection('Desanti')/*:ead/*:archdesc/*:dsc/*:c/*:controlaccess/*:persname[text() contains text 'Aristote'])
Looking forward to your feedback, Christian
basex-talk@mailman.uni-konstanz.de