Jena
具有read
帮助从模型中的文件加载本体的方法。使用 virtuoso 是否有类似的东西Jena API
?
这将极大地帮助我在我已经存在的 n-triple 格式的本体存储上测试 virtuoso。
如果您想从 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 中。
Jenaread
方法也可以与 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);
}