-
Notifications
You must be signed in to change notification settings - Fork 41
Data Model Definition
Data-Model-Definition
A clear and sustainable/migratable data model must be established for the project in 2018 in order to avoid past failures to maintain user data as site updates occur. StoryLayers are the base unit of content on the site, and along with narrative elements called StoryPins, one or more StoryLayers can comprise a MapStory. Thus Data Model considerations relate to each.
StoryLayers support three classes of geometry:
- Points
- Lines
- Polygons
Furthermore these geometries must be projected in a well known EPSG projection. click here for a list of supported projections
Currently, we only support strongly-typed geometries. Future consideration should be given to mixed-type geometries (such as points and polygons in the same file). this is of particular concern for KML and geoJSON files.
Each StoryLayer is assigned a unique ID and within the StoryLayer, each feature has a unique ID. These IDs are used when edititing the layer.
See the next section
StoryLayers may or may not contain additional attributes for context. These attributes can be strings, datetimes, integers, or real numbers.
Furthermore, attributes can be used to populate contextual information (such as StoryPins) and used for styling of the layer based upon user-defined rules.
Attribute information should be defined within the data quality statement and users should be encouraged to use standard naming conventions where applicable. This could be done via a dialog within the import process that requires the user to define each attribute field or have the option to ignore attributes for import.
Each StoryLayer may have one or more styles attached to it by individual users, including user who are not the original author of the StoryLayer.
Each StoryLayer also contains metadata to maintain data quality:
- Category (used site-wide to group StoryLayers into related categories)
- These categories should be a special class of
Tags/Hooks
used to discover related content
- These categories should be a special class of
- Summary (A brief explanation of what the story layer is about)
Purpose (A breif explanationof why this StoryLayer was produced)- Data Source (A StoryLayer Level citation of who generated the dataset)
- Data Quality Statement (A description of any data related consideration ie confidence level, resolution, assumptions and/or models used to generate the data)
- Some Data Quality Statements should be required or separated out into multiple metadata categories. for example, the Data Quality Statement should contain the Schema definition.
Users should be able to attach tags to StoryLayers. These tags would serve as a form of searchable metadata.
An Initiative Lead can create a StoryLayer “Schema” file that allows individual users to create additional datasets that can be seamlessly appended to an existing StoryLayer, creating the opportunity for a community of users to promote the growth of large-scale StoryLayers and minimize duplication of similar layers. Available schemas will be listed in the Import module so users can select to ‘append’ their data too, rather than conduct a separate upload.
Location and Time/era information in a StoryLayer can also be tied to pre-set gazetteer hooks at the point of import, using the LinkedData API. This will help to drive location and time/era searches at an individual feature level across large collections of linked StoryLayers through the Explore interface.
NOTE: StoryLayers can also be temporal sequences of rasters, or an individual raster in “freeze frame.” For these StoryLayers, the Time, Metadata, and Tags sections above still relate.
MapStories are comprised of one or more StoryLayers and narrative elements called StoryPins, StoryFrames, Timelines and Legends, that can be packaged in to one or multiple Chapters.
Each MapStory will apply specific Styles to each vector StoryLayer in the MapStory.
StoryPins will annotate the MapStory as narrative elements.
StoryFrames provide the sequence of spatio-temporal views through which a MapStoryteller wants a viewer to see the MapStory.
Chapters are packages of StoryLayers, StoryFrames, StoryPins, Legends and Timelines. A MapStory can have one or multiple Chapters.
Each MapStory also contains metadata to maintain data quality:
- Category (used site-wide to group MapStories into related categories)
- These Categories should be a special class of
Tags/Hooks
used to discover related content
- These Categories should be a special class of
- Summary (A brief explanation of what the MapStory is about)
Purpose (A brief explanation of why this MapStory was produced)- Data Source (A MapStory Level citation of who generated the Narrative)
- Data Quality Statement (A description of any data related consideration ie confidence level, resolution, assumptions and/or models used to generate the data)
- Some Data Quality Statements should be required or separated out into multiple metadata categories.
Users should be able to attach tags to MapStories. These tags would serve as a form of searchable metadata.
Beta Baseline and Testing
- How to request a feature
- How to create a spike
- How to report a bug
- How to request a design story
- How to create a milestone
- Developer Setup
- Guidelines for Submitting a Pull Request
- HTML Styleguide
- CSS Styleguide
- Javascript Styleguide
- Python Styleguide
- Testing Guide
Project Architecture