我正在构建一个REST API,它将提供有关存储在Jena TDB中的语句的信息。
如果每个语句都有唯一的ID,那就太好了,所以我可以在GET请求中使用这个ID来检索有关特定语句的信息。耶拿有类似的东西吗?
我知道我可以通过向model.listStatements方法提供适当的主题/谓词/对象标识符来检索语句,但将这些参数添加到API GET请求会非常难看。
答案 0 :(得分:1)
在RDF中,三元组由其主语,宾语和谓词定义。如果你有两个具有相同S / P / O的三元组,它实际上是相同的三元组(值相等,而不是实例相等)。 RDF图是一组三元组;如果您添加两次三次,则该集只有一个实例。 RDF中没有三重ID概念,TDB内部没有。
答案 1 :(得分:0)
所以你可以为每个S,每个P和每个O使用唯一标识符,比如一个长度为4的字符串。只需将它们全部保存为键/值(id / resource,id / property)对。然后你将得到一个长度为12的字符串作为你的陈述的唯一标识符。
即使语句被删除并再次添加,在使用id标记每个语句时导致不同的id,此方法每次都会产生相同的语句。