geomash 0.3.2 → 0.3.3
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 +4 -4
- data/lib/geomash/parser.rb +5 -0
- data/lib/geomash/tgn.rb +19 -7
- data/lib/geomash/version.rb +1 -1
- data/test/tgn_test.rb +11 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9fa71cc1b19bda8494204564e612606ffe8f6e6
|
4
|
+
data.tar.gz: 92febff016bf79bc87751a8de84d692590d95470
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 468e826603bf98ebf5ebcbe941174352ced6d5a1e222713678a716f895ebf79d369990c8c1bc950d8f27f25cd061ab26993d328fc68c0b3226e1ee01103cb763
|
7
|
+
data.tar.gz: 0452c64e9256ace6629475a9417709dcabcf7bf15dc2fff4ce26138edb5917131a97ff60d32e370760392b0052123664112f6bc1c36f7465369156847cd1f8a1
|
data/lib/geomash/parser.rb
CHANGED
@@ -289,6 +289,11 @@ module Geomash
|
|
289
289
|
return_hash[:term_differs_from_tgn] ||= google_api_result[best_match_index].data['partial_match'] unless google_api_result[best_match_index].data['partial_match'].blank?
|
290
290
|
end
|
291
291
|
|
292
|
+
#This changed in Google... need a better way to handle this
|
293
|
+
if return_hash[:state_part] == 'Nord-Pas-de-Calais Picardie'
|
294
|
+
return_hash[:state_part] = 'Picardy'
|
295
|
+
end
|
296
|
+
|
292
297
|
#FIXME: Google free API rate limit is 5 requests / 1 second now (used to be 10). Need a better way to handle this.
|
293
298
|
sleep(0.1)
|
294
299
|
|
data/lib/geomash/tgn.rb
CHANGED
@@ -404,22 +404,20 @@ EXAMPLE SPARQL:
|
|
404
404
|
OPTIONAL {<#{place_uri}> <http://www.w3.org/2004/02/skos/core#prefLabel> ?place_label_latn_pinyin
|
405
405
|
FILTER langMatches( lang(?place_label_latn_pinyin), "zh-latn-pinyin" )
|
406
406
|
}
|
407
|
-
OPTIONAL {<#{place_uri}> <http://www.w3.org/2004/02/skos/core#altLabel> ?place_label_alt
|
408
|
-
FILTER langMatches( lang(?place_label_alt), "en" )
|
409
|
-
}
|
410
407
|
<#{place_uri}> <http://vocab.getty.edu/ontology#placeTypePreferred> ?aat_pref
|
411
408
|
} UNION
|
412
409
|
}
|
413
410
|
end
|
414
411
|
|
415
412
|
query = query[0..-12]
|
416
|
-
query += ". } GROUP BY ?identifier_place ?place_label_default ?place_label_en ?place_label_latn_pinyin ?
|
413
|
+
query += ". } GROUP BY ?identifier_place ?place_label_default ?place_label_en ?place_label_latn_pinyin ?aat_pref"
|
417
414
|
query = query.squish
|
418
415
|
|
419
416
|
tgn_response_for_aat = Typhoeus::Request.post("http://vocab.getty.edu/sparql.json", :body=>{:query=>query}, :timeout=>500)
|
420
417
|
as_json_tgn_response_for_aat = JSON.parse(tgn_response_for_aat.body)
|
421
418
|
|
422
419
|
as_json_tgn_response_for_aat["results"]["bindings"].each do |aat_response|
|
420
|
+
tgn_term = nil
|
423
421
|
tgn_term_type = aat_response['aat_pref']['value'].split('/').last
|
424
422
|
|
425
423
|
if aat_response['place_label_en'].present? && aat_response['place_label_en']['value'] != '-'
|
@@ -430,10 +428,24 @@ EXAMPLE SPARQL:
|
|
430
428
|
tgn_term = aat_response['place_label_latn_pinyin']['value']
|
431
429
|
elsif aat_response['place_label_latn_notone'].present? && aat_response['place_label_latn_notone']['value'] != '-'
|
432
430
|
tgn_term = aat_response['place_label_latn_notone']['value']
|
433
|
-
elsif aat_response['place_label_alt'].present? && aat_response['place_label_alt']['value'] != '-'
|
434
|
-
tgn_term = aat_response['place_label_alt']['value']
|
435
431
|
else
|
436
|
-
|
432
|
+
#Just take the first prefLabel... could perhaps do some preference eventually... see 7002883 for an example of only a french prefLabel
|
433
|
+
default_label_response = Typhoeus::Request.get("http://vocab.getty.edu/download/json", :params=>{:uri=>"http://vocab.getty.edu/tgn/#{aat_response['identifier_place']}.json"}, :timeout=>500)
|
434
|
+
JSON.parse(default_label_response.body)['results']['bindings'].each do |ntriple|
|
435
|
+
case ntriple['Predicate']['value']
|
436
|
+
when 'http://www.w3.org/2004/02/skos/core#prefLabel'
|
437
|
+
if ntriple['Object']['xml:lang'].present? && ntriple['Object']['xml:lang'] == 'en'
|
438
|
+
tgn_term = ntriple['Object']['value']
|
439
|
+
else
|
440
|
+
tgn_term ||= ntriple['Object']['value']
|
441
|
+
end
|
442
|
+
end
|
443
|
+
end
|
444
|
+
|
445
|
+
if tgn_term.blank?
|
446
|
+
raise "Could not find a label for broader: #{place_uri} of base term: #{tgn_id}"
|
447
|
+
end
|
448
|
+
|
437
449
|
end
|
438
450
|
|
439
451
|
case tgn_term_type
|
data/lib/geomash/version.rb
CHANGED
data/test/tgn_test.rb
CHANGED
@@ -26,6 +26,17 @@ class TGNTest < ActiveSupport::TestCase
|
|
26
26
|
assert_equal 'Asia', result[:hier_geo][:continent]
|
27
27
|
assert_equal 'Harbin', result[:non_hier_geo][:value]
|
28
28
|
assert_nil result[:non_hier_geo][:qualifier]
|
29
|
+
|
30
|
+
result = Geomash::TGN.get_tgn_data('7008038')
|
31
|
+
assert_equal '48.866667', result[:coords][:latitude]
|
32
|
+
assert_equal '2.333333', result[:coords][:longitude]
|
33
|
+
assert_equal '48.866667,2.333333', result[:coords][:combined]
|
34
|
+
assert_equal 'Paris', result[:hier_geo][:city]
|
35
|
+
assert_equal 'Île-de-France', result[:hier_geo][:province]
|
36
|
+
assert_equal 'France', result[:hier_geo][:country]
|
37
|
+
assert_equal 'Europe', result[:hier_geo][:continent]
|
38
|
+
assert_equal nil, result[:non_hier_geo][:value]
|
39
|
+
assert_nil result[:non_hier_geo][:qualifier]
|
29
40
|
end
|
30
41
|
end
|
31
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geomash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boston Public Library
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|