如何使用Jena API在virtuoso中加载n-triple文件

时间:2014-03-28 17:48:58

标签: java rdf jena virtuoso

Jena具有read方法,可帮助从模型中的文件加载本体。使用Jena API的virtuoso有类似的东西吗?

这将极大地帮助我在我已经存在的n-triple格式的本体商店中测试艺术家。

2 个答案:

答案 0 :(得分:2)

如果您想从Virtuoso服务器读取本体,您将需要Virtuoso的类似“JDBC”的驱动程序,如下所述:http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider 下载时间为http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSDownload#Jena%20Provider 虽然我更喜欢从源代码编译它 -

然后你可以做类似的事情:

VirtDataset dataSet = new VirtDataset("jdbc:virtuoso://localhost:1111/charset=UTF-8/","user","pass");
Model baseModel = dataSet.getNamedModel("http://my.graph.name/");
OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, baseModel);

这应该允许访问存储在Virtuoso中的所有RDF-Triples(一次一张图)。 如果您只想要RDF,请省略“OntModel”构造的最后一行。如果存储非常大,则相同,因为它将完整的本体加载到RAM中。

答案 1 :(得分:1)

Jena read方法也可用于Virtuoso Jena提供商。 像下一个:

try {
  String nfile = "1.nt";
  Model model = VirtModel.openDatabaseModel("load:test", "jdbc:virtuoso://localhost:1111", "dba", "dba");
  InputStream in = FileManager.get().open( nfile );
  if (in == null) {
      throw new IllegalArgumentException( "File: " + nfile + " not found");
  }
  model.read(new InputStreamReader(in), null, "N-TRIPLE");
  model.close();

} catch (Exception e) {
  System.out.println("Ex="+e);
}