Module: BioTable::RDF

Defined in:
lib/bio-table/rdf.rb

Defined Under Namespace

Classes: Writer

Class Method Summary collapse

Class Method Details

.header(row) ⇒ Object

Write a table header as Turtle RDF.

If we have a column name ‘AXB1’ the following gets written:

[:AXB1 rdf:label “AXB1”; a :colname; :index 3 ].

This method returns a list of these.



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/bio-table/rdf.rb', line 20

def RDF::header(row)
  list = []
  if row - row.uniq != []
    $stderr.print row - row.uniq
    raise "RDF expects unique column names!" 
  end
  row.each_with_index do | field,i |
    s = ":#{make_identifier(field)} rdf:label \"#{field}\" ; a :colname; :index #{i} ."
    list << s
  end
  list
end

.namespacesObject



6
7
8
9
10
11
# File 'lib/bio-table/rdf.rb', line 6

def RDF::namespaces
  """
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://biobeat.org/rdf/biotable/ns#>  .
  """
end

.row(row, header, use_blank_nodes = false) ⇒ Object

Write a table row as Turtle RDF

If we have a row, each row element gets written with the header colname as an id, e.g.

[:rs13475701 rdf:label “rs13475701”; a :rowname; :Chromosome 1 ; :Pos 0 ; :AXB1 “AA”].

The method returns a String.



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/bio-table/rdf.rb', line 41

def RDF::row(row, header, use_blank_nodes = false)
  list = []
  rowname = make_identifier(row[0])
  list << ":#{rowname}"+(use_blank_nodes ? " :row [ " : " ") + "rdf:label \"#{row[0]}\" ; a :rowname" 
  row.each_with_index do | field,i |
    s = ":#{make_identifier(header[i])} "
    if BioTable::Filter.valid_number?(field)
      s += field.to_s
    else
      s += "\"#{field}\""
    end
    list << s
  end
  list.join(" ; ")+(use_blank_nodes ? " ] ." : " .")
end