2009-10-20 10 views
7

gibt, gebe ich hoffe jemand mich auf dieser wahrscheinlich total einfach zu lösen Problem helfen:SPARQL Query-unerwartetes Ergebnis

ich eine SPARQL-Abfrage für die folgenden RDF (merkt in N3 ausgeführt werden soll, die RDF/XML sitzt here). Dies ist die desription eines Zeitschriftenartikel und Beschreibungen der Zeitschrift, Autor und Herausgeber: Homepage von ex:

@prefix bibo: <http://purl.org/ontology/bibo/> . 
@prefix dc: <http://purl.org/dc/elements/1.1/> . 
@prefix ex: <http://example.org/thesis/> . 
@prefix foaf: <http://xmlns.com/foaf/0.1/> . 
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . 

<ex:XY>  a bibo:Article; 
    dc:creator ex:umstaetter; 
    dc:date "2008-11-01"; 
    dc:isPartOf ex:bibdienst; 
    dc:title "DDC in Europa"@de; 
    bibo:endPage "1221"; 
    bibo:issue "11"; 
    bibo:language "de"; 
    bibo:pageStart "1194"; 
    bibo:uri <http://www.zlb.de/Erschliessung020309BD.pdf>; 
    bibo:volume "42" . 

<ex:bibdienst>  a bibo:Journal; 
    dc:publisher ex:zlb; 
    dc:title "Bibliotheksdienst"@de; 
    bibo:issn "00061972" . 

<ex:umstaetter>  a foaf:person; 
    foaf:birthday "1941-06-12"; 
    foaf:gender "Male"; 
    foaf:givenName "Walther"; 
    foaf:homepage <http://www.ib.hu-berlin.de/~wumsta/index.html>; 
    foaf:img "http://libreas.eu/ausgabe7/pictures/wumstaetter1.jpg"; 
    foaf:name "Walther Umst\u00E4tter"; 
    foaf:surname "Umst\u00E4tter"; 
    foaf:title "Prof. Dr. rer. nat." . 

<ex:zlb>  a foaf:Organization; 
    foaf:homepage <http://www.zlb.de>; 
    foaf:name "Zentral- und Landesbibliothek Berlin"@de . 

Für Testzwecke ich die foaf auslesen wollte ZLB - die SPARQL Ich möchte laufen soll:

PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
PREFIX bibo: <http://purl.org/ontology/bibo/> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX ex: <http://example.org/thesis/> 

SELECT ?article ?publisher ?publisher_url 
WHERE 
{ 
    ?article dc:isPartOf ?journal . 
    ?journal dc:publisher ?publisher . 
    ?publisher foaf:homepage ?publisher_url 
} 

(Nochmal:. Diese würde für die Prüfung sein, nur weil es nur eine Einheit des Artikels ist)

es auf meinem lokalen Rechner mit Pyt Laufe hon und RDflib gibt mir kein Ergebnis. Dies gilt auch für die Online Redland SPARQL Query Demo.

Wer da draußen eine Lösung sieht? Bin ich auf dem richtigen Weg oder total falsch?

Antwort

7

Ich glaube nicht, dass Sie einen QName in einem XML-Attributwert verwenden können; z.B. der Wert rdf:about. So betrachten Sie diese Zeile aus dem RDF/XML-Datei:

<bibo:Journal rdf:about="ex:bibdienst"> 

Ich denke, dass dies tatsächlich zu sagen, dass das Thema URI „ab: bibdienst“. Das ist eine syntaktisch gültige URI, aber es ist nicht das gleiche URI wie erscheint als das Ziel der dreifachen zu dieser Linie entsprechen:

<dc:isPartOf rdf:resource="http://example.org/thesis/bibdienst" /> 

Versuchen Sie, die QNames in XML ersetzt Attributwerte mit dem entsprechenden URIs und sehen, ob das behebt Ihr Problem.

+0

Perfect. Das hat mein Problem behoben. Irgendwie war ich verwirrt darüber, was in XML und N3 erlaubt ist und was nicht :) DANKE WIEDER! – fab

6

Yep Stephen C ist völlig richtig, dass Sie nicht QNames in XML-Attribute verwenden können, können Sie XML-Entitäten stattdessen verwenden, die Sie in einer DTD-Block an der Spitze des Dokuments wie so definieren:

zB.

<!DOCTYPE rdf:RDF[ 
    <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'> 
    <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'> 
    <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'> 
    <!ENTITY ex 'http://example.org/thesis/'> 
    <!ENTITY dc 'http://purl.org/dc/elements/1.1/'> 
    <!ENTITY foaf 'http://xmlns.com/foaf/0.1/'> 
    <!ENTITY bibo 'http://purl.org/ontology/bibo/'> 
]> 

Dann können Sie Attribute definieren, wie so:

<bibo:Journal rdf:about="&ex;bibdienst"> 
+0

DANKE für den Vorschlag. Ich werde das ausprobieren (ich habe mich ja immer gefragt, was das "& [prefix];" in XML bedeutet. Dank dir ist es mir jetzt total klar). DANKE VIELMALS! – fab