您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Jena / ARQ:模型,图形和数据集之间的区别

Jena / ARQ:模型,图形和数据集之间的区别

Jena分为面向应用程序开发人员的API和面向系统开发人员的SPI,例如开发存储引擎,推理程序的人员等。

DataSetModelStatementResourceLiteral是API接口,并提供应用程序开发者带来很多便利。

DataSetGraphGraphTripleNode是SPI接口。它们相当简单,易于实现(如您所愿,您必须实现这些东西)。

各种各样的API操作都可以解决SPI调用。举一个例子,Model接口有四种不同的contains方法。在内部,每个结果都会导致一个呼叫:

Graph#contains(Node, Node, Node)

graph.contains(nodeS, nodeP, nodeO); // model.contains(s, p, o) or model.contains(statement)
graph.contains(nodeS, nodeP, Node.ANY); // model.contains(s, p)

关于你失去信息,与问题ModelGraph你不(据我记得)。更有趣的例子是ResourceNodeResources知道它们属于哪个模型,因此您可以(在api中)编写最终resource.addProperty(...)成为哪个模型Graph#addNode没有这样的便利,并且与特定的无关Graph。因此Resource#asNode是有损的。

最后:

当我想保存单个三元组而又将它们查询为一大束(联合)时,我应该使用哪些数据结构(以及为什么)?

您显然是普通用户,因此需要API。您想存储三元组,所以使用Model。现在,您希望将模型作为一个联合查询:您可以:

这些中的最后一个最适合大量模型和大型模型,但是要涉及更多的设置工作。

其他 2022/1/1 18:28:37 有479人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶