uwn-api 0.0.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.
@@ -0,0 +1,45 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require File.expand_path(File.dirname(__FILE__) + "/../../lib/uwn/api")
4
+ require 'uri'
5
+
6
+ #
7
+ # Test the constructed tree for faults
8
+ #
9
+
10
+ class UwnVerifyStatement < Test::Unit::TestCase
11
+
12
+ def setup
13
+ @uwn = Uwn::Api::Connect.new
14
+ end
15
+
16
+ def teardown
17
+ end
18
+
19
+ def test_statement_contents
20
+ # test object creation
21
+ assert @uwn.is_a?(Uwn::Api::Connect), "expected Connect object"
22
+ # query meaning for gem in English
23
+ meaning = @uwn.meaning("gem", "eng")
24
+ assert meaning.is_a?(Uwn::Api::Meaning), "expected Meaning object"
25
+ assert meaning.statements.size == 7
26
+
27
+ # iterate statements
28
+ meaning.statements.each do |statement|
29
+ assert statement.is_a?(Uwn::Api::Statement), "expected Statement object"
30
+ # object
31
+ assert statement.object.is_a?(Java::OrgLexvoUwn::Entity), "expected Java Entity"
32
+ # subject
33
+ assert statement.subject.is_a?(Java::OrgLexvoUwn::Entity), "expected Java Entity"
34
+ subject_id = statement.subject.get_id
35
+ assert subject_id.start_with?("t/")
36
+ assert subject_id.include?(statement.subject.get_term_language)
37
+ assert subject_id.include?(statement.subject.get_term_str)
38
+ assert ::URI.parse(statement.subject.get_uri).is_a?(URI::Generic) unless statement.subject.get_uri.nil?
39
+ # predicate
40
+ assert statement.predicate.is_a?(Java::OrgLexvoUwn::Entity), "expected Java Entity"
41
+ # weight
42
+ assert statement.weight.is_a?(Float), "expected Float"
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,127 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require File.expand_path(File.dirname(__FILE__) + "/../../lib/uwn/api")
4
+
5
+
6
+ #
7
+ # Test the constructed tree for faults
8
+ #
9
+
10
+ class UwnVerifyTree < Test::Unit::TestCase
11
+
12
+ def setup
13
+ @uwn = Uwn::Api::Connect.new
14
+ end
15
+
16
+ def teardown
17
+ end
18
+
19
+ def test_existing_word_language
20
+ # test object creation
21
+ assert @uwn.is_a?(Uwn::Api::Connect), "expected Connect object"
22
+ # query meaning for gem in English
23
+ meaning = @uwn.meaning("gem", "eng")
24
+ assert meaning.is_a?(Uwn::Api::Meaning), "expected Meaning object"
25
+ # test nested objects
26
+ assert meaning.has_meaning?, "expected meaning to the query"
27
+ meaning.statements.each do |statement|
28
+ assert statement.is_a?(Uwn::Api::Statement), "expected Statement object"
29
+ end
30
+ end
31
+
32
+ def test_non_existing_word_language
33
+ meaning = @uwn.meaning("sakdfjlaksdjfl", "eng")
34
+ assert !meaning.has_meaning?, "expected not to find word"
35
+ end
36
+
37
+ def test_non_existing_language
38
+ meaning = @uwn.meaning("test", "abc")
39
+ assert !meaning.has_meaning?, "expected not to find word"
40
+ end
41
+
42
+ def test_synsets
43
+ meaning = @uwn.meaning("gem", "eng")
44
+ assert meaning.synsets.size == meaning.statements.flat_map{|s| s.synsets}.size
45
+ assert meaning.synsets.size == 560
46
+ # TODO: reduce duplicates (duplicate synsets are pointless, duplicate words are not)!
47
+ assert meaning.synsets.uniq{|t| t.synset}.size == 35
48
+ # iterate synsets
49
+ meaning.synsets.each do |synset|
50
+ assert synset.is_a?(Uwn::Api::Statement), "expected Statement object"
51
+ assert synset.synset.is_a?(String), "expected a string"
52
+ assert !synset.synset.match(/([s][\/][n]){1}[0-9]+/).nil?, "invalid synset token"
53
+ assert synset.predicate.to_s.start_with?("rel:"), "expected rel: start"
54
+ assert synset.has_synset?, "expected object has a synset"
55
+ end
56
+ end
57
+
58
+ def test_lexical_categories
59
+ meaning = @uwn.meaning("gem", "eng")
60
+ assert meaning.lexical_categories.size == meaning.statements.flat_map{ |s| s.lexical_categories }.size
61
+ assert meaning.lexical_categories.size == 7
62
+ # iterate lexical categories
63
+ meaning.lexical_categories.each do |lexical_category|
64
+ assert lexical_category.is_a?(Uwn::Api::Statement), "expected Statement object"
65
+ assert lexical_category.lexcat.is_a?(String), "expected String object"
66
+ assert lexical_category.predicate.to_s == "rel:lexical_category"
67
+ assert lexical_category.is_lexical_category?, "expected predicate lexical_category"
68
+ end
69
+ end
70
+
71
+ def test_synonyms_depth_1
72
+ meaning = @uwn.meaning("gem", "eng")
73
+ assert meaning.synonyms.size == meaning.statements.flat_map{ |s| s.synonyms }.size
74
+ assert meaning.synonyms.size == 36
75
+ # iterate synonyms
76
+ meaning.synonyms.each do |synonym|
77
+ assert synonym.is_a?(Uwn::Api::Statement), "expected Statement object"
78
+ assert synonym.term_str.is_a?(String), "expected String object"
79
+ assert synonym.predicate.to_s == "rel:lexicalization"
80
+ assert synonym.object.to_s.start_with?("t/eng/"), "expected term eng"
81
+ assert synonym.object.get_term_language == "eng", "expected eng"
82
+ assert synonym.is_synonym?, "expected a synonym"
83
+ end
84
+ end
85
+
86
+ def test_lexicalizations
87
+ meaning = @uwn.meaning("gem", "eng")
88
+ assert meaning.lexicalizations.size == meaning.statements.flat_map{ |s| s.lexicalizations }.size
89
+ assert meaning.lexicalizations.size == 505
90
+ # TODO: reduce duplicates (duplicate synsets are pointless,
91
+ # duplicate words are not, not sure if this works though)!
92
+ assert meaning.lexicalizations.uniq{|l| l.subject}.size == 6
93
+ meaning.lexicalizations.each do |lexicalization|
94
+ assert lexicalization.is_a?(Uwn::Api::Statement), "expected Statement object"
95
+ assert lexicalization.language.is_a?(String), "expected String object"
96
+ #TODO: match to language list
97
+ assert lexicalization.language.size == 3, "expected ISO 639-2"
98
+ assert lexicalization.term_str.is_a?(String), "expected String object"
99
+ end
100
+ end
101
+
102
+ def test_subclasses
103
+ meaning = @uwn.meaning("gem", "eng")
104
+ assert meaning.subclasses.size == meaning.statements.flat_map{|s| s.subclasses}.size
105
+ assert meaning.subclasses.size == 7
106
+ # iterate subclasses
107
+ meaning.subclasses.each do |subclass|
108
+ assert subclass.is_a?(Uwn::Api::Statement), "expected Statement object"
109
+ assert subclass.synset == subclass.object.to_s, "synset is in object"
110
+ assert subclass.predicate.to_s == "rel:subclass", "rel:subclass"
111
+ assert subclass.is_subclass?, "expected a subclass"
112
+ end
113
+ end
114
+
115
+ def test_glosses
116
+ meaning = @uwn.meaning("gem", "eng")
117
+ assert meaning.glosses.size == meaning.statements.flat_map{|s| s.glosses}.size
118
+ assert meaning.glosses.size == 7
119
+ # iterate glosses
120
+ meaning.glosses.each do |gloss|
121
+ assert gloss.is_a?(Uwn::Api::Statement), "expected Statement object"
122
+ assert gloss.term_str.is_a?(String), "expected String object"
123
+ assert gloss.term_str.split(/[\W]+/).size > 1, "expected some words"
124
+ end
125
+ end
126
+
127
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'uwn/api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "uwn-api"
8
+ spec.version = Uwn::Api::VERSION
9
+ spec.authors = ["Dennis Blommesteijn"]
10
+ spec.email = ["dennis@blommesteijn.com"]
11
+ spec.description = %q{UWN/MENTA: Towards a Universal Multilingual Wordnet API; (Ruby on Rails) gem wrapper for JRuby.}
12
+ spec.summary = %q{UWN/MENTA: Towards a Universal Multilingual Wordnet API; (Ruby on Rails) gem wrapper for JRuby.}
13
+ spec.homepage = ""
14
+ spec.license = "LGPL-3"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+
24
+ # dependencies
25
+ spec.add_dependency 'nokogiri', "~> 1.5.0"
26
+ spec.add_dependency 'json', "~> 1.6.1"
27
+
28
+
29
+ spec.add_development_dependency "test-unit", "~> 2.0.0"
30
+ end
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: uwn-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dennis Blommesteijn
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - "~>"
23
+ - !ruby/object:Gem::Version
24
+ version: '1.3'
25
+ prerelease: false
26
+ type: :development
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.5.0
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: 1.5.0
53
+ prerelease: false
54
+ type: :runtime
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.6.1
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: 1.6.1
67
+ prerelease: false
68
+ type: :runtime
69
+ - !ruby/object:Gem::Dependency
70
+ name: test-unit
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.0
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 2.0.0
81
+ prerelease: false
82
+ type: :development
83
+ description: ! 'UWN/MENTA: Towards a Universal Multilingual Wordnet API; (Ruby on
84
+ Rails) gem wrapper for JRuby.'
85
+ email:
86
+ - dennis@blommesteijn.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - ".gitignore"
92
+ - COPYING
93
+ - COPYING.LESSER
94
+ - Gemfile
95
+ - LICENSE.txt
96
+ - README.md
97
+ - Rakefile
98
+ - lib/uwn/api.rb
99
+ - lib/uwn/api/connect.rb
100
+ - lib/uwn/api/meaning.rb
101
+ - lib/uwn/api/statement.rb
102
+ - lib/uwn/api/util.rb
103
+ - lib/uwn/api/version.rb
104
+ - lib/uwn/deps/lgpl-3.0.txt
105
+ - lib/uwn/deps/plugins.txt
106
+ - lib/uwn/deps/plugins/readme.txt
107
+ - lib/uwn/deps/plugins/uwn.plg
108
+ - lib/uwn/deps/plugins/wordnet.plg
109
+ - lib/uwn/deps/readme.txt
110
+ - lib/uwn/deps/uwnapi.jar
111
+ - test/unit/uwn_connect.rb
112
+ - test/unit/uwn_verify_statement.rb
113
+ - test/unit/uwn_verify_tree.rb
114
+ - uwn-api.gemspec
115
+ homepage: ''
116
+ licenses:
117
+ - LGPL-3
118
+ metadata: {}
119
+ post_install_message:
120
+ rdoc_options: []
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ requirements: []
134
+ rubyforge_project:
135
+ rubygems_version: 2.0.3
136
+ signing_key:
137
+ specification_version: 4
138
+ summary: ! 'UWN/MENTA: Towards a Universal Multilingual Wordnet API; (Ruby on Rails)
139
+ gem wrapper for JRuby.'
140
+ test_files:
141
+ - test/unit/uwn_connect.rb
142
+ - test/unit/uwn_verify_statement.rb
143
+ - test/unit/uwn_verify_tree.rb