在 cURL 中嵌入受保护 GraphDB 的凭据?

embed credentials for protected GraphDB in cURL?

我喜欢使用 R 中的 rrdf or SPARQL 包来探索我的三元存储的内容。我相信他们在后台使用 cURL。除了端点地址和查询本身之外,它们还可以采用其他参数。

这是 GraphDB 对基于 cURL 的查询的注释:http://graphdb.ontotext.com/documentation/standard/quick-start-guide.html#query-data-programmatically

我可以发誓我过去从 R 连接到一些受密码保护的三重存储,但我不记得我是如何做到的。它可能是 Stardog 或 Blazegraph。

我将通过 VPN 进行连接。我希望我可以放宽不在纯文本中嵌入敏感数据(如密码)的通常规则 URL。

来自 :

密钥指定身份验证类型 (httpauth) 作为位图选项 (1L),将传递给 rCURL。

library(SPARQL)

graphdb.address.port <- "http://localhost:7200"

selected.repo <- "mymedicalrecrods"

sparql.base <-
  paste0(graphdb.address.port, "/repositories/", selected.repo)

sparql.prefixes <- ""

api.user <- "markmiller"
api.pass <- rstudioapi::askForPassword()

placeholder.q <- paste0(
'
PREFIX owl: <http://www.w3.org/2002/07/owl#>
select *
where {
    graph ?g {
        ?s ?p ?o
    }
}
limit 9
')

sparql.result <-
  SPARQL::SPARQL(
    url = sparql.base,
    query = placeholder.q,
    curl_args = list('userpwd' = paste0(api.user,":", api.pass), "httpauth" = 1L)
  )
sparql.result<- sparql.result$results