Skip to content

Key Concepts

Scott Olsen edited this page Oct 17, 2019 · 27 revisions

This page describes user-visible concepts presented throughout Ground. Implementation details are out of the scope of this page; diagrams and definitions are conceptual, and may exclude details present in actual designs and code.

Overview

In Ground, all data is associated with a project. Projects consists of one or more layers, which in turn contain features visible on a map. Depending on each layer's settings, contributors may be tasked with providing observations about each feature by completing a custom form defined by a project manager.

In a nutshell, the main hierarchy of entities or "things" is as follows:

See diagram below for a more detailed representation.

A ludicrously oversimplified example
Project: "Local area survey"
  Layer 1: "Households"
    Form Layout: [Year: Number, Income: Number]
    Feature 1: "Jane Doe's house", 39.585,-70.155
      Observation 1: [Year: 2010, Income: 123456]
      Observation 2: [Year: 2016, Income: 234567]
    Feature 2: "Bill Smith's house", 39.584,-70.156
      Observation 1: [Year: 2011, Income: 223311]
  Layer 2: "Local businesses"
    Form Layout: [Year: Number, Revenue: Number, Corp: C|S]
    Feature 1: "Acme Hardware Store", 39.562,-70.156
      Observation 1: [Year: 2011, Revenue: 9223119, Corp: "C"]
    Feature 2: "Foobar Widgets, Inc.", 39.581,-70.216
      Observation 1: [Year: 2012, Revenue: 82820000, Corp: "S"]
      Observation 2: [Year: 2013, Revenue: 85910000, Corp: "S"]

Entities

Project

A data collection project, consisting of a map with a title, description, sharing options, and the other entities described here.

Layers

A layer is a collection of vector map features (points, lines, and polygons) shown on the map. They are created and managed by managers of the project. Managers may perform the following operations with a layer:

  • Import a set of "predefined" features. Features may be imported in bulk when setting up the project.
  • Specify whether contributors may also add points, lines, and/or polygons.
  • Define the default style (marker and color) to be used when features are added by contributors or imported by managers.

Layers were previously referred to as feature types and may still appear as such in code and older prototype database instances. In practice, the two are currently synonymous, but their usage is expected to diverge over time.

Form

For each layer, managers may also design a form that contributors use to record observations about features. For example, a manager could create a layer called "Trees" in which each point feature represents a tree. If data collectors are expected to gather information about trees, the manager can define a custom form for collecting biophysical data about trees (tree species, width, height, age, etc.). Contributors then use the form to register their observations about trees in the field. For each tree (i.e., feature in the "Trees" layer), the form can be completed any number times (multiple observations can be added to each feature), in order to support periodic remeasurement or crowd-sourcing, for example.

Features

Point, lines, or polygons in a layer, e.g. “Household @ location X,Y”, “Forest plot 145-876”. Each includes a geometry (location, shape) and zero or more observations. Features may be added to a layer by contributors collecting data and/or imported in advance by project managers depending on the type of project.

Observations

Data about a particular feature, gathered by contributors using the form provided by the project manager.

Observations were previously referred to as Records. This may still exist in some code and documentation; the two are synonymous.

User roles

The following roles are defined per project unless otherwise stated.

Project owner

The original creator of a project. Project owners are automatically also considered managers.

Note: Features and observations are also assigned an owner upon creation. Omitting here for simplicity.

Project managers

Managers can access all project settings and sharing options for a specific project, as well contribute data to a project like contributors.

Contributors

Depending on the layer settings specified by project managers, contributors may add features to existing map layers, and/or they may add observations to existing features.

Contributors are not allowed to see or edit the project (its layers, forms, sharing, etc.). Only managers can determine whether contributors may add new features and/or observations.

By default, contributors are the owners of the features and observations that they add to a layer. Contributors may modify features and observations they own (i.e. ones they added), but not those of others.

Viewers

Users with read-only access to the project. If the manager sets the project as public, anyone (including anonymous users) may act as viewers.

Diagram

Putting it all together, we end up with the following (simplified) hierarchy:

Ground Key Concepts

For a key to cardinalities pictured here (one-to-many, many-to-many, etc.), see Crow's Foot Notation on Wikipedia.