私は Jena を使用しており、新しいオントロジーを自分の tdb に更新したいと考えています。例えば。オントロジーに 100 行あります。いくつかのルールを追加して推論を実行すると、現在 105 行あります。そして、tdb でこれらの 5 つの追加行を更新する必要があります。どうすればこれを行うことができますか?
私はそれをググってみましたが、2つの方法が見つかりました。1 つは sparql を使用して を更新し、もう 1 つは tdb を切り捨てて新しいモデルを追加します。
他に良い解決策はありますか?
ありがとうございます
--
コード
void after_reasoner(Model m) {
String yago = "http://yago-knowledge.org/resource/";
Reasoner reasoner = new GenericRuleReasoner(
Rule.rulesFromURL("file:./rules/act.rule"));
InfModel inf1 = ModelFactory.createInfModel(reasoner, m);
PrintUtil.registerPrefix("yago", "http://yago-knowledge.org/resource/");
}
繰り返しますが、私の問題は、tdb への新しい「infmodel」をどのように処理するかです。新しい事実だけを更新したい。
これは、tdb からモデルを取得する方法です。
Model tdb_write_return() {
String directory = "./tdb";
Dataset dataset = TDBFactory.createDataset(directory);
dataset.begin(ReadWrite.WRITE);
String ns = "http://www.darrell.com.tw/ontologies/";
Model model = dataset.getNamedModel(ns);
dataset.commit();
dataset.end();
dataset.close();
return model;
}