Updating RDF data using php on sesame server
我有一个关于在芝麻服务器上使用PHP代码更新RDF数据的问题。
我尝试从芝麻端点使用SPARQL更新并成功。但是,使用PHP并没有给出任何错误,但是当我检查RDF数据时,什么都没有改变!
在连接中,我已使用此链接进行更新:
http:// localhost:8080 / Sesame / repositories / MyData / statements
和以下代码来实现更新:
1 2 3 4 5 6 7 8 9 10 | $query=" DELETE DATA{ ?s foaf:firstName "Lina". } WHERE { ?s foaf:firstName "Lina". }"; $result = $sparql->query($query); |
我以为我现在必须更改查询功能,这不是查询,而是更新。另外,我尝试了
1 | $result = $sparql->update($query); |
我出错了!
哪里出了问题或该怎么办?
问题是您混淆/混合了
1 2 3 4 5 6 7 | $query=" DELETE { ?s foaf:firstName "Lina". } WHERE { ?s foaf:firstName "Lina". }"; |
这将删除所有谓词为
并且由于要删除要匹配的确切三元组,因此不必重复
1 2 3 4 5 | $query=" DELETE WHERE { ?s foaf:firstName "Lina". }"; |
我已经解决了这个问题,因为我尝试使用不带任何变量(?s)的delete命令,而是使用实际的主题,例如:
1 | $query="DELETE DATA{ds:S1 foaf:firstName "Lina".}"; |
我认为这是因为您无法删除自己不认识的内容。
我使用以下代码来执行它:
1 | $result = $sparql->update($query); |