Class NTriplesUtil

java.lang.Object
org.eclipse.rdf4j.rio.helpers.NTriplesUtil
Direct Known Subclasses:
NTriplesUtil

public class NTriplesUtil extends Object
Utility methods for N-Triples encoding/decoding.
  • Field Details

  • Constructor Details

    • NTriplesUtil

      public NTriplesUtil()
  • Method Details

    • parseValue

      public static Value parseValue(String nTriplesValue, ValueFactory valueFactory) throws IllegalArgumentException
      Parses an N-Triples value, creates an object for it using the supplied ValueFactory and returns this object.
      Parameters:
      nTriplesValue - The N-Triples value to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed value.
      Throws:
      IllegalArgumentException - If the supplied value could not be parsed correctly.
    • parseResource

      public static Resource parseResource(String nTriplesResource, ValueFactory valueFactory) throws IllegalArgumentException
      Parses an N-Triples resource, creates an object for it using the supplied ValueFactory and returns this object.
      Parameters:
      nTriplesResource - The N-Triples resource to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed resource.
      Throws:
      IllegalArgumentException - If the supplied resource could not be parsed correctly.
    • parseURI

      public static IRI parseURI(String nTriplesURI, ValueFactory valueFactory) throws IllegalArgumentException
      Parses an N-Triples URI, creates an object for it using the supplied ValueFactory and returns this object.
      Parameters:
      nTriplesURI - The N-Triples URI to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed URI.
      Throws:
      IllegalArgumentException - If the supplied URI could not be parsed correctly.
    • parseBNode

      public static BNode parseBNode(String nTriplesBNode, ValueFactory valueFactory) throws IllegalArgumentException
      Parses an N-Triples bNode, creates an object for it using the supplied ValueFactory and returns this object.
      Parameters:
      nTriplesBNode - The N-Triples bNode to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed bNode.
      Throws:
      IllegalArgumentException - If the supplied bNode could not be parsed correctly.
    • parseLiteral

      public static Literal parseLiteral(String nTriplesLiteral, ValueFactory valueFactory) throws IllegalArgumentException
      Parses an N-Triples literal, creates an object for it using the supplied ValueFactory and returns this object.
      Parameters:
      nTriplesLiteral - The N-Triples literal to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed literal.
      Throws:
      IllegalArgumentException - If the supplied literal could not be parsed correctly.
    • parseTriple

      public static Triple parseTriple(String nTriplesTriple, ValueFactory valueFactory)
      Parses an RDF-star triple (non-standard N-Triples), creates an object for it using the supplied ValueFactory and returns this object.
      Parameters:
      nTriplesTriple - The RDF-star triple to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed triple.
      Throws:
      IllegalArgumentException - If the supplied triple could not be parsed correctly.
    • parseTripleInternal

      private static NTriplesUtil.TripleMatch parseTripleInternal(String nTriplesTriple, ValueFactory valueFactory)
      Parses an RDF-star triple (non-standard N-Triples), creates an object for it using the supplied ValueFactory and returns an object that contains the parsed triple and the length of the parsed text.
      Parameters:
      nTriplesTriple - The RDF-star triple to parse.
      valueFactory - The ValueFactory to use for creating the object.
      Returns:
      An object representing the parsed triple and the length of the matching text.
      Throws:
      IllegalArgumentException - If the supplied triple could not be parsed correctly.
    • findEndOfLabel

      private static int findEndOfLabel(String nTriplesLiteral)
      Finds the end of the label in a literal string. This method takes into account that characters can be escaped using backslashes.
      Returns:
      The index of the double quote ending the label, or -1 if it could not be found.
    • toNTriplesString

      public static String toNTriplesString(Value value)
      Creates an N-Triples string for the supplied value.
      Parameters:
      value -
      Returns:
      string
    • toNTriplesString

      public static String toNTriplesString(Value value, boolean xsdStringToPlainLiteral)
      Creates an N-Triples string for the supplied value.If the supplied value is a Literal, it optionally ignores the xsd:string datatype, since this datatype is implicit in RDF-1.1.
      Parameters:
      value - The value to write.
      xsdStringToPlainLiteral - True to omit serialising the xsd:string datatype and false to always serialise the datatype for literals.
      Returns:
      string
    • append

      public static void append(Value value, Appendable appendable) throws IOException
      Appends the N-Triples representation of the given Value to the given Appendable.
      Parameters:
      value - The value to write.
      appendable - The object to append to.
      Throws:
      IOException
    • append

      public static void append(Value value, Appendable appendable, boolean xsdStringToPlainLiteral, boolean escapeUnicode) throws IOException
      Appends the N-Triples representation of the given Value to the given Appendable, optionally not serializing the datatype a Literal with the xsd:string datatype as it is implied for RDF-1.1.
      Parameters:
      value - The value to write.
      appendable - The object to append to.
      xsdStringToPlainLiteral - True to omit serializing the xsd:string datatype and false to always serialize the datatype for literals.
      escapeUnicode -
      Throws:
      IOException
    • toNTriplesString

      public static String toNTriplesString(Resource resource)
      Creates an N-Triples string for the supplied resource.
      Parameters:
      resource -
      Returns:
      string
    • append

      public static void append(Resource resource, Appendable appendable) throws IOException
      Appends the N-Triples representation of the given Resource to the given Appendable.
      Parameters:
      resource - The resource to write.
      appendable - The object to append to.
      Throws:
      IOException
    • toNTriplesString

      public static String toNTriplesString(IRI uri)
      Creates an N-Triples string for the supplied URI.
      Parameters:
      uri -
      Returns:
      string
    • append

      public static void append(IRI uri, Appendable appendable) throws IOException
      Appends the N-Triples representation of the given IRI to the given Appendable.
      Parameters:
      uri - The IRI to write.
      appendable - The object to append to.
      Throws:
      IOException
    • append

      public static void append(IRI uri, Appendable appendable, boolean escapeUnicode) throws IOException
      Appends the N-Triples representation of the given IRI to the given Appendable.
      Parameters:
      uri -
      appendable -
      escapeUnicode -
      Throws:
      IOException
    • toNTriplesString

      public static String toNTriplesString(BNode bNode)
      Creates an N-Triples string for the supplied blank node.
      Parameters:
      bNode -
      Returns:
      string
    • append

      public static void append(BNode bNode, Appendable appendable) throws IOException
      Appends the N-Triples representation of the given BNode to the given Appendable.
      Parameters:
      bNode -
      appendable -
      Throws:
      IOException
    • toNTriplesString

      public static String toNTriplesString(Literal lit)
      Creates an N-Triples string for the supplied literal.
      Parameters:
      lit -
      Returns:
      string
    • toNTriplesString

      public static String toNTriplesString(Literal lit, boolean xsdStringToPlainLiteral)
      Creates an N-Triples string for the supplied literal, optionally ignoring the xsd:string datatype as it is implied for RDF-1.1.
      Parameters:
      lit - The literal to write.
      xsdStringToPlainLiteral - True to omit serializing the xsd:string datatype and false to always serialize the datatype for literals.
      Returns:
      String
    • append

      public static void append(Literal lit, Appendable appendable) throws IOException
      Appends the N-Triples representation of the given Literal to the given Appendable.
      Parameters:
      lit -
      appendable -
      Throws:
      IOException
    • append

      public static void append(Literal lit, Appendable appendable, boolean xsdStringToPlainLiteral, boolean escapeUnicode) throws IOException
      Appends the N-Triples representation of the given Literal to the given Appendable, optionally ignoring the xsd:string datatype as it is implied for RDF-1.1.
      Parameters:
      lit - The literal to write.
      appendable - The object to append to.
      xsdStringToPlainLiteral - True to omit serializing the xsd:string datatype and false to always serialize the datatype for literals.
      escapeUnicode - True to escape non-ascii/non-printable characters using Unicode escapes (\uxxxx and \Uxxxxxxxx), false to print without escaping.
      Throws:
      IOException
    • toNTriplesString

      public static String toNTriplesString(Triple triple)
      Creates an N-Triples (non-standard) string for the supplied RDF-star triple.
      Parameters:
      triple -
      Returns:
      string
    • append

      public static void append(Triple triple, Appendable appendable) throws IOException
      Appends the N-Triples (non-standard) representation of the given Triple to the given Appendable.
      Parameters:
      triple -
      appendable -
      Throws:
      IOException
    • isLetterOrNumber

      @Deprecated public static boolean isLetterOrNumber(int c)
      Checks whether the supplied character is a letter or number according to the N-Triples specification.
      Parameters:
      c -
      Returns:
      true if it is a letter or a number
      See Also:
    • isLetter

      @Deprecated public static boolean isLetter(int c)
      Deprecated.
      Checks whether the supplied character is a letter according to the N-Triples specification.N-Triples letters are A - Z and a - z.
      Parameters:
      c -
      Returns:
      true if c is an ascii leter
    • isNumber

      @Deprecated public static boolean isNumber(int c)
      Deprecated.
      Checks whether the supplied character is a number according to the N-Triples specification.N-Triples numbers are 0 - 9.
      Parameters:
      c -
      Returns:
      true if the character is a number
    • isValidCharacterForBNodeLabel

      public static boolean isValidCharacterForBNodeLabel(int c)
      Checks whether the supplied character is valid character as per N-Triples specification.
      Parameters:
      c -
      Returns:
      true if valid
      See Also:
    • isLiberalCharactersButNotDot

      public static boolean isLiberalCharactersButNotDot(int c)
      Checks whether the supplied character is in list of liberal characters according to the N-Triples specification except Dot.
      Parameters:
      c -
      Returns:
      true if valid
    • isUnderscore

      public static boolean isUnderscore(int c)
      Checks whether the supplied character is Underscore.
      Parameters:
      c -
      Returns:
      true if it is an underscore
    • isDot

      public static boolean isDot(int c)
      Checks whether the supplied character is Dot '.'.
      Parameters:
      c -
      Returns:
      true if it is a dot
    • escapeString

      public static String escapeString(String label)
      Escapes a Unicode string to an all-ASCII character sequence.Any special characters are escaped using backslashes ( " becomes \", etc.), and non-ascii/non-printable characters are escaped using Unicode escapes ( \uxxxx and \Uxxxxxxxx).
      Parameters:
      label -
      Returns:
      an escaped string (unicode to ascii plus codepoints).
    • escapeString

      public static void escapeString(String label, Appendable appendable) throws IOException
      Escapes a Unicode string to an all-ASCII character sequence. Any special characters are escaped using backslashes ( " becomes \", etc.), and non-ascii/non-printable characters are escaped using Unicode escapes ( \uxxxx and \Uxxxxxxxx).
      Parameters:
      label -
      appendable -
      Throws:
      IOException
    • escapeString

      public static void escapeString(String label, Appendable appendable, boolean escapeUnicode) throws IOException
      Escapes a Unicode string to an N-Triples compatible character sequence.Any special characters are escaped using backslashes (" becomes \", etc.), and non-ascii/non-printable characters are escaped using Unicode escapes (\uxxxx and \Uxxxxxxxx) if the option is selected.
      Parameters:
      label -
      appendable -
      escapeUnicode -
      Throws:
      IOException
    • unescapeString

      public static String unescapeString(String s)
      Unescapes an escaped Unicode string. Any Unicode sequences ( \uxxxx and \Uxxxxxxxx) are restored to the value indicated by the hexadecimal argument and any backslash-escapes ( \", \\, etc.) are decoded to their original form.
      Parameters:
      s - An escaped Unicode string.
      Returns:
      The unescaped string.
      Throws:
      IllegalArgumentException - If the supplied string is not a correctly escaped N-Triples string.
    • toHexString

      public static String toHexString(int decimal, int stringLength)
      Converts a decimal value to a hexadecimal string representation of the specified length.
      Parameters:
      decimal - A decimal value.
      stringLength - The length of the resulting string.
      Returns:
      padded string