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.
- checksums.yaml +15 -0
- data/.gitignore +21 -0
- data/COPYING +674 -0
- data/COPYING.LESSER +165 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +14 -0
- data/README.md +146 -0
- data/Rakefile +1 -0
- data/lib/uwn/api.rb +13 -0
- data/lib/uwn/api/connect.rb +61 -0
- data/lib/uwn/api/meaning.rb +58 -0
- data/lib/uwn/api/statement.rb +136 -0
- data/lib/uwn/api/util.rb +22 -0
- data/lib/uwn/api/version.rb +5 -0
- data/lib/uwn/deps/lgpl-3.0.txt +165 -0
- data/lib/uwn/deps/plugins.txt +11 -0
- data/lib/uwn/deps/plugins/readme.txt +30 -0
- data/lib/uwn/deps/plugins/uwn.plg +1 -0
- data/lib/uwn/deps/plugins/wordnet.plg +1 -0
- data/lib/uwn/deps/readme.txt +21 -0
- data/lib/uwn/deps/uwnapi.jar +0 -0
- data/test/unit/uwn_connect.rb +56 -0
- data/test/unit/uwn_verify_statement.rb +45 -0
- data/test/unit/uwn_verify_tree.rb +127 -0
- data/uwn-api.gemspec +30 -0
- metadata +143 -0
@@ -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
|
data/uwn-api.gemspec
ADDED
@@ -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
|