Wouldn't it be the most effective thing to make a unit test?I can help write and generate/check the queries, if you give us your example data. In the end, we probably just need to create examples of different lengths on DBpedia and then download and merge the data into one file and create queries of different lengths.
What examples are you using? Sebastian
Am 05.06.2013 21:56, schrieb Isley, Steven:
I get results for the first query (as usual), but no results for the second query. However, before updating Clerezza, I would get an 'invalid query' response from Stanbol's sparql query page, now I just get no results. My graph definitely contains results for the second query - and for many other queries more complicated than that one. RelFinder looks for all sorts of paths connecting two entities, I just picked one of the simpler ones for demonstration purposes. -steve -----Original Message----- From: Reto Bachmann-Gmür [mailto:r...@apache.org] Sent: Wednesday, June 05, 2013 10:08 AM To: dev@stanbol.apache.org Subject: Re: Stanbol SPARQL and RelFinder Hi Steven To make sure I understand: You are still getting results for: SELECT * WHERE { <Target Person 1 URI> ?pf1 ?middle . <Target Person 2 URI> ?ps1 ?os1 . } LIMIT 10 but no result for SELECT * WHERE { <Target Person 1 URI> ?pf1 ?middle . <Target Person 2 URI> ?ps1 ?os1 . ?os1 ?ps2 ?middle . } However, your graph contains triples that satisfy the latter? Cheers, Reto On Wed, Jun 5, 2013 at 6:48 PM, Isley, Steven <sis...@prgs.edu> wrote:Update on RelFinder integration, I recompiled Stanbol using the latest and greatest snapshot of Clerezza. I updated every reference to it I could find in all the pom.xml and list.xml files I could find. I started up a fresh copy of Stanbol and loaded it with my rdf data. The SPARQL endpoint no longer returns an error, but it also doesn't return any results (beyond the original, direct connections - i.e. two people both authored a document together). I don't know if this is because of unrelated changes in the new version of Clerezza causing problems, or the CLEREZZA-787 update not entirely fixing the bug. I lack the time and know-how to hunt this down, but thought others might want to know how far I got. The relevant portion (I think) of the Stanbol error log is attached. Thanks for everyone's help thus far. -steve -----Original Message----- From: Reto Bachmann-Gmür [mailto:r...@apache.org] Sent: Tuesday, June 04, 2013 12:41 PM To: dev@stanbol.apache.org Subject: Re: Stanbol SPARQL and RelFinder Hi Steve Basically you have to change the versions in the list.xml files. Not sure if you can just update rdf.jena.facade or if this implies updati a lot of clerezza andd jena bundes. If the later is the case your work will result in a valuable patch for Stanbol. Cheers, Reto On Tue, Jun 4, 2013 at 6:42 PM, Isley, Steven <sis...@prgs.edu> wrote:Hi Reto, Sorry for the newbie question, but what is the best way to go about integrating an updated external component like Clerezza into Stanbol? I'm very new to Maven and OSGi and struggling with getting my head around such a large project. I'm also unfortunately working in a Windows environment, but I'm trying to find a way to switch. I'm currently downloading the Clerezza source and will try compiling it on my machine, but how do I make Stanbol use it? Thanks for any help. -steve -----Original Message----- From: m...@farewellutopia.com [mailto:m...@farewellutopia.com] On Behalf Of Reto Bachmann-Gmür Sent: Tuesday, June 04, 2013 2:53 AM To: dev@stanbol.apache.org Cc: clerezza-...@incubator.apache.org Subject: Re: Stanbol SPARQL and RelFinder 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 returnan 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 querySELECT * WHERE { <Target Person 1 URI> ?pf1 ?middle . <Target Person 2 URI> ?ps1 ?os1 . ?os1 ?ps2 ?middle . } LIMIT 10does exactly that, as it uses values ( 'os1') of '<Target Person 2 URI> ?ps1 ?os1' as first argument (subject) for an second join URI> '?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 twofavorite demos to show people who have never heard of the semantic web). I ran into some problems with Relfinder that I thinkI fixed.It was using a different parameter name to specify the graph to use inthe 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 twonodes.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 thetwo 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 errormessage).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 thesimplest 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 queriesare 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 muchappreciated.-- 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 intoissues 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}" toNonLiteral</title></head> <body><h2>HTTP ERROR 500</h2> <p>Problem accessing /sparql. Reason: <pre> cannot convert "{the rdfs:label for Person 1}" toNonLiteral</pre></p><h3>Causedby:</h3><pre>java.lang.RuntimeException:cannot convert "{the rdfs:label for Person 1}"to NonLiteralatorg.apache.clerezza.rdf.jena.commons.Jena2TriaUtil.convertNonLi te ra l( Jena2TriaUtil.java:127)atorg.apache.clerezza.rdf.jena.facade.JenaGraph.filter(JenaGraph. ja va :1 23)atorg.apache.clerezza.rdf.jena.facade.JenaGraph.graphBaseFind(Jen aG ra ph .java:151)atcom.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:240)atcom.hp.hpl.jena.graph.impl.GraphBase.graphBaseFind(GraphBase.ja va :2 60 )atcom.hp.hpl.jena.graph.impl.GraphBase.find(GraphBase.java:257)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIterTriplePattern$T ri pl eM apper.<init>(QueryIterTriplePattern.java:67)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIterTriplePattern.n ex tS ta ge(QueryIterTriplePattern.java:41)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.mak eN ex tS tage(QueryIterRepeatApply.java:91)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.has Ne xt Bi nding(QueryIterRepeatApply.java:52)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNex t( Qu er yIteratorBase.java:66)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIterBlockTriples.ha sN ex tB inding(QueryIterBlockTriples.java:53)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNex t( Qu er yIteratorBase.java:66)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIterSlice.hasNextBi nd in g( QueryIterSlice.java:64)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNex t( Qu er yIteratorBase.java:66)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.has Ne xt Bi nding(QueryIteratorWrapper.java:28)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNex t( Qu er yIteratorBase.java:66)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.has Ne xt Bi nding(QueryIteratorWrapper.java:28)atcom.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNex t( Qu er yIteratorBase.java:66)atcom.hp.hpl.jena.sparql.engine.ResultSetStream.hasNext(ResultSet St re am .java:57)atorg.apache.clerezza.rdf.jena.sparql.ResultSetWrapper.<init&g t; (R es ultSetWrapper.java:39)atorg.apache.clerezza.rdf.jena.sparql.JenaSparqlEngine.execute(Je na Sp ar qlEngine.java:68)atorg.apache.clerezza.rdf.core.access.TcManager.executeSparqlQuer y( Tc Ma nager.java:272)atorg.apache.stanbol.commons.web.sparql.resource.SparqlEndpointRe so ur ce .sparql(SparqlEndpointResource.java:162)atorg.apache.stanbol.commons.web.sparql.resource.SparqlEndpointRe so ur ce .postSparql(SparqlEndpointResource.java:182)at sun.reflect.GeneratedMethodAccessor39.invoke(UnknownSource)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMetho dA cc es sorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:616) atcom.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke( Ja va Me thodInvokerFactory.java:60)atcom.sun.jersey.server.impl.model.method.dispatch.AbstractResour ce Me th odDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourc eM et ho dDispatchProvider.java:205)atcom.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMe th od Di spatcher.dispatch(ResourceJavaMethodDispatcher.java:75)atcom.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(Http Me th od Rule.java:302)atcom.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(R es ou rc eClassRule.java:108)atcom.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(R ig ht Ha ndPathRule.java:147)atcom.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.ac ce pt (R ootResourceClassesRule.java:84)atcom.sun.jersey.server.impl.application.WebApplicationImpl._hand le Re qu est(WebApplicationImpl.java:1480)atcom.sun.jersey.server.impl.application.WebApplicationImpl._hand le Re qu est(WebApplicationImpl.java:1411)atcom.sun.jersey.server.impl.application.WebApplicationImpl.handl eR eq ue st(WebApplicationImpl.java:1360)atcom.sun.jersey.server.impl.application.WebApplicationImpl.handl eR eq ue st(WebApplicationImpl.java:1350)atcom.sun.jersey.spi.container.servlet.WebComponent.service(WebCo mp on en t.java:416)atcom.sun.jersey.spi.container.servlet.ServletContainer.service(S er vl et Container.java:538)atcom.sun.jersey.spi.container.servlet.ServletContainer.service(S er vl et Container.java:716)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:820)atorg.apache.felix.http.base.internal.handler.ServletHandler.doHa nd le (S ervletHandler.java:96)atorg.apache.felix.http.base.internal.handler.ServletHandler.hand le (S er vletHandler.java:79)atorg.apache.felix.http.base.internal.dispatch.ServletPipeline.ha nd le (S ervletPipeline.java:42)atorg.apache.felix.http.base.internal.dispatch.InvocationFilterChain. do Filter(InvocationFilterChain.java:49)atorg.apache.felix.http.base.internal.dispatch.HttpFilterChain.do Fi lt er (HttpFilterChain.java:33)atorg.apache.felix.http.base.internal.handler.FilterHandler.handl e( Fi lt erHandler.java:78)atorg.apache.felix.http.base.internal.dispatch.InvocationFilterChain. do Filter(InvocationFilterChain.java:47)atorg.apache.felix.http.base.internal.dispatch.HttpFilterChain.do Fi lt er (HttpFilterChain.java:33)atorg.apache.stanbol.commons.httpqueryheaders.impl.QueryHeadersFi lt er .d oFilter(QueryHeadersFilter.java:75)atorg.apache.felix.http.base.internal.handler.FilterHandler.doHan dl e( Fi lterHandler.java:88)atorg.apache.felix.http.base.internal.handler.FilterHandler.handl e( Fi lt erHandler.java:76)atorg.apache.felix.http.base.internal.dispatch.InvocationFilterChain. do Filter(InvocationFilterChain.java:47)atorg.apache.felix.http.base.internal.dispatch.HttpFilterChain.do Fi lt er (HttpFilterChain.java:33)atorg.apache.stanbol.commons.web.resources.ResourceServingFilter. do Fi lt erHttp(ResourceServingFilter.java:148)atorg.apache.stanbol.commons.web.resources.ResourceServingFilter. do Fi lt er(ResourceServingFilter.java:91)atorg.apache.felix.http.base.internal.handler.FilterHandler.doHan dl e( Fi lterHandler.java:88)atorg.apache.felix.http.base.internal.handler.FilterHandler.handl e( Fi lt erHandler.java:76)atorg.apache.felix.http.base.internal.dispatch.InvocationFilterChain. do Filter(InvocationFilterChain.java:47)atorg.apache.felix.http.base.internal.dispatch.HttpFilterChain.do Fi lt er (HttpFilterChain.java:33)atorg.apache.stanbol.commons.security.auth.AuthenticatingFilter$1 .r un (A uthenticatingFilter.java:163)at java.security.AccessController.doPrivileged(NativeMethod)atjavax.security.auth.Subject.doAsPrivileged(Subject.java:537)atorg.apache.stanbol.commons.security.auth.AuthenticatingFilter.d oF il te r(AuthenticatingFilter.java:159)atorg.apache.felix.http.base.internal.handler.FilterHandler.doHan dl e( Fi lterHandler.java:88)atorg.apache.felix.http.base.internal.handler.FilterHandler.handl e( Fi lt erHandler.java:76)atorg.apache.felix.http.base.internal.dispatch.InvocationFilterChain. do Filter(InvocationFilterChain.java:47)atorg.apache.felix.http.base.internal.dispatch.HttpFilterChain.do Fi lt er (HttpFilterChain.java:33)atorg.apache.felix.http.base.internal.dispatch.FilterPipeline.dis pa tc h( FilterPipeline.java:48)atorg.apache.felix.http.base.internal.dispatch.Dispatcher.dispatc h( Di sp atcher.java:39)atorg.apache.felix.http.base.internal.DispatcherServlet.service(D is pa tc herServlet.java:67)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:820)atorg.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.ja va :5 11 )atorg.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler. ja va :3 90)atorg.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler. ja va :1 82)atorg.mortbay.jetty.handler.ContextHandler.handle(ContextHandler. ja va :7 65)atorg.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper. ja va :1 52)at org.mortbay.jetty.Server.handle(Server.java:326) atorg.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 54 2)atorg.mortbay.jetty.HttpConnection$RequestHandler.content(HttpCon ne ct io n.java:943)atorg.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)atorg.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218 )atorg.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404 )atorg.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint. ja va:410)atorg.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThread Po ol .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 allcopiesof 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.____________________________________________________________________ __ ____ 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.______________________________________________________________________ ____ 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.__________________________________________________________________________ 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.
-- Dipl. Inf. Sebastian Hellmann Department of Computer Science, University of LeipzigEvents: NLP & DBpedia 2013 (http://nlp-dbpedia2013.blogs.aksw.org, Deadline: *July 8th*)
Venha para a Alemanha como PhD: http://bis.informatik.uni-leipzig.de/csfProjects: http://nlp2rdf.org , http://linguistics.okfn.org , http://dbpedia.org/Wiktionary , http://dbpedia.org
Homepage: http://bis.informatik.uni-leipzig.de/SebastianHellmann Research Group: http://aksw.org