Search code examples
javaparsingrdfn-triples

Java n-triple RDF parsing


I want to parse an RDF file which is in n-triple form.

I can write my own parser but I would rather use a library, and Jena seems unecessarily complicated for this purpose (or at least I can't see their docs explaining how to read n-triples in a sensible way).

Could you please either point me to any useful libraries or if you know either Sesame or Jena well, you might know something about how they can solve this.


Solution

  • If you just want to parse the NTriples and don't need to do anything other than basic processing and querying then you could try the NxParser. It is a very simple bit of Java code that'll pass any NTriples like format (so NQuads etc) which gives you an iterator over the statements in the file. If you only want NTriples you can easily ignore statements with less/more than 3 items.

    Adapting the example on the linked page would give the following simple code:

    NxParser nxp = new NxParser(new FileInputStream("filetoparse.nq"),false);
    
    while (nxp.hasNext()) 
    {
      Node[] ns = nxp.next();
      if (ns.length == 3)
      {
        //Only Process Triples  
        //Replace the print statements with whatever you want
        for (Node n: ns) 
        {
          System.out.print(n.toN3());
          System.out.print(" ");
        }
        System.out.println(".");
      }
    }