toto183 / relfinder

Automatically exported from code.google.com/p/relfinder
0 stars 0 forks source link

Additional links displayed in Relfinder + test case #50

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
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>

Original issue reported on code.google.com by kur...@googlemail.com on 27 Jun 2013 at 6:23

GoogleCodeExporter commented 8 years ago
I just started trying RelFinder for browsing Bio2RDF data from PubMed, since it 
seemed a natural choice for finding "publications that person1 and person2 both 
were authors on", but RelFinder doesn't find any when using just the two 
<http://bio2rdf.org/pubmed_vocabulary:Author> nodes as a query.

Here's a query that illustrates the problem: 
http://www.visualdataweb.org/relfinder/demo.swf?obj1=aHR0cDovL2JpbzJyZGYub3JnL3B
1Ym1lZF9yZXNvdXJjZTphdXRob3I6ZGU3ZWJmZGUyZWY1MDc0Zjg3NTA3OTVkOTI0MWIyOWF8aHR0cDo
vL2JpbzJyZGYub3JnL3B1Ym1lZF9yZXNvdXJjZTphdXRob3I6ZGU3ZWJmZGUyZWY1MDc0Zjg3NTA3OTV
kOTI0MWIyOWE=&obj2=aHR0cDovL2JpbzJyZGYub3JnL3B1Ym1lZF9yZXNvdXJjZTphdXRob3I6YjUyN
jBmOGE3YzA5ZTk2NTJlYTU5NjliMGRiMjU3Njh8aHR0cDovL2JpbzJyZGYub3JnL3B1Ym1lZF9yZXNvd
XJjZTphdXRob3I6YjUyNjBmOGE3YzA5ZTk2NTJlYTU5NjliMGRiMjU3Njg=&obj3=aHR0cDovL2JpbzJ
yZGYub3JnL3B1Ym1lZDoxOTg2ODM3MnxodHRwOi8vYmlvMnJkZi5vcmcvcHVibWVkOjE5ODY4Mzcy&ob
j4=aHR0cDovL2JpbzJyZGYub3JnL3B1Ym1lZDoxOTg2ODQ1NXxodHRwOi8vYmlvMnJkZi5vcmcvcHVib
WVkOjE5ODY4NDU1&name=QmlvMlJERg==&endpointURI=aHR0cDovL3B1Ym1lZC5iaW8ycmRmLm9yZw
==&dontAppendSPARQL=ZmFsc2U=&isVirtuoso=ZmFsc2U=&useProxy=dHJ1ZQ==&method=UE9TVA
==&autocompleteLanguage=&autocompleteURIs=aHR0cDovL3d3dy53My5vcmcvMjAwMC8wMS9yZG
Ytc2NoZW1hI2xhYmVs&ignoredProperties=aHR0cDovL3B1Ym1lZF9yZXNvdXJjZS5iaW8ycmRmLm9
yZy9yZXNvdXJjZQ==&imageURIs=aHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS9kZXBpY3Rpb24=&lin
kURIs=aHR0cDovL3htbG5zLmNvbS9mb2FmLzAuMS9wYWdl&maxRelationLegth=Mg==

Author 
<http://bio2rdf.org/pubmed_resource:author:de7ebfde2ef5074f8750795d9241b29a> "L 
Pearce" and 
<http://bio2rdf.org/pubmed_resource:author:b5260f8a7c09e9652ea5969b0db25768> "W 
H Brown" are added as targets in the web, as well as two articles they both 
authored: <http://bio2rdf.org/pubmed:19868372> and 
<http://bio2rdf.org/pubmed:19868455>. There's several other articles they 
authored together, which don't automatically show up.

The Author articles are linked to the Publication nodes via a Contributor 
<http://bio2rdf.org/pubmed_vocabulary:Contributor> intermediary node, which 
looks like it would work just fine for linking, so not quite sure why it isn't. 

I did notice that the direction of the arrow for the Contributor to Publication 
link seems to go the wrong way. The data set has:

@prefix v: <http://bio2rdf.org/pubmed_vocabulary:>
v:PubMedRecord dc:contributor v:Contributor .
v:Contributor v:author v:Author .

However when drawn in RelFinder, the arrows point from a Contributor to a 
Publication, which seems wrong.

Original comment by Brooks.B...@gmail.com on 17 Mar 2015 at 7:01