Class: RDF::Turtle::Format

Inherits:
Format show all
Defined in:
vendor/bundler/ruby/3.3.0/bundler/gems/rdf-turtle-6506e92ccd8e/lib/rdf/turtle/format.rb

Overview

Turtle format specification.

Examples:

Obtaining an Turtle format class

RDF::Format.for("etc/foaf.ttl")
RDF::Format.for(file_name:      "etc/foaf.ttl")
RDF::Format.for(file_extension: "ttl")
RDF::Format.for(content_type:   "text/turtle")

Obtaining serialization format MIME types

RDF::Format.content_types      #=> {"text/turtle" => [RDF::Turtle::Format]}

Obtaining serialization format file extension mappings

RDF::Format.file_extensions    #=> {ttl: "text/turtle"}

See Also:

Class Method Summary collapse

Methods inherited from Format

accept_type, accept_types, cli_commands, content_encoding, content_type, content_types, each, file_extension, file_extensions, for, name, reader, reader_symbols, reader_types, require, to_sym, uri, uris, writer, writer_symbols, writer_types

Class Method Details

.detect(sample) ⇒ Boolean

Sample detection to see if it matches Turtle (or 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 (~ 1K) of input.

Returns:

  • (Boolean)


41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/rdf-turtle-6506e92ccd8e/lib/rdf/turtle/format.rb', line 41

def self.detect(sample)
  !!sample.match(%r(
    (?:@(base|prefix)) |                                            # Turtle keywords
    ["']{3} |                                                       # STRING_LITERAL_LONG_SINGLE_QUOTE/2
    "[^"]*"^^ | "[^"]*"@ |                                          # Typed/Language literals
    (?:
      (?:\s*(?:(?:<[^>]*>) | (?:\w*:\w+) | (?:"[^"]*"))\s*[,;]) ||
      (?:\s*(?:(?:<[^>]*>) | (?:\w*:\w+) | (?:"[^"]*"))){3}
    )
  )mx) && !(
    sample.match(%r([{}])) ||                                       # TriG
    sample.match(%r(@keywords|=>|\{)) ||                            # N3
    sample.match(%r(<(?:\/|html|rdf))i) ||                          # HTML, RDF/XML
    sample.match(%r(^(?:\s*<[^>]*>){4}.*\.\s*$)) ||                 # N-Quads
    sample.match(%r("@(context|subject|iri)"))                      # JSON-LD
  )
end

.symbolsObject

List of symbols used to lookup this format



60
61
62
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/rdf-turtle-6506e92ccd8e/lib/rdf/turtle/format.rb', line 60

def self.symbols
  [:turtle, :ttl]
end