2016-03-09 6 views
0

Я использую Ontotext GraphDB для хранения семантических данных.Вставить запрос Sparql в Ontotext GraphDB

GraphDB позволяет хранить/сохранять sparql-запросы, которые отображаются как веб-службы. Однако я хочу хранить/сохранять запросы sparql через HTTP POST-запрос. Ниже мой запрос и имя запроса будет Query-1:

let $Query := fn:concat('PREFIX dc: <http://insert/> 
         INSERT DATA 
         { 
          dc:[email protected] dc:played dc:1234 . 
         } 
         ') 
let $EncodeUri := fn:encode-for-uri($Query) 

Может кто-нибудь помочь мне написать HTTP-POST команду запроса, чтобы сохранить этот запрос в GraphDB? Я хочу использовать только xdmp:http-post().

Чтобы получить результат запроса, я использовал xdmp:http-get('http://localhost:8080//rest/sparql/saved-queries/Query-2'), который отлично работает.

ответ

3

Вы можете выполнить запрос POST для хранения запросов. Следующий пример использует завиток:

curl -X POST http://localhost:8080/rest/sparql/saved-queries\ 
-H 'Content-Type:application/json'\ 
-d '{ 
    "body": "select * { ?s ?p ?o }", 
    "name": "Query-2" 
}' 

Вы также можете найти более подробную информацию о REST API с помощью GraphDB Workbench (Администрирование -> REST API Documentation)

+0

Thanks Venelin. Я использовал curl, но я хочу позвонить через 'marklogic', поэтому я могу использовать только' xdmp: http-post() '. –

1

Кажется, что вы хотите сделать и глотают запросов SPARQL через MarkLogic. Вы можете использовать следующий код для его реализации:

import module namespace sem = "http://marklogic.com/semantics"   at "/MarkLogic/semantics.xqy"; 

let $Query := 'select * { ?s ?p ?o }' 
let $QueryName := 'abcdef' 
let $EncodesQuery := fn:encode-for-uri($Query) 
let $QData := fn:concat('{ 
          "body": "',$Query,'", 
          "name": "',$QueryName,'" 
         }') 
return 
    xdmp:http-post(concat('http://localhost:9080/rest/sparql/saved-queries'), 
       <options xmlns="xdmp:http"> 
       <data>{$QData}</data> 
       <headers> 
        <content-type>application/json</content-type> 
       </headers> 
       </options> 
      ) 
+0

Спасибо Navin, это помогло –