Hi, there was a post on the apache stanbol list, which provides a test case. I
posted it below and attached the screenshot. The triples are missing from the
RDF, I checked this, but I didn't reproduce the error.
All the best,
Sebastian
Hi Sebastian,
I finally managed some more time to work on this. I've run into good and bad
news: the good news is that sometimes RelFinder will find non-trivial paths
(something more complicated than "a and b both have some relationship to c")
but the results are somewhat wonky and I don't think it finds all of them that
it should. See the end of this email for the example RDF data that I'm using.
This query correctly returns document-1 when executed on the Stanbol SPARQL endpoint:
SELECT * WHERE {
?middle ?pf1 <http://some.org/people/person-1> .
?middle ?ps1 <http://some.org/people/person-2> .
} LIMIT 10
And the following query correctly returns document-2
SELECT * WHERE {
?middle ?pf1 <http://some.org/people/person-2> .
?middle ?ps1 <http://some.org/people/person-3> .
} LIMIT 10
The following query also works, however, I don't see it as one of the Relfinder queries specified in [1]:
SELECT * WHERE {
?middle ?pf1 <http://some.org/people/person-1> .
?os1 ?ps1 <http://some.org/people/person-3> .
?os1 ?ps2 ?os2 .
?middle ?ps3 ?os2 .
} LIMIT 10
Should the above query be included in Relfinder for max relation lengths > 4,
and if so, any tips on how to modify relfinder? As it stands, the RDF DATA
VERSION 1 does have a path connecting persons 1 and 3, but Relfinder doesn't
find it.
Also, if I modify the rdf data to include inverse author properties (see RDF
DATA VERSION 2) then RelFinder correctly finds the path through the document
from person 1 to person 3, but starts adding spurious links when I search
between person 1 and person 2. For instance, it includes author and creator
arrows going both ways, like document 1 -> creator -> person2 AND document1 ->
author -> person 2. The last statement isn't correct and isn't included in the
RDF. I've attached a screenshot.
[1]
http://dbpedia.aksw.org/dbpedia_demo/dbpedia/tutorials/relfinder_search/demo_rel
finder.php
RDF DATA VERSION 1:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/">
<rdf:Description rdf:about="http://some.org/people/person-2">
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<rdfs:label>Person 2</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/people/person-3">
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<rdfs:label>Person 3</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/people/person-1">
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<rdfs:label>Person 1</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/documents/document-1">
<dcterms:creator rdf:resource="http://some.org/people/person-1"/>
<rdfs:label>Document 1</rdfs:label>
<dcterms:creator rdf:resource="http://some.org/people/person-2"/>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/documents/document-2">
<dcterms:creator rdf:resource="http://some.org/people/person-3"/>
<rdfs:label>Document 2</rdfs:label>
<dcterms:creator rdf:resource="http://some.org/people/person-2"/>
</rdf:Description>
</rdf:RDF>
RDF DATA VERSION 2
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcterms="http://purl.org/dc/terms/">
<rdf:Description rdf:about="http://some.org/people/person-2">
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<dcterms:author rdf:resource="http://some.org/documents/document-1"/>
<dcterms:author rdf:resource="http://some.org/documents/document-2"/>
<rdfs:label>Person 2</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/people/person-3">
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<dcterms:author rdf:resource="http://some.org/documents/document-3"/>
<rdfs:label>Person 3</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/people/person-1">
<dcterms:author rdf:resource="http://some.org/documents/document-1"/>
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<rdfs:label>Person 1</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/documents/document-1">
<dcterms:creator rdf:resource="http://some.org/people/person-1"/>
<rdfs:label>Document 1</rdfs:label>
<dcterms:creator rdf:resource="http://some.org/people/person-2"/>
</rdf:Description>
<rdf:Description rdf:about="http://some.org/documents/document-2">
<dcterms:creator rdf:resource="http://some.org/people/person-3"/>
<rdfs:label>Document 2</rdfs:label>
<dcterms:creator rdf:resource="http://some.org/people/person-2"/>
</rdf:Description>
</rdf:RDF>