Class: Opener::Kaf::Visualizer::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/opener/s3_outlet/visualizer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input_file_handler) ⇒ Parser

Returns a new instance of Parser.



11
12
13
# File 'lib/opener/s3_outlet/visualizer.rb', line 11

def initialize(input_file_handler)
  @doc = Nokogiri::XML(input_file_handler)
end

Instance Attribute Details

#docObject (readonly)

Returns the value of attribute doc.



8
9
10
# File 'lib/opener/s3_outlet/visualizer.rb', line 8

def doc
  @doc
end

#documentObject (readonly)

Returns the value of attribute document.



9
10
11
# File 'lib/opener/s3_outlet/visualizer.rb', line 9

def document
  @document
end

#entitiesObject (readonly)

Returns the value of attribute entities.



9
10
11
# File 'lib/opener/s3_outlet/visualizer.rb', line 9

def entities
  @entities
end

#opinionsObject (readonly)

Returns the value of attribute opinions.



9
10
11
# File 'lib/opener/s3_outlet/visualizer.rb', line 9

def opinions
  @opinions
end

#propertiesObject (readonly)

Returns the value of attribute properties.



9
10
11
# File 'lib/opener/s3_outlet/visualizer.rb', line 9

def properties
  @properties
end

#termsObject (readonly)

Returns the value of attribute terms.



9
10
11
# File 'lib/opener/s3_outlet/visualizer.rb', line 9

def terms
  @terms
end

#wordsObject (readonly)

Returns the value of attribute words.



9
10
11
# File 'lib/opener/s3_outlet/visualizer.rb', line 9

def words
  @words
end

Instance Method Details

#parseObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/opener/s3_outlet/visualizer.rb', line 15

def parse
  @words      = parse_words
  @terms      = parse_terms
  @entities   = parse_entities
  @properties = parse_properties
  @opinions   = parse_opinions
  @document   = KAFDocument.new(
    :words => words,
    :terms => terms,
    :entities => entities,
    :properties => properties,
    :opinions => opinions
  )

  return document
end

#parse_elements(xpath, klass, opts = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
# File 'lib/opener/s3_outlet/visualizer.rb', line 54

def parse_elements(xpath, klass, opts={})
  elements = doc.xpath(xpath)
  lookup_table = Hash.new
  elements.each do |element|
    instance = klass.new(element, opts)
    lookup_table[instance.id] = instance
  end
  lookup_table
end

#parse_entitiesObject



42
43
44
# File 'lib/opener/s3_outlet/visualizer.rb', line 42

def parse_entities
  parse_elements("//entity", Entity, :terms=>terms)
end

#parse_opinionsObject



50
51
52
# File 'lib/opener/s3_outlet/visualizer.rb', line 50

def parse_opinions
  parse_elements("//opinion", Opinion, :terms=>terms)
end

#parse_propertiesObject



46
47
48
# File 'lib/opener/s3_outlet/visualizer.rb', line 46

def parse_properties
  parse_elements("//property", Property, :terms=>terms)
end

#parse_termsObject



36
37
38
39
40
# File 'lib/opener/s3_outlet/visualizer.rb', line 36

def parse_terms
  # Of course terms should be words here.
  # Dirty Hack, sufficient for now.
  parse_elements("//term", Term, :terms=>words)
end

#parse_wordsObject



32
33
34
# File 'lib/opener/s3_outlet/visualizer.rb', line 32

def parse_words
  parse_elements("//wf", Word)
end