Вы делаете классическую ошибку: путаете RDF (то, что запрашивает SPARQL) с (одним из) его сериализацией, а именно RDF / XML. rdf:about
(и rdf:ID
, rdf:Description
, rdf:resource
) являются частью RDF / XML, способ записи RDF. Вы можете поиграться с RDF Validator , чтобы посмотреть, какие тройные RDF получаются из фрагмента RDF / XML.
В вашем случае давайте начнем с:
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/terms/">
<rdf:Description rdf:about="http://www.example.org/">
<dc:title>Example for Donal Fellows</dc:title>
</rdf:Description>
</rdf:RDF>
Подключите это к валидатору , и вы получите:
Number Subject Predicate Object
1 http://www.example.org/ http://purl.org/dc/terms/title "Example for Donal Fellows"
(вы также можете запросить графическое изображение)
Обратите внимание, что rdf:about
не присутствует: его значение предоставляет субъект для тройки.
Как мне сделать запрос, чтобы найти свойства, связанные с http://www.example.org
? Как это:
select * {
<http://www.example.org/> ?predicate ?object
}
Вы получите:
?predicate ?object
<http://purl.org/dc/terms/title> "Example for Donal Fellows"
Вы заметите, что запрос представляет собой тройное совпадение с переменными (?v
) в тех местах, где мы хотим найти значения. Мы могли бы также спросить, что предикат связывает http://www.example.org/
с "Example for..."
, задав:
select * {
<http://www.example.org/> ?predicate "Example for Donal Fellows"
}
Это сопоставление с образцом является сердцем SPARQL.
RDF / XML - хитрый зверь, и вам может быть проще работать с N-Triples , который очень многословен, но ясен, или черепаха , который похож на N -Триплы с большим количеством сокращений и сокращений. Сообщество rdf часто предпочитает черепаху.
P.S. rdfs:about
нигде не существует.