Class: TaliaCore::ActiveSourceParts::Xml::RdfBuilder

Inherits:
TaliaUtil::Xml::RdfBuilder show all
Defined in:
lib/talia_core/active_source_parts/xml/rdf_builder.rb

Overview

Class for creating xml-rdf data

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TaliaUtil::Xml::RdfBuilder

open_for_triples, #write_triple, #write_triples, xml_string_for_triples

Methods inherited from TaliaUtil::Xml::BaseBuilder

make_xml_string, open

Class Method Details

.build_source(source) ⇒ Object



8
9
10
# File 'lib/talia_core/active_source_parts/xml/rdf_builder.rb', line 8

def self.build_source(source)
make_xml_string { |build| build.write_source(source) }
end

Instance Method Details

#write_source(source) ⇒ Object

Writes a complete source to the rdf



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/talia_core/active_source_parts/xml/rdf_builder.rb', line 13

def write_source(source)
  @builder.rdf :Description, 'rdf:about' => source.uri.to_s do # Element describing this resource
    # loop through the predicates
    source.direct_predicates.each do |predicate|
      write_predicate(predicate, source[predicate])
    end
  end

  source.inverse_predicates.each do |predicate|
    source.inverse[predicate].each do |inverse_subject|
      @builder.rdf :Description, 'rdf:about' => inverse_subject do
        write_predicate(predicate, [source])
      end
    end
  end
end