English
Project draft
A grouping of tasks: a project in a tracker, one disaster-response operation, a campaign. Called differently in different settings, with the same common attributes.
| Japanese name | プロジェクト |
| Type IRI | https://datamodels.jp/ns/task/Project |
| @context | https://datamodels.jp/context/task/v1.jsonld (alias, latest compatible version)https://datamodels.jp/context/task/v1.0.0.jsonld (this version, immutable) |
| JSON Schema | /schema/task/Project/v1.json/schema/task/Project/v1.0.0.json |
| Examples | key-values · normalized |
| Source | github.com/geolonia/datamodels |
Attributes
name
requiredName or subject
- Value: Property, string
- IRI:
https://uri.etsi.org/ngsi-ld/name
description
Description
- Value: Property, string
- IRI:
https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.8.jsonld#description
identifier
Short handle: a slug or code, unique within the source system
- Value: Property, string
- IRI:
https://schema.org/identifier
parent
Parent project
- Value: Relationship → Project
- IRI:
https://datamodels.jp/ns/task/parent
projectStatus
State; status is protected in the core context, hence projectStatus
- Value: Property, string:
active|closed|archived - IRI:
https://datamodels.jp/ns/task/projectStatus
isPublic
true when public
- Value: Property, boolean
- IRI:
https://datamodels.jp/ns/task/isPublic
homepage
Homepage
- Value: Property, string (uri)
- IRI:
https://schema.org/url
start
Planned start
- Value: Property, string (date-time)
- IRI:
https://datamodels.jp/ns/task/start
end
Planned end
- Value: Property, string (date-time)
- IRI:
https://datamodels.jp/ns/task/end
location
Location as any GeoJSON geometry: point, line, polygon or a collection
- Value: GeoProperty (Geometry)
- IRI:
https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.8.jsonld#location
keywords
Keywords or labels
- Value: Property, array
- IRI:
https://schema.org/keywords
source
URL of this object in the system of record
- Value: Property, string (uri)
- IRI:
https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/source
externalId
Identifier in the system of record
- Value: Property, string
- IRI:
https://datamodels.jp/ns/task/externalId
dateCreated
Creation time in the system of record (distinct from the broker attribute createdAt)
- Value: Property, string (date-time)
- IRI:
https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateCreated
dateModified
Last modification time in the system of record
- Value: Property, string (date-time)
- IRI:
https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateModified
Example (key-values)
The examples are a fictional scenario (heavy rain in Chiyoda, Tokyo). Place names and codes are real; the events, people and teams are invented. See writing examples.
json
{
"id": "urn:ngsi-ld:Project:heavy-rain-2026-07",
"type": "Project",
"name": "令和8年7月大雨 災害対応",
"description": "7/8〜 大雨に伴う区の災害対応オペレーション",
"identifier": "heavy-rain-2026-07",
"projectStatus": "active",
"isPublic": false,
"homepage": "https://tracker.example.jp/projects/heavy-rain-2026-07",
"start": "2026-07-08T07:00:00+09:00",
"location": {
"type": "Polygon",
"coordinates": [
[
[
139.73,
35.67
],
[
139.78,
35.67
],
[
139.78,
35.705
],
[
139.73,
35.705
],
[
139.73,
35.67
]
]
]
},
"keywords": [
"大雨",
"災害対応"
],
"source": "https://tracker.example.jp/projects/heavy-rain-2026-07",
"externalId": "42",
"dateCreated": "2026-07-08T06:00:00+09:00",
"dateModified": "2026-07-08T11:05:00+09:00"
}Example (normalized)
json
{
"@context": [
"https://datamodels.jp/context/task/v1.0.0.jsonld",
"https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.8.jsonld"
],
"id": "urn:ngsi-ld:Project:heavy-rain-2026-07",
"type": "Project",
"name": {
"type": "Property",
"value": "令和8年7月大雨 災害対応"
},
"description": {
"type": "Property",
"value": "7/8〜 大雨に伴う区の災害対応オペレーション"
},
"identifier": {
"type": "Property",
"value": "heavy-rain-2026-07"
},
"projectStatus": {
"type": "Property",
"value": "active"
},
"isPublic": {
"type": "Property",
"value": false
},
"homepage": {
"type": "Property",
"value": "https://tracker.example.jp/projects/heavy-rain-2026-07"
},
"start": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-07-08T07:00:00+09:00"
}
},
"location": {
"type": "GeoProperty",
"value": {
"type": "Polygon",
"coordinates": [
[
[
139.73,
35.67
],
[
139.78,
35.67
],
[
139.78,
35.705
],
[
139.73,
35.705
],
[
139.73,
35.67
]
]
]
}
},
"keywords": {
"type": "Property",
"value": [
"大雨",
"災害対応"
]
},
"source": {
"type": "Property",
"value": "https://tracker.example.jp/projects/heavy-rain-2026-07"
},
"externalId": {
"type": "Property",
"value": "42"
},
"dateCreated": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-07-08T06:00:00+09:00"
}
},
"dateModified": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-07-08T11:05:00+09:00"
}
}
}Link header
http
Link: <https://datamodels.jp/context/task/v1.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"How to validate data and send it to a broker: Using the models.
Corresponding standards: GitHub repository
| This model | Maps to | Note |
|---|---|---|
name | name | |
description | description | |
identifier | full_name | |
parent | no counterpart | a fork's parent means the copied-from repository |
projectStatus | archived | true → archived |
isPublic | private | negated |
homepage | html_url | |
keywords | topics | |
source | html_url | |
externalId | id | |
dateCreated | created_at | |
dateModified | updated_at |
Corresponding standards: Redmine project
| This model | Maps to | Note |
|---|---|---|
name | name | |
description | description | |
identifier | identifier | |
parent | parent.id | |
projectStatus | status | 1 → active |
isPublic | is_public | |
homepage | homepage | |
location | geom | redmine_gtt project boundary |
source | <base_url>/projects/<identifier> | |
externalId | id | |
dateCreated | created_on | |
dateModified | updated_on |
Notes
- Upstream considered (2026-09-18): Smart Data Models dataModel.IssueTracking (Open311 service_requests/services; IUDX IssueReporting), both citizen-complaint records shaped by one country's municipal process, not task models; dataModel.Transportation CityWork and dataModel.PredictiveMaintenance, domain-specific. RFC 8984 (JSCalendar Task) is the universal reference and supplies the value spaces used here. See issue #22.
- The core is deliberately small. System-specific data (time spent, milestones, watchers, custom fields, map rotation) belongs in extensions.
- status is a protected core-context term, hence projectStatus.
Model content on this page is licensed under CC BY 4.0. LICENSE-CONTENT