wikidata-diff-analyzer 0.1.1 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,48 +3,164 @@ require_relative 'alias_analyzer'
3
3
  require_relative 'label_analyzer'
4
4
  require_relative 'description_analyzer'
5
5
  require_relative 'sitelink_analyzer'
6
+ require_relative 'comment_analyzer'
7
+ require_relative 'form_analyzer'
8
+ require_relative 'sense_analyzer'
9
+ require_relative 'lemma_analyzer'
10
+
6
11
 
7
12
  class RevisionAnalyzer
13
+ CLAIM_TYPES = [:added_claims, :removed_claims, :changed_claims,:added_references, :removed_references, :changed_references,:added_qualifiers, :removed_qualifiers, :changed_qualifiers].freeze
14
+ ALIAS_TYPES = [:added_aliases, :removed_aliases, :changed_aliases].freeze
15
+ LABEL_TYPES = [:added_labels, :removed_labels, :changed_labels].freeze
16
+ DESCRIPTION_TYPES = [:added_descriptions, :removed_descriptions, :changed_descriptions].freeze
17
+ SITELINK_TYPES = [:added_sitelinks, :removed_sitelinks, :changed_sitelinks].freeze
18
+ COMMENT_TYPES = [:merge_to, :merge_from, :redirect, :undo, :restore, :clear_item].freeze
19
+ LEMMA_TYPES = [:added_lemmas, :removed_lemmas, :changed_lemmas].freeze
20
+ FORM_TYPES = [:added_forms, :removed_forms, :changed_forms, :added_representations, :removed_representations, :changed_representations, :added_formclaims, :removed_formclaims, :changed_formclaims].freeze
21
+ SENSE_TYPES = [:added_senses, :removed_senses, :changed_senses, :added_glosses, :removed_glosses, :changed_glosses, :added_senseclaims, :removed_senseclaims, :changed_senseclaims].freeze
22
+ NOT_IN_ITEM = [:create_lexeme, :create_property, :added_lemmas, :removed_lemmas, :changed_lemmas, :added_forms, :removed_forms, :changed_forms, :added_senses, :removed_senses, :changed_senses, :added_representations, :removed_representations, :changed_representations, :added_glosses, :removed_glosses, :changed_glosses, :added_formclaims, :removed_formclaims, :changed_formclaims, :added_senseclaims, :removed_senseclaims, :changed_senseclaims].freeze
23
+ NOT_IN_PROPERTY = [:create_lexeme, :create_item, :added_sitelinks, :removed_sitelinks, :changed_sitelinks, :added_lemmas, :removed_lemmas, :changed_lemmas, :added_forms, :removed_forms, :changed_forms, :added_senses, :removed_senses, :changed_senses, :added_representations, :removed_representations, :changed_representations, :added_glosses, :removed_glosses, :changed_glosses, :added_formclaims, :removed_formclaims, :changed_formclaims, :added_senseclaims, :removed_senseclaims, :changed_senseclaims].freeze
24
+ NOT_IN_LEXEME = [:create_item, :create_property, :added_sitelinks, :changed_sitelinks, :removed_sitelinks, :added_aliases, :changed_aliases, :removed_aliases, :added_labels, :changed_labels, :removed_labels, :added_descriptions, :changed_descriptions, :removed_descriptions].freeze
25
+
8
26
  # This method takes two revisions as input and returns the differences between them.
9
- def self.analyze_diff(current_content, parent_content)
27
+ def self.analyze_diff(revision_data)
28
+ model = revision_data[:model]
10
29
  diff = {}
11
- # Calculate claim differences includes references and qualifiers
12
- claim_diff = ClaimAnalyzer.isolate_claim_differences(current_content, parent_content)
13
- diff[:added_claims] = claim_diff[:added_claims].length
14
- diff[:removed_claims] = claim_diff[:removed_claims].length
15
- diff[:changed_claims] = claim_diff[:changed_claims].length
16
- diff[:added_references] = claim_diff[:added_references].length
17
- diff[:removed_references] = claim_diff[:removed_references].length
18
- diff[:changed_references] = claim_diff[:changed_references].length
19
- diff[:added_qualifiers] = claim_diff[:added_qualifiers].length
20
- diff[:removed_qualifiers] = claim_diff[:removed_qualifiers].length
21
- diff[:changed_qualifiers] = claim_diff[:changed_qualifiers].length
30
+ if model == 'wikibase-item'
31
+ item(diff, revision_data)
32
+ elsif model == 'wikibase-property'
33
+ property(diff, revision_data)
34
+ elsif model == 'wikibase-lexeme'
35
+ lexeme(diff, revision_data)
36
+ end
37
+ diff
38
+ end
39
+
40
+ def self.item(diff, revision_data)
41
+ current_content = revision_data[:current_content]
42
+ parent_content = revision_data[:parent_content]
43
+ comment = revision_data[:comment]
44
+
45
+
46
+ claim_diff = ClaimAnalyzer.isolate_claims_differences(current_content, parent_content)
47
+ CLAIM_TYPES.each do |change_type|
48
+ diff[change_type] = claim_diff[change_type].length
49
+ end
50
+
51
+ alias_diff = AliasAnalyzer.isolate_aliases_differences(current_content, parent_content)
52
+ ALIAS_TYPES.each do |change_type|
53
+ diff[change_type] = alias_diff[change_type].length
54
+ end
55
+
56
+ # Calculate label differences
57
+ label_diff = LabelAnalyzer.isolate_labels_differences(current_content, parent_content)
58
+ LABEL_TYPES.each do |change_type|
59
+ diff[change_type] = label_diff[change_type].length
60
+ end
61
+
62
+ # Calculate description differences
63
+ description_diff = DescriptionAnalyzer.isolate_descriptions_differences(current_content, parent_content)
64
+ DESCRIPTION_TYPES.each do |change_type|
65
+ diff[change_type] = description_diff[change_type].length
66
+ end
67
+
68
+ # Calculate sitelink differences
69
+ sitelink_diff = SitelinkAnalyzer.isolate_sitelinks_differences(current_content, parent_content)
70
+ SITELINK_TYPES.each do |change_type|
71
+ diff[change_type] = sitelink_diff[change_type].length
72
+ end
73
+
74
+ phrases = CommentAnalyzer.isolate_comment_differences(comment)
75
+ COMMENT_TYPES.each do |change_type|
76
+ diff[change_type] = phrases[change_type]
77
+ end
78
+
79
+ NOT_IN_ITEM.each do |change_type|
80
+ diff[change_type] = 0
81
+ end
82
+
83
+ diff[:create_item] = phrases[:create_item]
84
+
85
+ diff
86
+ end
87
+
88
+ def self.property(diff, revision_data)
89
+ current_content = revision_data[:current_content]
90
+ parent_content = revision_data[:parent_content]
91
+ comment = revision_data[:comment]
92
+
93
+ claim_diff = ClaimAnalyzer.isolate_claims_differences(current_content, parent_content)
94
+ CLAIM_TYPES.each do |change_type|
95
+ diff[change_type] = claim_diff[change_type].length
96
+ end
97
+
98
+ alias_diff = AliasAnalyzer.isolate_aliases_differences(current_content, parent_content)
99
+ ALIAS_TYPES.each do |change_type|
100
+ diff[change_type] = alias_diff[change_type].length
101
+ end
102
+
103
+ # Calculate label differences
104
+ label_diff = LabelAnalyzer.isolate_labels_differences(current_content, parent_content)
105
+
106
+ LABEL_TYPES.each do |change_type|
107
+ diff[change_type] = label_diff[change_type].length
108
+ end
109
+
110
+ # Calculate description differences
111
+ description_diff = DescriptionAnalyzer.isolate_descriptions_differences(current_content, parent_content)
112
+ DESCRIPTION_TYPES.each do |change_type|
113
+ diff[change_type] = description_diff[change_type].length
114
+ end
115
+
116
+
117
+ phrases = CommentAnalyzer.isolate_comment_differences(comment)
118
+ COMMENT_TYPES.each do |change_type|
119
+ diff[change_type] = phrases[change_type]
120
+ end
121
+
122
+ diff[:create_property] = phrases[:create_item]
123
+
124
+ NOT_IN_PROPERTY.each do |change_type|
125
+ diff[change_type] = 0
126
+ end
127
+ end
128
+
129
+ def self.lexeme(diff, revision_data)
130
+ current_content = revision_data[:current_content]
131
+ parent_content = revision_data[:parent_content]
132
+ comment = revision_data[:comment]
22
133
 
23
- # Calculate alias differences
24
- alias_diff = AliasAnalyzer.isolate_aliases_differences(current_content, parent_content)
25
- diff[:added_aliases] = alias_diff[:added].length
26
- diff[:removed_aliases] = alias_diff[:removed].length
27
- diff[:changed_aliases] = alias_diff[:changed].length
28
-
29
-
30
- # Calculate label differences
31
- label_diff = LabelAnalyzer.isolate_labels_differences(current_content, parent_content)
32
- diff[:added_labels] = label_diff[:added].length
33
- diff[:removed_labels] = label_diff[:removed].length
34
- diff[:changed_labels] = label_diff[:changed].length
35
-
36
- # Calculate description differences
37
- description_diff = DescriptionAnalyzer.isolate_descriptions_differences(current_content, parent_content)
38
- diff[:added_descriptions] = description_diff[:added].length
39
- diff[:removed_descriptions] = description_diff[:removed].length
40
- diff[:changed_descriptions] = description_diff[:changed].length
41
-
42
- # Calculate sitelink differences
43
- sitelink_diff = SitelinkAnalyzer.isolate_sitelinks_differences(current_content, parent_content)
44
- diff[:added_sitelinks] = sitelink_diff[:added].length
45
- diff[:removed_sitelinks] = sitelink_diff[:removed].length
46
- diff[:changed_sitelinks] = sitelink_diff[:changed].length
134
+ claim_diff = ClaimAnalyzer.isolate_claims_differences(current_content, parent_content)
135
+ CLAIM_TYPES.each do |change_type|
136
+ diff[change_type] = claim_diff[change_type].length
137
+ end
47
138
 
48
- diff
139
+ forms_diff = FormAnalyzer.isolate_forms_differences(current_content, parent_content)
140
+ FORM_TYPES.each do |change_type|
141
+ diff[change_type] = forms_diff[change_type].length
142
+ end
143
+
144
+ # Calculate label differences
145
+ lemmas_diff = LemmaAnalyzer.isolate_lemmas_differences(current_content, parent_content)
146
+ LEMMA_TYPES.each do |change_type|
147
+ diff[change_type] = lemmas_diff[change_type].length
148
+ end
149
+
150
+ # Calculate description differences
151
+ senses_diff = SenseAnalyzer.isolate_senses_differences(current_content, parent_content)
152
+ SENSE_TYPES.each do |change_type|
153
+ diff[change_type] = senses_diff[change_type].length
154
+ end
155
+
156
+ phrases = CommentAnalyzer.isolate_comment_differences(comment)
157
+ COMMENT_TYPES.each do |change_type|
158
+ diff[change_type] = phrases[change_type]
159
+ end
160
+
161
+ NOT_IN_LEXEME.each do |change_type|
162
+ diff[change_type] = 0
163
+ end
164
+ diff[:create_lexeme] = phrases[:create_item]
49
165
  end
50
166
  end
@@ -0,0 +1,106 @@
1
+ require_relative 'gloss_analyzer'
2
+ require_relative 'inside_claim_analyzer'
3
+ class SenseAnalyzer
4
+ def self.isolate_senses_differences(current_content, parent_content)
5
+ # Initialize empty arrays to store the added, removed, and changed claims
6
+ added_senses = []
7
+ removed_senses = []
8
+ changed_senses = []
9
+ added_glosses = []
10
+ removed_glosses = []
11
+ changed_glosses = []
12
+ added_senseclaims = []
13
+ removed_senseclaims = []
14
+ changed_senseclaims = []
15
+
16
+ current_content_senses = current_content["senses"] if current_content
17
+ parent_content_senses = parent_content["senses"] if parent_content
18
+
19
+ if !current_content_senses.is_a?(Array) || !parent_content_senses.is_a?(Array)
20
+ return {
21
+ added_senses: added_senses,
22
+ removed_senses: removed_senses,
23
+ changed_senses: changed_senses,
24
+ added_glosses: added_glosses,
25
+ removed_glosses: removed_glosses,
26
+ changed_glosses: changed_glosses,
27
+ added_senseclaims: added_senseclaims,
28
+ removed_senseclaims: removed_senseclaims,
29
+ changed_senseclaims: changed_senseclaims
30
+ }
31
+ end
32
+
33
+ current_content_senses = current_content["senses"] || []
34
+ parent_content_senses = parent_content["senses"] || []
35
+
36
+ # if parentid is 0, add all current claims as added claims and return it
37
+ if parent_content.nil?
38
+ current_content_senses.each_with_index do |current_claim, index|
39
+ added_senses << { index: index }
40
+ glosses = GlossAnalyzer.isolate_gloss_differences(current_claim, nil)
41
+ added_glosses += glosses[:added]
42
+ removed_glosses += glosses[:removed]
43
+ changed_glosses += glosses[:changed]
44
+ senseclaims = InsideClaimAnalyzer.isolate_inside_claim_differences(current_claim, nil)
45
+ added_senseclaims += senseclaims[:added]
46
+ removed_senseclaims += senseclaims[:removed]
47
+ changed_senseclaims += senseclaims[:changed]
48
+ end
49
+ else
50
+ current_content_senses.each_with_index do |current_claim, index|
51
+ parent_claim = parent_content_senses[index]
52
+ if parent_claim.nil?
53
+ # Claim was added
54
+ added_senses << { index: index }
55
+ glosses = GlossAnalyzer.isolate_gloss_differences(current_claim, parent_claim)
56
+ added_glosses += glosses[:added]
57
+ removed_glosses += glosses[:removed]
58
+ changed_glosses += glosses[:changed]
59
+ senseclaims = InsideClaimAnalyzer.isolate_inside_claim_differences(current_claim, nil)
60
+ added_senseclaims += senseclaims[:added]
61
+ removed_senseclaims += senseclaims[:removed]
62
+ changed_senseclaims += senseclaims[:changed]
63
+ elsif current_claim != parent_claim
64
+ # Claim was changed
65
+ changed_senses << { index: index }
66
+ glosses = GlossAnalyzer.isolate_gloss_differences(current_claim, parent_claim)
67
+ added_glosses += glosses[:added]
68
+ removed_glosses += glosses[:removed]
69
+ changed_glosses += glosses[:changed]
70
+ senseclaims = InsideClaimAnalyzer.isolate_inside_claim_differences(current_claim, nil)
71
+ added_senseclaims += senseclaims[:added]
72
+ removed_senseclaims += senseclaims[:removed]
73
+ changed_senseclaims += senseclaims[:changed]
74
+ end
75
+ end
76
+ end
77
+
78
+ # Iterate over each claim key in the parent content
79
+ parent_content_senses.each_with_index do |parent_claim, index|
80
+ current_claim = current_content_senses[index]
81
+ if current_claim.nil?
82
+ # Claim was removed
83
+ removed_senses << { index: index }
84
+ glosses = GlossAnalyzer.isolate_gloss_differences(current_claim, parent_claim)
85
+ added_glosses += glosses[:added]
86
+ removed_glosses += glosses[:removed]
87
+ changed_glosses += glosses[:changed]
88
+ senseclaims = InsideClaimAnalyzer.isolate_inside_claim_differences(current_claim, nil)
89
+ added_senseclaims += senseclaims[:added]
90
+ removed_senseclaims += senseclaims[:removed]
91
+ changed_senseclaims += senseclaims[:changed]
92
+ end
93
+ end
94
+ {
95
+ added_senses: added_senses,
96
+ removed_senses: removed_senses,
97
+ changed_senses: changed_senses,
98
+ added_glosses: added_glosses,
99
+ removed_glosses: removed_glosses,
100
+ changed_glosses: changed_glosses,
101
+ added_senseclaims: added_senseclaims,
102
+ removed_senseclaims: removed_senseclaims,
103
+ changed_senseclaims: changed_senseclaims
104
+ }
105
+ end
106
+ end
@@ -47,15 +47,11 @@ class SitelinkAnalyzer
47
47
  # All sitelinks are removed if current content is nil
48
48
  removed_sitelinks = parent_content['sitelinks']
49
49
  end
50
-
51
- # puts "Added sitelinks: #{added_sitelinks}"
52
- # puts "Removed sitelinks: #{removed_sitelinks}"
53
- # puts "Changed sitelinks: #{changed_sitelinks}"
54
50
 
55
51
  {
56
- added: added_sitelinks,
57
- removed: removed_sitelinks,
58
- changed: changed_sitelinks
52
+ added_sitelinks: added_sitelinks,
53
+ removed_sitelinks: removed_sitelinks,
54
+ changed_sitelinks: changed_sitelinks
59
55
  }
60
56
  end
61
57
  end
@@ -21,5 +21,36 @@ class Total
21
21
  total[:sitelinks_added] += diff_data[:added_sitelinks]
22
22
  total[:sitelinks_removed] += diff_data[:removed_sitelinks]
23
23
  total[:sitelinks_changed] += diff_data[:changed_sitelinks]
24
+ total[:lemmas_added] += diff_data[:added_lemmas]
25
+ total[:lemmas_removed] += diff_data[:removed_lemmas]
26
+ total[:lemmas_changed] += diff_data[:changed_lemmas]
27
+ total[:forms_added] += diff_data[:added_forms]
28
+ total[:forms_removed] += diff_data[:removed_forms]
29
+ total[:forms_changed] += diff_data[:changed_forms]
30
+ total[:representations_added] += diff_data[:added_representations]
31
+ total[:representations_removed] += diff_data[:removed_representations]
32
+ total[:representations_changed] += diff_data[:changed_representations]
33
+ total[:formclaims_added] += diff_data[:added_formclaims]
34
+ total[:formclaims_removed] += diff_data[:removed_formclaims]
35
+ total[:formclaims_changed] += diff_data[:changed_formclaims]
36
+ total[:senses_added] += diff_data[:added_senses]
37
+ total[:senses_removed] += diff_data[:removed_senses]
38
+ total[:senses_changed] += diff_data[:changed_senses]
39
+ total[:glosses_added] += diff_data[:added_glosses]
40
+ total[:glosses_removed] += diff_data[:removed_glosses]
41
+ total[:glosses_changed] += diff_data[:changed_glosses]
42
+ total[:senseclaims_added] += diff_data[:added_senseclaims]
43
+ total[:senseclaims_removed] += diff_data[:removed_senseclaims]
44
+ total[:senseclaims_changed] += diff_data[:changed_senseclaims]
45
+ total[:merge_from] += diff_data[:merge_from]
46
+ total[:merge_to] += diff_data[:merge_to]
47
+ total[:undo] += diff_data[:undo]
48
+ total[:restore] += diff_data[:restore]
49
+ total[:clear_item] += diff_data[:clear_item]
50
+ total[:create_item] += diff_data[:create_item]
51
+ total[:create_property] += diff_data[:create_property]
52
+ total[:create_lexeme] += diff_data[:create_lexeme]
53
+ total[:redirect] += diff_data[:redirect]
54
+
24
55
  end
25
56
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WikidataDiffAnalyzer
4
+ VERSION = "2.0.1"
5
+ end
@@ -1,8 +1,7 @@
1
1
  # frozen_string_literal: true
2
- require_relative 'large_batches_analyzer'
3
- require_relative 'revision_analyzer'
4
- require_relative 'total'
5
- require_relative 'mediawiki_login'
2
+ require_relative 'wikidata/diff/large_batches_analyzer'
3
+ require_relative 'wikidata/diff/revision_analyzer'
4
+ require_relative 'wikidata/diff/total'
6
5
 
7
6
  module WikidataDiffAnalyzer
8
7
  class Error < StandardError; end
@@ -34,7 +33,37 @@ module WikidataDiffAnalyzer
34
33
  descriptions_changed: 0,
35
34
  sitelinks_added: 0,
36
35
  sitelinks_removed: 0,
37
- sitelinks_changed: 0
36
+ sitelinks_changed: 0,
37
+ lemmas_added: 0,
38
+ lemmas_removed: 0,
39
+ lemmas_changed: 0,
40
+ forms_added: 0,
41
+ forms_removed: 0,
42
+ forms_changed: 0,
43
+ representations_added: 0,
44
+ representations_removed: 0,
45
+ representations_changed: 0,
46
+ formclaims_added: 0,
47
+ formclaims_removed: 0,
48
+ formclaims_changed: 0,
49
+ senses_added: 0,
50
+ senses_removed: 0,
51
+ senses_changed: 0,
52
+ glosses_added: 0,
53
+ glosses_removed: 0,
54
+ glosses_changed: 0,
55
+ senseclaims_added: 0,
56
+ senseclaims_removed: 0,
57
+ senseclaims_changed: 0,
58
+ merge_to: 0,
59
+ merge_from: 0,
60
+ redirect: 0,
61
+ undo: 0,
62
+ restore: 0,
63
+ clear_item: 0,
64
+ create_item: 0,
65
+ create_property: 0,
66
+ create_lexeme: 0
38
67
  }
39
68
 
40
69
  # if revision_ids has 0, then 0 can never be analyzed, so remove it and add in not analyzed
@@ -42,24 +71,13 @@ module WikidataDiffAnalyzer
42
71
  revision_ids.delete(0)
43
72
  diffs_not_analyzed << 0
44
73
  end
45
- # # if mediawiki can be logged in call for 500, otherwise call for 50
46
- # if MediawikiLogin.mediawiki_login
47
- # puts 'Logged in to mediawiki'
48
- # result = LargeBatchesAnalyzer.handle_large_batches(revision_ids, 500)
49
- # else
50
- # puts 'Not logged in to mediawiki'
51
- # result = LargeBatchesAnalyzer.handle_large_batches(revision_ids, 50)
52
- # end
53
74
 
54
75
  result = LargeBatchesAnalyzer.handle_large_batches(revision_ids, 50)
55
- # result is a hash which has contents like this:
56
- # result[revid] = { current_content: data[:content], parent_content: parent_content }
57
76
 
58
77
  result.each do |revision_id, revision_data|
59
78
  current_content = revision_data[:current_content]
60
- parent_content = revision_data[:parent_content]
61
- if current_content && parent_content
62
- diff = RevisionAnalyzer.analyze_diff(current_content, parent_content)
79
+ if current_content
80
+ diff = RevisionAnalyzer.analyze_diff(revision_data)
63
81
  diffs[revision_id] = diff
64
82
  Total.accumulate_totals(diff, total)
65
83
  diffs_analyzed << revision_id
@@ -78,6 +96,3 @@ module WikidataDiffAnalyzer
78
96
  }
79
97
  end
80
98
  end
81
-
82
-
83
-
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/wikidata/diff/analyzer/version"
3
+ require File.expand_path('lib/wikidata-diff-analyzer/version', __dir__)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "wikidata-diff-analyzer"
7
- spec.version = Wikidata::Diff::Analyzer::VERSION
7
+ spec.version = WikidataDiffAnalyzer::VERSION
8
8
  spec.authors = ["Sulagna Saha"]
9
9
  spec.email = ["saha23s@mtholyoke.edu"]
10
10
 
@@ -22,16 +22,22 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  # Specify which files should be added to the gem when it is released.
24
24
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
- spec.files = Dir.chdir(__dir__) do
26
- `git ls-files -z`.split("\x0").reject do |f|
27
- (File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
28
- end
29
- end
25
+ spec.files = Dir['README.md', 'LICENSE',
26
+ 'CHANGELOG.md', 'lib/**/*.rb',
27
+ 'lib/**/*.rake',
28
+ 'wikidata-diff-analyzer.gemspec', '.github/*.md',
29
+ 'Gemfile', 'Rakefile']
30
+ spec.extra_rdoc_files = ['README.md']
31
+ spec.require_paths = ['lib']
32
+
30
33
  spec.bindir = "exe"
31
34
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
- spec.require_paths = ["lib"]
33
35
  spec.files.reject! { |f| File.extname(f) == '.gem' }
34
36
 
35
37
  # Adding the dependencies
36
38
  spec.add_dependency 'json', '~> 2.1'
39
+ spec.add_dependency 'mediawiki_api', '~> 0.7.0'
40
+ spec.add_dependency 'rspec', '~> 3.0'
41
+ spec.add_dependency 'rubocop', '~> 1.21'
42
+ spec.add_dependency 'rake', '~> 13.0'
37
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wikidata-diff-analyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sulagna Saha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-05 00:00:00.000000000 Z
11
+ date: 2023-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -24,34 +24,96 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mediawiki_api
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.21'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.21'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '13.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '13.0'
27
83
  description: This gem provides tools for analyzing diffs between Wikidata items, including
28
84
  retrieving the JSON representation of an item for a specific revision.
29
85
  email:
30
86
  - saha23s@mtholyoke.edu
31
87
  executables: []
32
88
  extensions: []
33
- extra_rdoc_files: []
89
+ extra_rdoc_files:
90
+ - README.md
34
91
  files:
35
92
  - CHANGELOG.md
36
- - CODE_OF_CONDUCT.md
37
93
  - Gemfile
38
- - Gemfile.lock
39
94
  - LICENSE
40
95
  - README.md
41
96
  - Rakefile
97
+ - lib/wikidata-diff-analyzer.rb
98
+ - lib/wikidata-diff-analyzer/version.rb
42
99
  - lib/wikidata/diff/alias_analyzer.rb
43
- - lib/wikidata/diff/analyzer.rb
44
- - lib/wikidata/diff/analyzer/version.rb
45
100
  - lib/wikidata/diff/api.rb
46
101
  - lib/wikidata/diff/claim_analyzer.rb
102
+ - lib/wikidata/diff/comment_analyzer.rb
47
103
  - lib/wikidata/diff/description_analyzer.rb
104
+ - lib/wikidata/diff/form_analyzer.rb
105
+ - lib/wikidata/diff/gloss_analyzer.rb
106
+ - lib/wikidata/diff/inside_claim_analyzer.rb
48
107
  - lib/wikidata/diff/label_analyzer.rb
49
108
  - lib/wikidata/diff/large_batches_analyzer.rb
50
- - lib/wikidata/diff/mediawiki_login.rb
109
+ - lib/wikidata/diff/lemma_analyzer.rb
110
+ - lib/wikidata/diff/qualifier_analyzer.rb
111
+ - lib/wikidata/diff/reference_analyzer.rb
112
+ - lib/wikidata/diff/representation_analyzer.rb
51
113
  - lib/wikidata/diff/revision_analyzer.rb
114
+ - lib/wikidata/diff/sense_analyzer.rb
52
115
  - lib/wikidata/diff/sitelink_analyzer.rb
53
116
  - lib/wikidata/diff/total.rb
54
- - sig/wikidata/diff/analyzer.rbs
55
117
  - wikidata-diff-analyzer.gemspec
56
118
  homepage: https://github.com/WikiEducationFoundation/wikidata-diff-analyzer
57
119
  licenses: