proiel 1.1.0 → 1.3.1

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 (37) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE +1 -1
  3. data/README.md +2 -2
  4. data/lib/proiel.rb +16 -1
  5. data/lib/proiel/alignment.rb +3 -0
  6. data/lib/proiel/alignment/builder.rb +220 -0
  7. data/lib/proiel/annotation_schema.rb +11 -4
  8. data/lib/proiel/chronology.rb +80 -0
  9. data/lib/proiel/dictionary.rb +79 -0
  10. data/lib/proiel/dictionary/builder.rb +224 -0
  11. data/lib/proiel/div.rb +22 -3
  12. data/lib/proiel/language.rb +108 -0
  13. data/lib/proiel/lemma.rb +77 -0
  14. data/lib/proiel/proiel_xml/proiel-3.0/proiel-3.0.xsd +383 -0
  15. data/lib/proiel/proiel_xml/reader.rb +138 -2
  16. data/lib/proiel/proiel_xml/schema.rb +4 -2
  17. data/lib/proiel/proiel_xml/validator.rb +76 -9
  18. data/lib/proiel/sentence.rb +27 -4
  19. data/lib/proiel/source.rb +14 -4
  20. data/lib/proiel/statistics.rb +2 -2
  21. data/lib/proiel/token.rb +14 -6
  22. data/lib/proiel/tokenization.rb +5 -3
  23. data/lib/proiel/treebank.rb +23 -6
  24. data/lib/proiel/utils.rb +0 -1
  25. data/lib/proiel/valency.rb +5 -0
  26. data/lib/proiel/valency/arguments.rb +151 -0
  27. data/lib/proiel/valency/lexicon.rb +59 -0
  28. data/lib/proiel/valency/obliqueness.rb +31 -0
  29. data/lib/proiel/version.rb +2 -3
  30. data/lib/proiel/visualization.rb +1 -0
  31. data/lib/proiel/visualization/graphviz.rb +111 -0
  32. data/lib/proiel/visualization/graphviz/aligned-modern.dot.erb +83 -0
  33. data/lib/proiel/visualization/graphviz/classic.dot.erb +24 -0
  34. data/lib/proiel/visualization/graphviz/linearized.dot.erb +57 -0
  35. data/lib/proiel/visualization/graphviz/modern.dot.erb +39 -0
  36. data/lib/proiel/visualization/graphviz/packed.dot.erb +25 -0
  37. metadata +76 -31
@@ -0,0 +1,24 @@
1
+ digraph "<%= @title -%>" {
2
+ charset="UTF-8";
3
+ graph [truecolor=true,bgcolor=transparent];
4
+ root [label="",shape=circle];
5
+ rankdir="<%= @direction -%>";
6
+
7
+ <%- @graph.tokens.select { |t| t.empty_token_sort != 'P' }.each do |token| -%>
8
+ <%- if token.empty_token_sort == 'C' or token.part_of_speech == 'C-' -%>
9
+ <%= node token.id, token.form || token.empty_token_sort, shape: :diamond -%>
10
+ <%- elsif token.is_empty? -%>
11
+ <%= node token.id, token.empty_token_sort, shape: :circle -%>
12
+ <%- else -%>
13
+ <%= node token.id, token.form, shape: :box -%>
14
+ <%- end -%>
15
+
16
+ <%- if token.relation -%>
17
+ <%= edge (token.head ? token.head.id : :root), token.id, token.relation.to_s.upcase, weight: 1.0, color: :orange -%>
18
+ <%- end -%>
19
+
20
+ <%- token.slashes.each do |(relation, target)| -%>
21
+ <%= edge token.id, target, relation.to_s.upcase, weight: 0.0, color: :blue, style: :dashed %>
22
+ <%- end -%>
23
+ <%- end -%>
24
+ }
@@ -0,0 +1,57 @@
1
+ digraph "<%= @title -%>" {
2
+ charset="UTF-8";
3
+ ranksep=.0005;
4
+ nodesep=.05;
5
+ graph [truecolor=true,bgcolor=transparent];
6
+ rankdir="<%= @direction -%>";
7
+
8
+ node [shape=none]; {
9
+ depthR ->
10
+ <% (0..@sentence.max_depth).each do |depth| %>
11
+ depth<%= depth %> ->
12
+ <% end %>
13
+ WORDS [style=invis];
14
+ }
15
+
16
+ node [shape=point]; {
17
+ rank = same;
18
+ depthR [label=""];
19
+ root;
20
+ }
21
+
22
+ <% @graph.tokens.select { |t| t.empty_token_sort != 'P' }.inject({}) { |k, e| (k[e.depth] ||= []) << e; k }.sort.each do |depth, tokens| %>
23
+ node [shape=point]; {
24
+ rank = same;
25
+ <%= node "depth#{depth}" %>
26
+ <% tokens.each do |t| %>
27
+ <%= node t.id %>
28
+ <% end %>
29
+ }
30
+ <% end %>
31
+
32
+ node [shape=none]; {
33
+ rank = same;
34
+ WORDS [label=""];
35
+ <% @graph.tokens.select { |t| t.empty_token_sort != 'P' }.reject { |t| t.is_empty? }.sort_by { |t| t.token_number }.each do |t| %>
36
+ <%= node "f#{t.id}", t.form %>
37
+ <% end %>
38
+ }
39
+
40
+ <% @graph.tokens.select { |t| t.empty_token_sort != 'P' }.each do |t| %>
41
+ <% if t.relation %>
42
+ <%= edge (t.head ? t.head.id : :root), t.id, t.relation.to_s.upcase, fontcolor: :black, fontsize: 10 %>
43
+ <% end %>
44
+
45
+ <% unless t.is_empty? %>
46
+ <%= edge "f#{t.id}", t.id, '', arrowhead: :none, color: :lightgrey %>
47
+ <% end %>
48
+
49
+ <% t.slashes.each do |(relation, target)| %>
50
+ <%= edge t.id, target, relation.to_s.upcase, color: :blue, weight: 0.0, style: :dotted, fontsize: 10 %>
51
+ <% end %>
52
+ <% end %>
53
+
54
+ <% @graph.tokens.select { |t| t.empty_token_sort.blank? }.sort_by(&:token_number).each_cons(2) do |n1, n2| %>
55
+ <%= edge "f#{n1.id}", "f#{n2.id}", '', weight: 10.0, style: :invis %>
56
+ <% end %>
57
+ }
@@ -0,0 +1,39 @@
1
+ digraph "<%= @title -%>" {
2
+ charset="UTF-8";
3
+ graph [truecolor=true,bgcolor=transparent];
4
+ rankdir="<%= @direction -%>";
5
+ nodesep=0.1;
6
+ ranksep=0.25;
7
+
8
+ root [label="",shape=point];
9
+
10
+ <%- @graph.tokens.select { |t| t.empty_token_sort != 'P' }.each do |token| -%>
11
+ <%- if token.empty_token_sort -%>
12
+ <%= node token.id, token.relation.to_s.upcase, shape: :none, fontcolor: :gray -%>
13
+ <%- else -%>
14
+ <%= node token.id, token.relation.to_s.upcase, shape: :none -%>
15
+ <%- end -%>
16
+
17
+ <%- if token.relation -%>
18
+ <%= edge (token.head ? token.head.id : :root), token.id, '', weight: 1.0, color: :orange, arrowhead: :none -%>
19
+ <%- end -%>
20
+
21
+ <%- token.slashes.each do |(relation, target)| -%>
22
+ <%= edge token.id, target, relation.to_s.upcase, weight: 0.0, fontcolor: :blue,color: :blue, style: :dashed %>
23
+ <%- end -%>
24
+ <%- end -%>
25
+
26
+ <%- @graph.tokens.reject(&:empty_token_sort).each do |token| -%>
27
+ <%= edge token.id, "T#{token.id}", nil, weight: 10, arrowhead: :none -%>
28
+ <%- end -%>
29
+
30
+ {
31
+ rank="same";
32
+
33
+ <%- @graph.tokens.reject(&:empty_token_sort).each do |token| -%>
34
+ <%= node "T#{token.id}", token.form, shape: :none, fontcolor: :blue, tooltip: [token.lemma, token.part_of_speech, token.morphology].join("\n") -%>
35
+ <%- end -%>
36
+
37
+ <%= @graph.tokens.reject(&:empty_token_sort).map { |token| "T#{token.id}" }.join('->') -%> [style="invis"];
38
+ }
39
+ }
@@ -0,0 +1,25 @@
1
+ digraph "<%= @title -%>" {
2
+ charset="UTF-8";
3
+ graph [truecolor=true,bgcolor=transparent];
4
+ rankdir="<%= @direction -%>";
5
+
6
+ root [label="",shape=none];
7
+
8
+ <% @graph.tokens.each do |token| %>
9
+ <% if token.conjunction? %>
10
+ <%= node token.id, token.form || token.empty_token_sort, shape: :none %>
11
+ <% elsif token.is_empty? %>
12
+ <%= node token.id, token.empty_token_sort, shape: :none %>
13
+ <% else %>
14
+ <%= node token.id, token.form, shape: :none %>
15
+ <% end %>
16
+
17
+ <% if token.relation %>
18
+ <%= edge (token.head ? token.head.id : :root), token.id, token.relation.to_s.upcase, weight: 0.0, color: :purple %>
19
+ <% end %>
20
+
21
+ <% token.slashes.each do |(relation, target)| %>
22
+ <%= edge token.id, target, relation.to_s.upcase, weight: 0.0, color: :purple, style: :dashed %>
23
+ <% end %>
24
+ <% end %>
25
+ }
metadata CHANGED
@@ -1,43 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proiel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marius L. Jøhndal
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-04 00:00:00.000000000 Z
11
+ date: 2020-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: builder
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.4
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: json
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '1.8'
33
+ version: 2.3.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 2.3.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: memoist
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.16.2
20
48
  type: :runtime
21
49
  prerelease: false
22
50
  version_requirements: !ruby/object:Gem::Requirement
23
51
  requirements:
24
52
  - - "~>"
25
53
  - !ruby/object:Gem::Version
26
- version: '1.8'
54
+ version: 0.16.2
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: nokogiri
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: 1.6.6
61
+ version: 1.10.9
34
62
  type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: 1.6.6
68
+ version: 1.10.9
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: sax-machine
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -53,103 +81,103 @@ dependencies:
53
81
  - !ruby/object:Gem::Version
54
82
  version: 1.3.2
55
83
  - !ruby/object:Gem::Dependency
56
- name: memoist
84
+ name: bundler
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: '0.12'
62
- type: :runtime
89
+ version: 2.1.4
90
+ type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '0.12'
96
+ version: 2.1.4
69
97
  - !ruby/object:Gem::Dependency
70
- name: bundler
98
+ name: pry
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: '1.10'
103
+ version: 0.13.1
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: '1.10'
110
+ version: 0.13.1
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rake
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '10.0'
117
+ version: 13.0.1
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: '10.0'
124
+ version: 13.0.1
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rspec
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: '3.2'
131
+ version: 3.9.0
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: '3.2'
138
+ version: 3.9.0
111
139
  - !ruby/object:Gem::Dependency
112
- name: pry
140
+ name: rubocop
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - "~>"
116
144
  - !ruby/object:Gem::Version
117
- version: '0.10'
145
+ version: 0.86.0
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: '0.10'
152
+ version: 0.86.0
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: simplecov
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '0.10'
159
+ version: 0.18.5
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '0.10'
166
+ version: 0.18.5
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: yard
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
171
  - - "~>"
144
172
  - !ruby/object:Gem::Version
145
- version: 0.8.7
173
+ version: 0.9.25
146
174
  type: :development
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
178
  - - "~>"
151
179
  - !ruby/object:Gem::Version
152
- version: 0.8.7
180
+ version: 0.9.25
153
181
  description: This provides a library of functions for reading and manipulating treebanks
154
182
  using the PROIEL dependency format.
155
183
  email:
@@ -163,15 +191,23 @@ files:
163
191
  - bin/console
164
192
  - bin/setup
165
193
  - lib/proiel.rb
194
+ - lib/proiel/alignment.rb
195
+ - lib/proiel/alignment/builder.rb
166
196
  - lib/proiel/annotation_schema.rb
197
+ - lib/proiel/chronology.rb
167
198
  - lib/proiel/citations.rb
199
+ - lib/proiel/dictionary.rb
200
+ - lib/proiel/dictionary/builder.rb
168
201
  - lib/proiel/div.rb
202
+ - lib/proiel/language.rb
203
+ - lib/proiel/lemma.rb
169
204
  - lib/proiel/positional_tag.rb
170
205
  - lib/proiel/proiel_xml/proiel-1.0/proiel-1.0.xsd
171
206
  - lib/proiel/proiel_xml/proiel-1.0/teilite.xsd
172
207
  - lib/proiel/proiel_xml/proiel-1.0/xml.xsd
173
208
  - lib/proiel/proiel_xml/proiel-2.0/proiel-2.0.xsd
174
209
  - lib/proiel/proiel_xml/proiel-2.1/proiel-2.1.xsd
210
+ - lib/proiel/proiel_xml/proiel-3.0/proiel-3.0.xsd
175
211
  - lib/proiel/proiel_xml/reader.rb
176
212
  - lib/proiel/proiel_xml/schema.rb
177
213
  - lib/proiel/proiel_xml/validator.rb
@@ -183,12 +219,23 @@ files:
183
219
  - lib/proiel/treebank.rb
184
220
  - lib/proiel/treebank_object.rb
185
221
  - lib/proiel/utils.rb
222
+ - lib/proiel/valency.rb
223
+ - lib/proiel/valency/arguments.rb
224
+ - lib/proiel/valency/lexicon.rb
225
+ - lib/proiel/valency/obliqueness.rb
186
226
  - lib/proiel/version.rb
227
+ - lib/proiel/visualization.rb
228
+ - lib/proiel/visualization/graphviz.rb
229
+ - lib/proiel/visualization/graphviz/aligned-modern.dot.erb
230
+ - lib/proiel/visualization/graphviz/classic.dot.erb
231
+ - lib/proiel/visualization/graphviz/linearized.dot.erb
232
+ - lib/proiel/visualization/graphviz/modern.dot.erb
233
+ - lib/proiel/visualization/graphviz/packed.dot.erb
187
234
  homepage: http://proiel.github.com
188
235
  licenses:
189
236
  - MIT
190
237
  metadata: {}
191
- post_install_message:
238
+ post_install_message:
192
239
  rdoc_options: []
193
240
  require_paths:
194
241
  - lib
@@ -196,17 +243,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
243
  requirements:
197
244
  - - ">="
198
245
  - !ruby/object:Gem::Version
199
- version: '2.1'
246
+ version: '2.4'
200
247
  required_rubygems_version: !ruby/object:Gem::Requirement
201
248
  requirements:
202
249
  - - ">="
203
250
  - !ruby/object:Gem::Version
204
251
  version: '0'
205
252
  requirements: []
206
- rubyforge_project:
207
- rubygems_version: 2.5.1
208
- signing_key:
253
+ rubygems_version: 3.1.2
254
+ signing_key:
209
255
  specification_version: 4
210
256
  summary: A library for working with treebanks using the PROIEL dependency format
211
257
  test_files: []
212
- has_rdoc: