【问题标题】:Can't load some ontologies from URL via GraphDB API无法通过 GraphDB API 从 URL 加载一些本体
【发布时间】:2019-11-28 15:46:05
【问题描述】:

我可以使用 /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"
}

我也可以通过 Workbench 加载它,但不能以编程方式加载: http://data.bioontology.org/ontologies/ICD9CM/submissions/17/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb

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

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

RDF 解析错误:prolog 中不允许有内容。 [第 2 行,第 1 列]

【问题讨论】:

    标签: sparql graphdb


    【解决方案1】:
    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 密钥,但您应该提供向上的文件格式或 "format":"text/turtle"。希望这会有所帮助。

    【讨论】:

    【解决方案2】:

    感谢 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
    
    • 我遗漏了许多键,包括timestamp 和所有parserSettings
    • 我使用了- d ... -X POST curl 样式而不是--data-binary 样式

    我并不声称知道这些决定的所有后果。

    这是我在 R 中的方法

    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"))
    
    

    【讨论】:

      【解决方案3】:
      curl 'http://localhost:7200/rest/data/import/upload/abc/url' -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json, text/plain, */*' --data-binary '{"type":"url","name":"http://www.w3.org/TR/owl-guide/wine.rdf","format":"","data":"http://www.w3.org/TR/owl-guide/wine.rdf","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}}'
      

      在哪里,

      • abc - 是存储库 ID
      • http://www.w3.org/TR/owl-guide/wine.rdf - 是要导入的 URL
      • 1534939094325 - 自纪元以来的当前时间戳(以秒为单位)(在 bash 中,相当于 date +%s

      如果您想执行定期更新,我建议您将每个文件放在自己的图表中(使用"context":"&lt;file's url&gt;"),然后将其替换为"replaceGraphs":"&lt;file's url&gt;"。数据库将创建一个增量并仅更新更改的语句。

      【讨论】:

      • 您能提供一份可接受的格式列表吗?我在graphdb.ontotext.com/free/devhub/workbench-rest-api/…没有看到他们
      • 支持的RDF格式有:'ttl', 'rdf', 'rj', 'n3', 'nt', 'nq', 'trig', 'trix', 'brf', 'owl'、'jsonld' 以及它们的 .gz 版本和 .zip 档案。
      • 谢谢,非常感谢您的所有回复。你是说我应该将“ttl”作为“格式”参数传递,而不是“文本/乌龟”?我真的很想查看可以传递给该参数的参数列表。它在任何地方的文档中吗?您在上面提供的列表看起来像自动识别的文件扩展名。
      猜你喜欢
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      相关资源
      最近更新 更多