module PROIEL::Valency::Obliqueness

Constants

OBLIQUENESS_HIERARCHY

Public Class Methods

sort_arguments(arguments) click to toggle source

Sorts arguments by obliqueness

# File lib/proiel/valency/obliqueness.rb, line 10
def self.sort_arguments(arguments)
  arguments.sort_by { |argument| obliqueness_of_argument(argument) }
end
sort_frames(frames) click to toggle source

Sorts frames by obliqueness

# File lib/proiel/valency/obliqueness.rb, line 3
def self.sort_frames(frames)
  # Sort frames by obliqueness, then by inspecting them so that we get
  # a stable, reproducible order.
  frames.sort_by { |frame| [obliqueness_of_arguments(frame[:arguments]).sort, frame.inspect] }
end

Private Class Methods

obliqueness_of_argument(argument) click to toggle source
# File lib/proiel/valency/obliqueness.rb, line 22
def self.obliqueness_of_argument(argument)
  obliqueness_of_relation(argument[:relation]) * 2 + (argument[:lemma].nil? ? 0 : 1)
end
obliqueness_of_arguments(arguments) click to toggle source
# File lib/proiel/valency/obliqueness.rb, line 16
def self.obliqueness_of_arguments(arguments)
  arguments.map do |argument|
    obliqueness_of_argument(argument)
  end
end
obliqueness_of_relation(relation) click to toggle source
# File lib/proiel/valency/obliqueness.rb, line 28
def self.obliqueness_of_relation(relation)
  OBLIQUENESS_HIERARCHY.index(relation) || OBLIQUENESS_HIERARCHY.length
end