如何在Sesame中读取非标准RDF格式



将以下格式的N3 RDF文件加载到Sesame Repository时,是否可以将Sesame'|'作为分隔符?

下面的三元组用|分隔:

http://article.com/1-3|http://relationship.com/wasGeneratedBy|http://edit.com/comment1-2

正如评论中所指出的:您所拥有的格式不是N3语法,因此您无法使用Sesame的N3解析器上传。它也没有任何其他标准化格式,所以没有可用的解析器来处理它

然而,"手动"处理这种格式的文件并将其添加到Sesame中是相当简单的。这可能会奏效:

   try (RepositoryConnection conn = rep.getConnection()) {
      ValueFactory vf = conn.getValueFactory(); 
      File file = new File("/path/to/weirdlyformattedrdffile.txt");
      // open the file for reading
      try (BufferedReader br = new BufferedReader(new FileReader(file))) {
         String line;
         // start a transaction
         conn.begin();
         // read the file line-by-line
         while ((line = br.readLine()) != null) {
            // each line is an RDF triple with a subject, predicate, and object
            String[] triple = line.split("|");
            IRI subject = vf.createIRI(triple[0]);
            IRI predicate = vf.createIRI(triple[1]);
            IRI object = vf.createIRI(triple[2]);
            // add the triple to the database
            conn.add(subject, predicate, object);
         }                   
         // commit the txn when all lines are read
         conn.commit();
      }
   }

当然,如果您的文件还包含IRI以外的其他内容(例如文字或空白节点),则必须包含一些逻辑来区分这些内容,而不是盲目地为所有内容创建IRI。但这就是不使用标准语法格式所付出的代价。

相关内容

  • 没有找到相关文章

最新更新