shalmaneser-lib 1.2.rc5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +10 -0
  3. data/CHANGELOG.md +4 -0
  4. data/LICENSE.md +4 -0
  5. data/README.md +122 -0
  6. data/lib/configuration/config_data.rb +457 -0
  7. data/lib/configuration/config_format_element.rb +210 -0
  8. data/lib/configuration/configuration_error.rb +15 -0
  9. data/lib/configuration/external_config_data.rb +56 -0
  10. data/lib/configuration/frappe_config_data.rb +134 -0
  11. data/lib/configuration/fred_config_data.rb +199 -0
  12. data/lib/configuration/rosy_config_data.rb +126 -0
  13. data/lib/db/db_interface.rb +50 -0
  14. data/lib/db/db_mysql.rb +141 -0
  15. data/lib/db/db_sqlite.rb +280 -0
  16. data/lib/db/db_table.rb +237 -0
  17. data/lib/db/db_view.rb +416 -0
  18. data/lib/db/db_wrapper.rb +175 -0
  19. data/lib/db/select_table_and_columns.rb +10 -0
  20. data/lib/db/sql_query.rb +243 -0
  21. data/lib/definitions.rb +19 -0
  22. data/lib/eval.rb +482 -0
  23. data/lib/ext/maxent/Classify.class +0 -0
  24. data/lib/ext/maxent/Train.class +0 -0
  25. data/lib/external_systems.rb +251 -0
  26. data/lib/framenet_format/fn_corpus_aset.rb +209 -0
  27. data/lib/framenet_format/fn_corpus_xml_file.rb +120 -0
  28. data/lib/framenet_format/fn_corpus_xml_sentence.rb +299 -0
  29. data/lib/framenet_format/fn_database.rb +143 -0
  30. data/lib/framenet_format/frame_xml_file.rb +104 -0
  31. data/lib/framenet_format/frame_xml_sentence.rb +411 -0
  32. data/lib/logging.rb +25 -0
  33. data/lib/ml/classifier.rb +189 -0
  34. data/lib/ml/mallet.rb +236 -0
  35. data/lib/ml/maxent.rb +229 -0
  36. data/lib/ml/optimize.rb +195 -0
  37. data/lib/ml/timbl.rb +140 -0
  38. data/lib/monkey_patching/array.rb +82 -0
  39. data/lib/monkey_patching/enumerable_bool.rb +24 -0
  40. data/lib/monkey_patching/enumerable_distribute.rb +18 -0
  41. data/lib/monkey_patching/file.rb +131 -0
  42. data/lib/monkey_patching/subsumed.rb +24 -0
  43. data/lib/ruby_class_extensions.rb +4 -0
  44. data/lib/salsa_tiger_xml/corpus.rb +24 -0
  45. data/lib/salsa_tiger_xml/fe_node.rb +98 -0
  46. data/lib/salsa_tiger_xml/file_parts_parser.rb +214 -0
  47. data/lib/salsa_tiger_xml/frame_node.rb +145 -0
  48. data/lib/salsa_tiger_xml/graph_node.rb +347 -0
  49. data/lib/salsa_tiger_xml/reg_xml.rb +285 -0
  50. data/lib/salsa_tiger_xml/salsa_tiger_sentence.rb +596 -0
  51. data/lib/salsa_tiger_xml/salsa_tiger_sentence_graph.rb +333 -0
  52. data/lib/salsa_tiger_xml/salsa_tiger_sentence_sem.rb +438 -0
  53. data/lib/salsa_tiger_xml/salsa_tiger_xml_helper.rb +84 -0
  54. data/lib/salsa_tiger_xml/salsa_tiger_xml_node.rb +161 -0
  55. data/lib/salsa_tiger_xml/sem_node.rb +58 -0
  56. data/lib/salsa_tiger_xml/string_terminals_in_right_order.rb +192 -0
  57. data/lib/salsa_tiger_xml/syn_node.rb +169 -0
  58. data/lib/salsa_tiger_xml/tree_node.rb +59 -0
  59. data/lib/salsa_tiger_xml/ts_syn_node.rb +47 -0
  60. data/lib/salsa_tiger_xml/usp_node.rb +72 -0
  61. data/lib/salsa_tiger_xml/xml_node.rb +163 -0
  62. data/lib/shalmaneser/lib.rb +1 -0
  63. data/lib/tabular_format/fn_tab_format_file.rb +38 -0
  64. data/lib/tabular_format/fn_tab_frame.rb +67 -0
  65. data/lib/tabular_format/fn_tab_sentence.rb +169 -0
  66. data/lib/tabular_format/tab_format_file.rb +91 -0
  67. data/lib/tabular_format/tab_format_named_args.rb +184 -0
  68. data/lib/tabular_format/tab_format_sentence.rb +119 -0
  69. data/lib/value_restriction.rb +49 -0
  70. metadata +131 -0
@@ -0,0 +1,119 @@
1
+ require "ruby_class_extensions"
2
+ require_relative 'tab_format_named_args'
3
+
4
+ #################################################
5
+ # class for keeping and yielding one sentence
6
+ # in tabular format
7
+ class TabFormatSentence
8
+ ############
9
+ # initialize:
10
+ # the sentence will be stored one word (plus additional info
11
+ # for that word) per line. Each line will be stored in a cell of
12
+ # the array @lines. the 'initialize' method starts with an empty
13
+ # array of lines.
14
+ def initialize(pattern)
15
+ @lines = []
16
+ @pattern = pattern
17
+
18
+ # this is just for inheritance; FNTabFormatSentence will need this
19
+ @group_no = nil
20
+ end
21
+
22
+ #####
23
+ # length: number of words in the sentence
24
+ def length
25
+ @lines.length
26
+ end
27
+
28
+ ################3
29
+ # add_line:
30
+ # add one entry to the @lines array, i.e. information for one word
31
+ # of the sentence.
32
+ def add_line(line)
33
+ @lines << line
34
+ end
35
+
36
+ ###################
37
+ # empty?:
38
+ # returns true if there are currently no lines stored in this
39
+ # TabFormatSentence object
40
+ # else false
41
+ def empty?
42
+ @lines.empty?
43
+ end
44
+
45
+ ######################
46
+ # empty!:
47
+ # discards all entries to the @lines array,
48
+ # i.e. empties this TabFormatSentence object of all
49
+ # data
50
+ def empty!
51
+ @lines.clear
52
+ end
53
+
54
+ #####################
55
+ # each_line:
56
+ # yields each line of the sentence
57
+ # as a string
58
+ def each_line
59
+ @lines.each { |l| yield l }
60
+ end
61
+
62
+ ######################
63
+ # each_line_parsed:
64
+ # yields each line of the sentence
65
+ # broken up as follows:
66
+ # the line is expected to contain 6 or more pieces of
67
+ # information, separated by whitespace.
68
+ # - the word
69
+ # - the part of speech info for the word
70
+ # - syntax for roles (not to be used)
71
+ # - target (or -)
72
+ # - gramm. function for roles (not to be used)
73
+ # - one column with role annotation
74
+ #
75
+ # All pieces are yielded as strings, except for the argument columns, which
76
+ # are yielded as an array of strings.
77
+ def each_line_parsed
78
+ lineno = 0
79
+ f = nil
80
+ @lines.each { |l|
81
+ f = TabFormatNamedArgs.new(l.split("\t"), @pattern, @group_no)
82
+ f.add_feature("lineno", lineno)
83
+ yield f
84
+ lineno += 1
85
+ }
86
+ end
87
+
88
+ ###
89
+ # read_one_line:
90
+ # return a line of the sentence specified by its number
91
+ def read_one_line(number)
92
+ @lines[number]
93
+ end
94
+
95
+ ###
96
+ # read_one_line_parsed:
97
+ # like get_line, but the features in the line are returned
98
+ # separately,
99
+ # as in each_line_parsed
100
+ def read_one_line_parsed(number)
101
+ if @lines[number].nil?
102
+ return nil
103
+ else
104
+ f = TabFormatNamedArgs.new(@lines[number].split("\t"), @pattern, @group_no)
105
+ f.add_feature("lineno", number)
106
+ return f
107
+ end
108
+ end
109
+
110
+ # set line no of first line of present sentence
111
+ def set_starting_line(n)
112
+ raise "Deprecated"
113
+ end
114
+
115
+ # returns line no of first line of present sentence
116
+ def get_starting_line
117
+ raise "Deprecated"
118
+ end
119
+ end
@@ -0,0 +1,49 @@
1
+ #################################################################
2
+ #################################################################
3
+ ###
4
+ # value restriction (to pass on to a view):
5
+ # some column is restricted to be equal/inequal to some value
6
+ class ValueRestriction
7
+
8
+ attr_reader :val_is_variable, :table_name_included
9
+
10
+ ###
11
+ # new(): store values
12
+ def initialize(column, # string: column name
13
+ value, # value this column is to be restricted to
14
+ var_hash = {}) # hash:additional settings. possible entries:
15
+ # posneg: string: "=" or "!=": equality or inequality restriction
16
+ # (default: =)
17
+ # table_name_included: boolean: is the table name aready included
18
+ # in the column name? default: false
19
+
20
+ @column = column
21
+ @value = value
22
+
23
+ @posneg = var_hash["posneg"]
24
+ if @posneg.nil?
25
+ # per default, equality restriction
26
+ @posneg = "="
27
+ else
28
+ unless ["=", "!="].include? @posneg
29
+ raise "posneg should be either '=' or '!='. I got: " + @posneg.to_s
30
+ end
31
+ end
32
+
33
+ @table_name_included = var_hash["table_name_included"]
34
+ if @table_name_included.nil?
35
+ # per default, the table name is not yet included
36
+ # in the column name
37
+ @table_name_included = false
38
+ end
39
+
40
+ # per default, value is a value and not another column name
41
+ @val_is_variable = false
42
+ end
43
+
44
+ ###
45
+ # get(): returns a triple [column name(string), eq(string), value(object)]
46
+ def get
47
+ return [@column, @posneg, @value]
48
+ end
49
+ end
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shalmaneser-lib
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.rc5
5
+ platform: ruby
6
+ authors:
7
+ - Andrei Beliankou
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-01-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pastel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
27
+ description: Common facilities for Shalmaneser and its modules.
28
+ email: arbox@yandex.ru
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files:
32
+ - README.md
33
+ - LICENSE.md
34
+ - CHANGELOG.md
35
+ files:
36
+ - ".yardopts"
37
+ - CHANGELOG.md
38
+ - LICENSE.md
39
+ - README.md
40
+ - lib/configuration/config_data.rb
41
+ - lib/configuration/config_format_element.rb
42
+ - lib/configuration/configuration_error.rb
43
+ - lib/configuration/external_config_data.rb
44
+ - lib/configuration/frappe_config_data.rb
45
+ - lib/configuration/fred_config_data.rb
46
+ - lib/configuration/rosy_config_data.rb
47
+ - lib/db/db_interface.rb
48
+ - lib/db/db_mysql.rb
49
+ - lib/db/db_sqlite.rb
50
+ - lib/db/db_table.rb
51
+ - lib/db/db_view.rb
52
+ - lib/db/db_wrapper.rb
53
+ - lib/db/select_table_and_columns.rb
54
+ - lib/db/sql_query.rb
55
+ - lib/definitions.rb
56
+ - lib/eval.rb
57
+ - lib/ext/maxent/Classify.class
58
+ - lib/ext/maxent/Train.class
59
+ - lib/external_systems.rb
60
+ - lib/framenet_format/fn_corpus_aset.rb
61
+ - lib/framenet_format/fn_corpus_xml_file.rb
62
+ - lib/framenet_format/fn_corpus_xml_sentence.rb
63
+ - lib/framenet_format/fn_database.rb
64
+ - lib/framenet_format/frame_xml_file.rb
65
+ - lib/framenet_format/frame_xml_sentence.rb
66
+ - lib/logging.rb
67
+ - lib/ml/classifier.rb
68
+ - lib/ml/mallet.rb
69
+ - lib/ml/maxent.rb
70
+ - lib/ml/optimize.rb
71
+ - lib/ml/timbl.rb
72
+ - lib/monkey_patching/array.rb
73
+ - lib/monkey_patching/enumerable_bool.rb
74
+ - lib/monkey_patching/enumerable_distribute.rb
75
+ - lib/monkey_patching/file.rb
76
+ - lib/monkey_patching/subsumed.rb
77
+ - lib/ruby_class_extensions.rb
78
+ - lib/salsa_tiger_xml/corpus.rb
79
+ - lib/salsa_tiger_xml/fe_node.rb
80
+ - lib/salsa_tiger_xml/file_parts_parser.rb
81
+ - lib/salsa_tiger_xml/frame_node.rb
82
+ - lib/salsa_tiger_xml/graph_node.rb
83
+ - lib/salsa_tiger_xml/reg_xml.rb
84
+ - lib/salsa_tiger_xml/salsa_tiger_sentence.rb
85
+ - lib/salsa_tiger_xml/salsa_tiger_sentence_graph.rb
86
+ - lib/salsa_tiger_xml/salsa_tiger_sentence_sem.rb
87
+ - lib/salsa_tiger_xml/salsa_tiger_xml_helper.rb
88
+ - lib/salsa_tiger_xml/salsa_tiger_xml_node.rb
89
+ - lib/salsa_tiger_xml/sem_node.rb
90
+ - lib/salsa_tiger_xml/string_terminals_in_right_order.rb
91
+ - lib/salsa_tiger_xml/syn_node.rb
92
+ - lib/salsa_tiger_xml/tree_node.rb
93
+ - lib/salsa_tiger_xml/ts_syn_node.rb
94
+ - lib/salsa_tiger_xml/usp_node.rb
95
+ - lib/salsa_tiger_xml/xml_node.rb
96
+ - lib/shalmaneser/lib.rb
97
+ - lib/tabular_format/fn_tab_format_file.rb
98
+ - lib/tabular_format/fn_tab_frame.rb
99
+ - lib/tabular_format/fn_tab_sentence.rb
100
+ - lib/tabular_format/tab_format_file.rb
101
+ - lib/tabular_format/tab_format_named_args.rb
102
+ - lib/tabular_format/tab_format_sentence.rb
103
+ - lib/value_restriction.rb
104
+ homepage: https://github.com/arbox/shalmaneser
105
+ licenses:
106
+ - GPL-2.0
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options:
110
+ - "-m"
111
+ - README.md
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '='
117
+ - !ruby/object:Gem::Version
118
+ version: '2.0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">"
122
+ - !ruby/object:Gem::Version
123
+ version: 1.3.1
124
+ requirements: []
125
+ rubyforge_project:
126
+ rubygems_version: 2.5.1
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: Shalmaneser Library
130
+ test_files: []
131
+ has_rdoc: