@berlin-vegan/berlin-vegan-data-js
v0.2.0
Published
A library and stand-alone program that specifies the native open-source JSON format used by Berlin-Vegan and allows to convert data in this format to be converted to OpenStreetMap/Overpass and Schema.org JSON formats.
Downloads
1
Maintainers
Readme
berlin-vegan-data-js
A library and stand-alone program that specifies the native open-source JSON format used by Berlin-Vegan and allows to convert data in this format to be converted to OpenStreetMap/Overpass and Schema.org JSON formats.
Native format
The backend berlin-vegan-data and the
berlin-vegan-tools generate JSON files of the native
format. The TypeScript files in
src/main/model/json/native
specify it.
API endpoints
For Berlin-Vegan, the API endpoints are:
- Gastronomy locations: http://www.berlin-vegan.de/app/data/GastroLocations.json
- Shopping locations: http://www.berlin-vegan.de/app/data/ShoppingLocations.json
Conversion
You can covert data in the native format to the following target formats:
- OSM JSON
For data that cannot be expressed with OpenStreetMap tags, we add custom tags at
elements/custom_tags/custom:*
. - Overpass GeoJSON For data that cannot be expressed with OpenStreetMap tags, we add properties prefixed with "custom:".
- Schema.org Only a subset of the information can be expressed in this format, and we do not add custom properties.
For Overpass formats, we use established OpenStreetMap keys where possible, but we also use some additional key that we deem appropriate for OpenStreetMaps. Information not appropriate for OSM goes into custom tags. OSM tags have string values, but custom tags may be structured.
For some information, there are multiple established OSM tags, e.g. "email" and "contact:email". You may opt to include these redundant tags.
Usage
Command-line
Example:
berlin-vegan-data-js --schema schema-org -in http://www.berlin-vegan.de/app/data/GastroLocations.json --config config.json
For the format of the config file, see
src/main/conversion/Config.ts
and
src/main/conversion/default-config.json
.
To see all options, run:
berlin-vegan-data-js --help
API
Example:
import { SchemaOrgConverter } from "@berlin-vegan/berlin-vegan-data-js"
...
const foodEstablishments = new SchemaOrgConverter(config).convertGastroLocations(locations)
Development
No global modules other than npm
are necessary.
- Run
npm install
once after checking out. - Then, run either
npm test
for a single full build cycle (clean, compile, lint, test), ornpm start
for running the full cycle initially and then watch for file changes which will trigger appropriate parts of the build cycle (compile, lint, test). The watch mode is not bulletproof: It works for file updates, but you may get problems if you rename or delete files. - Publish with
npm publish --access public
. This will run the full build cycle before publishing.
License
AGPL-3.0-only (see LICENSE.txt
)
Copyright (C) 2015-2020 Berlin-Vegan