Apache Jena不添加hasPart关系

时间:2016-10-27 09:02:16

标签: java apache transactions jena apache-jena

我正在研究从系统读取数据的大型复杂软件,并将其中的部分内容存储在Apache Jena Model / DataSet中。一切都运行正常,除了一件小事:尝试添加' hasPart'模型中两个实体之间的关系永远不会被应用。

即。当我调试代码时,我可以看到log4j报告的错误似乎表明交易没有激活。

那么,对于我的问题:可能导致这种情况的是什么,打开的交易没有激活? 在添加属性之前,这条线似乎很混乱了。正在开始交易(begin(ReadWrite.WRITE)上的DataSet))。没有异常被抛出,只是控制台上的log4j记录错误消息。

不幸的是,目前我无法生成一个能及时证明问题的最小代码。所以我的问题更多的是自然,如果某种善良的灵魂有指针或理论解释 - 它将是最有用的。任何指针或解释都会受到很大的影响。

2 个答案:

答案 0 :(得分:3)

不幸的是,如果您不提供日志跟踪或代码片段(不必直接执行,但MWE有帮助),SO社区可以提供帮助。

首先,您应该使用DCMI hasPart term来表示hasPart关系。

我建议您在保存之前check all Model statements。之后make sure you are in a Transaction

如果这对您有所帮助,请正确更新问题,以便这可以成为真实问题的答案,而不仅仅是对问题的模糊描述。

答案 1 :(得分:1)

事实证明,从Dataset中提取资源并使用该引用(代码持有对首先创建的实例的引用)添加属性(hasPart)证明可以按预期工作。日志框架未报告任何错误,并且hasPart属性已就绪。

受影响的资源位于Dataset的默认图表中。

观察:使用getResource(uri)会返回资源,但它似乎是副本(?),因为实例ID:s不同。

感谢berezovskiy帮助解决这方面的细节。