2014-03-28 68 views

回答

2

如果你想從一個炫技服務器讀取的本體,你將需要「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三元組(一次一個圖)。 如果你只是想要RDF,用「OntModel」結構省略最後一行。如果商店非常大,因爲它將完整的本體加載到RAM中。

+0

我有jdbc驅動程序,但我想知道如何從磁盤上的文件讀取本體?在jena你有'model.read'來做到這一點。如何用virtuoso做同樣的事情? –

+0

我想我不明白你的問題。你想從virtuoso還是從文件中讀取本體?如果從一個文件中,virtuoso如何發揮作用? –

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); 
} 
相關問題