Glad you found the video useful. Let me know if things work when using the snapshot clerezza bundles.
Reto On Mon, Jun 3, 2013 at 6:25 PM, Isley, Steven <sis...@prgs.edu> wrote: > Thanks Reto! > > I will check that this fixed the problem in a day or two, then send out a > few more details on how to integrate RelFinder for anybody else that is > interested. > > Also, thanks for the video you put together for using Stanbol with > Netbeans. I'm trying to use Eclipse, and the video has gotten me most of > the way there! > > -steve > > [1] http://vimeo.com/61415903 > > -----Original Message----- > From: m...@farewellutopia.com [mailto:m...@farewellutopia.com] On Behalf Of > Reto Bachmann-Gmür > Sent: Monday, June 03, 2013 8:49 AM > To: dev@stanbol.apache.org > Cc: clerezza-...@incubator.apache.org > Subject: Re: Stanbol SPARQL and RelFinder > > I resolved CLEREZZA-787. I hope this resolves the problem. > > Cheers, > Reto > > > On Mon, Jun 3, 2013 at 5:39 PM, Reto Bachmann-Gmür <r...@wymiwyg.com> > wrote: > > > Hi rupert, Isley, > > > > Yes the excpetion ios thrown in the implementation of ExtendedIterator > > com.hp.hpl.jena.graph.impl.GraphBase#graphBaseFind(TripleMatch m) when > > the subject in m is a literal. I think it would be safe to return an > > empty iterator if this case. > > > > Cheers, > > Reto > > > > > > On Mon, Jun 3, 2013 at 9:45 AM, Rupert Westenthaler < > > rupert.westentha...@gmail.com> wrote: > > > >> Hi Isley, Clerezza community > >> > >> this seams to be related to an issue in the Clerezza SPARQL > >> implementation. I think the problem is that the "Jena <-> Clerezza" > >> Adapter enforces that subjects of triples need to be NonLiterals, but > >> the last statement of your Sparql Query. An assumption that MUST NOT > >> be true for SPARQL query results where resources in any position > >> (subject, predicate, object) can have any type (Literal, URI or > >> bNode). > >> > >> This query > >> > >> > SELECT * WHERE { > >> > <Target Person 1 URI> ?pf1 ?middle . > >> > <Target Person 2 URI> ?ps1 ?os1 . > >> > ?os1 ?ps2 ?middle . > >> > } LIMIT 10 > >> > >> does exactly that, as it uses values ( 'os1') of '<Target Person 2 > >> URI> ?ps1 ?os1' as first argument (subject) for an second join '?os1 > >> ?ps2 ?middle'. > >> > >> Would be nice if someone with more knowledge about the Clerezza > >> SPARQL implementation could look into that. > >> > >> best > >> Rupert > >> > >> > >> > >> On Fri, May 31, 2013 at 7:17 PM, Isley, Steven <sis...@prgs.edu> wrote: > >> > Hello everyone, > >> > > >> > I've been trying to integrate Apache Stanbol and Relfinder[1] (my > >> > two > >> favorite demos to show people who have never heard of the semantic > >> web). I ran into some problems with Relfinder that I think I fixed. > >> It was using a different parameter name to specify the graph to use in > the SPARQL query. > >> After recompiling Relfinder to work with Stanbol, I've run into some > >> other errors which may be Stanbol related. > >> > > >> > Relfinder tries to find paths through a dataset that link two nodes. > >> I've uploaded an rdf data set to a clerezza managed site. The data > >> consists of documents, their authors, and then some other information > >> (such as an author's department, or a document's publish date). I've > >> got about 500k triples. > >> > > >> > My version of Relfinder will find some links between nodes. Like if > >> > the > >> two input nodes are people, it will find documents they both > >> authored, or departments they both belong to. However, the more > >> impressive searches result in an "Error 500 cannot convert {one of my > >> URIs} to NonLiteral" (see end of email for full error message). Using > >> firebug to monitor the network requests shows that this error occurs > >> for all the searches that are supposed to return the more complicated > >> results (Target Person 1 authored document X, also authored by person > >> B, that authored document Y, that was also authored by Target Person > >> 2) > >> > > >> > I spent some time playing with Stanbol's SPARQL endpoint, and the > >> simplest example that reproduces the error is: > >> > > >> > SELECT * WHERE { > >> > <Target Person 1 URI> ?pf1 ?middle . > >> > <Target Person 2 URI> ?ps1 ?os1 . > >> > ?os1 ?ps2 ?middle . > >> > } LIMIT 10 > >> > > >> > However, the following query works fine: > >> > SELECT * WHERE { > >> > <Target Person 1 URI> ?pf1 ?middle . > >> > <Target Person 2 URI> ?ps1 ?os1 . > >> > } LIMIT 10 > >> > > >> > Note that these are simplified searches, the actual Relfinder > >> > queries > >> are more complicated, and attempt to filter out literal values. See > >> the very, very end of this email for the original query. Relfinder > >> works fine on other SPARQL endpoints, like dbpedia's. > >> > > >> > Thanks for any insights you can offer on this problem. The help is > >> > much > >> appreciated. > >> > > >> > > >> > -- > >> > Steven Isley > >> > Ph.D. Candidate > >> > Pardee RAND Graduate School > >> > RAND Corporation > >> > ph: (310)393-0411 x6643 > >> > > >> > -Steve Isley > >> > > >> > [1] http://www.visualdataweb.org/relfinder.php > >> > > >> > > >> > p.s. - if anyone else is trying to use RelFinder, I also ran into > >> issues with CPU usage. Sometimes Stanbol would overrun the cpu limit > >> on my server and would be silently killed. Took me a while to figure > >> that one out! I managed to get around this using "unlimit cpu" - but > >> the IT folks at my workplace will probably come down on me for that > >> :) > >> > > >> > Error Output: > >> > <html> > >> > <head> > >> > <meta http-equiv="Content-Type" content="text/html; > >> charset=ISO-8859-1"/> > >> > <title>Error 500 cannot convert "{the rdfs:label for Person 1}" to > >> NonLiteral</title> > >> > </head> > >> > <body><h2>HTTP ERROR 500</h2> > >> > <p>Problem accessing /sparql. Reason: > >> > <pre> cannot convert "{the rdfs:label for Person 1}" to > >> NonLiteral</pre></p><h3>Caused by:</h3><pre>java.lang.RuntimeException: > >> cannot convert "{the rdfs:label for Person 1}"to NonLiteral > >> > at > >> org.apache.clerezza.rdf.jena.commons.Jena2TriaUtil.convertNonLiteral( > >> Jena2TriaUtil.java:127) > >> > at > >> org.apache.clerezza.rdf.jena.facade.JenaGraph.filter(JenaGraph.java:1 > >> 23) > >> > at > >> org.apache.clerezza.rdf.jena.facade.JenaGraph.graphBaseFind(JenaGraph > >> .java:151) > >> > at > com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:240) > >> > at > >> com.hp.hpl.jena.graph.impl.GraphBase.graphBaseFind(GraphBase.java:260 > >> ) > >> > at > com.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:257) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleM > >> apper.<init>(QueryIterTriplePattern.java:67) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterTriplePattern.nextSta > >> ge(QueryIterTriplePattern.java:41) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextS > >> tage(QueryIterRepeatApply.java:91) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBi > >> nding(QueryIterRepeatApply.java:52) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Quer > >> yIteratorBase.java:66) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextB > >> inding(QueryIterBlockTriples.java:53) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Quer > >> yIteratorBase.java:66) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterSlice.hasNextBinding( > >> QueryIterSlice.java:64) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Quer > >> yIteratorBase.java:66) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBi > >> nding(QueryIteratorWrapper.java:28) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Quer > >> yIteratorBase.java:66) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBi > >> nding(QueryIteratorWrapper.java:28) > >> > at > >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(Quer > >> yIteratorBase.java:66) > >> > at > >> com.hp.hpl.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream > >> .java:57) > >> > at > >> org.apache.clerezza.rdf.jena.sparql.ResultSetWrapper.<init>(Res > >> ultSetWrapper.java:39) > >> > at > >> org.apache.clerezza.rdf.jena.sparql.JenaSparqlEngine.execute(JenaSpar > >> qlEngine.java:68) > >> > at > >> org.apache.clerezza.rdf.core.access.TcManager.executeSparqlQuery(TcMa > >> nager.java:272) > >> > at > >> org.apache.stanbol.commons.web.sparql.resource.SparqlEndpointResource > >> .sparql(SparqlEndpointResource.java:162) > >> > at > >> org.apache.stanbol.commons.web.sparql.resource.SparqlEndpointResource > >> .postSparql(SparqlEndpointResource.java:182) > >> > at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown > Source) > >> > at > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > >> sorImpl.java:43) > >> > at java.lang.reflect.Method.invoke(Method.java:616) > >> > at > >> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMe > >> thodInvokerFactory.java:60) > >> > at > >> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMeth > >> odDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMetho > >> dDispatchProvider.java:205) > >> > at > >> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDi > >> spatcher.dispatch(ResourceJavaMethodDispatcher.java:75) > >> > at > >> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethod > >> Rule.java:302) > >> > at > >> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(Resourc > >> eClassRule.java:108) > >> > at > >> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHa > >> ndPathRule.java:147) > >> > at > >> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(R > >> ootResourceClassesRule.java:84) > >> > at > >> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ > >> est(WebApplicationImpl.java:1480) > >> > at > >> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ > >> est(WebApplicationImpl.java:1411) > >> > at > >> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque > >> st(WebApplicationImpl.java:1360) > >> > at > >> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque > >> st(WebApplicationImpl.java:1350) > >> > at > >> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponen > >> t.java:416) > >> > at > >> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet > >> Container.java:538) > >> > at > >> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet > >> Container.java:716) > >> > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > at > >> org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(S > >> ervletHandler.java:96) > >> > at > >> org.apache.felix.http.base.internal.handler.ServletHandler.handle(Ser > >> vletHandler.java:79) > >> > at > >> org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(S > >> ervletPipeline.java:42) > >> > at > >> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.do > >> Filter(InvocationFilterChain.java:49) > >> > at > >> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter > >> (HttpFilterChain.java:33) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.handle(Filt > >> erHandler.java:78) > >> > at > >> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.do > >> Filter(InvocationFilterChain.java:47) > >> > at > >> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter > >> (HttpFilterChain.java:33) > >> > at > >> org.apache.stanbol.commons.httpqueryheaders.impl.QueryHeadersFilter.d > >> oFilter(QueryHeadersFilter.java:75) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(Fi > >> lterHandler.java:88) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.handle(Filt > >> erHandler.java:76) > >> > at > >> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.do > >> Filter(InvocationFilterChain.java:47) > >> > at > >> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter > >> (HttpFilterChain.java:33) > >> > at > >> org.apache.stanbol.commons.web.resources.ResourceServingFilter.doFilt > >> erHttp(ResourceServingFilter.java:148) > >> > at > >> org.apache.stanbol.commons.web.resources.ResourceServingFilter.doFilt > >> er(ResourceServingFilter.java:91) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(Fi > >> lterHandler.java:88) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.handle(Filt > >> erHandler.java:76) > >> > at > >> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.do > >> Filter(InvocationFilterChain.java:47) > >> > at > >> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter > >> (HttpFilterChain.java:33) > >> > at > >> org.apache.stanbol.commons.security.auth.AuthenticatingFilter$1.run(A > >> uthenticatingFilter.java:163) > >> > at java.security.AccessController.doPrivileged(Native Method) > >> > at > javax.security.auth.Subject.doAsPrivileged(Subject.java:537) > >> > at > >> org.apache.stanbol.commons.security.auth.AuthenticatingFilter.doFilte > >> r(AuthenticatingFilter.java:159) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.doHandle(Fi > >> lterHandler.java:88) > >> > at > >> org.apache.felix.http.base.internal.handler.FilterHandler.handle(Filt > >> erHandler.java:76) > >> > at > >> org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.do > >> Filter(InvocationFilterChain.java:47) > >> > at > >> org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter > >> (HttpFilterChain.java:33) > >> > at > >> org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch( > >> FilterPipeline.java:48) > >> > at > >> org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Disp > >> atcher.java:39) > >> > at > >> org.apache.felix.http.base.internal.DispatcherServlet.service(Dispatc > >> herServlet.java:67) > >> > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > at > >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511 > >> ) > >> > at > >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:3 > >> 90) > >> > at > >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1 > >> 82) > >> > at > >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7 > >> 65) > >> > at > >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1 > >> 52) > >> > at org.mortbay.jetty.Server.handle(Server.java:326) > >> > at > >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54 > >> 2) > >> > at > >> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnectio > >> n.java:943) > >> > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) > >> > at > >> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) > >> > at > >> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > >> > at > >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.ja > >> va:410) > >> > at > >> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.j > >> ava:582) > >> > </pre> > >> > <hr /><i><small>Powered by Jetty://</small></i><br/> <br/> <br/> > >> > <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> > >> > <br/> <br/> <br/> <br/> <br/> <br/> > >> > > >> > </body> > >> > </html> > >> > > >> > > >> > RelFinder Query: > >> > > >> > SELECT * WHERE { > >> > <http://dopma-ropma.rand.org/people/{Target Person 1}> ?pf1 ?middle . > >> > <http://dopma-ropma.rand.org/people/{Target Person 2}> ?ps1 ?os1 . > >> > ?os1 ?ps2 ?middle . > >> > FILTER ( > >> > (?pf1 != <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ) && > >> > (?pf1 != <http://www.w3.org/2004/02/skos/core#subject> ) && (?pf1 > >> > != <http://www.w3.org/2002/07/owl#sameAs> ) && (?pf1 != > >> > <http://purl.org/dc/terms/subject> ) && (?pf1 != > >> > <http://purl.org/dc/terms/dateCopyrighted> ) && (?pf1 != > >> > <http://purl.org/dc/terms/title> ) && (?pf1 != > >> > <http://dopma-ropma.rand.org/people/employeeID2> ) && (?pf1 != > >> > <http://xmlns.com/foaf/0.1/mbox> ) && (?ps1 != > >> > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ) && (?ps1 != > >> > <http://www.w3.org/2004/02/skos/core#subject> ) && (?ps1 != > >> > <http://www.w3.org/2002/07/owl#sameAs> ) && (?ps1 != > >> > <http://purl.org/dc/terms/subject> ) && (?ps1 != > >> > <http://purl.org/dc/terms/dateCopyrighted> ) && (?ps1 != > >> > <http://purl.org/dc/terms/title> ) && (?ps1 != > >> > <http://dopma-ropma.rand.org/people/employeeID2> ) && (?ps1 != > >> > <http://xmlns.com/foaf/0.1/mbox> ) && (?ps2 != > >> > <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ) && (?ps2 != > >> > <http://www.w3.org/2004/02/skos/core#subject> ) && (?ps2 != > >> > <http://www.w3.org/2002/07/owl#sameAs> ) && (?ps2 != > >> > <http://purl.org/dc/terms/subject> ) && (?ps2 != > >> > <http://purl.org/dc/terms/dateCopyrighted> ) && (?ps2 != > >> > <http://purl.org/dc/terms/title> ) && (?ps2 != > >> > <http://dopma-ropma.rand.org/people/employeeID2> ) && (?ps2 != > >> > <http://xmlns.com/foaf/0.1/mbox> ) && (!isLiteral(?middle)) && > >> > (?middle != <http://dopma-ropma.rand.org/people/{Target Person 1}> > >> > ) && (?middle != <http://dopma-ropma.rand.org/people/{Target Person > >> > 2}> ) && (?middle != ?os1 ) && (!isLiteral(?os1)) && (?os1 != > >> > <http://dopma-ropma.rand.org/people/{Target Person 1}> ) && (?os1 > >> > != <http://dopma-ropma.rand.org/people/{Target Person 2}> ) && > >> > (?os1 != ?middle ) ). > >> > } LIMIT 10 > >> > > >> > > >> _____________________________________________________________________ > >> _____ > >> > > >> > This email message is for the sole use of the intended recipient(s) > >> > and may contain confidential information. Any unauthorized review, > >> > use, disclosure or distribution is prohibited. If you are not the > >> > intended recipient, please contact the sender by reply email and > >> > destroy all > >> copies > >> > of the original message. > >> > > >> > >> > >> > >> -- > >> | Rupert Westenthaler rupert.westentha...@gmail.com > >> | Bodenlehenstraße 11 ++43-699-11108907 > >> | A-5500 Bischofshofen > >> > > > > > > __________________________________________________________________________ > > This email message is for the sole use of the intended recipient(s) and > may contain confidential information. Any unauthorized review, use, > disclosure or distribution is prohibited. If you are not the intended > recipient, please contact the sender by reply email and destroy all copies > of the original message. > >