Почему я не могу сопоставить URI в запросе sparql?

Я пишу запрос sparql для поиска в следующих rdfxml

<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:bqbiol="http://biomodels.net/biology-qualifiers/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about="PhysicalEntity0001">
    <bqbiol:is rdf:resource="https://identifiers.org/uniprot/PD12345"/>
    <bqbiol:isPartOf rdf:resource="https://identifiers.org/fma/fma:1234"/>
  </rdf:Description>
  <rdf:Description rdf:about="SemsimMetaid0000">
    <bqbiol:isPropertyOf rdf:resource="PhysicalEntity0001"/>
    <bqbiol:isVersionOf rdf:resource="https://identifiers.org/opb/opb_1234"/>
  </rdf:Description>
</rdf:RDF>

Этот запрос:

                "SELECT ?subject ?predicate ?resource\n"
                "WHERE { \n"
                "   ?subject ?predicate ?resource .\n"
                "}";

Работает так, как я ожидал, и производит:

subject,predicate,resource
SemsimMetaid0000,http://biomodels.net/biology-qualifiers/isPropertyOf,PhysicalEntity0000
PhysicalEntity0000,http://biomodels.net/biology-qualifiers/is,https://identifiers.org/uniprot/PD12345
PhysicalEntity0000,http://biomodels.net/biology-qualifiers/isPartOf,https://identifiers.org/fma/fma:1234

при форматировании как csv. Однако это:

                "SELECT ?predicate ?resource\n"
                "WHERE { \n"
                "   <SemsimMetaid0000> ?predicate ?resource .\n"
                "}";

появляется как пустой набор результатов. Кто-нибудь может сказать мне, почему?

Примечания:

  • Я использую C библиотека называется rasqal для выполнения запроса и графа rdf raptor (если это что-то значит для любого из вас =])
  • Все узлы являются узлами URI / IRI, поэтому пытаемся "SemsimMetaid0000" тоже не работает.
  • В точке поиска в rdf-графе нет базового uri. Базовый URI необходим для сериализации вrdfxml но в момент поиска по графику я не установил базовый uri.

0 ответов

Другие вопросы по тегам