Sha256: c433769e26d964eeeb48bbce0cbc9193cb00b188f6c3de390a2ffbd3b69f116a
Contents?: true
Size: 1.97 KB
Versions: 6
Compression:
Stored size: 1.97 KB
Contents
module RDF::NTriples ## # 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 http://www.w3.org/TR/rdf-testcases/#ntriples # @see http://www.w3.org/TR/n-triples/ class Format < RDF::Format content_type 'application/n-triples', extension: :nt, alias: 'text/plain;q=0.2', uri: RDF::URI("http://www.w3.org/ns/formats/N-Triples") content_encoding 'utf-8' reader { RDF::NTriples::Reader } writer { RDF::NTriples::Writer } ## # 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] 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 # Human readable name for this format def self.name; "N-Triples"; end end end
Version data entries
6 entries across 6 versions & 1 rubygems