将Sparql查询插入到文本图HDB中

将Sparql查询插入到文本图HDB中,sparql,semantics,graphdb,Sparql,Semantics,Graphdb,我使用Ontotext GraphDB来存储语义数据 GraphDB允许存储/保存作为web服务公开的sparql查询。 但是,我希望通过HTTP POST请求存储/保存sparql查询。下面是我的查询,查询名称将为query-1: let $Query := fn:concat('PREFIX dc: <http://insert/> INSERT DATA {

我使用Ontotext GraphDB来存储语义数据

GraphDB允许存储/保存作为web服务公开的sparql查询。 但是,我希望通过HTTP POST请求存储/保存sparql查询。下面是我的查询,查询名称将为
query-1

let $Query := fn:concat('PREFIX dc: <http://insert/>
                         INSERT DATA
                         {
                             dc:a@gmail.com dc:played dc:1234 .
                         }
                       ')
let $EncodeUri  := fn:encode-for-uri($Query)
let$Query:=fn:concat('前缀dc:
插入数据
{
dc:a@gmail.comdc:播放dc:1234。
}
')
让$EncodeUri:=fn:encodeforuri($Query)
有人能帮我写HTTP-POST请求命令,把这个查询保存在GraphDB中吗?我只想使用
xdmp:http-post()


为了获得查询结果,我使用了
xdmp:httpget('http://localhost:8080//rest/sparql/saved-查询/Query-2')
工作正常。

您可以执行POST请求来存储查询。 下面的示例使用curl:

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

您还可以使用GraphDB Workbench(管理->REST API文档)找到有关REST API的更多详细信息。

您可以执行POST请求来存储查询。 下面的示例使用curl:

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

您还可以使用GraphDB Workbench(Admin->REST API Documentation)找到有关REST API的更多详细信息。

您似乎希望通过MarkLogic进行并接受Sparql查询。您可以使用以下代码来实现它:

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>
              )
导入模块名称空间sem=”http://marklogic.com/semantics“at”/MarkLogic/semantics.xqy”;
让$Query:=“选择*{s?p?o}”
让$QueryName:=“abcdef”
让$encodesqury:=fn:encodeforuri($Query)
设$QData:=fn:concat('{
“正文”:“,$Query,”,
“名称”:“,$QueryName”
}')
返回
xdmp:httppost(concat('http://localhost:9080/rest/sparql/saved-查询),,
{$QData}
应用程序/json
)

您似乎希望通过MarkLogic生成并接受Sparql查询。您可以使用以下代码来实现它:

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>
              )
导入模块名称空间sem=”http://marklogic.com/semantics“at”/MarkLogic/semantics.xqy”;
让$Query:=“选择*{s?p?o}”
让$QueryName:=“abcdef”
让$encodesqury:=fn:encodeforuri($Query)
设$QData:=fn:concat('{
“正文”:“,$Query,”,
“名称”:“,$QueryName”
}')
返回
xdmp:httppost(concat('http://localhost:9080/rest/sparql/saved-查询),,
{$QData}
应用程序/json
)

谢谢你,维尼林。我使用了curl,但我想通过
marklogic
调用,所以我只能使用
xdmp:http-post()
。谢谢Venelin。我使用了curl,但我想通过
marklogic
调用,因此我只能使用
xdmp:http-post()
。谢谢Navin,它帮助了Hanks Navin,它帮助了我