【问题标题】:malformed sparql delete query格式错误的 sparql 删除查询
【发布时间】:2015-06-13 11:32:33
【问题描述】:

我想使用 sparql 更新数据属性断言,但是当我尝试在 Protege 中运行它时,我在 delete 语句中得到格式错误的查询异常。我对 sparql 很陌生,我不知道这个查询有什么问题:

PREFIX m: <http://www.semanticweb.org/exemple#>
    DELETE  { ?o owl:minQualifiedCardinality ?min. }
    INSERT { ?o owl:minQualifiedCardinality “2000”^^xsd:decimal. }
    WHERE { 
        m:Revenu rdfs:subClassOf ?o.
        ?o owl:minQualifiedCardinality ?min.
    }

【问题讨论】:

  • “我对 sparql 很陌生,我无法弄清楚这个查询有什么问题:”你怎么知道它有什么问题?如果您收到某种错误消息,则应将其包含在问题中。
  • 错误是:格式错误的查询异常
  • 您在 Protege 中运行它这一事实可能非常重要,因为 Protege 可能并非旨在通过 SPARQL 更新数据,而只是 query我>它。毕竟,Protege 是一种 OWL 本体编辑器,但 SPARQL 是一种 RDF 语言,并不是所有你可以使用 SPARQL/RDF 编写的东西在 OWL 中都有意义。跨度>

标签: sparql jena protege


【解决方案1】:

看看sparql.org's update validator。当我将您的查询粘贴到那里并添加缺少的前缀后,我得到:

第 10 行第 45 列出现词法错误。遇到:"\u201c" (8220),之后:""

如果您仔细观察,您会发现您使用的是“智能引号”(即“和”)而不是“直引号”(即“)。如果您没有使用,您可能想要一个纯文本编辑器来编写您的查询。

【讨论】:

  • 感谢 Joshua,但我在测试查询时没有使用智能引号,我使用的是 Protege 的 SPARQL 查询编辑器
  • Protege 是否支持 INSERT 和 DELETE 等 SPARQL 更新?我原以为它只支持查询数据,而不支持更新它。
  • 谢谢jushua 不知道Protégé只支持查询,那我直接用JENA测试一下
  • @sugar 我没有说 Protege 不支持更新;我只是不知道有没有(但我预计没有)。
  • 你是对的,它不支持更新。我可以使用 Jena 运行查询,但更新时出现错误,我认为我没有使用正确的格式,我使用的是 RDF/XML
【解决方案2】:

rdfs:owl:xsd: 未定义前缀。

修复该问题和引号后,更新解析为 sparql.org's update validator

注意:验证器会打印出第一个错误的行号。

【讨论】:

  • 我知道我只是没有在这里复制整个查询。正如@Jushua 所说,Protégé 不支持更新查询
猜你喜欢
  • 2011-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-23
相关资源
最近更新 更多