Sesame 中的 SPARQL 更新不起作用

SPARQL update in Sesame not working

我正在尝试使用 SPARQL 更新功能将三元组添加到我的 Sesame 存储库。声明如下:

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <http://dbpedia.org/resource/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX my_namespace: <http://purl.org/net/ontology_name/my_namespace/>

INSERT {my_namespace:Rota owl:sameAs ?o}
WHERE
{my_namespace:Rota owl:sameAs :Rotavirus_vaccine}

查询已执行但没有三元组添加到存储库。我需要做哪些不同的事情?

此题与中的题不同。在这个问题中,我没有添加任何外部数据。 my_namespace:Rota 和 :Rotavirus_vaccine(来自 dbpedia)已经存在于三元组中。我想断言 my_namespace:Rota 与 :Rotavirus_vaccine 是同一个实体,以便前者可以继承 dbpedia 中与后者相关的所有信息。

知道了!当输入一个完整的三元组(即没有变量)时,应该使用 INSERT DATA 而不是 INSERT。这来自 SPARQL 文档:

"The difference between INSERT / DELETE and INSERT DATA / DELETE DATA is that INSERT DATA and DELETE DATA do not take a template and pattern. The DATA forms require concrete data (no named variables). Having specific operations means that a request can be streamed so that large, pure-data, updates can be done."代码为:

PREFIX my_namespace: <http://purl.org/net/ontology_name/my_namespace/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX : <http://dbpedia.org/resource/>

INSERT DATA {my_namespace:Rota owl:sameAs :Rotavirus_vaccine}