2009-10-20 10 views
7

J'espère que quelqu'un peut me aider sur ce qui a probablement tout problème facile à résoudre:d'interrogation SPARQL donne résultat inattendu

Je veux exécuter une requête SPARQL contre les éléments suivants RDF (noté dans N3, le RDF/XML se trouve here). Ceci est la Desription d'un article de revue et les descriptions de la revue, l'auteur et éditeur:

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

Pour des fins de test, je voulais lire le foaf: page d'accueil de ex: zlb - le SPARQL Je veux à exécuter est:

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 
} 

(Encore une fois. Cela va être seulement pour les tests car il n'y a qu'une seule entité de l'article)

faire fonctionner sur ma machine locale avec Pyt hon et RDflib ne me donne pas de résultat. La démo de requête Redland SPARQL en ligne ne l'est pas non plus.

Quelqu'un là-bas qui voit une solution? Suis-je sur le bon chemin ou totalement faux?

Répondre

7

Je ne pense pas que vous pouvez utiliser un QName dans une valeur d'attribut XML; par exemple. la valeur de rdf:about. Considérons donc cette ligne de votre fichier RDF/XML:

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

Je pense que cela est en train de dire que le sujet URI est « ex: bibdienst ». C'est un URI syntaxiquement valide, mais il est pas le même URI que apparaît comme l'objet du triple correspondant à cette ligne:

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

Essayez de remplacer les QNames dans les valeurs d'attribut XML avec les URIs correspondants et voir si cela répare votre problème.

+0

Parfait. Cela a réglé mon problème. Quelque part, je suis confus au sujet de ce qui est permis en XML et N3 et ce n'est pas :) MERCI encore! – fab

6

Yep Stephen C est tout à fait exact que vous ne pouvez pas utiliser QNames dans les attributs XML, vous pouvez utiliser des entités XML au lieu que vous définissez dans un bloc de DTD en haut de votre document comme ceci:

par exemple.

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

Ensuite, vous pouvez définir des attributs comme ceci:

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

MERCI pour la suggestion. Je vais essayer celui-là (je me suis toujours demandé ce que signifiait le "& [prefix];" en XML, grâce à vous c'est maintenant totalement clair). MERCI BEAUCOUP! – fab

Questions connexes