2009-10-20 8 views
7

espero que alguien me puede ayudar en esto probablemente totalmente fácil de resolver el problema:consultas SPARQL da resultado inesperado

Quiero ejecutar una consulta SPARQL arreglo a los siguientes RDF (se señala en N3, el RDF/XML se sienta here). Esta es la desription de un artículo de revista y las descripciones de la revista, el autor y el editor:

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

Para propósitos de prueba que quería leer el foaf : página de inicio de ejemplo: ZLB - la SPARQL Quiero a ejecutar es:

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 
} 

(una vez más:. Esto va a ser solo para probar ya que sólo hay una entidad del artículo)

ejecutarlo en mi máquina local con Pyt hon y RDflib no me dan un resultado. Tampoco lo hace la demostración de consulta en línea de Redland SPARQL.

¿Alguien por ahí que ve una solución? ¿Estoy en el camino correcto o totalmente equivocado?

Respuesta

7

No creo que pueda usar un QName en un valor de atributo XML; p.ej. el valor de rdf:about. Así que considere esta línea de su archivo RDF/XML:

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

creo que esto en realidad está diciendo que el sujeto URI es "ex: bibdienst". Esto es un URI sintácticamente válida, pero no es el mismo URI que aparece como el objeto de la triple correspondiente a esta línea:

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

sustituya el QNames en valores de atributos XML con los URI correspondientes para ver si consigue arregla tu problema

+0

perfecto. Eso solucionó mi problema. De alguna manera me confundí sobre lo que está permitido en XML y N3 y lo que no :) GRACIAS NUEVAMENTE! – fab

6

Sí Stephen C es totalmente correcto que no se puede utilizar en QNames atributos XML, puede utilizar las entidades XML vez que se define en un bloque de DTD en la parte superior de su documento de este modo:

por ejemplo.

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

A continuación, puede definir los atributos de este modo:

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

GRACIAS por la sugerencia. Voy a probar eso (de hecho, siempre me pregunté qué significaba "& [prefix];" en XML, gracias a ti ahora está totalmente claro para mí). ¡MUCHAS GRACIAS! – fab

Cuestiones relacionadas