opener-ned 2.4.0 → 2.4.1

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: 09f9b6ffd9cc7898e271c3c7c3a555798e261107
4
- data.tar.gz: ae16fc7df8452b5585aa20f73eda8c5cfca3174f
3
+ metadata.gz: b6c0f8c10e46991a6c5d92768a4336a7112fdb52
4
+ data.tar.gz: 75f1f11a4d2f4e31e1bc479cf0e1a5b35535126c
5
5
  SHA512:
6
- metadata.gz: 4a4f028aa1f9b75c78f8aa5414d5322fdac50452c192f6dffcd22a31a89827eb0bd6c51cb2cc42a7addacbe7f94701f6005c3fee8fdf7c6293c5210e562d0b2a
7
- data.tar.gz: 1671a9ef77c20f1a8dea11e0ef4c1c03ecac70648abb3b34e180b4a62b7dc1624b1b18fd1bced94d0e1c7bd6a842387c93bcfaa791acbdfcde383acfae9e52b1
6
+ metadata.gz: 1c1a3843a2b23bef511adc25d4eebd5ac2072d62678d9a4ce59e7297c791dad092cc31d630b35589059d5f88d4d3b050a217d9e8c92d4b0c4b9e60447f3becb2
7
+ data.tar.gz: ca9bad5047147879798d6b237007d97918dc82a62eb2d5e6a1958ed2a8bf1b114cbbcb02f84d7ce51ffc0dc661d71aae01895bf9960023912a38f8c35b365913
Binary file
@@ -21,6 +21,8 @@ module Opener
21
21
  opts.program_name = 'ned'
22
22
  opts.summary_indent = ' '
23
23
 
24
+ opts.separator "\nOptions:\n\n"
25
+
24
26
  opts.on('-h', '--help', 'Shows this help message') do
25
27
  show_help
26
28
  end
@@ -33,6 +35,10 @@ module Opener
33
35
  @options[:logging] = true
34
36
  end
35
37
 
38
+ opts.on('--no-time', 'Disables timestamps') do
39
+ @options[:enable_time] = false
40
+ end
41
+
36
42
  opts.separator <<-EOF
37
43
 
38
44
  Examples:
@@ -1,5 +1,5 @@
1
1
  module Opener
2
2
  class Ned
3
- VERSION = '2.4.0'
3
+ VERSION = '2.4.1'
4
4
  end # Ned
5
5
  end # Opener
data/lib/opener/ned.rb CHANGED
@@ -2,6 +2,7 @@ require 'optparse'
2
2
  require 'java'
3
3
  require 'stringio'
4
4
  require 'nokogiri'
5
+ require 'opener/core'
5
6
 
6
7
  require File.expand_path('../../../core/target/ehu-ned-1.0.jar', __FILE__)
7
8
 
@@ -9,12 +10,11 @@ require_relative 'ned/version'
9
10
  require_relative 'ned/cli'
10
11
 
11
12
  import 'java.io.InputStreamReader'
12
-
13
13
  import 'ixa.kaflib.KAFDocument'
14
14
 
15
15
  module Opener
16
16
  ##
17
- # Ruby wrapper around the Java based Ned tool that's powered by DBpedia.
17
+ # Ruby wrapper around the Java based NED tool that's powered by DBpedia.
18
18
  #
19
19
  # @!attribute [r] options
20
20
  # @return [Hash]
@@ -22,17 +22,22 @@ module Opener
22
22
  class Ned
23
23
  attr_reader :options
24
24
 
25
+ ##
26
+ # The DBpedia endpoints for every language code.
27
+ #
28
+ # @return [Hash]
29
+ #
25
30
  LANGUAGE_ENDPOINTS = {
26
- "en"=>"http://spotlight.sztaki.hu:2222",
27
- "nl"=>"http://nl.dbpedia.org/spotlight",
28
- "fr"=>"http://spotlight.sztaki.hu:2225",
29
- "de"=>"http://de.dbpedia.org/spotlight",
30
- "es"=>"http://spotlight.sztaki.hu:2231",
31
- "it"=>"http://spotlight.sztaki.hu:2230",
32
- "ru"=>"http://spotlight.sztaki.hu:2227",
33
- "pt"=>"http://spotlight.sztaki.hu:2228",
34
- "hu"=>"http://spotlight.sztaki.hu:2229",
35
- "tr"=>"http://spotlight.sztaki.hu:2235"
31
+ "en" => "http://spotlight.sztaki.hu:2222",
32
+ "nl" => "http://nl.dbpedia.org/spotlight",
33
+ "fr" => "http://spotlight.sztaki.hu:2225",
34
+ "de" => "http://de.dbpedia.org/spotlight",
35
+ "es" => "http://spotlight.sztaki.hu:2231",
36
+ "it" => "http://spotlight.sztaki.hu:2230",
37
+ "ru" => "http://spotlight.sztaki.hu:2227",
38
+ "pt" => "http://spotlight.sztaki.hu:2228",
39
+ "hu" => "http://spotlight.sztaki.hu:2229",
40
+ "tr" => "http://spotlight.sztaki.hu:2235"
36
41
  }
37
42
 
38
43
  ##
@@ -41,8 +46,9 @@ module Opener
41
46
  # @return [Hash]
42
47
  #
43
48
  DEFAULT_OPTIONS = {
44
- :args => [],
45
- :logging => false
49
+ :args => [],
50
+ :logging => false,
51
+ :enable_time => true
46
52
  }.freeze
47
53
 
48
54
  ##
@@ -54,49 +60,84 @@ module Opener
54
60
  # @option options [TrueClass|FalseClass] :logging When set to `true`
55
61
  # logging is enabled. This is disabled by default.
56
62
  #
63
+ # @option options [TrueClass|FalseClass] :enable_time When set to `true`
64
+ # the output will include timestamps.
65
+ #
57
66
  def initialize(options = {})
58
67
  @options = DEFAULT_OPTIONS.merge(options)
59
68
  end
60
69
 
70
+ ##
71
+ # Performs NED on the given input document. The return value is the
72
+ # resulting KAF document.
73
+ #
74
+ # @param [String] input The input KAF document.
75
+ # @return [String]
76
+ #
61
77
  def run(input)
62
- begin
63
- if !input or input.strip.empty?
64
- raise ArgumentError, 'No input specified'
65
- end
78
+ if !input or input.strip.empty?
79
+ raise ArgumentError, 'No input specified'
80
+ end
66
81
 
67
- language = language_from_kaf(input)
82
+ language = language_from_kaf(input)
83
+ input_io = StringIO.new(input)
84
+ reader = InputStreamReader.new(input_io.to_inputstream)
85
+ document = KAFDocument.create_from_stream(reader)
86
+ annotator = new_annotator
87
+ endpoint = options.fetch(:endpoint, uri_for_language(language))
68
88
 
69
- input_io = StringIO.new(input)
70
- reader = InputStreamReader.new(input_io.to_inputstream)
71
- document = KAFDocument.create_from_stream(reader)
72
- annotator = Java::ehu.ned.Annotate.new
89
+ annotator.disambiguateNEsToKAF(
90
+ document,
91
+ endpoint.to_s
92
+ )
73
93
 
74
- annotator.disableLogging unless options[:logging]
94
+ return document.to_string
75
95
 
76
- endpoint = options.fetch(:endpoint, uri_for_language(language))
96
+ rescue Exception => error
97
+ return Opener::Core::ErrorLayer.new(input, error.message, self.class).add
98
+ end
77
99
 
78
- annotator.disambiguateNEsToKAF(
79
- document,
80
- endpoint.to_s
81
- )
100
+ private
101
+
102
+ ##
103
+ # Creates and configures a new Annotate class.
104
+ #
105
+ # @return [Java::ehu.ned.Annotate]
106
+ #
107
+ def new_annotator
108
+ annotator = Java::ehu.ned.Annotate.new
82
109
 
83
- return document.to_string
110
+ unless options[:logging]
111
+ annotator.disableLogging
112
+ end
84
113
 
85
- rescue Exception => error
86
- return Opener::Core::ErrorLayer.new(input, error.message, self.class).add
114
+ unless options[:enable_time]
115
+ annotator.disableTimestamp
87
116
  end
88
- end
89
117
 
90
- private
118
+ return annotator
119
+ end
91
120
 
121
+ ##
122
+ # Returns the language from the KAF document.
123
+ #
124
+ # @param [String] input The input KAF document.
125
+ # @return [String]
126
+ #
92
127
  def language_from_kaf(input)
93
128
  document = Nokogiri::XML(input)
94
- language = document.at('KAF').attr('xml:lang')
129
+
130
+ return document.at('KAF').attr('xml:lang')
95
131
  end
96
132
 
133
+ ##
134
+ # Returns the endpoint URL for the given language.
135
+ #
136
+ # @param [String] language
137
+ # @return [String]
138
+ #
97
139
  def uri_for_language(language)
98
- LANGUAGE_ENDPOINTS[language]+"/rest/disambiguate"
140
+ return LANGUAGE_ENDPOINTS[language] + "/rest/disambiguate"
99
141
  end
100
-
101
142
  end # Ned
102
143
  end # Opener
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opener-ned
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - development@olery.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-24 00:00:00.000000000 Z
11
+ date: 2014-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra