class RDF::NTriples::Format

N-Triples format specification.

Note: Latest standards activities treat N-Triples as a subset of Turtle. This includes application/n-triples mime type and a new default encoding of utf-8.

@example Obtaining an NTriples format class

RDF::Format.for(:ntriples)     #=> RDF::NTriples::Format
RDF::Format.for("etc/doap.nt")
RDF::Format.for(file_name:      "etc/doap.nt")
RDF::Format.for(file_extension: "nt")
RDF::Format.for(content_type:   "application/n-triples")

@see www.w3.org/TR/rdf-testcases/#ntriples @see www.w3.org/TR/n-triples/

Public Class Methods

detect(sample) click to toggle source

Sample detection to see if it matches N-Triples

Use a text sample to detect the format of an input file. Sub-classes implement a matcher sufficient to detect probably format matches, including disambiguating between other similar formats.

@param [String] sample Beginning several bytes (about 1K) of input. @return [Boolean]

# File lib/rdf/ntriples/format.rb, line 36
def self.detect(sample)
  sample.match?(%r(
    (?:(?:<[^>]*>) | (?:_:\w+))                             # Subject
    \s*
    (?:<[^>]*>)                                             # Predicate
    \s*
    (?:(?:<[^>]*>) | (?:_:\w+) | (?:"[^"\n]*"(?:^^|@\S+)?)) # Object
    \s*\.
  )x) && !(
    sample.match?(%r(@(base|prefix|keywords)|\{)) ||         # Not Turtle/N3/TriG
    sample.match?(%r(<(html|rdf))i)                          # Not HTML or XML
  ) && !RDF::NQuads::Format.detect(sample)
end
name() click to toggle source

Human readable name for this format

# File lib/rdf/ntriples/format.rb, line 51
def self.name; "N-Triples"; end