0

我正在构建一个 REST API,它将提供有关存储在 Jena TDB 中的语句的信息。

如果每个语句都有其唯一的 ID,那就太好了,这样我就可以在 GET 请求中使用这个 ID 来检索有关特定语句的信息。耶拿有类似的东西吗?

我知道我可以通过向 model.listStatements 方法提供适当的主题/谓词/对象标识符来检索语句,但是将这些参数添加到 API GET 请求中会非常难看。

4

2 回答 2

1

在 RDF 中,三元组由其主语、宾语和谓语定义。如果您有两个具有相同 S/P/O 的三元组,它实际上是相同的三元组(值相等,而不是实例相等)。RDF 图是一组三元组;如果您将三元组添加两次,则该集合只有一个实例。RDF 中没有三重标识的概念,TDB 内部也没有。

于 2015-08-10T09:43:47.867 回答
0

因此,您可以为每个 S、每个 P 和每个 O 使用唯一标识符,例如长度为 4 的字符串。只需将它们全部保存为键/值(id/资源、id/属性)对。然后,您将拥有一个长度为 12 的字符串作为语句的唯一标识符。

即使一个语句被删除并再次添加,导致在使用 id 标记每个语句时导致不同的 id,此方法每次都会产生相同的语句。

于 2015-08-11T07:18:32.130 回答