我正在尝试使用SPARQL Update函数向我的芝麻存储库添加一个三元组。声明如下:
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}
查询被执行,但是没有三元组被添加到存储库中。我需要做些什么?
这个问题与Sesame存储库中的一个问题不同,尽管没有错误,但没有使用INSERT更新它。在这个问题上,我没有添加任何外部数据。my_namespace:Rota和:Rotavirus_vaccine(来自dbpedia)已存在于三元组中。我想断言my_namespace:Rota与:Rotavirus_vaccine是同一实体,以便前者可以继承dbpedia中与后者相关的所有信息。
知道了!输入完整的三元组(即无变量)时,应该使用INSERT DATA而不是INSERT。这来自SPARQL文档:
“ INSERT / DELETE和INSERT DATA / DELETE DATA的区别在于INSERT DATA和DELETE DATA不采用模板和模式。DATA表单需要具体的数据(无命名变量)。具有特定的操作意味着可以传输请求这样就可以进行大型的纯数据更新。” 代码是:
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}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句