Hi Steve,
before we ported the Relfinder to Flash, I wrote some PHP files for generating and testing the queries:
https://github.com/dbpedia/dbpedia/blob/master/tutorials/relfinder_search/RelationFinder.php

You can use the generator here (querying disabled):
http://dbpedia.aksw.org/dbpedia_demo/dbpedia/tutorials/relfinder_search/demo_relfinder.php

Maybe this helps you debug the SPARQL endpoint or understand Relfinder better.
All the best,
Sebastian


Am 03.06.2013 18:25, schrieb Isley, Steven:
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.&lt;init&gt;(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.&lt;init&gt;(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.




--
Dipl. Inf. Sebastian Hellmann
Department of Computer Science, University of Leipzig
Events: NLP & DBpedia 2013 (http://nlp-dbpedia2013.blogs.aksw.org, Deadline: *July 8th*)
Venha para a Alemanha como PhD: http://bis.informatik.uni-leipzig.de/csf
Projects: 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

Reply via email to