llt-review 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91ff18f1e72915936a2069917fa843b701ee7df8
4
- data.tar.gz: f4398109dc7d16bdfed7980a6dba2359c7350c0a
3
+ metadata.gz: 9b91983dc42ac4d0aece4d4d745e2576442f91fc
4
+ data.tar.gz: faa768dab56010e1bc570506e7ae718ca503a11b
5
5
  SHA512:
6
- metadata.gz: 3e5087b17bef29c42939a587f667636f848773a6a5e0902936753413fafdeb51901327e222fd31eda844f9233555a69762adf236c82bf68c5e4658541569ccfa
7
- data.tar.gz: 7eef4e5e71816b0fd7ef3d10e436c84f649c85e1d6ac23baedf9414c99b2b9f74640deac6807dca701e68bf246d65283f84cd25e72f5be4475de832ea98ae693
6
+ metadata.gz: e2f9e3f7d61e8ac1493035d8789eb414190cbbe3f218a3c229ab66af09d55f0f7df1d7ba2ae0c761e195caa6a103a9bd77081a8938adb88e0626bcf849a65ff3
7
+ data.tar.gz: 65f0e95aa16565761a0025f2832e91b2e8e22b4277ad35d625bc8ab63ad2072cad9d0c1acb8b321edddd7d0bb4b89e19d224129a243b7d329dbd4113b5e0d520
@@ -44,7 +44,7 @@ class Api < Sinatra::Base
44
44
  if backend = params[:backend]
45
45
  p = case backend
46
46
  when 'perseids' then 'sosol.perseids.org/sosol'
47
- when 'perseids-dev' then 'dev.alpheios.net:3000'
47
+ when 'perseids-dev' then 'sosol-rep.perseids.org'
48
48
  end
49
49
 
50
50
  expand_perseids_urls(params, :gold, p)
@@ -13,7 +13,11 @@ module LLT
13
13
 
14
14
  def compare(other, comparables = nil)
15
15
  diff = new_sentence_diff
16
- words.each { |id, word| word.compare(other[id], diff, comparables) }
16
+ words.each do |id, word|
17
+ other_word = other[id] || dummy_word(id)
18
+
19
+ word.compare(other_word, diff, comparables)
20
+ end
17
21
  diff
18
22
  end
19
23
 
@@ -25,6 +29,10 @@ module LLT
25
29
 
26
30
  private
27
31
 
32
+ def dummy_word(id)
33
+ # implemented by subclasses
34
+ end
35
+
28
36
  def new_sentence_diff
29
37
  diff_namespace.const_get(:Sentence).new(self)
30
38
  end
@@ -5,7 +5,7 @@ module LLT
5
5
 
6
6
  def initialize(postag)
7
7
  @id = :postag
8
- @postag = postag
8
+ @postag = new_postag(postag)
9
9
  end
10
10
 
11
11
  def to_s
@@ -58,6 +58,14 @@ module LLT
58
58
  data.add(Report::Generic.new(pl, 0, sg))
59
59
  end
60
60
  end
61
+
62
+ def new_postag(postag)
63
+ if !postag || postag.empty? || postag == '-'
64
+ '-' * POSTAG_SCHEMA.length
65
+ else
66
+ postag
67
+ end
68
+ end
61
69
  end
62
70
  end
63
71
  end
@@ -16,6 +16,13 @@ module LLT
16
16
  end.merge(postags: Report::Postags.new(size))
17
17
  end
18
18
 
19
+ def dummy_word(id)
20
+ w = Word.new(id)
21
+ w.form = "-"
22
+ w.inexistant = true
23
+ w
24
+ end
25
+
19
26
  def diff_namespace
20
27
  Review::Treebank::Difference
21
28
  end
@@ -3,7 +3,7 @@ module LLT
3
3
  class Word
4
4
  include Core::Structures::HashContainable
5
5
 
6
- attr_accessor :form, :lemma, :head, :relation
6
+ attr_accessor :form, :lemma, :head, :relation, :inexistant
7
7
  attr_reader :postag
8
8
 
9
9
  Attr = Struct.new(:id, :attribute) do
@@ -20,6 +20,10 @@ module LLT
20
20
  define_method("#{type}=") { |val| add(Attr.new(type, val)) }
21
21
  end
22
22
 
23
+ def [](key)
24
+ super(key) || send("#{key}=", '-')
25
+ end
26
+
23
27
  def postag=(tag)
24
28
  add(Postag.new(tag))
25
29
  end
@@ -1,5 +1,5 @@
1
1
  module LLT
2
2
  class Review
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -141,6 +141,117 @@ describe LLT::Review::Treebank do
141
141
  diff[3].should be_nil # has only lemma and postag differences
142
142
  diff[4].should be_true
143
143
  end
144
+
145
+ context "with slightly out of sync documents" do
146
+ let(:ge1) do
147
+ <<-EOF
148
+ <treebank>
149
+ <sentence id="21" document_id="Perseus:text:1999.02.0002" subdoc="Book=2:chapter=5" span="In3:erat0">
150
+ <word id="1" form="In" lemma="in1" postag="r--------" head="5" relation="AuxP"/>
151
+ <word id="2" form="eo" lemma="is1" postag="p-s---nb-" head="3" relation="ATR"/>
152
+ <word id="3" form="flumine" lemma="flumen1" postag="n-s---nb-" head="1" relation="ADV"/>
153
+ <word id="4" form="pons" lemma="pons1" postag="n-s---mn-" head="5" relation="SBJ"/>
154
+ <word id="5" form="erat" lemma="sum1" postag="v3siia---" head="0" relation="PRED"/>
155
+ <word id="6" form="erat" lemma="sum1" postag="v3siia---" head="0" relation="PRED" elliptic="true"/>
156
+ </sentence>
157
+ </treebank>
158
+ EOF
159
+ end
160
+
161
+ let(:re1) do
162
+ <<-EOF
163
+ <treebank>
164
+ <sentence id="21" document_id="Perseus:text:1999.02.0002" subdoc="Book=2:chapter=5" span="In3:erat0">
165
+ <word id="1" form="In" lemma="in1" postag="r--------" head="4" relation="AuxP"/>
166
+ <word id="2" form="eo" lemma="is1" postag="p-s---nd-" head="3" relation="ATR"/>
167
+ <word id="3" form="flumine" lemma="flumen2" postag="n-s---nd-" head="1" relation="ADV"/>
168
+ <word id="4" form="pons" lemma="pons1" postag="n-s---mn-" head="5" relation="OBJ"/>
169
+ <word id="5" form="erat" lemma="sum1" postag="v3siia---" head="0" relation="PRED"/>
170
+ </sentence>
171
+ </treebank>
172
+ EOF
173
+ end
174
+
175
+ it "does not fall for additional (such as elliptic) nodes in the gold file" do
176
+ allow(differ).to receive(:get_from_uri).with(:uri_for_ge1) { ge1 }
177
+ allow(differ).to receive(:get_from_uri).with(:uri_for_re1) { re1 }
178
+
179
+ expect { differ.diff([:uri_for_ge1], [:uri_for_re1]) }.to_not raise_error
180
+ end
181
+
182
+ it "does not fall for additional (such as elliptic) nodes in the review file" do
183
+ allow(differ).to receive(:get_from_uri).with(:uri_for_re1) { re1 }
184
+ allow(differ).to receive(:get_from_uri).with(:uri_for_ge1) { ge1 }
185
+
186
+ expect { differ.diff([:uri_for_re1], [:uri_for_ge1]) }.to_not raise_error
187
+ end
188
+ end
189
+
190
+ context "with partially unannotated files" do
191
+ let(:gi1) do
192
+ <<-EOF
193
+ <treebank>
194
+ <sentence id="21" document_id="Perseus:text:1999.02.0002" subdoc="Book=2:chapter=5" span="In3:erat0">
195
+ <word id="1" form="In" lemma="in1" postag="r--------" head="5" relation="AuxP"/>
196
+ <word id="2" form="eo" lemma="is1" postag="p-s---nb-" head="3" relation="ATR"/>
197
+ <word id="3" form="flumine" lemma="flumen1" postag="n-s---nb-" head="1" relation="ADV"/>
198
+ <word id="4" form="pons" lemma="pons1" postag="n-s---mn-" head="5" relation="SBJ"/>
199
+ <word id="5" form="erat" lemma="sum1" postag="v3siia---" head="0" relation="PRED"/>
200
+ </sentence>
201
+ </treebank>
202
+ EOF
203
+ end
204
+
205
+ let(:ri1) do
206
+ <<-EOF
207
+ <treebank>
208
+ <sentence id="21" document_id="Perseus:text:1999.02.0002" subdoc="Book=2:chapter=5" span="In3:erat0">
209
+ <word id="1" form="In" postag="r--------" head="4" relation="AuxP"/>
210
+ <word id="2" form="eo" postag="p-s---nd-" head="3" relation="ATR"/>
211
+ <word id="3" form="flumine" lemma="flumen2" postag="n-s---nd-" relation="ADV"/>
212
+ <word id="4" form="pons" lemma="pons1" postag="n-s---mn-" head="5"/>
213
+ <word id="5" form="erat" lemma="sum1" postag="v3siia---" head="0" relation="PRED"/>
214
+ </sentence>
215
+ </treebank>
216
+ EOF
217
+ end
218
+
219
+ let(:ri2) do
220
+ <<-EOF
221
+ <treebank>
222
+ <sentence id="21" document_id="Perseus:text:1999.02.0002" subdoc="Book=2:chapter=5" span="In3:erat0">
223
+ <word id="1" form="In" postag="" head="4" relation="AuxP"/>
224
+ <word id="2" form="eo" head="3" relation="ATR"/>
225
+ <word id="3" form="flumine" lemma="flumen2" postag="n-s---nd-" relation="ADV"/>
226
+ <word id="4" form="pons" lemma="pons1" postag="n-s---mn-" head="5"/>
227
+ <word id="5" form="erat" lemma="sum1" postag="v3siia---" head="0" relation="PRED"/>
228
+ </sentence>
229
+ </treebank>
230
+ EOF
231
+ end
232
+
233
+ it "does not fall with less content in the review file" do
234
+ allow(differ).to receive(:get_from_uri).with(:uri_for_gi1) { gi1 }
235
+ allow(differ).to receive(:get_from_uri).with(:uri_for_ri1) { ri1 }
236
+
237
+ expect { differ.diff([:uri_for_gi1], [:uri_for_ri1]) }.to_not raise_error
238
+ end
239
+
240
+ it "does not fall with less content in the gold file" do
241
+ allow(differ).to receive(:get_from_uri).with(:uri_for_gi1) { gi1 }
242
+ allow(differ).to receive(:get_from_uri).with(:uri_for_ri1) { ri1 }
243
+
244
+ expect { differ.diff([:uri_for_ri1], [:uri_for_gi1]) }.to_not raise_error
245
+ end
246
+
247
+ it "does not fall with missing postags" do
248
+ allow(differ).to receive(:get_from_uri).with(:uri_for_gi1) { gi1 }
249
+ allow(differ).to receive(:get_from_uri).with(:uri_for_ri2) { ri2 }
250
+
251
+ expect { differ.diff([:uri_for_ri2], [:uri_for_gi1]) }.to_not raise_error
252
+ expect { differ.diff([:uri_for_gi1], [:uri_for_ri2]) }.to_not raise_error
253
+ end
254
+ end
144
255
  end
145
256
 
146
257
  describe "#report" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llt-review
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - LFDM
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-11 00:00:00.000000000 Z
11
+ date: 2014-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -223,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
223
  version: '0'
224
224
  requirements: []
225
225
  rubyforge_project:
226
- rubygems_version: 2.2.0
226
+ rubygems_version: 2.2.2
227
227
  signing_key:
228
228
  specification_version: 4
229
229
  summary: Reviews annotations