2009-10-20 7 views
7

Я надеюсь, что кто-то может помочь мне в этом, вероятно, совершенно легко решаемые задачи:SPARQL Query дает неожиданный результат

Я хочу, чтобы выполнить запрос SPARQL против следующего RDF (отмеченный в Н3, то RDF/XML сидит here). Это Desription журнальной статьи и описания журнала, автор и издатель:

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

Для целей тестирования я хотел бы зачитать FOAF: Домашняя из экс: ZLB - SPARQL Я хочу для запуска является:

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 
} 

(Опять же:. Это собирается быть только для тестирования, так как существует только один субъект статьи)

Запуск его на моей локальной машине с Пыть hon и RDflib не дают мне результата. Демо-версия Online Redland SPARQL Query Demo также недоступна.

Кто-нибудь, кто видит решение? Я на правильном пути или совершенно неправ?

ответ

7

Я не думаю, что вы можете использовать QName в значении атрибута XML; например значение rdf:about. Так считают эту строку из файла RDF/XML:

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

Я думаю, что это на самом деле говорят, что субъект URI является «например: bibdienst». Это синтаксически правильным URI, но это не то же URI, как представляется, как объект тройки, соответствующий этой линии:

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

Попробуйте заменить QNames в XML значения атрибутов с соответствующими URI, и посмотреть, если что исправляет вашу проблему.

+0

Perfect. Это исправило мою проблему. Как-то я запутался в том, что разрешено в XML и N3, а что нет :) СПАСИБО СНОВА! – fab

6

Да Stephen C совершенно правильно, что вы не можете использовать QNames в атрибутах XML, вы можете использовать XML-объекты, вместо которых можно определить в DTD блок в верхней части документа, например, так:

например.

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

Затем вы можете определить атрибуты, как так:

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

СПАСИБО за предложение. Я попробую сделать это (я действительно всегда задавался вопросом, что означает «& [префикс]», в XML. Благодаря вам теперь мне совершенно ясно. БОЛЬШОЕ СПАСИБО! – fab

Смежные вопросы