簡體   English   中英

virtuoso-opensource:使用jenaprovider,如何從文件而不是從URL讀取數據?

[英]virtuoso-opensource: using jenaprovider, how to read data from file instead of from URL?

使用virtuoso jena provider從URL加載數據非常簡單。 以下代碼可以完成這項工作:

    VirtGraph graph = new VirtGraph ("foaf", "jdbc:virtuoso://localhost:1111", "dba", "dba");

/*      Load data to Virtuoso       */

    System.out.print ("Begin read from 'http://xmlns.com/foaf/0.1/index.rdf'  ");
    graph.read("http://xmlns.com/foaf/0.1/index.rdf", "RDF/XML");

但是,當您要從本地文件加載它們時,情況有所不同。 我嘗試了這個:

    VirtGraph graph = new VirtGraph ("foaf", "jdbc:virtuoso://localhost:1111", "dba", "dba");

    graph.read("/tmp/index.rdf", "RDF/XML");
    graph.close();

但是我最終遇到以下異常:

com.hp.hpl.jena.shared.JenaException: virtuoso.jdbc4.VirtuosoException: HC001: Connection Error in HTTP Client

有人對如何使用jenaprovider從文件加載rdf有任何線索嗎?

配置設置 virt_jena2.jar virtjdbc4.jar

不僅提供文件名,還使用文件URI 例如:

graph.read("file:///tmp/index.rdf", "RDF/XML");

關於第一個示例:

VirtGraph graph = new VirtGraph ("foaf", "jdbc:virtuoso://localhost:1111", "dba", "dba");
graph.read("http://xmlns.com/foaf/0.1/index.rdf", "RDF/XML");

它被轉換為下一個命令SPARQL(即在服務器端執行- 來源 ):

load "http://xmlns.com/foaf/0.1/index.rdf" into graph <foaf>

而且此命令不允許將本地文件加載到DBMS。 您可以使用Jena Model方法加載本地文件。 像下一個( Jena模型參考 ):

  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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM