mjs*_*ier 9 rdf sesame triplestore virtuoso
我正在试验Sesame和Virtuoso Triplestores.在Moment中,我使用Sesame Java API将RDF数据添加到Triplestores.
我的RDF数据代表不同的东西,如Videodata,Userdata等.目前我可以将一个视频的RDF(标题,描述,位置等)添加到Triplestore
但是如何更新商店中的RDF?
例如,如果我使用芝麻的REST接口并使用更新的RDF进行PUT请求,则首先删除存储中的所有内容.
当我使用带有更新数据的POST(例如视频标题已更改)时,将存储标题(旧的和新的).
你如何与三重商店合作?也许我想念一些必要的东西.
编辑:
我现在在每个RDF条目中使用Virtuoso中的Sesame和Graphs中的Context.这种更新方式我可以先清除上下文并再次添加.当我为两个Triplestores使用Sesame API时(我们仍然不知道我们将使用哪一个),代码看起来完全相同.
ValueFactory f = rep.getValueFactory();
URI uri = f.createURI(urn);
con.clear(uri);
con.add(reader,this.baseURI, RDFFormat.RDFXML,uri);
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
我假设您正在使用SPARQL.如果你不这样做,那你可能应该:-)
许多三重存储都支持SPARQL Update,这是一种用于修改SPARQL存储中的RDF三元组的语言.这就像SQL的INSERT
,UPDATE
,DELETE
等.我不确定Sesame是否支持它 - SPARQL Update仍然是一个非常新的规范,甚至尚未完成.
要注意的另一个有用的事情,特别是如果你想以RESTful方式工作,就是Named Graphs.这允许在不同的图形中管理三元组,因此您可以将数据分开.例如,您可以在单独的命名图中保留关于每个视频的三元组,然后仅在PUT请求上更新该命名图.您仍然可以使用SPARQL在所有命名图上查询整个商店.我还不完全确定Sesame的REST API是否提供对命名图的访问.(我很确定Java API会这样做;我认为他们称之为不同的东西.上下文?)