atlas_engine 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (298) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +123 -0
  3. data/Rakefile +20 -0
  4. data/app/assets/config/atlas_engine_manifest.js +3 -0
  5. data/app/assets/stylesheets/atlas_engine/application.css +15 -0
  6. data/app/concerns/atlas_engine/handles_blob.rb +26 -0
  7. data/app/concerns/atlas_engine/handles_interruption.rb +22 -0
  8. data/app/controllers/atlas_engine/application_controller.rb +7 -0
  9. data/app/controllers/atlas_engine/connectivity_controller.rb +21 -0
  10. data/app/controllers/atlas_engine/country_imports_controller.rb +73 -0
  11. data/app/controllers/atlas_engine/graphql_controller.rb +59 -0
  12. data/app/countries/atlas_engine/ar/country_profile.yml +9 -0
  13. data/app/countries/atlas_engine/at/address_importer/corrections/open_address/city_corrector.rb +23 -0
  14. data/app/countries/atlas_engine/at/country_profile.yml +24 -0
  15. data/app/countries/atlas_engine/at/index_configuration.yml +63 -0
  16. data/app/countries/atlas_engine/at/synonyms.yml +6 -0
  17. data/app/countries/atlas_engine/at/validation_transcriber/address_parser.rb +58 -0
  18. data/app/countries/atlas_engine/au/address_importer/open_address/filter.rb +26 -0
  19. data/app/countries/atlas_engine/au/address_importer/open_address/mapper.rb +41 -0
  20. data/app/countries/atlas_engine/au/country_profile.yml +13 -0
  21. data/app/countries/atlas_engine/au/synonyms.yml +209 -0
  22. data/app/countries/atlas_engine/au/validation_transcriber/address_parser.rb +121 -0
  23. data/app/countries/atlas_engine/be/country_profile.yml +12 -0
  24. data/app/countries/atlas_engine/bm/address_importer/corrections/open_address/city_alias_corrector.rb +38 -0
  25. data/app/countries/atlas_engine/bm/address_importer/open_address/mapper.rb +40 -0
  26. data/app/countries/atlas_engine/bm/country_profile.yml +12 -0
  27. data/app/countries/atlas_engine/br/country_profile.yml +4 -0
  28. data/app/countries/atlas_engine/ca/country_profile.yml +7 -0
  29. data/app/countries/atlas_engine/ca/synonyms.yml +1615 -0
  30. data/app/countries/atlas_engine/ch/address_importer/corrections/open_address/city_corrector.rb +29 -0
  31. data/app/countries/atlas_engine/ch/address_importer/corrections/open_address/locale_corrector.rb +74 -0
  32. data/app/countries/atlas_engine/ch/address_importer/open_address/mapper.rb +40 -0
  33. data/app/countries/atlas_engine/ch/country_profile.yml +15 -0
  34. data/app/countries/atlas_engine/ch/locales/de/country_profile.yml +15 -0
  35. data/app/countries/atlas_engine/ch/locales/de/index_configuration.yml +63 -0
  36. data/app/countries/atlas_engine/ch/locales/de/synonyms.yml +7 -0
  37. data/app/countries/atlas_engine/ch/locales/fr/synonyms.yml +21 -0
  38. data/app/countries/atlas_engine/cz/country_profile.yml +6 -0
  39. data/app/countries/atlas_engine/de/country_profile.yml +19 -0
  40. data/app/countries/atlas_engine/de/index_configuration.yml +64 -0
  41. data/app/countries/atlas_engine/de/synonyms.yml +2 -0
  42. data/app/countries/atlas_engine/de/validation_transcriber/address_parser.rb +19 -0
  43. data/app/countries/atlas_engine/dk/country_profile.yml +6 -0
  44. data/app/countries/atlas_engine/dk/synonyms.yml +3 -0
  45. data/app/countries/atlas_engine/dk/validation_transcriber/address_parser.rb +21 -0
  46. data/app/countries/atlas_engine/fo/country_profile.yml +5 -0
  47. data/app/countries/atlas_engine/fr/address_importer/corrections/open_address/city_corrector.rb +28 -0
  48. data/app/countries/atlas_engine/fr/country_profile.yml +13 -0
  49. data/app/countries/atlas_engine/fr/synonyms.yml +21 -0
  50. data/app/countries/atlas_engine/fr/validation_transcriber/address_parser.rb +34 -0
  51. data/app/countries/atlas_engine/gb/address_validation/es/query_builder.rb +98 -0
  52. data/app/countries/atlas_engine/gb/country_profile.yml +10 -0
  53. data/app/countries/atlas_engine/gb/validation_transcriber/full_address_parser.rb +164 -0
  54. data/app/countries/atlas_engine/gb/validation_transcriber/parsed_address.rb +120 -0
  55. data/app/countries/atlas_engine/gg/address_validation/validators/full_address/restrictions/unsupported_city.rb +39 -0
  56. data/app/countries/atlas_engine/gg/country_profile.yml +7 -0
  57. data/app/countries/atlas_engine/ie/country_profile.yml +3 -0
  58. data/app/countries/atlas_engine/it/address_importer/corrections/open_address/city_corrector.rb +27 -0
  59. data/app/countries/atlas_engine/it/address_importer/corrections/open_address/province_corrector.rb +29 -0
  60. data/app/countries/atlas_engine/it/address_importer/open_address/mapper.rb +42 -0
  61. data/app/countries/atlas_engine/it/country_profile.yml +11 -0
  62. data/app/countries/atlas_engine/jp/address_validation/es/data_mapper.rb +63 -0
  63. data/app/countries/atlas_engine/jp/country_profile.yml +6 -0
  64. data/app/countries/atlas_engine/kr/address_importer/open_address/mapper.rb +41 -0
  65. data/app/countries/atlas_engine/kr/country_profile.yml +11 -0
  66. data/app/countries/atlas_engine/li/address_importer/corrections/open_address/city_corrector.rb +25 -0
  67. data/app/countries/atlas_engine/li/country_profile.yml +21 -0
  68. data/app/countries/atlas_engine/li/index_configuration.yml +63 -0
  69. data/app/countries/atlas_engine/li/synonyms.yml +6 -0
  70. data/app/countries/atlas_engine/lt/country_profile.yml +6 -0
  71. data/app/countries/atlas_engine/lt/synonyms.yml +7 -0
  72. data/app/countries/atlas_engine/lt/validation_transcriber/address_parser.rb +24 -0
  73. data/app/countries/atlas_engine/lu/address_importer/corrections/open_address/locale_corrector.rb +54 -0
  74. data/app/countries/atlas_engine/lu/country_profile.yml +12 -0
  75. data/app/countries/atlas_engine/nl/address_importer/corrections/open_address/city_corrector.rb +25 -0
  76. data/app/countries/atlas_engine/nl/country_profile.yml +18 -0
  77. data/app/countries/atlas_engine/nl/index_configuration.yml +52 -0
  78. data/app/countries/atlas_engine/nl/synonyms.yml +92 -0
  79. data/app/countries/atlas_engine/nl/validation_transcriber/address_parser.rb +85 -0
  80. data/app/countries/atlas_engine/no/country_profile.yml +5 -0
  81. data/app/countries/atlas_engine/nz/country_profile.yml +3 -0
  82. data/app/countries/atlas_engine/pl/country_profile.yml +5 -0
  83. data/app/countries/atlas_engine/pl/validation_transcriber/address_parser.rb +19 -0
  84. data/app/countries/atlas_engine/pt/address_importer/corrections/open_address/city_corrector.rb +32 -0
  85. data/app/countries/atlas_engine/pt/address_importer/open_address/mapper.rb +39 -0
  86. data/app/countries/atlas_engine/pt/country_profile.yml +10 -0
  87. data/app/countries/atlas_engine/pt/synonyms.yml +7 -0
  88. data/app/countries/atlas_engine/sa/country_profile.yml +10 -0
  89. data/app/countries/atlas_engine/se/country_profile.yml +5 -0
  90. data/app/countries/atlas_engine/tt/address_importer/open_address/mapper.rb +38 -0
  91. data/app/countries/atlas_engine/tt/country_profile.yml +7 -0
  92. data/app/countries/atlas_engine/us/country_profile.yml +12 -0
  93. data/app/countries/atlas_engine/us/synonyms.yml +350 -0
  94. data/app/graphql/atlas_engine/errors/locale_unsupported_error.rb +17 -0
  95. data/app/graphql/atlas_engine/schema.graphql +1293 -0
  96. data/app/graphql/atlas_engine/schema.rb +23 -0
  97. data/app/graphql/atlas_engine/types/address_validation/address_input.rb +51 -0
  98. data/app/graphql/atlas_engine/types/address_validation/concern_type.rb +20 -0
  99. data/app/graphql/atlas_engine/types/address_validation/enums/concern_enum.rb +15 -0
  100. data/app/graphql/atlas_engine/types/address_validation/field_type.rb +15 -0
  101. data/app/graphql/atlas_engine/types/address_validation/suggestion_type.rb +21 -0
  102. data/app/graphql/atlas_engine/types/base_argument.rb +9 -0
  103. data/app/graphql/atlas_engine/types/base_enum.rb +9 -0
  104. data/app/graphql/atlas_engine/types/base_field.rb +10 -0
  105. data/app/graphql/atlas_engine/types/base_input_object.rb +9 -0
  106. data/app/graphql/atlas_engine/types/base_interface.rb +10 -0
  107. data/app/graphql/atlas_engine/types/base_object.rb +9 -0
  108. data/app/graphql/atlas_engine/types/base_scalar.rb +9 -0
  109. data/app/graphql/atlas_engine/types/base_union.rb +9 -0
  110. data/app/graphql/atlas_engine/types/matching_strategy_type.rb +12 -0
  111. data/app/graphql/atlas_engine/types/mutation_type.rb +9 -0
  112. data/app/graphql/atlas_engine/types/query_type.rb +61 -0
  113. data/app/graphql/atlas_engine/types/validation_supported_country.rb +12 -0
  114. data/app/graphql/atlas_engine/types/validation_type.rb +22 -0
  115. data/app/helpers/atlas_engine/address_importer/import_log_helper.rb +66 -0
  116. data/app/helpers/atlas_engine/application_helper.rb +7 -0
  117. data/app/helpers/atlas_engine/locale_format_helper.rb +40 -0
  118. data/app/helpers/atlas_engine/log_base.rb +32 -0
  119. data/app/helpers/atlas_engine/log_helper.rb +24 -0
  120. data/app/helpers/atlas_engine/metrics_helper.rb +25 -0
  121. data/app/jobs/atlas_engine/address_importer/clear_records_job.rb +39 -0
  122. data/app/jobs/atlas_engine/address_importer/open_address/geo_json_import_job.rb +212 -0
  123. data/app/jobs/atlas_engine/address_importer/open_address/geo_json_import_launcher_job.rb +67 -0
  124. data/app/jobs/atlas_engine/address_importer/open_address/prepares_geo_json_file.rb +41 -0
  125. data/app/jobs/atlas_engine/address_importer/resumable_import_job.rb +49 -0
  126. data/app/jobs/atlas_engine/address_importer/street_backfill_job.rb +63 -0
  127. data/app/jobs/atlas_engine/application_job.rb +10 -0
  128. data/app/jobs/atlas_engine/concerns/address_importer/handles_errors.rb +43 -0
  129. data/app/lib/atlas_engine/concern_formatter.rb +40 -0
  130. data/app/lib/atlas_engine/restrictions/base.rb +20 -0
  131. data/app/lib/atlas_engine/restrictions/unsupported_script.rb +31 -0
  132. data/app/lib/atlas_engine/validation_transcriber/address_parser_base.rb +201 -0
  133. data/app/lib/atlas_engine/validation_transcriber/address_parser_factory.rb +27 -0
  134. data/app/lib/atlas_engine/validation_transcriber/address_parser_north_america.rb +39 -0
  135. data/app/lib/atlas_engine/validation_transcriber/address_parser_oceanic.rb +17 -0
  136. data/app/lib/atlas_engine/validation_transcriber/address_parser_preprocessor.rb +132 -0
  137. data/app/lib/atlas_engine/validation_transcriber/address_parsing_helper.rb +38 -0
  138. data/app/lib/atlas_engine/validation_transcriber/address_parsings.rb +54 -0
  139. data/app/lib/atlas_engine/validation_transcriber/constants.rb +50 -0
  140. data/app/lib/atlas_engine/validation_transcriber/english_street_parser.rb +59 -0
  141. data/app/lib/atlas_engine/validation_transcriber/formatter.rb +46 -0
  142. data/app/lib/atlas_engine/validation_transcriber/french_street_parser.rb +50 -0
  143. data/app/lib/atlas_engine/validation_transcriber/province_code_normalizer.rb +45 -0
  144. data/app/lib/atlas_engine/validation_transcriber/street_parser.rb +18 -0
  145. data/app/lib/atlas_engine/validation_transcriber/zip_normalizer.rb +23 -0
  146. data/app/mailers/atlas_engine/application_mailer.rb +9 -0
  147. data/app/models/atlas_engine/address_importer/corrections/corrector.rb +33 -0
  148. data/app/models/atlas_engine/address_importer/import_events_notifier/base.rb +35 -0
  149. data/app/models/atlas_engine/address_importer/import_events_notifier/notifier.rb +26 -0
  150. data/app/models/atlas_engine/address_importer/open_address/default_mapper.rb +46 -0
  151. data/app/models/atlas_engine/address_importer/open_address/feature_helper.rb +110 -0
  152. data/app/models/atlas_engine/address_importer/open_address/filter.rb +17 -0
  153. data/app/models/atlas_engine/address_importer/open_address/loader.rb +27 -0
  154. data/app/models/atlas_engine/address_importer/open_address/transformer.rb +39 -0
  155. data/app/models/atlas_engine/address_importer/open_address.rb +10 -0
  156. data/app/models/atlas_engine/address_importer/validation/base_validator.rb +86 -0
  157. data/app/models/atlas_engine/address_importer/validation/default_validator.rb +27 -0
  158. data/app/models/atlas_engine/address_importer/validation/field_validations/city.rb +47 -0
  159. data/app/models/atlas_engine/address_importer/validation/field_validations/interface.rb +29 -0
  160. data/app/models/atlas_engine/address_importer/validation/field_validations/province.rb +73 -0
  161. data/app/models/atlas_engine/address_importer/validation/field_validations/zip.rb +84 -0
  162. data/app/models/atlas_engine/address_importer/validation/validator.rb +17 -0
  163. data/app/models/atlas_engine/address_importer/validation/wrapper.rb +70 -0
  164. data/app/models/atlas_engine/address_number.rb +36 -0
  165. data/app/models/atlas_engine/address_number_range.rb +200 -0
  166. data/app/models/atlas_engine/address_validation/abstract_address.rb +49 -0
  167. data/app/models/atlas_engine/address_validation/address.rb +47 -0
  168. data/app/models/atlas_engine/address_validation/candidate.rb +109 -0
  169. data/app/models/atlas_engine/address_validation/candidate_tuple.rb +15 -0
  170. data/app/models/atlas_engine/address_validation/concern.rb +74 -0
  171. data/app/models/atlas_engine/address_validation/concern_producer.rb +19 -0
  172. data/app/models/atlas_engine/address_validation/concern_queue.rb +20 -0
  173. data/app/models/atlas_engine/address_validation/concern_record.rb +122 -0
  174. data/app/models/atlas_engine/address_validation/datastore_base.rb +27 -0
  175. data/app/models/atlas_engine/address_validation/errors.rb +13 -0
  176. data/app/models/atlas_engine/address_validation/es/candidate_selector.rb +70 -0
  177. data/app/models/atlas_engine/address_validation/es/data_mappers/decompounding_data_mapper.rb +39 -0
  178. data/app/models/atlas_engine/address_validation/es/data_mappers/default_data_mapper.rb +110 -0
  179. data/app/models/atlas_engine/address_validation/es/datastore.rb +229 -0
  180. data/app/models/atlas_engine/address_validation/es/default_query_builder.rb +30 -0
  181. data/app/models/atlas_engine/address_validation/es/query_builder.rb +160 -0
  182. data/app/models/atlas_engine/address_validation/es/term_vectors.rb +78 -0
  183. data/app/models/atlas_engine/address_validation/es/validators/full_address.rb +123 -0
  184. data/app/models/atlas_engine/address_validation/es/validators/full_address_street.rb +18 -0
  185. data/app/models/atlas_engine/address_validation/es/validators/restriction_evaluator.rb +37 -0
  186. data/app/models/atlas_engine/address_validation/field.rb +30 -0
  187. data/app/models/atlas_engine/address_validation/full_address_validator_base.rb +27 -0
  188. data/app/models/atlas_engine/address_validation/log_emitter.rb +66 -0
  189. data/app/models/atlas_engine/address_validation/matching_strategies.rb +16 -0
  190. data/app/models/atlas_engine/address_validation/normalizer.rb +38 -0
  191. data/app/models/atlas_engine/address_validation/predicate_pipeline.rb +80 -0
  192. data/app/models/atlas_engine/address_validation/request.rb +12 -0
  193. data/app/models/atlas_engine/address_validation/result.rb +154 -0
  194. data/app/models/atlas_engine/address_validation/runs_validation.rb +16 -0
  195. data/app/models/atlas_engine/address_validation/session.rb +47 -0
  196. data/app/models/atlas_engine/address_validation/statsd_emitter.rb +72 -0
  197. data/app/models/atlas_engine/address_validation/strategies.rb +10 -0
  198. data/app/models/atlas_engine/address_validation/suggestion.rb +97 -0
  199. data/app/models/atlas_engine/address_validation/token/comparator.rb +44 -0
  200. data/app/models/atlas_engine/address_validation/token/comparison.rb +76 -0
  201. data/app/models/atlas_engine/address_validation/token/sequence/comparator.rb +158 -0
  202. data/app/models/atlas_engine/address_validation/token/sequence/comparison.rb +166 -0
  203. data/app/models/atlas_engine/address_validation/token/sequence.rb +147 -0
  204. data/app/models/atlas_engine/address_validation/token/synonyms.rb +77 -0
  205. data/app/models/atlas_engine/address_validation/token.rb +113 -0
  206. data/app/models/atlas_engine/address_validation/validator.rb +147 -0
  207. data/app/models/atlas_engine/address_validation/validators/full_address/address_comparison.rb +97 -0
  208. data/app/models/atlas_engine/address_validation/validators/full_address/candidate_result.rb +164 -0
  209. data/app/models/atlas_engine/address_validation/validators/full_address/candidate_result_base.rb +46 -0
  210. data/app/models/atlas_engine/address_validation/validators/full_address/comparison_helper.rb +135 -0
  211. data/app/models/atlas_engine/address_validation/validators/full_address/components_to_validate.rb +88 -0
  212. data/app/models/atlas_engine/address_validation/validators/full_address/concern_builder.rb +127 -0
  213. data/app/models/atlas_engine/address_validation/validators/full_address/exclusions/exclusion_base.rb +23 -0
  214. data/app/models/atlas_engine/address_validation/validators/full_address/invalid_zip_concern_builder.rb +42 -0
  215. data/app/models/atlas_engine/address_validation/validators/full_address/invalid_zip_for_country_concern.rb +37 -0
  216. data/app/models/atlas_engine/address_validation/validators/full_address/invalid_zip_for_province_concern.rb +37 -0
  217. data/app/models/atlas_engine/address_validation/validators/full_address/no_candidate_result.rb +26 -0
  218. data/app/models/atlas_engine/address_validation/validators/full_address/number_comparison.rb +31 -0
  219. data/app/models/atlas_engine/address_validation/validators/full_address/postal_code_matcher.rb +60 -0
  220. data/app/models/atlas_engine/address_validation/validators/full_address/result_updater.rb +42 -0
  221. data/app/models/atlas_engine/address_validation/validators/full_address/suggestion_builder.rb +140 -0
  222. data/app/models/atlas_engine/address_validation/validators/full_address/unknown_address_concern.rb +30 -0
  223. data/app/models/atlas_engine/address_validation/validators/full_address/unknown_province_concern.rb +38 -0
  224. data/app/models/atlas_engine/address_validation/validators/full_address/unknown_zip_for_address_concern.rb +32 -0
  225. data/app/models/atlas_engine/address_validation/validators/full_address/unmatched_field_concern.rb +84 -0
  226. data/app/models/atlas_engine/address_validation/validators/full_address/unsupported_script_result.rb +22 -0
  227. data/app/models/atlas_engine/address_validation/validators/predicates/cache.rb +38 -0
  228. data/app/models/atlas_engine/address_validation/validators/predicates/city/present.rb +36 -0
  229. data/app/models/atlas_engine/address_validation/validators/predicates/country/exists.rb +34 -0
  230. data/app/models/atlas_engine/address_validation/validators/predicates/country/valid_for_zip.rb +60 -0
  231. data/app/models/atlas_engine/address_validation/validators/predicates/no_emojis.rb +38 -0
  232. data/app/models/atlas_engine/address_validation/validators/predicates/no_html_tags.rb +39 -0
  233. data/app/models/atlas_engine/address_validation/validators/predicates/no_url.rb +38 -0
  234. data/app/models/atlas_engine/address_validation/validators/predicates/not_exceed_max_length.rb +34 -0
  235. data/app/models/atlas_engine/address_validation/validators/predicates/not_exceed_max_token_count.rb +63 -0
  236. data/app/models/atlas_engine/address_validation/validators/predicates/phone/valid.rb +41 -0
  237. data/app/models/atlas_engine/address_validation/validators/predicates/predicate.rb +37 -0
  238. data/app/models/atlas_engine/address_validation/validators/predicates/province/exists.rb +43 -0
  239. data/app/models/atlas_engine/address_validation/validators/predicates/province/valid_for_country.rb +48 -0
  240. data/app/models/atlas_engine/address_validation/validators/predicates/street/building_number_in_address1.rb +45 -0
  241. data/app/models/atlas_engine/address_validation/validators/predicates/street/building_number_in_address1_or_address2.rb +43 -0
  242. data/app/models/atlas_engine/address_validation/validators/predicates/street/present.rb +35 -0
  243. data/app/models/atlas_engine/address_validation/validators/predicates/zip/present.rb +58 -0
  244. data/app/models/atlas_engine/address_validation/validators/predicates/zip/valid_for_country.rb +45 -0
  245. data/app/models/atlas_engine/address_validation/validators/predicates/zip/valid_for_province.rb +55 -0
  246. data/app/models/atlas_engine/address_validation/validators/predicates/zip/zip_base.rb +25 -0
  247. data/app/models/atlas_engine/address_validation/zip_truncator.rb +32 -0
  248. data/app/models/atlas_engine/application_record.rb +8 -0
  249. data/app/models/atlas_engine/coded_error.rb +18 -0
  250. data/app/models/atlas_engine/coded_errors.rb +17 -0
  251. data/app/models/atlas_engine/country_import.rb +44 -0
  252. data/app/models/atlas_engine/country_profile.rb +270 -0
  253. data/app/models/atlas_engine/country_profile_ingestion_subset.rb +42 -0
  254. data/app/models/atlas_engine/country_profile_subset_base.rb +22 -0
  255. data/app/models/atlas_engine/country_profile_validation_subset.rb +48 -0
  256. data/app/models/atlas_engine/country_repository.rb +110 -0
  257. data/app/models/atlas_engine/elasticsearch/client.rb +116 -0
  258. data/app/models/atlas_engine/elasticsearch/client_interface.rb +89 -0
  259. data/app/models/atlas_engine/elasticsearch/repository.rb +246 -0
  260. data/app/models/atlas_engine/elasticsearch/repository_interface.rb +82 -0
  261. data/app/models/atlas_engine/elasticsearch/response.rb +20 -0
  262. data/app/models/atlas_engine/event.rb +12 -0
  263. data/app/models/atlas_engine/field_decompounder.rb +36 -0
  264. data/app/models/atlas_engine/index_configuration_factory.rb +188 -0
  265. data/app/models/atlas_engine/post_address.rb +114 -0
  266. data/app/models/atlas_engine/post_address_importer.rb +34 -0
  267. data/app/models/atlas_engine/services/service_helper.rb +21 -0
  268. data/app/models/atlas_engine/services/validation.rb +65 -0
  269. data/app/models/atlas_engine/services/validation_eligibility.rb +18 -0
  270. data/app/models/atlas_engine/street.rb +34 -0
  271. data/app/tasks/maintenance/atlas_engine/elasticsearch_index_create_task.rb +106 -0
  272. data/app/tasks/maintenance/atlas_engine/geo_json_import_task.rb +29 -0
  273. data/app/views/atlas_engine/connectivity/index.html.erb +50 -0
  274. data/app/views/atlas_engine/country_imports/index.html.erb +49 -0
  275. data/app/views/atlas_engine/country_imports/show.html.erb +73 -0
  276. data/app/views/layouts/atlas_engine/application.html.erb +15 -0
  277. data/config/initializers/1.ruby_patches.rb +18 -0
  278. data/config/initializers/sorbet.rb +5 -0
  279. data/config/initializers/worldwide.rb +5 -0
  280. data/config/locales/internal/en.yml +14 -0
  281. data/config/routes.rb +17 -0
  282. data/db/data/address_synonyms/index_configurations/default.yml +141 -0
  283. data/db/data/country_profiles/default.yml +23 -0
  284. data/db/data/transcriber.yml +760 -0
  285. data/db/data/validation_pipelines/es.yml +58 -0
  286. data/db/data/validation_pipelines/es_street.yml +58 -0
  287. data/db/data/validation_pipelines/local.yml +60 -0
  288. data/db/migrate/20230919173037_create_atlas_engine_post_addresses.rb +25 -0
  289. data/db/migrate/20231117142735_add_building_and_unit_ranges_column.rb +7 -0
  290. data/db/migrate/20231117143536_create_atlas_engine_country_imports.rb +11 -0
  291. data/db/migrate/20231117145844_create_atlas_engine_events_table.rb +13 -0
  292. data/db/migrate/20231123153554_add_unique_index_to_atlas_engine_post_addresses.rb +14 -0
  293. data/db/migrate/20231123154658_add_index_to_post_addresses_on_source_id_locale_country_code.rb +12 -0
  294. data/lib/atlas_engine/engine.rb +10 -0
  295. data/lib/atlas_engine/version.rb +6 -0
  296. data/lib/atlas_engine.rb +66 -0
  297. data/lib/tasks/atlas_engine/address_importer.rake +20 -0
  298. metadata +553 -0
@@ -0,0 +1,760 @@
1
+ ---
2
+ affixed_suffixes:
3
+ laan: "ln"
4
+ plantsoen: "plnts"
5
+ straat: "str"
6
+ strasse: "str"
7
+ apostrophes:
8
+ - "\u0027"
9
+ - "\u00b4"
10
+ - "\u2018"
11
+ - "\u2019"
12
+ directionals:
13
+ e: "e"
14
+ east: "e"
15
+ north: "n"
16
+ ne: "ne"
17
+ northeast: "ne"
18
+ "north-east": "ne"
19
+ nw: "nw"
20
+ northwest: "nw"
21
+ "north-west": "nw"
22
+ s: "s"
23
+ south: "s"
24
+ se: "se"
25
+ southeast: "se"
26
+ "south-east": "se"
27
+ sw: "sw"
28
+ southwest: "sw"
29
+ "south-west": "sw"
30
+ w: "w"
31
+ west: "w"
32
+ hyphens:
33
+ - "\u002d"
34
+ - "\u058a"
35
+ - "\u05be"
36
+ - "\u1400"
37
+ - "\u1806"
38
+ - "\u2010"
39
+ - "\u2011"
40
+ - "\u2012"
41
+ - "\u2013"
42
+ - "\u2014"
43
+ - "\u2015"
44
+ - "\u2e3a"
45
+ - "\u2e3b"
46
+ - "\ufe58"
47
+ - "\ufe63"
48
+ - "\uff0d"
49
+ months:
50
+ january: jan
51
+ february: feb
52
+ march: mar
53
+ april: apr
54
+ may: may
55
+ june: jun
56
+ july: jul
57
+ august: aug
58
+ september: sep
59
+ sept: sep
60
+ october: oct
61
+ november: nov
62
+ december: dec
63
+ numbered_routes:
64
+ "private road": "pr"
65
+ "rural route": "rr"
66
+ "rural road": "rr"
67
+ "carretera": "carr"
68
+ "co highway": "cty hwy"
69
+ "co highwy": "cty hwy"
70
+ "co hiway": "cty hwy"
71
+ "co hiwy": "cty hwy"
72
+ "co hway": "cty hwy"
73
+ "co hwy": "cty hwy"
74
+ "county highway": "cty hwy"
75
+ "county highwy": "cty hwy"
76
+ "county hiway": "cty hwy"
77
+ "county hiwy": "cty hwy"
78
+ "county hway": "cty hwy"
79
+ "county hwy": "cty hwy"
80
+ "cty highway": "cty hwy"
81
+ "cty highwy": "cty hwy"
82
+ "cty hiway": "cty hwy"
83
+ "cty hiwy": "cty hwy"
84
+ "cty hway": "cty hwy"
85
+ "county road": "cr"
86
+ "county rd": "cr"
87
+ "cty road": "cr"
88
+ "cty rd": "cr"
89
+ "farm to market": "fm"
90
+ "farm to market rd": "fm"
91
+ "farm to market road": "fm"
92
+ "farm road": "farm road"
93
+ highway: "hwy"
94
+ highwy: "hwy"
95
+ hiway: "hwy"
96
+ hiwy: "hwy"
97
+ hway: "hwy"
98
+ loop: "loop"
99
+ route: "rte"
100
+ rt: "rte"
101
+ "state highway": "state hwy"
102
+ "state highwy": "state hwy"
103
+ "state hiway": "state hwy"
104
+ "state hiwy": "state hwy"
105
+ "state hway": "state hwy"
106
+ "state road": "sr"
107
+ "state rd": "sr"
108
+ "state route": "sr"
109
+ "state rte": "sr"
110
+ us: "us"
111
+ "u.s": "us"
112
+ "us highway": "us hwy"
113
+ "u.s. highway": "us hwy"
114
+ ordinals_english:
115
+ "1st": "first"
116
+ "2nd": "second"
117
+ "3rd": "third"
118
+ "4th": "fourth"
119
+ "5th": "fifth"
120
+ "6th": "sixth"
121
+ "7th": "seventh"
122
+ "8th": "eighth"
123
+ "9th": "ninth"
124
+ "10th": "tenth"
125
+ "11th": "eleventh"
126
+ "12th": "twelfth"
127
+ "13th": "thirteenth"
128
+ "14th": "fourteenth"
129
+ "15th": "fifteenth"
130
+ "16th": "sixteenth"
131
+ "17th": "seventeenth"
132
+ "18th": "eighteenth"
133
+ "19th": "nineteenth"
134
+ "20th": "twentieth"
135
+ "30th": "thirtieth"
136
+ "40th": "fortieth"
137
+ "50th": "fiftieth"
138
+ "60th": "sixtieth"
139
+ "70th": "seventieth"
140
+ "80th": "eightieth"
141
+ "90th": "nintieth"
142
+ "100th": "one hundredth"
143
+ ordinals_english_tens:
144
+ "20": "twenty"
145
+ "30": "thirty"
146
+ "40": "forty"
147
+ "50": "fifty"
148
+ "60": "sixty"
149
+ "70": "seventy"
150
+ "80": "eighty"
151
+ "90": "ninety"
152
+ "100": "one hundred"
153
+ ordinals_other:
154
+ "1e": "eerste"
155
+ "1er": "premier"
156
+ secondary_unit_designators:
157
+ apartment: "apt"
158
+ basement: "bsmt"
159
+ building: "bldg"
160
+ department: "dept"
161
+ floor: "fl"
162
+ front: "frnt"
163
+ hanger: "hngr"
164
+ key: "key"
165
+ lobby: "lbby"
166
+ lot: "lot"
167
+ lower: "lowr"
168
+ office: "ofc"
169
+ pier: "pier"
170
+ penthouse: "ph"
171
+ rear: "rear"
172
+ room: "rm"
173
+ side: "side"
174
+ slip: "slip"
175
+ space: "spc"
176
+ stop: "stop"
177
+ suite: "ste"
178
+ trailer: "trlr"
179
+ unit: "unit"
180
+ upper: "uppr"
181
+ street_suffixes:
182
+ # "Suffixes" that are recognized categories of street, along with their USPS canonical abbreviation.
183
+ # Note that all USPS-recognized suffixes must appear in this list, even if the suffix is its own abbreviation.
184
+ # Thus, for example, "lndg" maps to "lndg". We can use the suffix's presence in this list to help us parse
185
+ # address1 fields by identifying a token that could plausibly be a street suffix.
186
+ allee: "aly"
187
+ alley: "aly"
188
+ ally: "aly"
189
+ aly: "aly"
190
+ anex: "anx"
191
+ annex: "anx"
192
+ annx: "anx"
193
+ anx: "anx"
194
+ arc: "arc"
195
+ arcade: "arc"
196
+ av: "ave"
197
+ ave: "ave"
198
+ aven: "ave"
199
+ avenu: "ave"
200
+ avenue: "ave"
201
+ avnue: "ave"
202
+ bayoo: "byu"
203
+ bayou: "byu"
204
+ byu: "byu"
205
+ bch: "bch"
206
+ beach: "bch"
207
+ bend: "bnd"
208
+ bnd: "bnd"
209
+ blf: "blf"
210
+ bluf: "blf"
211
+ bluff: "blf"
212
+ blfs: "blfs"
213
+ bluffs: "blfs"
214
+ blvd: "blvd"
215
+ bot: "btm"
216
+ btm: "btm"
217
+ bottm: "btm"
218
+ bottom: "btm"
219
+ boul: "blvd"
220
+ boulevard: "blvd"
221
+ boulv: "blvd"
222
+ br: "br"
223
+ brnch: "br"
224
+ branch: "br"
225
+ brdge: "brg"
226
+ brg: "brg"
227
+ bridge: "brg"
228
+ brk: "brk"
229
+ brook: "brk"
230
+ brooks: "brks"
231
+ bg: "bg"
232
+ burg: "bg"
233
+ burgs: "bgs"
234
+ byp: "byp"
235
+ bypa: "byp"
236
+ bypas: "byp"
237
+ bypass: "byp"
238
+ camp: "cp"
239
+ cmp: "cp"
240
+ cp: "cp"
241
+ canyn: "cyn"
242
+ canyon: "cyn"
243
+ cnyn: "cyn"
244
+ cyn: "cyn"
245
+ cape: "cpe"
246
+ cpe: "cpe"
247
+ causeway: "cswy"
248
+ causewa: "cswy"
249
+ cswy: "cswy"
250
+ cen: "ctr"
251
+ cent: "ctr"
252
+ center: "ctr"
253
+ centr: "ctr"
254
+ centre: "ctr"
255
+ cnter: "ctr"
256
+ cntr: "ctr"
257
+ ctr: "ctr"
258
+ centers: "ctrs"
259
+ ctrs: "ctrs"
260
+ cir: "cir"
261
+ circ: "cir"
262
+ circl: "cir"
263
+ circle: "cir"
264
+ crcl: "cir"
265
+ crcle: "cir"
266
+ circles: "cirs"
267
+ clf: "clf"
268
+ cliff: "clf"
269
+ clfs: "clfs"
270
+ cliffs: "clfs"
271
+ clb: "clb"
272
+ club: "clb"
273
+ cmn: "cmn"
274
+ common: "cmn"
275
+ cmns: "cmns"
276
+ commons: "cmns"
277
+ cor: "cor"
278
+ corner: "cor"
279
+ corners: "cors"
280
+ cors: "cors"
281
+ course: "crse"
282
+ crse: "crse"
283
+ court: "ct"
284
+ crt: "ct"
285
+ ct: "ct"
286
+ courts: "cts"
287
+ crts: "cts"
288
+ cts: "cts"
289
+ cove: "cv"
290
+ cv: "cv"
291
+ coves: "cvs"
292
+ cvs: "cvs"
293
+ creek: "crk"
294
+ crk: "crk"
295
+ crescent: "cres"
296
+ cres: "cres"
297
+ crsent: "cres"
298
+ crsnt: "cres"
299
+ crest: "crst"
300
+ crst: "crst"
301
+ crossing: "xing"
302
+ crssing: "xing"
303
+ xing: "xing"
304
+ crossroad: "xrd"
305
+ xrd: "xrd"
306
+ crossroads: "xrds"
307
+ xrds: "xrds"
308
+ curve: "curv"
309
+ curv: "curv"
310
+ dale: "dl"
311
+ dl: "dl"
312
+ dam: "dm"
313
+ dm: "dm"
314
+ div: "dv"
315
+ divide: "dv"
316
+ dv: "dv"
317
+ dvd: "dv"
318
+ dr: "dr"
319
+ driv: "dr"
320
+ drive: "dr"
321
+ drv: "dr"
322
+ drives: "drs"
323
+ drs: "drs"
324
+ estate: "est"
325
+ est: "est"
326
+ estates: "ests"
327
+ ests: "ests"
328
+ exp: "expy"
329
+ expr: "expy"
330
+ express: "expy"
331
+ expressway: "expy"
332
+ expw: "expy"
333
+ expy: "expy"
334
+ ext: "ext"
335
+ extension: "ext"
336
+ extn: "ext"
337
+ extnsn: "ext"
338
+ fall: "fall"
339
+ falls: "fls"
340
+ ferry: "fry"
341
+ frry: "fry"
342
+ fry: "fry"
343
+ field: "fld"
344
+ fld: "fld"
345
+ fields: "flds"
346
+ flds: "flds"
347
+ flat: "flt"
348
+ flt: "flt"
349
+ flats: "flts"
350
+ flts: "flts"
351
+ ford: "frd"
352
+ frd: "frd"
353
+ fords: "frds"
354
+ frds: "frds"
355
+ forest: "frst"
356
+ forests: "frst"
357
+ frst: "frst"
358
+ forg: "frg"
359
+ forge: "frg"
360
+ frg: "frg"
361
+ forges: "frgs"
362
+ frgs: "frgs"
363
+ fork: "frk"
364
+ frk: "frk"
365
+ forks: "frks"
366
+ frks: "frks"
367
+ fort: "ft"
368
+ frt: "ft"
369
+ ft: "ft"
370
+ freeway: "fwy"
371
+ freewy: "fwy"
372
+ frway: "fwy"
373
+ frwy: "fwy"
374
+ garden: "gdn"
375
+ gardn: "gdn"
376
+ gdn: "gdn"
377
+ grden: "gdn"
378
+ gardens: "gdns"
379
+ gdns: "gdns"
380
+ grdns: "gdns"
381
+ gateway: "gtwy"
382
+ gatewy: "gtwy"
383
+ gatway: "gtwy"
384
+ gtway: "gtwy"
385
+ gtwy: "gtwy"
386
+ glen: "gln"
387
+ gln: "gln"
388
+ glens: "glns"
389
+ glns: "glns"
390
+ green: "grn"
391
+ grn: "grn"
392
+ greens: "grns"
393
+ grns: "grns"
394
+ grov: "grv"
395
+ grove: "grv"
396
+ grv: "grv"
397
+ groves: "grvs"
398
+ grvs: "grvs"
399
+ harb: "hbr"
400
+ harbor: "hbr"
401
+ harbr: "hbr"
402
+ hbr: "hbr"
403
+ hrbor: "hbr"
404
+ harbors: "hbrs"
405
+ hbrs: "hbrs"
406
+ haven: "hvn"
407
+ hvn: "hvn"
408
+ heights: "hts"
409
+ ht: "hts"
410
+ hts: "hts"
411
+ highway: "hwy"
412
+ highwy: "hwy"
413
+ hiway: "hwy"
414
+ hiwy: "hwy"
415
+ hway: "hwy"
416
+ hwy: "hwy"
417
+ hill: "hl"
418
+ hl: "hl"
419
+ hills: "hls"
420
+ hls: "hls"
421
+ hllw: "holw"
422
+ hollow: "holw"
423
+ hollows: "holw"
424
+ holw: "holw"
425
+ holws: "holw"
426
+ inlet: "inlt"
427
+ inlt: "inlt"
428
+ is: "is"
429
+ island: "is"
430
+ islnd: "is"
431
+ islands: "iss"
432
+ islnds: "iss"
433
+ iss: "iss"
434
+ isle: "isle"
435
+ isles: "isle"
436
+ jct: "jct"
437
+ jction: "jct"
438
+ jctn: "jct"
439
+ junction: "jct"
440
+ junctn: "jct"
441
+ juncton: "jct"
442
+ jctns: "jcts"
443
+ jcts: "jcts"
444
+ junctions: "jcts"
445
+ key: "ky"
446
+ ky: "ky"
447
+ keys: "kys"
448
+ kys: "kys"
449
+ knl: "knl"
450
+ knol: "knl"
451
+ knoll: "knl"
452
+ knls: "knls"
453
+ knolls: "knls"
454
+ lake: "lk"
455
+ lk: "lk"
456
+ lakes: "lks"
457
+ lks: "lks"
458
+ land: "land"
459
+ landing: "lndg"
460
+ lndg: "lndg"
461
+ lndng: "lndg"
462
+ lane: "ln"
463
+ ln: "ln"
464
+ lgt: "lgt"
465
+ light: "lgt"
466
+ lgts: "lgts"
467
+ lights: "lgts"
468
+ lf: "lf"
469
+ loaf: "lf"
470
+ lck: "lck"
471
+ lock: "lck"
472
+ lcks: "lcks"
473
+ locks: "lcks"
474
+ ldg: "ldg"
475
+ ldge: "ldg"
476
+ lodg: "ldg"
477
+ lodge: "ldg"
478
+ loop: "loop"
479
+ loops: "loop"
480
+ mall: "mall"
481
+ manor: "mnr"
482
+ manors: "mnrs"
483
+ meadow: "mdw"
484
+ mdw: "mdw"
485
+ mdws: "mdws"
486
+ meadows: "mdws"
487
+ medows: "mdws"
488
+ ml: "ml"
489
+ mill: "ml"
490
+ mills: "mls"
491
+ missn: "msn"
492
+ msn: "msn"
493
+ mssn: "msn"
494
+ motorway: "mtwy"
495
+ mtwy: "mtwy"
496
+ mnt: "mt"
497
+ mount: "mt"
498
+ mt: "mt"
499
+ mntain: "mtn"
500
+ mntn: "mtn"
501
+ mountain: "mtn"
502
+ mountin: "mtn"
503
+ mtin: "mtn"
504
+ mtn: "mtn"
505
+ mntns: "mtns"
506
+ mountains: "mtns"
507
+ nck: "nck"
508
+ neck: "nck"
509
+ orch: "orch"
510
+ orchard: "orch"
511
+ orchrd: "orch"
512
+ oval: "oval"
513
+ ovl: "oval"
514
+ overpass: "opas"
515
+ park: "park"
516
+ prk: "park"
517
+ parks: "park"
518
+ parkway: "pkwy"
519
+ parkwy: "pkwy"
520
+ pkway: "pkwy"
521
+ pkwy: "pkwy"
522
+ pky: "pkwy"
523
+ parkways: "pkwy"
524
+ pkwys: "pkwy"
525
+ pass: "pass"
526
+ passage: "psge"
527
+ path: "path"
528
+ paths: "path"
529
+ pike: "pike"
530
+ pikes: "pike"
531
+ pine: "pne"
532
+ pne: "pne"
533
+ pines: "pnes"
534
+ pnes: "pnes"
535
+ pl: "pl"
536
+ place: "pl"
537
+ plain: "pln"
538
+ pln: "pln"
539
+ plains: "plns"
540
+ plns: "plns"
541
+ plaza: "plz"
542
+ plz: "plz"
543
+ plza: "plz"
544
+ point: "pt"
545
+ pt: "pt"
546
+ points: "pts"
547
+ pts: "pts"
548
+ port: "prt"
549
+ prt: "prt"
550
+ ports: "prts"
551
+ prts: "prts"
552
+ pr: "pr"
553
+ prairie: "pr"
554
+ prr: "pr"
555
+ rad: "radl"
556
+ radial: "radl"
557
+ radiel: "radl"
558
+ radl: "radl"
559
+ ramp: "ramp"
560
+ ranch: "rnch"
561
+ ranches: "rnch"
562
+ rnch: "rnch"
563
+ rnchs: "rnchs"
564
+ rapid: "rpd"
565
+ rpd: "rpd"
566
+ rapids: "rpds"
567
+ rpds: "rpds"
568
+ rest: "rst"
569
+ rst: "rst"
570
+ rdg: "rdg"
571
+ rdge: "rdg"
572
+ ridge: "rdg"
573
+ rdgs: "rdgs"
574
+ ridges: "rdgs"
575
+ riv: "riv"
576
+ river: "riv"
577
+ rvr: "riv"
578
+ rivr: "riv"
579
+ rd: "rd"
580
+ road: "rd"
581
+ rds: "rds"
582
+ roads: "rds"
583
+ route: "rte"
584
+ rte: "rte"
585
+ row: "row"
586
+ rue: "rue"
587
+ run: "run"
588
+ shoal: "shl"
589
+ shl: "shl"
590
+ shls: "shls"
591
+ shoals: "shls"
592
+ shr: "shr"
593
+ shoar: "shr"
594
+ shore: "shr"
595
+ shrs: "shrs"
596
+ shoars: "shrs"
597
+ shores: "shrs"
598
+ skwy: "skwy"
599
+ skyway: "skwy"
600
+ slip: "slip"
601
+ spg: "spg"
602
+ spng: "spg"
603
+ spring: "spg"
604
+ spgs: "spgs"
605
+ spngs: "spgs"
606
+ springs: "spgs"
607
+ spur: "spur"
608
+ sq: "sq"
609
+ sqr: "sq"
610
+ sqre: "sq"
611
+ squ: "sq"
612
+ square: "sq"
613
+ sqrs: "sqs"
614
+ sqs: "sqs"
615
+ squares: "sqs"
616
+ sta: "sta"
617
+ station: "sta"
618
+ statn: "sta"
619
+ stn: "sta"
620
+ stra: "stra"
621
+ strav: "stra"
622
+ straven: "stra"
623
+ stravenue: "stra"
624
+ stravn: "stra"
625
+ strvn: "stra"
626
+ strvnue: "stra"
627
+ stream: "strm"
628
+ streme: "strm"
629
+ strm: "strm"
630
+ st: "st"
631
+ street: "st"
632
+ strt: "st"
633
+ str: "st"
634
+ sts: "sts"
635
+ strts: "sts"
636
+ streets: "sts"
637
+ smt: "smt"
638
+ sumit: "smt"
639
+ summit: "smt"
640
+ ter: "ter"
641
+ terr: "ter"
642
+ terrace: "ter"
643
+ throughway: "trwy"
644
+ trwy: "trwy"
645
+ trace: "trce"
646
+ trce: "trce"
647
+ traces: "trce"
648
+ track: "trak"
649
+ tracks: "trak"
650
+ trk: "trak"
651
+ trks: "trak"
652
+ trafficway: "trfy"
653
+ trfy: "trfy"
654
+ trail: "trl"
655
+ trails: "trl"
656
+ trl: "trl"
657
+ trls: "trl"
658
+ trailer: "trlr"
659
+ trlr: "trlr"
660
+ trlrs: "trlr"
661
+ tunel: "tunl"
662
+ tunl: "tunl"
663
+ tunls: "tunl"
664
+ tunnel: "tunl"
665
+ tunnels: "tunl"
666
+ tunnl: "tunl"
667
+ tpke: "tpke"
668
+ trnpk: "tpke"
669
+ turnpike: "tpke"
670
+ turnpk: "tpke"
671
+ underpass: "upas"
672
+ upas: "upas"
673
+ un: "un"
674
+ union: "un"
675
+ unions: "uns"
676
+ uns: "uns"
677
+ valley: "vly"
678
+ vally: "vly"
679
+ vlly: "vly"
680
+ vly: "vly"
681
+ valleys: "vlys"
682
+ vlys: "vlys"
683
+ vdct: "via"
684
+ via: "via"
685
+ viadct: "via"
686
+ viaduct: "via"
687
+ view: "vw"
688
+ vw: "vw"
689
+ views: "vws"
690
+ vws: "vws"
691
+ vill: "vlg"
692
+ villag: "vlg"
693
+ village: "vlg"
694
+ villg: "vlg"
695
+ villiage: "vlg"
696
+ vlg: "vlg"
697
+ villages: "vlgs"
698
+ vlgs: "vlgs"
699
+ ville: "vl"
700
+ vis: "vis"
701
+ vist: "vis"
702
+ vista: "vis"
703
+ vst: "vis"
704
+ vsta: "vis"
705
+ walk: "walk"
706
+ walks: "walk"
707
+ way: "way"
708
+ wy: "way"
709
+ ways: "ways"
710
+ wells: "wls"
711
+ wls: "wls"
712
+ substitutions:
713
+ "1e": "eerste"
714
+ eerste: "1e"
715
+ burgemeester: "burg"
716
+ commissaris: "comm"
717
+ de: "d"
718
+ doctor: "dr"
719
+ dokter: "dr"
720
+ doktor: "dr"
721
+ monseigneur: "mgr"
722
+ pastoor: "past"
723
+ prof: "pr"
724
+ professor: "pr"
725
+ saint: "st"
726
+ sainte: "st"
727
+ san: "st"
728
+ sankt: "st"
729
+ sint: "st"
730
+ ste: "st"
731
+ township: "twp"
732
+ van: "v"
733
+ vd: "van der"
734
+ translations_en_fr:
735
+ ave: av
736
+ blvd: boul
737
+ east: est
738
+ north: nord
739
+ northeast: nord-est
740
+ northwest: nord-ouest
741
+ south: sud
742
+ southeast: sud-est
743
+ southwest: sud-ouest
744
+ st: rue
745
+ street: rue
746
+ west: ouest
747
+ translations_fr_en:
748
+ av: ave
749
+ boul: blvd
750
+ est: east
751
+ nord: north
752
+ "nord-est": northeast
753
+ "nord-ouest": northwest
754
+ ouest: west
755
+ rue: street
756
+ sud: south
757
+ "sud-est": southeast
758
+ "sud-ouest": southwest
759
+ with_diacritics: "ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž"
760
+ without_diacritics: "AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz"