9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio def update_or_create_from_hash(hash, timestamp = Time.now)
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio raise ArgumentError, 'No hash given.' unless hash.is_a? Hash
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio e = where(text: hash['text']).first_or_initialize
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio "Using work-around to determine symbol name and kind: #{e.inspect}")
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio if e2 = Symbol.where(text: hash['text']).first
21909d3b620d97e81dd946b959a47efe88d2b7d8Fabiano Fidêncio # remove path from range
9a18f78f38e274f4906af6ef8e1a82d844fde4ccFabiano Fidêncio EEdge.where(key => symbols.where(kind: 'Class')).delete_all
e17e37cd0e2109e7f1bd4ae48edfc8cca85b3f93Fabiano Fidêncio raise StandardError.new('Ontology is not OWL') unless owl?
e17e37cd0e2109e7f1bd4ae48edfc8cca85b3f93Fabiano Fidêncio # Delete previous set of categories
e17e37cd0e2109e7f1bd4ae48edfc8cca85b3f93Fabiano Fidêncio sentences.where("text LIKE '%SubClassOf%'").select do |sentence|
subclasses.each do |s|