日本語
Task ドラフト
タスク
追跡される作業単位。課題管理システムの「チケット」「Issue」、カレンダーの ToDo、自治体の作業指示など。状態と優先度の値域は RFC 8984(JSCalendar)に合わせ、元システム固有の状態名や種別は statusLabel と subtype に保持する。位置は任意のジオメトリ。
| 型 IRI | https://datamodels.jp/ns/task/Task |
| @context | https://datamodels.jp/context/task/v1.jsonld (エイリアス、互換性のある最新版)https://datamodels.jp/context/task/v1.0.0.jsonld (このバージョン、不変) |
| JSON Schema | /schema/task/Task/v1.json/schema/task/Task/v1.0.0.json |
| 例 | key-values · normalized |
| ソース | github.com/geolonia/datamodels |
属性
name
必須名称・件名
- 値: Property, string
- IRI:
https://uri.etsi.org/ngsi-ld/name
description
説明
- 値: Property, string
- IRI:
https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.8.jsonld#description
project
所属プロジェクト(元システムにプロジェクトの概念がある場合)
- 値: Relationship → Project
- IRI:
https://datamodels.jp/ns/task/project
parent
親タスク(RFC 8984 relatedTo parent)
- 値: Relationship → Task
- IRI:
https://datamodels.jp/ns/task/parent
relatedTo
関連するタスク(key-values 形式では対象が 1 つでも配列)。関係の種類(blocks, precedes, duplicates など)は拡張で表す
- 値: Relationship → Task(複数可)
- IRI:
https://datamodels.jp/ns/task/relatedTo
refersTo
このタスクが対象とするエンティティ(通報、設備、道路など)
- 値: Relationship → 任意のエンティティ
- IRI:
https://datamodels.jp/ns/task/refersTo
progress
必須正規化した進行状態(RFC 8984 progress)。needs-action=未着手、in-process=対応中、completed=完了、failed=失敗、cancelled=取消
- 値: Property, string:
needs-action|in-process|completed|failed|cancelled - IRI:
https://datamodels.jp/ns/task/progress
statusLabel
元システムの状態名そのまま(「対応中」「解決」など)
- 値: Property, string
- IRI:
https://datamodels.jp/ns/task/statusLabel
subtype
元システムの種別(トラッカー、Issue タイプ、カテゴリなど)
- 値: Property, string
- IRI:
https://datamodels.jp/ns/task/subtype
priority
優先度 0〜9。1 が最高、9 が最低、0 は未定義(RFC 8984)
- 値: Property, integer, ≥ 0
- IRI:
https://datamodels.jp/ns/task/priority
assignee
担当者・担当チーム(人・組織・チームのエンティティ。このサブジェクト外の URN でもよい)。key-values 形式では対象が 1 つでも配列
- 値: Relationship → 人・組織・チーム(複数可)
- IRI:
https://datamodels.jp/ns/task/assignee
author
作成者(人・組織・チームのエンティティ)
- 値: Relationship → 人・組織・チーム
- IRI:
https://schema.org/author
start
開始(予定)日時(RFC 8984 start)
- 値: Property, string (date-time)
- IRI:
https://datamodels.jp/ns/task/start
due
期限(RFC 8984 due)
- 値: Property, string (date-time)
- IRI:
https://datamodels.jp/ns/task/due
completedAt
progress が completed になった日時
- 値: Property, string (date-time)
- IRI:
https://datamodels.jp/ns/task/completedAt
estimatedDuration
見積時間。ISO 8601 期間(例: PT1H30M)(RFC 8984 estimatedDuration)
- 値: Property, string
- IRI:
https://datamodels.jp/ns/task/estimatedDuration
percentComplete
進捗率 0〜100(RFC 8984 percentComplete)
- 値: Property, integer, ≥ 0
- IRI:
https://datamodels.jp/ns/task/percentComplete
keywords
キーワード・ラベル
- 値: Property, array
- IRI:
https://schema.org/keywords
location
位置。点・線・面・それらの集合など任意の GeoJSON ジオメトリ
- 値: GeoProperty (Geometry)
- IRI:
https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.8.jsonld#location
spatialId
タスクの範囲を覆う空間ID(ZFXY)。任意
- 値: Property, array
- IRI:
https://datamodels.jp/ns/task/spatialId
isPrivate
非公開なら true。既定は false
- 値: Property, boolean
- IRI:
https://datamodels.jp/ns/task/isPrivate
source
元システムにおけるこのオブジェクトの URL
- 値: Property, string (uri)
- IRI:
https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/source
externalId
元システムにおける識別子
- 値: Property, string
- IRI:
https://datamodels.jp/ns/task/externalId
dateCreated
元システムでの作成日時(ブローカーの createdAt とは別)
- 値: Property, string (date-time)
- IRI:
https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateCreated
dateModified
元システムでの更新日時
- 値: Property, string (date-time)
- IRI:
https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateModified
例(key-values)
json
{
"id": "urn:ngsi-ld:Task:takamatsu:1234",
"type": "Task",
"name": "西宝町1-1 の冠水を確認する",
"description": "通報 #12 の現地確認。水位と通行可否を報告すること。",
"project": "urn:ngsi-ld:Project:takamatsu-flood-2026-typhoon-10",
"parent": "urn:ngsi-ld:Task:takamatsu:1200",
"relatedTo": [
"urn:ngsi-ld:Task:takamatsu:1198"
],
"refersTo": "urn:ngsi-ld:RoadRestriction:2026-typhoon-10-003",
"progress": "in-process",
"statusLabel": "対応中",
"subtype": "現地確認",
"priority": 2,
"assignee": [
"urn:ngsi-ld:Team:takamatsu:genchi-1"
],
"author": "urn:ngsi-ld:Person:takamatsu:yamada",
"start": "2026-08-21T10:30:00+09:00",
"due": "2026-08-21T12:00:00+09:00",
"estimatedDuration": "PT1H30M",
"percentComplete": 40,
"keywords": [
"冠水",
"巡回"
],
"location": {
"type": "Point",
"coordinates": [
134.0437,
34.3403
]
},
"spatialId": [
"/25/0/29803543/13212179"
],
"isPrivate": false,
"source": "https://tracker.example.jp/issues/1234",
"externalId": "1234",
"dateCreated": "2026-08-21T10:20:00+09:00",
"dateModified": "2026-08-21T11:05:00+09:00"
}例(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:Task:takamatsu:1234",
"type": "Task",
"name": {
"type": "Property",
"value": "西宝町1-1 の冠水を確認する"
},
"description": {
"type": "Property",
"value": "通報 #12 の現地確認。水位と通行可否を報告すること。"
},
"project": {
"type": "Relationship",
"object": "urn:ngsi-ld:Project:takamatsu-flood-2026-typhoon-10"
},
"parent": {
"type": "Relationship",
"object": "urn:ngsi-ld:Task:takamatsu:1200"
},
"relatedTo": [
{
"type": "Relationship",
"object": "urn:ngsi-ld:Task:takamatsu:1198",
"datasetId": "urn:ngsi-ld:dataset:relatedTo:1"
}
],
"refersTo": {
"type": "Relationship",
"object": "urn:ngsi-ld:RoadRestriction:2026-typhoon-10-003"
},
"progress": {
"type": "Property",
"value": "in-process"
},
"statusLabel": {
"type": "Property",
"value": "対応中"
},
"subtype": {
"type": "Property",
"value": "現地確認"
},
"priority": {
"type": "Property",
"value": 2
},
"assignee": [
{
"type": "Relationship",
"object": "urn:ngsi-ld:Team:takamatsu:genchi-1",
"datasetId": "urn:ngsi-ld:dataset:assignee:1"
}
],
"author": {
"type": "Relationship",
"object": "urn:ngsi-ld:Person:takamatsu:yamada"
},
"start": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-08-21T10:30:00+09:00"
}
},
"due": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-08-21T12:00:00+09:00"
}
},
"estimatedDuration": {
"type": "Property",
"value": "PT1H30M"
},
"percentComplete": {
"type": "Property",
"value": 40
},
"keywords": {
"type": "Property",
"value": [
"冠水",
"巡回"
]
},
"location": {
"type": "GeoProperty",
"value": {
"type": "Point",
"coordinates": [
134.0437,
34.3403
]
}
},
"spatialId": {
"type": "Property",
"value": [
"/25/0/29803543/13212179"
]
},
"isPrivate": {
"type": "Property",
"value": false
},
"source": {
"type": "Property",
"value": "https://tracker.example.jp/issues/1234"
},
"externalId": {
"type": "Property",
"value": "1234"
},
"dateCreated": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-08-21T10:20:00+09:00"
}
},
"dateModified": {
"type": "Property",
"value": {
"@type": "DateTime",
"@value": "2026-08-21T11:05:00+09:00"
}
}
}Link ヘッダー
http
Link: <https://datamodels.jp/context/task/v1.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"データの検証とブローカーへの送り方は使い方を参照。
対応する標準: GitHub Issues(REST API)
GitHub の Issue には優先度・期限・進捗率が無い(Projects のカスタムフィールドは拡張)。state と state_reason から progress を導く。
| このモデル | 対応先 | 備考 |
|---|---|---|
name | title | |
description | body | |
project | repository | Project.identifier = owner/repo |
parent | 対応なし | サブイシュー(sub-issues)が拡張候補 |
relatedTo | 対応なし | |
refersTo | 対応なし | |
progress | state + state_reason | open → needs-action または in-process、closed+completed → completed、closed+not_planned / duplicate → cancelled |
statusLabel | state (+ state_reason) | |
subtype | type | Issue Types(組織機能)または labels の一つ |
priority | 対応なし | |
assignee | assignees | |
author | user | |
start | 対応なし | |
due | 対応なし | milestone.due_on は拡張 |
completedAt | closed_at | state=closed かつ state_reason=completed の場合のみ。not_planned / duplicate の closed_at は対応させない |
estimatedDuration | 対応なし | |
percentComplete | 対応なし | |
keywords | labels[].name | |
location | 対応なし | |
spatialId | 対応なし | |
isPrivate | 対応なし | リポジトリの可視性で決まる |
source | html_url | |
externalId | number | |
dateCreated | created_at | |
dateModified | updated_at |
対応する標準: IssueReporting(Smart Data Models dataModel.IssueTracking、IUDX 由来)
IssueReporting(Smart Data Models dataModel.IssueTracking、IUDX 由来)
インドの市民苦情記録(区・部局・ランドマーク)。相互運用のための対応表であり、採用ではない。
| このモデル | 対応先 | 備考 |
|---|---|---|
name | title | |
description | 対応なし | |
subtype | category / subCategory | |
progress | resolutionStatus | 値は実装依存。resolved → completed |
statusLabel | resolutionStatus | |
assignee | departmentId | 部局の識別子。エンティティ参照ではない |
start | observationDateTime | |
location | location | landmark と wardId は拡張 |
externalId | reportId | |
keywords | 対応なし |
対応する標準: JSCalendar Task(RFC 8984)
値域はこの標準に合わせている。JSCalendar の locations は名前付き地点の集合で座標は geo URI、こちらは GeoJSON ジオメトリ。participants は役割付きの集合で、assignee はその attendee/owner 相当。
| このモデル | 対応先 | 備考 |
|---|---|---|
name | title | |
description | description | |
project | 対応なし | JSCalendar にはプロジェクトの概念が無い(カレンダー単位) |
parent | relatedTo[parent] | |
relatedTo | relatedTo | first / next / child は拡張 |
refersTo | 対応なし | |
progress | progress | 値域は同一(cancelled も RFC 8984 の標準値) |
statusLabel | 対応なし | |
subtype | 対応なし | |
priority | priority | |
assignee | participants | roles に attendee または owner を持つ participant |
author | 対応なし | JSCalendar は所有者を participant の owner 役割で表す |
start | start | |
due | due | |
completedAt | progressUpdated | progress が completed の場合のみ |
estimatedDuration | estimatedDuration | |
percentComplete | percentComplete | |
keywords | keywords | |
location | locations | 点は coordinates(geo URI)に、線・面は対応なし |
spatialId | 対応なし | |
isPrivate | privacy | private / secret |
source | links | rel=alternate のリンク |
externalId | uid | |
dateCreated | created | |
dateModified | updated |
対応する標準: Open311 GeoReport v2 service_requests(Smart Data Models dataModel.IssueTracking)
Open311 GeoReport v2 service_requests(Smart Data Models dataModel.IssueTracking)
相互運用のための対応表であり、採用ではない。Open311 は北米の 311 窓口の通報記録で、担当・期限・進捗率・親子関係を持たない。
| このモデル | 対応先 | 備考 |
|---|---|---|
name | service_name | |
description | description | |
project | 対応なし | jurisdiction_id が最も近い |
refersTo | 対応なし | |
progress | status | open → needs-action、closed → completed |
statusLabel | status_notes | |
subtype | service_code | |
assignee | agency_responsible | 文字列。エンティティ参照ではない |
start | requested_datetime | |
due | expected_datetime | |
completedAt | updated_datetime | closed のときのみ近似 |
location | lat, long | 点のみ。address / address_id / zipcode は住所(common JapaneseAddress の拡張候補) |
source | 対応なし | |
externalId | service_request_id | |
dateCreated | requested_datetime | |
dateModified | updated_datetime |
対応する標準: Redmine の Issue(redmine_gtt_fiware の出力を含む)
Redmine の Issue(redmine_gtt_fiware の出力を含む)
Redmine の優先度は順序付きリスト(低・通常・高・緊急・今すぐ)で、1〜9 に写す。ステータスは is_closed で needs-action / completed を、それ以外は運用に応じて in-process を割り当てる。カスタムフィールドは拡張。GTT(redmine_gtt_fiware)は Issue を tm:Task のエイリアスまたはサブクラスとして対応付けられる。
| このモデル | 対応先 | 備考 |
|---|---|---|
name | subject | |
description | description | |
project | project_id | |
parent | parent_issue_id | |
relatedTo | relations[].issue_to_id | relation_type(relates |
refersTo | 対応なし | GTT の refersTo(購読元エンティティ)に対応 |
progress | status.is_closed | closed なら completed、それ以外は needs-action または in-process |
statusLabel | status.name | |
subtype | tracker.name | |
priority | priority.position | 順位を 1〜9 に写す |
assignee | assigned_to_id | |
author | author_id | |
start | start_date | |
due | due_date | |
completedAt | closed_on | |
estimatedDuration | estimated_hours | 時間を ISO 8601 期間に変換(1.5 → PT1H30M) |
percentComplete | done_ratio | |
keywords | 対応なし | Redmine 核には無い。タグ系プラグインは拡張 |
location | geom | redmine_gtt の geometry(点・線・面、3D) |
spatialId | 対応なし | |
isPrivate | is_private | |
source | <base_url>/issues/<id> | |
externalId | id | |
dateCreated | created_on | |
dateModified | updated_on |
注記
- 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.
- progress uses the RFC 8984 value set unchanged: needs-action, in-process, completed, failed, cancelled. statusLabel keeps the source system’s own status name; subtype its tracker, issue type or category.
- relatedTo and assignee are multi-valued Relationships (one instance per target, distinguished by datasetId). In the key-values form they are always arrays, even with a single target. The kind of a relation (blocks, precedes, duplicates) is not in the core.
- A source system keeps its own type and attribute names through a JSON-LD alias context (see the Tips guide); its vocabulary can also declare its types subclasses of these.
- project is optional: RFC 8984 has no project, and a calendar to-do or a stand-alone work order should not have to invent one; trackers whose issues always belong to a project can require it in their own model. name and progress are required.
このページのモデル内容は CC BY 4.0 で提供されています。 LICENSE-CONTENT