Sparql Can';t通过GraphDB API从URL加载一些本体

Sparql Can';t通过GraphDB API从URL加载一些本体,sparql,graphdb,Sparql,Graphdb,我可以使用/rest/data/import/upload/{repositoryID}/url方法将MonDO本体加载到GraphDB Free 9中,方法如下: { "context": "http://purl.obolibrary.org/obo/mondo.owl", "data": "https://github.com/monarch-initiative/mondo/releases/download/current/mondo.owl", "format": "RD

我可以使用
/rest/data/import/upload/{repositoryID}/url
方法将MonDO本体加载到GraphDB Free 9中,方法如下:

{
  "context": "http://purl.obolibrary.org/obo/mondo.owl",
  "data": "https://github.com/monarch-initiative/mondo/releases/download/current/mondo.owl",
  "format": "RDF/XML"
}
我也可以通过工作台加载,但不能以编程方式加载:
http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb

我将
format
行设置为“Turtle”,得到202个响应,但工作台没有显示任何导入。似乎有时我会在工作台的导入页面上看到错误消息,但我不知道要采取什么纠正措施

例如,如果我故意使用错误的格式(RDF/XML)通过工作台导入ICD9,那么我会看到

RDF分析错误:prolog中不允许包含内容。[第2行第1列]

在哪里,

  • abc
    -是存储库id
  • http://www.w3.org/TR/owl-guide/wine.rdf
    -是要导入的URL
  • 1534939094325
    -自纪元起的当前时间戳(在
    bash
    中,相当于
    date+%s
如果您想执行定期更新,我建议您将每个文件放在自己的图表中(使用
“上下文”:“
。数据库将创建一个增量,并仅更新更改的语句

curl 'http://localhost:7200/rest/data/import/upload/w2/url' -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json, text/plain, */*' --data-binary '{"type":"url","name":"http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb","format":"text/turtle","data":"http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb","status":"NONE","message":"","context":"","replaceGraphs":[],"baseURI":null,"forceSerial":false,"timestamp":1534939094325,"parserSettings":{"preserveBNodeIds":false,"failOnUnknownDataTypes":false,"verifyDataTypeValues":false,"normalizeDataTypeValues":false,"failOnUnknownLanguageTags":false,"verifyLanguageTags":true,"normalizeLanguageTags":false,"verifyURISyntax":true,"verifyRelativeURIs":true,"stopOnError":true}}

GraphDB处理api密钥,但您应该以向上或“格式”的方式提供文件格式:“text/turtle”。希望这有帮助。

多亏Ontotext中的Sava,我能够构造这个最小的curl命令,成功地从NCBO BioPortal加载ICD9CM turtle文件

curl -d \
'{"type":"url","format":"text/turtle","data":"http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb","context":"http://data.bioontology.org/ontologies/ICD9CM/"}' \
-H 'Content-Type: application/json;charset=UTF-8' \
-X POST http://localhost:7200/rest/data/import/upload/disease_diagnosis_dev/url
  • 我遗漏了许多键,包括
    时间戳
    和所有
    解析器设置
  • 我使用了
    -d…-X POST
    curl样式,而不是
    --data binary
    样式
我并不声称知道这些决定的所有后果

这是我在R中的方法
库(httr)

post.endpoint您能提供一个可接受格式的列表吗?我在支持的RDF格式中没有看到它们:ttl、RDF、rj、n3、nt、nq、trig、trix、brf、owl、jsonld,以及它们的.gz版本和.zip存档。谢谢,我非常感谢您的所有回复。您是说我应该将“ttl”作为“格式”传递吗参数,而不是“文本/乌龟”?我真的很想看到一个可以传递给该参数的参数列表。它在文档中的任何地方吗?您上面提供的列表看起来像是自动识别的文件扩展名。而且,如果知道url部分文件格式,您不应该编写后者,GraphDB会识别它。您能提供一个可接受格式的列表吗?我不知道在上看不到它们。我可以信任吗?它们没有列出
BRF
curl -d \
'{"type":"url","format":"text/turtle","data":"http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb","context":"http://data.bioontology.org/ontologies/ICD9CM/"}' \
-H 'Content-Type: application/json;charset=UTF-8' \
-X POST http://localhost:7200/rest/data/import/upload/disease_diagnosis_dev/url
library(httr)
post.endpoint <- "http://localhost:7200//rest/data/import/upload/disease_diagnosis_dev/url"
update.body <- '{
  "type":"url",
  "format":"text/turtle",
  "context": "http://purl.bioontology.org/ontology/ICD9CM/",
  "data": "http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=9cf735c3-a44a-404f-8b2f-c49d48b2b8b2"
}'

post.result <- POST(post.endpoint,
                    body = update.body,
                    content_type("application/json"))