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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f517ba6fcc94becafdbd6e43ae35ce833b69f728
4
- data.tar.gz: fcc4f7d3194c8203e87bbf0a1b1192cf2e55804a
3
+ metadata.gz: a9fa71cc1b19bda8494204564e612606ffe8f6e6
4
+ data.tar.gz: 92febff016bf79bc87751a8de84d692590d95470
5
5
  SHA512:
6
- metadata.gz: ee9bb319b8a8014ff077957c38f27521ff61a37836140bc389a25d3acd659ecec91cd3602ab59c96f14589d61d32c6e35d74825f421c3dd82aa273e93e85d2bc
7
- data.tar.gz: 0cfd23abf1dd9c6f9f71dc7a4cd96da271e6e8ecb379980875a4b7d291fa336499ab9735e35e97d562204948b337d40addb5845b8c27ed55b4ac4d7489715318
6
+ metadata.gz: 468e826603bf98ebf5ebcbe941174352ced6d5a1e222713678a716f895ebf79d369990c8c1bc950d8f27f25cd061ab26993d328fc68c0b3226e1ee01103cb763
7
+ data.tar.gz: 0452c64e9256ace6629475a9417709dcabcf7bf15dc2fff4ce26138edb5917131a97ff60d32e370760392b0052123664112f6bc1c36f7465369156847cd1f8a1
@@ -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 ?place_label_alt ?aat_pref"
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
- raise "Could not find a label for: #{tgn_id}"
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
@@ -1,3 +1,3 @@
1
1
  module Geomash
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
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.2
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-04-29 00:00:00.000000000 Z
11
+ date: 2016-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport