geoblacklight-schema 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/LICENSE +14 -0
  4. data/README.md +44 -0
  5. data/bin/fgdc2mods.rb +5 -0
  6. data/bin/mods2geoblacklight.rb +5 -0
  7. data/bin/xsltproc-saxon +14 -0
  8. data/conf/protwords.txt +21 -0
  9. data/conf/schema.xml +158 -0
  10. data/conf/solrconfig.xml +160 -0
  11. data/conf/stopwords_en.txt +34 -0
  12. data/conf/synonyms.txt +29 -0
  13. data/examples/Gemfile +4 -0
  14. data/examples/generate-example-doc.rb +42 -0
  15. data/examples/selected.json +5787 -0
  16. data/examples/upload-to-solr.rb +50 -0
  17. data/geoblacklight-schema.gemspec +23 -0
  18. data/lib/geoblacklight/gazetteer.csv +1011 -0
  19. data/lib/geoblacklight/gazetteer.rb +104 -0
  20. data/lib/xslt/arcgis_to_iso19110.xsl +364 -0
  21. data/lib/xslt/fgdc2mods.xsl +1007 -0
  22. data/lib/xslt/iso2mods.xsl +939 -0
  23. data/lib/xslt/mods2geoblacklight.xsl +268 -0
  24. data/lib/xslt/mods2ogp.xsl +195 -0
  25. data/tools/fgdc2html/Gemfile +2 -0
  26. data/tools/fgdc2html/fgdc2html.css +71 -0
  27. data/tools/fgdc2html/fgdc2html.js +6 -0
  28. data/tools/fgdc2html/fgdc2html.xsl +1034 -0
  29. data/tools/fgdc2html/render.rb +30 -0
  30. data/tools/iso2html/Gemfile +2 -0
  31. data/tools/iso2html/iso-html.xsl +1745 -0
  32. data/tools/iso2html/render.rb +24 -0
  33. data/tools/iso2html/utils/convert-enumerations.xsl +97 -0
  34. data/tools/iso2html/utils/convert-latlong.xsl +73 -0
  35. data/tools/iso2html/utils/decode-uri/base.css +408 -0
  36. data/tools/iso2html/utils/decode-uri/index.html +29 -0
  37. data/tools/iso2html/utils/elements-fgdc.xml +824 -0
  38. data/tools/iso2html/utils/elements-iso.xml +636 -0
  39. data/tools/iso2html/utils/printFormatted.xsl +267 -0
  40. data/tools/iso2html/utils/printTextLines.xsl +192 -0
  41. data/tools/iso2html/utils/replace-newlines.xsl +97 -0
  42. data/tools/iso2html/utils/replace-string.xsl +80 -0
  43. data/tools/iso2html/utils/strip-digits.xsl +60 -0
  44. data/tools/iso2html/utils/url-decode.xsl +87 -0
  45. data/tools/iso2html/utils/wrap-text.xsl +174 -0
  46. data/tools/ogp/0_download.rb +96 -0
  47. data/tools/ogp/1_validate.rb +225 -0
  48. data/tools/ogp/2_transform.rb +438 -0
  49. data/tools/ogp/3_stanford.rb +35 -0
  50. data/tools/ogp/4_select.rb +189 -0
  51. data/tools/ogp/5_ingest.rb +55 -0
  52. data/tools/ogp/Gemfile +2 -0
  53. data/tools/solr/Gemfile +3 -0
  54. data/tools/solr/purge.rb +33 -0
  55. data/tools/solr/upload.rb +35 -0
  56. data/vendor/.keep +0 -0
  57. metadata +131 -0
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ require 'awesome_print'
3
+ require 'nokogiri'
4
+ require 'json'
5
+
6
+ srcdir = '/var/cache/opengeometadata/edu.stanford.purl'
7
+
8
+ layers = JSON.parse(File.open('transformed.json', 'rb').read)
9
+ raise RuntimeError unless layers.is_a?(Array) && layers.first.is_a?(Hash)
10
+
11
+ Dir.glob("#{srcdir}/**/geoblacklight.xml").each do |fn|
12
+ puts "Loading #{fn}"
13
+ doc = Nokogiri::XML(File.open(fn, 'rb').read)
14
+ # ap({:doc => doc})
15
+ new_layer = {}
16
+ doc.xpath('//solr:field', 'xmlns:solr' => 'http://lucene.apache.org/solr/4/document').each do |field|
17
+ k = field['name'].to_s.strip.to_sym
18
+ if k.to_s =~ /_sm$/
19
+ if new_layer[k].nil?
20
+ new_layer[k] = []
21
+ end
22
+ new_layer[k] << field.content
23
+ else
24
+ new_layer[k] = field.content
25
+ end
26
+ end
27
+ # ap({:new_layer => new_layer})
28
+ layers << new_layer
29
+ end
30
+
31
+ File.open('transformed.json', 'wb') do |f|
32
+ f << JSON::pretty_generate(layers)
33
+ end
34
+
35
+ puts "Transformed now has #{layers.size} layers"
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Usage: select.rb
4
+
5
+ require 'awesome_print'
6
+ require 'json'
7
+
8
+ # __MAIN__
9
+ selected = []
10
+ srand Time.now.to_i
11
+ fn = 'transformed.json'
12
+ valid = JSON::parse(File.read(fn))
13
+
14
+ # select random records
15
+ valid.each do |i|
16
+ if rand < 0.01
17
+ selected << i
18
+ end
19
+ end
20
+
21
+ puts "Selected #{selected.size} random records"
22
+
23
+ # iterate through specific layer_id's
24
+ %w{
25
+ http://arks.princeton.edu/ark:/88435/02870w62c
26
+ http://purl.stanford.edu/jf841ys4828
27
+ http://purl.stanford.edu/jr127wd5810
28
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.EZ_F7DISTRICTS_2008
29
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.INT_A1CNTRY_2005
30
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.INT_A8MISPOP_2004
31
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.IN_HYDERABAD_P2ROAD_2007
32
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.NA_N3NOREGESP_2008
33
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.NA_P61AIRPORTS_2009
34
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.SF_WC_G46LEASEAREAS_1998
35
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.SZ_E29VAC_2002
36
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_F7MPO_2006
37
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_CAMBRIDGE_C3BASINS_2007
38
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_CAMBRIDGE_G46PORCH_2010
39
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_CAMBRIDGE_S1CONSV_2007
40
+ urn:arrowsmith.mit.edu:MIT.SDE_DATA.US_MA_E25ZCTA5DCT_2000
41
+ urn:geodata.tufts.edu:Tufts.AlgeriaLakes97
42
+ urn:geodata.tufts.edu:Tufts.BahrainRoads94
43
+ urn:geodata.tufts.edu:Tufts.BulgariaRegions06
44
+ urn:geodata.tufts.edu:Tufts.CambridgeParkingLot03
45
+ urn:geodata.tufts.edu:Tufts.CambridgeStairs03
46
+ urn:geodata.tufts.edu:Tufts.CambridgeTaxingDistFY11
47
+ urn:geodata.tufts.edu:Tufts.ChinaProvinces90
48
+ urn:geodata.tufts.edu:Tufts.Denmark4DigPostCode06
49
+ urn:geodata.tufts.edu:Tufts.Ecuador1MLake08
50
+ urn:geodata.tufts.edu:Tufts.EgyptLakes97
51
+ urn:geodata.tufts.edu:Tufts.IrelandRivers06
52
+ urn:geodata.tufts.edu:Tufts.IsraelPalestineGenevaBord03
53
+ urn:geodata.tufts.edu:Tufts.JerusalemBuildings08
54
+ urn:geodata.tufts.edu:Tufts.MarlboroughRoads09
55
+ urn:geodata.tufts.edu:Tufts.TogoRivers97
56
+ urn:hul.harvard.edu:HARVARD.SDE.AMS7810_S250_U54_NG47_11
57
+ urn:hul.harvard.edu:HARVARD.SDE.AMS7810_S250_U54_NG47_16
58
+ urn:hul.harvard.edu:HARVARD.SDE.ARCBIKE
59
+ urn:hul.harvard.edu:HARVARD.SDE.ARCHHYDROLN
60
+ urn:hul.harvard.edu:HARVARD.SDE.ARCMARTASTN
61
+ urn:hul.harvard.edu:HARVARD.SDE.BRLBOS
62
+ urn:hul.harvard.edu:HARVARD.SDE.ESRIEURCANALS
63
+ urn:hul.harvard.edu:HARVARD.SDE.ESRIMIZIP
64
+ urn:hul.harvard.edu:HARVARD.SDE.KNG_POLICE
65
+ urn:hul.harvard.edu:HARVARD.SDE.MEACOMMSTAT95
66
+ urn:hul.harvard.edu:HARVARD.SDE.TG00ALCTY00
67
+ urn:hul.harvard.edu:HARVARD.SDE.TG00ALKGL
68
+ urn:hul.harvard.edu:HARVARD.SDE.TG00CAAIR00
69
+ urn:hul.harvard.edu:HARVARD.SDE.TG00COMSA00
70
+ urn:hul.harvard.edu:HARVARD.SDE.TG00HIUNI
71
+ urn:hul.harvard.edu:HARVARD.SDE.TG00IDPLC
72
+ urn:hul.harvard.edu:HARVARD.SDE.TG00ILCTY00
73
+ urn:hul.harvard.edu:HARVARD.SDE.TG00INLKA
74
+ urn:hul.harvard.edu:HARVARD.SDE.TG00MATRT
75
+ urn:hul.harvard.edu:HARVARD.SDE.TG00MILKD
76
+ urn:hul.harvard.edu:HARVARD.SDE.TG00MNUNI
77
+ urn:hul.harvard.edu:HARVARD.SDE.TG00MTLKF
78
+ urn:hul.harvard.edu:HARVARD.SDE.TG00MTPUMA
79
+ urn:hul.harvard.edu:HARVARD.SDE.TG00NJPUMA
80
+ urn:hul.harvard.edu:HARVARD.SDE.TG00NMVOT00
81
+ urn:hul.harvard.edu:HARVARD.SDE.TG00ORLPT
82
+ urn:hul.harvard.edu:HARVARD.SDE.TG00PRPMS00
83
+ urn:hul.harvard.edu:HARVARD.SDE.TG00VAAIR00
84
+ urn:hul.harvard.edu:HARVARD.SDE.TG00VATRT00
85
+ urn:hul.harvard.edu:HARVARD.SDE.TG00VILKD
86
+ urn:hul.harvard.edu:HARVARD.SDE.TG00VTSEC
87
+ urn:hul.harvard.edu:HARVARD.SDE.TG00WAPUMA
88
+ urn:hul.harvard.edu:HARVARD.SDE.TG95ALCDCPY
89
+ urn:hul.harvard.edu:HARVARD.SDE.TG95AZELMPY
90
+ urn:hul.harvard.edu:HARVARD.SDE.TG95CACTYPY
91
+ urn:hul.harvard.edu:HARVARD.SDE.TG95COCCDPY
92
+ urn:hul.harvard.edu:HARVARD.SDE.TG95HISECPY
93
+ urn:hul.harvard.edu:HARVARD.SDE.TG95ILUNIPY
94
+ urn:hul.harvard.edu:HARVARD.SDE.TG95KSPLCPY
95
+ urn:hul.harvard.edu:HARVARD.SDE.TG95MILKBLN
96
+ urn:hul.harvard.edu:HARVARD.SDE.TG95MTAIRCUPY
97
+ urn:hul.harvard.edu:HARVARD.SDE.TG95MTURBPY
98
+ urn:hul.harvard.edu:HARVARD.SDE.TG95NMTRTPY
99
+ urn:hul.harvard.edu:HARVARD.SDE.TG95NYCTYPY
100
+ urn:hul.harvard.edu:HARVARD.SDE.TG95OHLPTPT
101
+ urn:hul.harvard.edu:HARVARD.SDE.TG95ORTRTPY
102
+ urn:hul.harvard.edu:HARVARD.SDE.TG95SCCTYPY
103
+ urn:hul.harvard.edu:HARVARD.SDE.TG95VALKDLN
104
+ urn:hul.harvard.edu:HARVARD.SDE.TG95VALKHLN
105
+ urn:hul.harvard.edu:HARVARD.SDE.TG95VATAZPY
106
+ urn:hul.harvard.edu:HARVARD.SDE.TG95WVLKALN
107
+ urn:hul.harvard.edu:HARVARD.SDE.USGS15MA_GREENFIE_1890
108
+ urn:hul.harvard.edu:HARVARD.SDE.VMAP1AQUEDCTL
109
+ urn:hul.harvard.edu:HARVARD.SDE.VMAP1EMBANKL
110
+ urn:hul.harvard.edu:HARVARD.SDE.VMAP1SEAICEA
111
+ urn:hul.harvard.edu:HARVARD.SDE.VMAP1VEGTXT
112
+ urn:hul.harvard.edu:HARVARD.SDE2.AFRICOVER_TZ_SPAT_AGG
113
+ urn:hul.harvard.edu:HARVARD.SDE2.AM_ONC_L04L
114
+ urn:hul.harvard.edu:HARVARD.SDE2.CH2000_L_F
115
+ urn:hul.harvard.edu:HARVARD.SDE2.DMA50K_46751L
116
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI04EURREGDEMOG
117
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI04LAKES
118
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI04MXURBAN
119
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI04USLALNDMRK
120
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI06EURPLACES
121
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI06USBLKPOP_ME
122
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI07USBLKPOP_AK
123
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI07USBLKPOP_ME
124
+ urn:hul.harvard.edu:HARVARD.SDE2.ESRI12USTRACTS
125
+ urn:hul.harvard.edu:HARVARD.SDE2.EURATLAS_CITIES_1900
126
+ urn:hul.harvard.edu:HARVARD.SDE2.G3774_P9_1849_C8
127
+ urn:hul.harvard.edu:HARVARD.SDE2.G3802_E44_1821_N4_SH2
128
+ urn:hul.harvard.edu:HARVARD.SDE2.G3804_N4C2_1961_G4_SH_6
129
+ urn:hul.harvard.edu:HARVARD.SDE2.G3804_N4_2M3_1845_S7_SH_2
130
+ urn:hul.harvard.edu:HARVARD.SDE2.G6714_N2_1826_J6
131
+ urn:hul.harvard.edu:HARVARD.SDE2.G7064_S2_1834_K3
132
+ urn:hul.harvard.edu:HARVARD.SDE2.H008768589_V07_0007
133
+ urn:hul.harvard.edu:HARVARD.SDE2.MADRG_K42073B1
134
+ urn:hul.harvard.edu:HARVARD.SDE2.MATWN_3764_B6P3_1850_P4
135
+ urn:hul.harvard.edu:HARVARD.SDE2.ME3732_P4_1798_C3
136
+ urn:hul.harvard.edu:HARVARD.SDE2.MGISBIOCHP
137
+ urn:hul.harvard.edu:HARVARD.SDE2.TG10NHVTD
138
+ urn:hul.harvard.edu:HARVARD.SDE2.TG10USAIANNH
139
+ urn:hul.harvard.edu:HARVARD.SDE2.USGS_GT_CONCEPCION_MINAS_DNN
140
+ urn:hul.harvard.edu:HARVARD.SDE2.USGS_GT_GUATEMALA_CITY_HYP
141
+ urn:hul.harvard.edu:HARVARD.SDE2.USGS_NU_ESTELI_RDL
142
+ urn:hul.harvard.edu:HARVARD.SDE2.USGS_NU_LEON_RRL
143
+ urn:hul.harvard.edu:HARVARD.SDE2.USGS_NU_POSOLTEGA_DSL
144
+ urn:hul.harvard.edu:HARVARD.SDE2.VT3754_H52G46_1836_M3
145
+ urn:massgis.state.ma.us:MassGIS.EOPS.UCR_00_S_V
146
+ urn:massgis.state.ma.us:MassGIS.GISDATA.ACECS_ARC
147
+ urn:massgis.state.ma.us:MassGIS.GISDATA.FISHTRAPS_PT
148
+ urn:massgis.state.ma.us:MassGIS.GISDATA.REGDPHEPC_POLY
149
+ }.each do |i|
150
+ valid.each do |j|
151
+ selected << j if j['dc_identifier_s'] == i
152
+ end
153
+ end
154
+ puts "Selected #{selected.size} specific IDs and random records"
155
+
156
+ # iterate through specific conditions
157
+ found_case = {}
158
+ valid.each do |j|
159
+ if !found_case['1'] && j['dc_rights_s'] == 'Public' && j['dct_provenance_s'] == 'Stanford'
160
+ selected << j
161
+ found_case['1'] = true
162
+ end
163
+ if !found_case['2'] && j['dct_references_s'] == '{}'
164
+ selected << j
165
+ found_case['2'] = true
166
+ end
167
+ %w{Berkeley Columbia Harvard Minnesota MIT MassGIS Tufts UCLA}.each do |i|
168
+ if !found_case[i] && j['dct_provenance_s'] == i
169
+ selected << j
170
+ found_case[i] = true
171
+ end
172
+ end
173
+ %w{Line Point Polygon Raster Scanned\ Map Paper\ Map Digital}.each do |i|
174
+ if !found_case[i] && j['layer_geom_type_s'] == i
175
+ selected << j
176
+ found_case[i] = true
177
+ end
178
+ end
179
+ %w{Shapefile GeoTIFF Paper CD-ROM DVD-ROM}.each do |i|
180
+ if !found_case[i] && j['dc_format_s'] == i
181
+ selected << j
182
+ found_case[i] = true
183
+ end
184
+ end
185
+ end
186
+ puts "Selected #{selected.size} specific cases and IDs and random records"
187
+
188
+
189
+ File.open('selected.json', 'wb') {|f| f << JSON.pretty_generate(selected)}
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'json'
4
+ require 'rsolr'
5
+
6
+
7
+ class IngestOgp
8
+ def initialize(collection, url, skip = 0)
9
+ @skip = skip
10
+ raise ArgumentError, 'Collection not defined' unless collection.is_a? String
11
+ @solr = RSolr.connect(:url => (url + '/' + collection))
12
+ yield self
13
+ close
14
+ end
15
+
16
+ def ingest(fn)
17
+ puts "Ingesting #{fn}"
18
+ json = JSON::parse(File.read(fn))
19
+ n = 0
20
+ json.each do |doc|
21
+ next unless doc.is_a? Hash and not doc.empty?
22
+ doc.delete('_version_')
23
+ doc.delete('timestamp')
24
+ putc "."
25
+ begin
26
+ @solr.add doc
27
+ rescue Exception => e
28
+ puts e
29
+ end unless n < @skip
30
+
31
+ n += 1
32
+ if n % 100 == 0
33
+ @solr.commit
34
+ puts "\ncommit 100 records, #{n} total\n"
35
+ end
36
+ end
37
+ puts "\n#{n} records\n"
38
+ @solr.commit
39
+ end
40
+
41
+ def close
42
+ @solr.commit
43
+ #@solr.optimize
44
+ @solr = nil
45
+ end
46
+
47
+ end
48
+
49
+
50
+ # __MAIN__
51
+ IngestOgp.new(ARGV[0], (ARGV[1].nil?? 'http://localhost:8080/solr' : ARGV[1]), ARGV[2].nil?? 0 : ARGV[2].to_i) do |ogp|
52
+ Dir.glob("transformed*.json") do |fn|
53
+ ogp.ingest(fn)
54
+ end
55
+ end
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gem 'rsolr'
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+ gem 'rsolr'
3
+ gem 'nokogiri'
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Usage: purge.rb my-collection http://localhost:8080/solr query
4
+ #
5
+ require 'rsolr'
6
+
7
+ class SolrPurger
8
+ def initialize(collection, url)
9
+ raise ArgumentError, 'Collection not defined' unless collection.is_a? String
10
+ @solr = RSolr.connect(:url => (url + '/' + collection))
11
+ yield self
12
+ close
13
+ end
14
+
15
+ def purge q
16
+ @solr.delete_by_query(q)
17
+ end
18
+
19
+ def close
20
+ @solr.commit
21
+ @solr = nil
22
+ end
23
+
24
+ end
25
+
26
+ # __MAIN__
27
+ if ARGV[0] == '--help' || ARGV.size != 2
28
+ puts 'Usage: purge.rb my-collection http://localhost:8080/solr'
29
+ exit -1
30
+ end
31
+ SolrPurger.new(ARGV[0], ARGV[1]) do |sp|
32
+ sp.purge ARGV[2]
33
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Usage: upload.rb http://localhost:8080/my-collection file1.xml [file2.json...]
4
+ #
5
+ require 'rsolr'
6
+ require 'nokogiri'
7
+
8
+ if ARGV.size < 2
9
+ puts 'Usage: upload.rb http://localhost:8080/my-collection file1.xml [file2.json...]'
10
+ exit -1
11
+ end
12
+
13
+ stop_on_error = false
14
+
15
+ solr = RSolr.connect :url => ARGV.delete_at(0)
16
+
17
+ ARGV.each do |fn|
18
+ puts "Processing #{fn}"
19
+ begin
20
+ if fn =~ /.xml$/
21
+ doc = Nokogiri::XML(File.open(fn, 'rb').read)
22
+ solr.update :data => doc.to_xml
23
+ elsif fn =~ /.json$/
24
+ doc = JSON.parse(File.open(fn, 'rb').read)
25
+ solr.add doc
26
+ else
27
+ raise RuntimeError, "Unknown file type: #{fn}"
28
+ end
29
+ rescue => e
30
+ puts "ERROR: #{e}: #{e.backtrace}"
31
+ raise e if stop_on_error
32
+ end
33
+ end
34
+
35
+ solr.commit
File without changes
metadata ADDED
@@ -0,0 +1,131 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: geoblacklight-schema
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Darren Hardy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 10.3.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 10.3.2
41
+ description:
42
+ email:
43
+ - drh@stanford.edu
44
+ executables:
45
+ - fgdc2mods.rb
46
+ - mods2geoblacklight.rb
47
+ - xsltproc-saxon
48
+ extensions: []
49
+ extra_rdoc_files: []
50
+ files:
51
+ - .gitignore
52
+ - LICENSE
53
+ - README.md
54
+ - bin/fgdc2mods.rb
55
+ - bin/mods2geoblacklight.rb
56
+ - bin/xsltproc-saxon
57
+ - conf/protwords.txt
58
+ - conf/schema.xml
59
+ - conf/solrconfig.xml
60
+ - conf/stopwords_en.txt
61
+ - conf/synonyms.txt
62
+ - examples/Gemfile
63
+ - examples/generate-example-doc.rb
64
+ - examples/selected.json
65
+ - examples/upload-to-solr.rb
66
+ - geoblacklight-schema.gemspec
67
+ - lib/geoblacklight/gazetteer.csv
68
+ - lib/geoblacklight/gazetteer.rb
69
+ - lib/xslt/arcgis_to_iso19110.xsl
70
+ - lib/xslt/fgdc2mods.xsl
71
+ - lib/xslt/iso2mods.xsl
72
+ - lib/xslt/mods2geoblacklight.xsl
73
+ - lib/xslt/mods2ogp.xsl
74
+ - tools/fgdc2html/Gemfile
75
+ - tools/fgdc2html/fgdc2html.css
76
+ - tools/fgdc2html/fgdc2html.js
77
+ - tools/fgdc2html/fgdc2html.xsl
78
+ - tools/fgdc2html/render.rb
79
+ - tools/iso2html/Gemfile
80
+ - tools/iso2html/iso-html.xsl
81
+ - tools/iso2html/render.rb
82
+ - tools/iso2html/utils/convert-enumerations.xsl
83
+ - tools/iso2html/utils/convert-latlong.xsl
84
+ - tools/iso2html/utils/decode-uri/base.css
85
+ - tools/iso2html/utils/decode-uri/index.html
86
+ - tools/iso2html/utils/elements-fgdc.xml
87
+ - tools/iso2html/utils/elements-iso.xml
88
+ - tools/iso2html/utils/printFormatted.xsl
89
+ - tools/iso2html/utils/printTextLines.xsl
90
+ - tools/iso2html/utils/replace-newlines.xsl
91
+ - tools/iso2html/utils/replace-string.xsl
92
+ - tools/iso2html/utils/strip-digits.xsl
93
+ - tools/iso2html/utils/url-decode.xsl
94
+ - tools/iso2html/utils/wrap-text.xsl
95
+ - tools/ogp/0_download.rb
96
+ - tools/ogp/1_validate.rb
97
+ - tools/ogp/2_transform.rb
98
+ - tools/ogp/3_stanford.rb
99
+ - tools/ogp/4_select.rb
100
+ - tools/ogp/5_ingest.rb
101
+ - tools/ogp/Gemfile
102
+ - tools/solr/Gemfile
103
+ - tools/solr/purge.rb
104
+ - tools/solr/upload.rb
105
+ - vendor/.keep
106
+ homepage: http://github.com/geoblacklight/geoblacklight-schema
107
+ licenses:
108
+ - Apache 2.0
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubyforge_project:
126
+ rubygems_version: 2.4.5
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: Schema Tools for GeoBlacklight
130
+ test_files: []
131
+ has_rdoc: