Class: RDF::NTriples::Format

Inherits:
Format
  • Object
show all
Defined in:
lib/rdf/ntriples/format.rb

Overview

N-Triples format specification.

Note: Latest standards activities treat N-Triples as a subset of Turtle. This includes text/ntriples+turtle mime type and a new default encoding of utf-8.

Examples:

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   => "text/plain")
RDF::Format.for(:content_type   => "text/ntriples+turtle")

See Also:

Class Method Summary collapse

Methods inherited from Format

content_type, content_types, each, file_extensions, for, reader, to_sym, writer

Class Method Details

.detect(sample) ⇒ Boolean

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.

Parameters:

  • sample (String)

    Beginning several bytes (about 1K) of input.

Returns:

  • (Boolean)


34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/rdf/ntriples/format.rb', line 34

def self.detect(sample)
  !!sample.match(%r(
    (?:(?:<[^>]*>) | (?:_:\w+))                             # Subject
    \s*
    (?:<[^>]*>)                                             # Predicate
    \s*
    (?:(?:<[^>]*>) | (?:_:\w+) | (?:"[^"\n]*"(?:^^|@\S+)?)) # Object
    \s*\.
  )mx) && !(
    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