2016-04-24 112 views
0

一个名为模型假设this introduction指出,使用命名模型比使用默认模型更好的做法,我想一个名为模型添加到数据集:创建耶拿

Dataset dataset = TDBFactory.createDataset("MyDataset"); 
System.out.println(dataset.containsNamedModel("MyNewModel")); 
Model MyNewModel = ModelFactory.createDefaultModel(); 
dataset.begin(ReadWrite.WRITE); 
dataset.addNamedModel("MyNewModel", MyNewModel); 
dataset.commit(); 
System.out.println(dataset.containsNamedModel("MyNewModel")); 

但这返回

false 
false 

(所以显然不会增加模型!)。我看了一下the docs,还有一个createMethod(String name)method。我尝试过使用它,但是因为它在Interface中,当我尝试实例化时,java会抱怨,并且文档不会显示哪些类实现了哪个接口。

这导致几个问题:

  1. 是否实际上最佳实践数据集中使用命名模式,而不是默认的模式?
  2. 如何调用createModel方法?在更多verbose documentation它说,ModelFactory包含一个方法createFileModelMaker(String) - 但java docs没有提及这种方法,并试图称它为可预测的导致The method createFileModelMaker(String) is undefined for the type ModelFactory

回答

1

MyNewModel是空的,所以没有什么可添加的。 addNamedModel表示将一个图形的内容复制到数据集中的一个named上。

在TDB中,命名图被保存为四元组(图,主题,谓词,对象)。没有单独的图表管理。如果指定图形没有四边形,则它不在数据集中。

+0

“命名图”与“命名模型”相同吗? – ChrisW

+1

是的。 “模型”和“图形”几乎是一回事。 “Model”是2004年时间刻度RDF规范中使用的词,这也是它在API中的原因。 – AndyS