2016-04-24 4 views
0

でという名前のモデルを作成:<a href="https://www.ibm.com/developerworks/community/blogs/nlp/entry/an_introduction_to_the_jena_api?lang=en" rel="nofollow">this introduction</a>という名前のモデルを使用すると、デフォルトのモデルを使用してより良い習慣です、私はデータセットに名前のモデルを追加しようとしていると述べていることを考えるとイエナ

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があります。私はこれを使用しようとしましたが、インターフェイスにあるため、インスタンス化しようとするとJavaが文句を言いますModelMakerCannot instantiate the type ModelMaker) - ドキュメントではどのクラスがどのインターフェイスを実装しているかはわかりません。

これが質問のカップルにつながる:

  1. はそれが実際のベストプラクティスではなくデフォルトのモデルよりも、データセットで指定されたモデルを使用しますか?
  2. createModelメソッドはどのように呼び出すのですか? verbose documentationでは、にはメソッドcreateFileModelMaker(String)が含まれていますが、java docsにはこのメソッドは記載されていません。そのメソッドを呼び出すと、The method createFileModelMaker(String) is undefined for the type ModelFactoryになります。

答えて

1

MyNewModelは空ですので、追加するものはありません。 addNamedModelは、1つのグラフの内容をデータセットの名前付きにコピーすることを意味します。

TDBでは、名前付きグラフはquads(graph、subject、predicate、object)として保持されます。個別のグラフ管理はありません。名前付きグラフのクワッドがない場合、それはデータセット内にありません。

+0

'名前付きグラフ 'は'名前付きモデル'と同じですか? – ChrisW

+1

はい。 「モデル」と「グラフ」はほぼ同じことです。 「モデル」は、2004年のタイムスケールRDF仕様で使用されている単語です。これはAPIに含まれる理由です。 – AndyS

関連する問題

 関連する問題