2009-10-20 17 views
7

Spero che qualcuno mi può aiutare su questo probabilmente del tutto facile da risolvere il problema:SPARQL Query dà risultato inaspettato

voglio eseguire una query SPARQL contro il seguente RDF (indicato nella N3, l'RDF/XML siede here). Questo è il desription di un articolo di giornale e le descrizioni della rivista, autore ed editore:

@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 . 

A scopo di verifica ho voluto leggere il foaf: homepage di es: ZLB - lo SPARQL voglio per eseguire è:

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 
} 

(in questo caso:. Questo sta andando essere per il test solo in quanto non v'è una sola entità di articolo)

in esecuzione sulla mia macchina locale con Pyt hon e RDflib non mi danno un risultato. Neanche la demo di Query SPARQL Online Redland.

Qualcuno là fuori che vede una soluzione? Sono sulla buona strada o totalmente sbagliato?

risposta

7

Non penso che sia possibile utilizzare un QName in un valore di attributo XML; per esempio. il valore di rdf:about. Quindi prendere in considerazione questa riga dal file RDF/XML:

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

Penso che questo è in realtà dicendo che il soggetto URI è "ex: bibdienst". Cioè un URI sintatticamente valido, ma non è lo stesso URI come appare come l'oggetto della tripla corrispondente a questa linea:

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

provare a sostituire il QNames in XML attributo valori con URI corrispondenti e vedere se tale corregge il tuo problema

+0

Perfetto. Questo ha risolto il mio problema. In qualche modo mi sono confuso su cosa è permesso in XML e N3 e cosa no :) GRAZIE ANCORA! – fab

6

Yep Stephen C è del tutto corretto affermare che non è possibile utilizzare QNames negli attributi XML, è possibile utilizzare le entità XML, invece, che si definisce in un blocco DTD nella parte superiore del documento in questo modo:

ad es.

<!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/'> 
]> 

Quindi è possibile definire gli attributi in questo modo:

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

GRAZIE per il suggerimento. Ne proverò uno (mi sono sempre chiesto cosa significasse il "& [prefisso]" in XML, grazie a te ora è totalmente chiaro per me). MOLTE GRAZIE! – fab