日本語
Task ドラフト
タスク
追跡の対象となる作業の単位です。課題管理システムの「チケット」や「Issue」、カレンダーの ToDo、自治体の作業指示などにあたります。状態と優先度の値は RFC 8984(JSCalendar)に合わせ、元のシステム固有の状態名や種別は statusLabel と subtype に残します。位置には任意のジオメトリを使えます。
| 種類 | エンティティ |
| 型 IRI | https://datamodels.jp/ns/task/Task |
| @context | https://datamodels.jp/context/task/v1.jsonld |
| JSON Schema | /schema/task/Task/v1.json |
| ライセンス | CC0 1.0:ファイル(@context、JSON Schema、例)は条件なしで使えます |
この @context と JSON Schema の URL は、常に互換性のある最新版を指します。
内容が変わらない URL はバージョンにあります。詳しくはURL とバージョンを見てください。
型と関係
Relationship(属性名)値型として使う↻ 同じ型への Relationship他のサブジェクトほか N 件: その型のページに続きがある
属性
| 属性 | 説明 | 値 |
|---|---|---|
name* | 名称・件名https://uri.etsi.org/ngsi-ld/name | Property, string |
description | 説明http://purl.org/dc/terms/description | Property, string |
project | 所属するプロジェクト(元のシステムにプロジェクトの概念があるとき)https://datamodels.jp/ns/task/project | Relationship → Project |
milestone | 予定しているマイルストーン(バージョン、リリース)https://datamodels.jp/ns/task/milestone | Relationship → Milestone |
parent | 親タスク(RFC 8984 relatedTo parent)https://datamodels.jp/ns/task/parent | Relationship → Task |
relatedTo | 関連するタスク。key-values 形式では、対象が 1 つでも配列です。関係の種類(blocks、precedes、duplicates など)は拡張で表します。https://datamodels.jp/ns/task/relatedTo | Relationship → Task(複数可) |
refersTo | このタスクが対象とするエンティティ(通報、設備、道路など)https://datamodels.jp/ns/task/refersTo | Relationship → 任意のエンティティ |
progress | 正規化した進行状態(RFC 8984 progress):needs-action(未着手)、in-process(対応中)、completed(完了)、failed(失敗)、cancelled(取消)。合う値がないときは省き、statusLabel に元の呼び方を書きます。https://datamodels.jp/ns/task/progress | Property, string: needs-action | in-process | completed | failed | cancelled |
statusLabel | 元のシステムの状態名をそのまま(「対応中」「解決」など)。progress を省いたときは必須です。https://datamodels.jp/ns/task/statusLabel | Property, string |
subtype | 元のシステムでの種別(トラッカー、Issue のタイプ、カテゴリなど)https://datamodels.jp/ns/task/subtype | Property, string |
priority | 優先度 0〜9。1 が最高、9 が最低で、0 は未定義です(RFC 8984)。https://datamodels.jp/ns/task/priority | Property, integer, ≥ 0, ≤ 9 |
assignee | 担当する人、組織、チーム(そのエンティティ。このサブジェクトの外の URN でも構いません)。key-values 形式では、対象が 1 つでも配列です。https://datamodels.jp/ns/task/assignee | Relationship → 人・組織・チーム(複数可) |
author | 作成者(人、組織、チームのエンティティ)https://schema.org/author | Relationship → 人・組織・チーム |
start | 開始の予定。日付か日時(RFC 8984 start)https://datamodels.jp/ns/task/start | Property, string (日付または日時) |
due | 期限。日付か日時(RFC 8984 due)https://datamodels.jp/ns/task/due | Property, string (日付または日時) |
completedAt | progress が completed になった日時https://datamodels.jp/ns/task/completedAt | Property, string (date-time) |
estimatedDuration | 見積もった作業時間。ISO 8601 の期間(例:PT1H30M)で書きます(RFC 8984 estimatedDuration)。https://datamodels.jp/ns/task/estimatedDuration | Property, string |
percentComplete | 進捗率 0〜100(RFC 8984 percentComplete)https://datamodels.jp/ns/task/percentComplete | Property, integer, ≥ 0, ≤ 100 |
keywords | キーワード、ラベルhttps://schema.org/keywords | Property, array |
location | 位置。点、線、面、それらの集まりなど、任意の GeoJSON ジオメトリhttps://uri.etsi.org/ngsi-ld/location | GeoProperty (Geometry) |
spatialId | タスクの範囲を覆う空間 ID(ZFXY)。任意です。https://datamodels.jp/ns/task/spatialId | Property, array |
isPrivate | 非公開なら true。既定は false です。https://datamodels.jp/ns/task/isPrivate | Property, boolean |
source | 元のシステムでのこのタスクの URLhttps://smart-data-models.github.io/data-models/terms.jsonld#/definitions/source | Property, string (uri) |
externalId | 元のシステムでの識別子https://datamodels.jp/ns/task/externalId | Property, string |
dateCreated | 元のシステムでの作成日時(ブローカーの createdAt とは別)https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateCreated | Property, string (date-time) |
dateModified | 元のシステムでの更新日時https://smart-data-models.github.io/data-models/terms.jsonld#/definitions/dateModified | Property, string (date-time) |
* は必須の属性です。
このモデルを使う
データの検証とブローカーへの送り方は使い方にあります。
このモデルに独自の属性を足すときは、拡張ビルダーで @context と JSON Schema を作れます。
このモデルを拡張したら、フォームで登録してください。ほかの組織が同じ名前を使えます(フォームの書き方)。
特定のブローカーやツールにそのまま読み込めるファイルも、このモデルから作っています:アダプター
本文に @context を書かずに送るときの Link ヘッダー:
httpLink: <https://datamodels.jp/context/task/v1.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"
例
例は架空のシナリオ(東京都千代田区の大雨対応)です。地名とコードは実在のものですが、出来事・人・チームは架空です。書き方は例の書き方にあります。
json
{
"id": "urn:ngsi-ld:Task:1234",
"type": "Task",
"name": "靖国通りのアンダーパスの冠水を確認する",
"description": "住民からの通報の現地確認。水位と通行可否を報告すること。",
"project": "urn:ngsi-ld:Project:heavy-rain-2026-07",
"milestone": "urn:ngsi-ld:Milestone:heavy-rain-2026-07-initial",
"parent": "urn:ngsi-ld:Task:1200",
"relatedTo": [
"urn:ngsi-ld:Task:1198"
],
"refersTo": "urn:ngsi-ld:RoadRestriction:0001",
"progress": "in-process",
"statusLabel": "対応中",
"subtype": "現地確認",
"priority": 2,
"assignee": [
"urn:ngsi-ld:Team:field-team-a"
],
"author": "urn:ngsi-ld:Person:staff-0012",
"start": "2026-07-08T10:30:00+09:00",
"due": "2026-07-08T12:00:00+09:00",
"estimatedDuration": "PT1H30M",
"percentComplete": 40,
"keywords": [
"冠水",
"現地確認"
],
"location": {
"type": "Point",
"coordinates": [
139.7512,
35.6953
]
},
"spatialId": [
"/25/0/29802971/13211383"
],
"isPrivate": false,
"source": "https://tracker.example.jp/issues/1234",
"externalId": "1234",
"dateCreated": "2026-07-08T10:20:00+09:00",
"dateModified": "2026-07-08T11:05:00+09:00"
}ファイル: example.json · example-normalized.jsonld · JSON-LD Playground で開く:属性ごとの IRI(展開形)が見られます。
改善の提案
属性が足りない、説明がおかしいと思ったら、Issue で知らせてください。新しい属性やモデルは提案フォームから提案できます。進め方は貢献するにあります。 ソースファイル(注記、対応表)は GitHub にあります。
参照している標準
このモデルが対応している標準と、項目ごとの対応です。開くと対応表が見られます。
GitHub Issues(REST API)
GitHub の Issue には優先度・期限・進捗率が無い(Projects のカスタムフィールドは拡張)。state と state_reason から progress を導く。
| このモデル | 対応先 | 備考 |
|---|---|---|
name | title | |
description | body | |
project | repository | Project.identifier = owner/repo |
milestone | milestone | |
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)は Milestone.due に入る |
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 |
この標準のデータを変換するための対応表(YAML): github-issues.yaml(使い方はデータを変換する)
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 | 対応なし |
この標準のデータを変換するための対応表(YAML): iudx-issuereporting.yaml(使い方はデータを変換する)
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 | JSCalendar の start は時差を含まない日時(LocalDateTime)で、タイムゾーンは timeZone に持つ。ここでは日付か、時差付きの日時。日付は、時刻 00:00:00 の start と showWithoutTime: true に当たる |
due | due | JSCalendar の due は時差を含まない日時(LocalDateTime)。ここでは日付か、時差付きの日時 |
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 |
この標準のデータを変換するための対応表(YAML): jscalendar.yaml(使い方はデータを変換する)
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 |
この標準のデータを変換するための対応表(YAML): open311.yaml(使い方はデータを変換する)
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 | |
milestone | fixed_version_id | 対象バージョン |
parent | parent_issue_id | |
relatedTo | relations[].issue_to_id | relation_type(relates, blocks, precedes, duplicates)は核に含めない |
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 | 日付(YYYY-MM-DD)のまま入れる |
due | due_date | 日付(YYYY-MM-DD)のまま入れる |
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 |
この標準のデータを変換するための対応表(YAML): redmine.yaml(使い方はデータを変換する)
拡張している組織
このモデルに属性を足して使っている組織です。持ち主が登録したもので、datamodels.jp は内容を確認していません。同じ意味の属性が要るときは、ここにある名前を使えます。自分の拡張はフォームから登録できます。
| 組織 | 足した属性 | @context |
|---|---|---|
| GTT プロジェクト | category: 課題のカテゴリー名https://gtt-project.org/ns/fiware#category | https://gtt-project.org/ns/fiware-task.jsonld |
注記
- 検討した上流(2026-09-18):Smart Data Models の dataModel.IssueTracking には、Open311 の service_requests と services、IUDX の IssueReporting があります。どちらも、1 つの国の自治体の手続きに沿った住民からの通報の記録で、タスクのモデルではありません。dataModel.Transportation の CityWork と dataModel.PredictiveMaintenance は、分野に固有のモデルです。汎用の参照先は RFC 8984(JSCalendar Task)で、ここで使う値もそこから取っています。Issue #22 を参照してください。
- 核は意図して小さくしています。システム固有のデータ(作業時間、ウォッチャー、カスタムフィールド、地図の回転など)は拡張に入れます。
- progress は RFC 8984 の値をそのまま使います:needs-action、in-process、completed、failed、cancelled。statusLabel には元のシステム自身の状態名を、subtype にはトラッカー、課題の種類、分類を残します。
- relatedTo と assignee は、複数の値を持つ Relationship です(対象ごとに 1 つのインスタンスで、datasetId で区別します)。key-values 形式では、対象が 1 つでも常に配列になります。関係の種類(blocks、precedes、duplicates など)は核に入れていません。
- 元のシステムは、JSON-LD のエイリアスの context を使えば、自分たちの型名や属性名のままで使えます(ガイドの「独自の名前で使う」)。自分たちの語彙で、自分たちの型をこれらのサブクラスとして宣言できます。
- project は任意です。RFC 8984 には project が無く、カレンダーの ToDo や単独の作業指示に、わざわざ project を作らせるのは不自然だからです。課題が必ずプロジェクトに属するトラッカーは、自分たちのモデルで必須にできます。必須なのは name と progress です。
- 2026-10-09 の変更(チームの決定。プレリリース中のため 1.0.0 をその場で修正):Comment と Attachment をこのサブジェクトから外し、Milestone を加えました。メモやファイルはタスクに固有のものではなく、どのエンティティにも付くからです。この 2 つは、Redmine のジャーナルと添付ファイル、そして 2026-09-24 に削除した高松市の災害対応モデルから来ていました。GTT 自体は、ジャーナルも添付ファイルも出力しません。アプリケーションが必要とするときは、schema.org の語(Comment、MediaObject)を再利用します。どのエンティティにも結べる形で、common サブジェクトに置きます。Milestone は、Redmine(バージョン)、GitHub と GitLab(マイルストーン)、Jira(修正バージョン)に共通するものです:名前、説明、期限、状態(受付中・完了)、プロジェクト。元の設計は Issue #22 にあります。
- 2026-10-09 の変更(チームの決定。プレリリース中のため 1.0.0 をその場で修正):start と due は、日付(YYYY-MM-DD)でも日時でも構いません。Redmine(開始日、期日、バージョンの期日)、GitHub のマイルストーン(画面では日付)、GitLab、多くの自治体の作業指示は、日付しか持たないからです。日付を日時に直すと、元のデータに無い時刻を作ることになります。最初の実装(GTT の Redmine プラグイン)は、日付をそのまま出力します。RFC 8984 の start と due は時差を含まない日時(LocalDateTime)なので、この点は RFC 8984 と異なります。normalized 形式では、日付は NGSI-LD の Date、日時は DateTime の値になります。