{
  "formatVersion": 1,
  "generatedAt": "2026-10-11T10:11:50.778Z",
  "publisher": {
    "name": {
      "en": "Daniel Kastl"
    },
    "url": "https://github.com/dkastl"
  },
  "license": "CC0-1.0",
  "models": [
    {
      "type": "Activity",
      "kind": "entity",
      "typeIri": "https://dkastl.github.io/models/ns/activity#Activity",
      "subject": "activity",
      "domain": "activity",
      "source": "minted",
      "contextUrl": "https://dkastl.github.io/models/context/activity/v0.2.0.jsonld",
      "contextAliasUrl": "https://dkastl.github.io/models/context/activity/v0.jsonld",
      "schemaUrl": "https://dkastl.github.io/models/schema/activity/Activity/v0.2.0.json",
      "vocabularyUrl": "https://dkastl.github.io/models/vocab/activity/v0.2.0.jsonld",
      "version": "0.2.0",
      "status": "experimental",
      "title": {
        "en": "Activity"
      },
      "description": {
        "en": "One outdoor activity recorded as a GPS track: a ride, a hike, a ski day. When it started and ended, how far, how high up and down, the route as a line, and the peaks reached. The numbers come from the track as the recording app computed them."
      },
      "sampleProperties": [
        "name",
        "sport",
        "startTime",
        "endTime",
        "distance",
        "movingDuration",
        "elevationGain",
        "elevationLoss",
        "maxElevation",
        "runs",
        "summits",
        "commute",
        "location",
        "trackUrl"
      ],
      "pageUrl": "https://dkastl.github.io/models/models/activity/Activity/",
      "exampleUrls": [
        "https://dkastl.github.io/models/examples/activity/Activity/example.json"
      ],
      "mappingUrls": [
        "https://dkastl.github.io/models/mapping/activity/Activity/gpx.yaml",
        "https://dkastl.github.io/models/mapping/activity/Activity/strava.yaml"
      ],
      "mappings": [
        {
          "url": "https://dkastl.github.io/models/mapping/activity/Activity/gpx.yaml",
          "standard": {
            "ja": "gpx",
            "en": "GPX 1.1, the GPS Exchange Format (TopoGrafix)"
          }
        },
        {
          "url": "https://dkastl.github.io/models/mapping/activity/Activity/strava.yaml",
          "standard": {
            "ja": "strava",
            "en": "Strava API v3, activities (SummaryActivity, SportType)"
          }
        }
      ],
      "attributes": [
        {
          "name": "name",
          "iri": "https://uri.etsi.org/ngsi-ld/name",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "Name of the activity, for example \"Rokko from Ashiya via Rock Garden\""
          }
        },
        {
          "name": "sport",
          "iri": "https://dkastl.github.io/models/ns/activity#sport",
          "ngsiType": "Property",
          "type": "string",
          "enum": [
            "ride",
            "gravelRide",
            "mountainBikeRide",
            "hike",
            "walk",
            "run",
            "trailRun",
            "alpineSki",
            "backcountrySki",
            "nordicSki",
            "snowboard",
            "snowshoe"
          ],
          "required": true,
          "description": {
            "en": "The sport, named after Strava's sport types: ride, gravelRide, mountainBikeRide, hike, walk, run, trailRun, alpineSki, backcountrySki, nordicSki, snowboard, snowshoe"
          }
        },
        {
          "name": "startTime",
          "iri": "https://schema.org/startTime",
          "ngsiType": "Property",
          "type": "string",
          "format": "date-time",
          "required": true,
          "description": {
            "en": "When it started, the time of the first track point (schema.org startTime)"
          }
        },
        {
          "name": "endTime",
          "iri": "https://schema.org/endTime",
          "ngsiType": "Property",
          "type": "string",
          "format": "date-time",
          "required": false,
          "description": {
            "en": "When it ended, the time of the last track point (schema.org endTime)"
          }
        },
        {
          "name": "distance",
          "iri": "https://dkastl.github.io/models/ns/activity#distance",
          "ngsiType": "Property",
          "type": "number",
          "required": false,
          "description": {
            "en": "Distance covered, in metres"
          }
        },
        {
          "name": "movingDuration",
          "iri": "https://dkastl.github.io/models/ns/activity#movingDuration",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "Time in motion, without stops, as an ISO 8601 duration (for example PT1H52M)"
          }
        },
        {
          "name": "elevationGain",
          "iri": "https://dkastl.github.io/models/ns/activity#elevationGain",
          "ngsiType": "Property",
          "type": "number",
          "required": false,
          "description": {
            "en": "Total climb, in metres"
          }
        },
        {
          "name": "elevationLoss",
          "iri": "https://dkastl.github.io/models/ns/activity#elevationLoss",
          "ngsiType": "Property",
          "type": "number",
          "required": false,
          "description": {
            "en": "Total descent, in metres; for a ski day with lifts, the vertical skied"
          }
        },
        {
          "name": "maxElevation",
          "iri": "https://dkastl.github.io/models/ns/activity#maxElevation",
          "ngsiType": "Property",
          "type": "number",
          "required": false,
          "description": {
            "en": "Highest point reached, in metres above sea level"
          }
        },
        {
          "name": "runs",
          "iri": "https://dkastl.github.io/models/ns/activity#runs",
          "ngsiType": "Property",
          "type": "integer",
          "required": false,
          "description": {
            "en": "Number of downhill runs, for skiing and snowboarding"
          }
        },
        {
          "name": "summits",
          "iri": "https://dkastl.github.io/models/ns/activity#summits",
          "ngsiType": "Relationship",
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri"
          },
          "target": "Peak",
          "multi": true,
          "required": false,
          "description": {
            "en": "The peaks reached, as Peak entities, for hikes and ski tours"
          }
        },
        {
          "name": "commute",
          "iri": "https://dkastl.github.io/models/ns/activity#commute",
          "ngsiType": "Property",
          "type": "boolean",
          "required": false,
          "description": {
            "en": "true when the activity was a commute"
          }
        },
        {
          "name": "location",
          "iri": "https://uri.etsi.org/ngsi-ld/location",
          "ngsiType": "GeoProperty",
          "type": "object",
          "required": true,
          "description": {
            "en": "The route: a LineString, or a MultiLineString when the track has gaps. Simplified; the full track is at trackUrl"
          }
        },
        {
          "name": "trackUrl",
          "iri": "https://dkastl.github.io/models/ns/activity#trackUrl",
          "ngsiType": "Property",
          "type": "string",
          "format": "uri",
          "required": false,
          "description": {
            "en": "Where the full GPS track (GPX) is published"
          }
        }
      ]
    },
    {
      "type": "Peak",
      "kind": "entity",
      "typeIri": "https://dkastl.github.io/models/ns/activity#Peak",
      "subject": "activity",
      "domain": "activity",
      "source": "minted",
      "contextUrl": "https://dkastl.github.io/models/context/activity/v0.2.0.jsonld",
      "contextAliasUrl": "https://dkastl.github.io/models/context/activity/v0.jsonld",
      "schemaUrl": "https://dkastl.github.io/models/schema/activity/Peak/v0.2.0.json",
      "vocabularyUrl": "https://dkastl.github.io/models/vocab/activity/v0.2.0.jsonld",
      "version": "0.2.0",
      "status": "experimental",
      "title": {
        "en": "Peak"
      },
      "description": {
        "en": "A mountain summit, as OpenStreetMap maps it (natural=peak), so that activities can say which peaks they reached."
      },
      "sampleProperties": [
        "name",
        "elevation",
        "osmId",
        "wikidata",
        "location"
      ],
      "pageUrl": "https://dkastl.github.io/models/models/activity/Peak/",
      "exampleUrls": [
        "https://dkastl.github.io/models/examples/activity/Peak/example.json"
      ],
      "mappingUrls": [
        "https://dkastl.github.io/models/mapping/activity/Peak/osm.yaml"
      ],
      "mappings": [
        {
          "url": "https://dkastl.github.io/models/mapping/activity/Peak/osm.yaml",
          "standard": {
            "ja": "osm",
            "en": "OpenStreetMap, natural=peak"
          }
        }
      ],
      "attributes": [
        {
          "name": "name",
          "iri": "https://uri.etsi.org/ngsi-ld/name",
          "ngsiType": "Property",
          "type": "string",
          "required": true,
          "description": {
            "en": "Name of the peak, as on the map (for example 六甲山)"
          }
        },
        {
          "name": "elevation",
          "iri": "https://dkastl.github.io/models/ns/activity#elevation",
          "ngsiType": "Property",
          "type": "number",
          "required": false,
          "description": {
            "en": "Height of the summit, in metres above sea level (OpenStreetMap ele)"
          }
        },
        {
          "name": "osmId",
          "iri": "https://dkastl.github.io/models/ns/activity#osmId",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "The OpenStreetMap node of the summit, for example node/1513935256"
          }
        },
        {
          "name": "wikidata",
          "iri": "https://dkastl.github.io/models/ns/activity#wikidata",
          "ngsiType": "Property",
          "type": "string",
          "required": false,
          "description": {
            "en": "The Wikidata item of the peak, for example Q462120"
          }
        },
        {
          "name": "location",
          "iri": "https://uri.etsi.org/ngsi-ld/location",
          "ngsiType": "GeoProperty",
          "type": "object",
          "required": true,
          "description": {
            "en": "The summit, as a point"
          }
        }
      ]
    }
  ]
}
