gpt4 book ai didi

java - 更新功能数据属性的值不会删除旧值,只会添加新的三元组

转载 作者:行者123 更新时间:2023-11-29 05:34:18 26 4
gpt4 key购买 nike

我有一个 RDF Ontology,其函数属性 hasTrendValue 将类的实例与整数值相关联。我想使用 Jena 以编程方式更改这些值。我尝试了以下代码:

Property hasTrend = ontModel.getDatatypeProperty(preFix+"hasTrendValue");
Individual regionQualifier = ontModel.getIndividual(activityName);
ontModel.addLiteral(regionQualifier,hasTrend,34);

PrintStream p = new PrintStream(ontoPath);
ontModel.write(p,null);
p.close();

此代码可以正确执行,但它不会更新 RDF 中已有的 hasTrendValue 值;相反,它向 RDF 本体添加了一个新的 hasTrendValue,即使它声明为功能属性。这样做的更好方法是什么?

最佳答案

RDF没有“改变”的概念,只有“添加”和“删除”。要更改值,您需要删除旧值并添加新值。

将其声明为功能属性并不会改变这一点。 Jena 不会检查每个操作的本体。事实上,功能属性表示对象标识一件事——它可能有多种写法。 001 和 1 是相同的值。可能有多个三元组,它不会自动出错。

关于java - 更新功能数据属性的值不会删除旧值,只会添加新的三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20045917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com