biodiversity 1.0.0 → 1.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.
- data/README.rdoc +34 -13
- data/VERSION +1 -1
- data/bin/parserver +5 -4
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -23,11 +23,31 @@ If you do not use ruby and need a fast access to the parser functionality you c
|
|
23
23
|
|
24
24
|
parserver
|
25
25
|
|
26
|
-
|
27
|
-
|
26
|
+
options:
|
27
|
+
|
28
|
+
parserver --output=canonical
|
29
|
+
|
30
|
+
to return a canonical form of the name string
|
31
|
+
|
32
|
+
parserver --output=canonical_with_rank
|
33
|
+
|
34
|
+
the same as above, but infracpecies' rank is shown if available
|
35
|
+
|
36
|
+
praserver --port 5555
|
37
|
+
|
38
|
+
run socket server on a different port
|
39
|
+
|
40
|
+
Then you can access it via 4334 port using a socket client library of your programming language. You can find socket client script example in the examples directory of the gem.
|
41
|
+
|
42
|
+
If you want to check if socket server works for you:
|
43
|
+
|
44
|
+
#run server in one terminal
|
45
|
+
parserver
|
46
|
+
|
47
|
+
#in another terminal window type
|
28
48
|
telnet localhost 4334
|
29
|
-
|
30
|
-
If you enter a line with a scientific name server will send you back parsed information in json format.
|
49
|
+
|
50
|
+
If you enter a line with a scientific name server will send you back parsed information in json format.
|
31
51
|
|
32
52
|
To stop telnet client type any of 'end','exit','q', '.' (without quotes) instead of scientific name
|
33
53
|
|
@@ -37,33 +57,34 @@ To stop telnet client type any of 'end','exit','q', '.' (without quotes) instead
|
|
37
57
|
Escape character is '^]'.
|
38
58
|
Acacia abyssinica Hochst. ex Benth. ssp. calophylla Brenan
|
39
59
|
{"scientificName":{"canonical":"Acacia abyssinica calophylla","parsed":true,"parser_run":1,"verbatim":"Acacia abyssinica Hochst. ex Benth. ssp. calophylla Brenan\r\n","positions":{"0":["genus",6],"18":["author_word",25],"29":["author_word",35],"7":["species",17],"41":["infraspecies",51],"52":["author_word",58]},"hybrid":false,"normalized":"Acacia abyssinica Hochst. ex Benth. ssp. calophylla Brenan","details":[{"species":{"basionymAuthorTeam":{"exAuthorTeam":{"author":["Benth."],"authorTeam":"Benth."},"author":["Hochst."],"authorTeam":"Hochst."},"string":"abyssinica","authorship":"Hochst. ex Benth."},"infraspecies":[{"basionymAuthorTeam":{"author":["Brenan"],"authorTeam":"Brenan"},"string":"calophylla","rank":"ssp.","authorship":"Brenan"}],"genus":{"string":"Acacia"}}]}}
|
40
|
-
|
60
|
+
|
61
|
+
|
41
62
|
=== As a library
|
42
63
|
|
43
64
|
You can use it as a library
|
44
65
|
|
45
66
|
require 'biodiversity'
|
46
|
-
|
67
|
+
|
47
68
|
parser = ScientificNameParser.new
|
48
|
-
|
69
|
+
|
49
70
|
# to parse a scientific name into a ruby hash
|
50
71
|
parser.parse("Plantago major")
|
51
|
-
|
72
|
+
|
52
73
|
#to get json representation
|
53
74
|
parser.parse("Plantago").to_json
|
54
75
|
#or
|
55
76
|
parser.parse("Plantago")
|
56
77
|
parser.all_json
|
57
|
-
|
78
|
+
|
58
79
|
# to clean name up
|
59
|
-
parser.parse(" Plantago major ")[:scientificName][:normalized]
|
60
|
-
|
80
|
+
parser.parse(" Plantago major ")[:scientificName][:normalized]
|
81
|
+
|
61
82
|
# to get only cleaned up latin part of the name
|
62
83
|
parser.parse("Pseudocercospora dendrobii (H.C. Burnett) U. Braun & Crous 2003")[:scientificName][:canonical]
|
63
|
-
|
84
|
+
|
64
85
|
# to get detailed information about elements of the name
|
65
86
|
parser.parse("Pseudocercospora dendrobii (H.C. Burnett 1883) U. Braun & Crous 2003")[:scientificName][:details]
|
66
|
-
|
87
|
+
|
67
88
|
# to resolve lsid and get back RDF file
|
68
89
|
LsidResolver.resolve("urn:lsid:ubio.org:classificationbank:2232671")
|
69
90
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.1
|
data/bin/parserver
CHANGED
@@ -11,6 +11,7 @@ OPTIONS = {
|
|
11
11
|
:port => DEFAULT_PORT
|
12
12
|
}
|
13
13
|
|
14
|
+
options = {}
|
14
15
|
ARGV.options do |opts|
|
15
16
|
script_name = File.basename($0)
|
16
17
|
opts.banner = "Usage: ruby #{script_name} [options]"
|
@@ -22,13 +23,13 @@ ARGV.options do |opts|
|
|
22
23
|
json - parsed results in json
|
23
24
|
canonical - canonical version
|
24
25
|
canonical_with_rank - canonical with rank",
|
25
|
-
"Default: json") { |
|
26
|
+
"Default: json") { |output| options[:output] = output }
|
26
27
|
|
27
28
|
opts.separator ""
|
28
29
|
|
29
30
|
opts.on("-p", "--port=port", String,
|
30
31
|
"Specifies the port number",
|
31
|
-
"Default: #{DEFAULT_PORT}") { |
|
32
|
+
"Default: #{DEFAULT_PORT}") { |port| options[:port] = port }
|
32
33
|
|
33
34
|
opts.separator ""
|
34
35
|
|
@@ -38,8 +39,8 @@ ARGV.options do |opts|
|
|
38
39
|
opts.parse!
|
39
40
|
end
|
40
41
|
|
41
|
-
OPTIONS[:output] =
|
42
|
-
OPTIONS[:port] =
|
42
|
+
OPTIONS[:output] = options[:output] if ['canonical', 'canonical_with_rank'].include?(options[:output])
|
43
|
+
OPTIONS[:port] = options[:port].to_i if options[:port].to_i > 0
|
43
44
|
|
44
45
|
def parser_error(name_string)
|
45
46
|
{:scientificName => {:parsed => false, :verbatim => name_string, :error => 'Parser error'}}
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: biodiversity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 1
|
10
|
+
version: 1.0.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dmitry Mozzherin
|