SPARQL-запрос для файла RDF - PullRequest
       6

SPARQL-запрос для файла RDF

4 голосов
/ 17 декабря 2011

У меня есть RDF-файл, подобный показанному ниже.Но мне трудно делать запросы по нему.Например, кто-нибудь может сказать мне простой запрос, где я мог бы извлечь информацию о (http://websitename.com/urls/a) или ресурсе (http://websitename.com/urls/b)) или о ресурсе, где отношение / сова такое же.

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#" >
  <rdf:Description rdf:about="http://websitename.com/urls/a">
    <owl:sameas rdf:resource="http://websitename.com/urls/b"/>
  </rdf:Description>
</rdf:RDF>

Спасибо

1 Ответ

6 голосов
/ 18 декабря 2011

Вас укусило распространенное заблуждение среди начинающих пользователей RDF / XML, что имена атрибутов напрямую связаны с фактическими данными, хотя на самом деле это не так. Имена атрибутов в пространствах имен rdf являются просто синтаксисом XML и фактически не относятся к URI в данных, с другой стороны, в других пространствах имен, например. owl в ваших примерах обычно относится непосредственно к URI в данных. Вот почему людям, плохо знакомым с RDF / XML, так легко запутаться.

Если мы преобразуем ваши данные в более читаемый синтаксис, такой как Turtle, на самом деле это будет выглядеть следующим образом:

@prefix : <http://websitename.com/urls/> .
@prefix owl: <http://www.w3.org/2002/07/owl#sameas>

:a owl:sameAs :b .

В большинстве случаев люди предпочитают показывать фрагменты RDF в виде черепахи, так как они гораздо более читабельны и их легко понять, какие именно данные.

Таким образом, для фактического запроса вам может потребоваться запрос, подобный следующему:

PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT ?x ?y WHERE { ?x owl:sameAs ?y }
...