geoblacklight-schema 0.2.0
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 +7 -0
- data/.gitignore +3 -0
- data/LICENSE +14 -0
- data/README.md +44 -0
- data/bin/fgdc2mods.rb +5 -0
- data/bin/mods2geoblacklight.rb +5 -0
- data/bin/xsltproc-saxon +14 -0
- data/conf/protwords.txt +21 -0
- data/conf/schema.xml +158 -0
- data/conf/solrconfig.xml +160 -0
- data/conf/stopwords_en.txt +34 -0
- data/conf/synonyms.txt +29 -0
- data/examples/Gemfile +4 -0
- data/examples/generate-example-doc.rb +42 -0
- data/examples/selected.json +5787 -0
- data/examples/upload-to-solr.rb +50 -0
- data/geoblacklight-schema.gemspec +23 -0
- data/lib/geoblacklight/gazetteer.csv +1011 -0
- data/lib/geoblacklight/gazetteer.rb +104 -0
- data/lib/xslt/arcgis_to_iso19110.xsl +364 -0
- data/lib/xslt/fgdc2mods.xsl +1007 -0
- data/lib/xslt/iso2mods.xsl +939 -0
- data/lib/xslt/mods2geoblacklight.xsl +268 -0
- data/lib/xslt/mods2ogp.xsl +195 -0
- data/tools/fgdc2html/Gemfile +2 -0
- data/tools/fgdc2html/fgdc2html.css +71 -0
- data/tools/fgdc2html/fgdc2html.js +6 -0
- data/tools/fgdc2html/fgdc2html.xsl +1034 -0
- data/tools/fgdc2html/render.rb +30 -0
- data/tools/iso2html/Gemfile +2 -0
- data/tools/iso2html/iso-html.xsl +1745 -0
- data/tools/iso2html/render.rb +24 -0
- data/tools/iso2html/utils/convert-enumerations.xsl +97 -0
- data/tools/iso2html/utils/convert-latlong.xsl +73 -0
- data/tools/iso2html/utils/decode-uri/base.css +408 -0
- data/tools/iso2html/utils/decode-uri/index.html +29 -0
- data/tools/iso2html/utils/elements-fgdc.xml +824 -0
- data/tools/iso2html/utils/elements-iso.xml +636 -0
- data/tools/iso2html/utils/printFormatted.xsl +267 -0
- data/tools/iso2html/utils/printTextLines.xsl +192 -0
- data/tools/iso2html/utils/replace-newlines.xsl +97 -0
- data/tools/iso2html/utils/replace-string.xsl +80 -0
- data/tools/iso2html/utils/strip-digits.xsl +60 -0
- data/tools/iso2html/utils/url-decode.xsl +87 -0
- data/tools/iso2html/utils/wrap-text.xsl +174 -0
- data/tools/ogp/0_download.rb +96 -0
- data/tools/ogp/1_validate.rb +225 -0
- data/tools/ogp/2_transform.rb +438 -0
- data/tools/ogp/3_stanford.rb +35 -0
- data/tools/ogp/4_select.rb +189 -0
- data/tools/ogp/5_ingest.rb +55 -0
- data/tools/ogp/Gemfile +2 -0
- data/tools/solr/Gemfile +3 -0
- data/tools/solr/purge.rb +33 -0
- data/tools/solr/upload.rb +35 -0
- data/vendor/.keep +0 -0
- 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
|
data/tools/ogp/Gemfile
ADDED
data/tools/solr/Gemfile
ADDED
data/tools/solr/purge.rb
ADDED
@@ -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
|
data/vendor/.keep
ADDED
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:
|