プレリリース版です。正式公開までは、公開済みのファイルも含めて内容が変わることがあります。
Skip to content

出典: https://datamodels.jp/models/task/Task/ · 文章は CC BY 4.0

Task ドラフト ​

タスク

追跡の対象となる作業の単位です。課題管理システムの「チケット」や「Issue」、カレンダーの ToDo、自治体の作業指示などにあたります。状態と優先度の値は RFC 8984(JSCalendar)に合わせ、元のシステム固有の状態名や種別は statusLabel と subtype に残します。位置には任意のジオメトリを使えます。

種類エンティティ
型 IRIhttps://datamodels.jp/ns/task/Task
@contexthttps://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 とバージョンを見てください。

型と関係 ​

型と関係の図projectmilestonerefersToassignee, authorlocationGeometryジオメトリほか 4 件の関係 →Milestoneマイルストーンほか 1 件の関係 →Projectプロジェクトほか 3 件の関係 →Taskタスク↻ parent, relatedTo人・組織・チーム任意のエンティティ

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 (日付または日時)
completedAtprogress が 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元のシステムでのこのタスクの URL
https://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 ヘッダー:

    http
    Link: <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)26 項目中 15 項目が対応

GitHub の Issue には優先度・期限・進捗率が無い(Projects のカスタムフィールドは拡張)。state と state_reason から progress を導く。

このモデル対応先備考
nametitle
descriptionbody
projectrepositoryProject.identifier = owner/repo
milestonemilestone
parent対応なしサブイシュー(sub-issues)が拡張候補
relatedTo対応なし
refersTo対応なし
progressstate + state_reasonopen → needs-action または in-process、closed+completed → completed、closed+not_planned / duplicate → cancelled
statusLabelstate (+ state_reason)
subtypetypeIssue Types(組織機能)または labels の一つ
priority対応なし
assigneeassignees
authoruser
start対応なし
due対応なしマイルストーンの期限(milestone.due_on)は Milestone.due に入る
completedAtclosed_atstate=closed かつ state_reason=completed の場合のみ。not_planned / duplicate の closed_at は対応させない
estimatedDuration対応なし
percentComplete対応なし
keywordslabels[].name
location対応なし
spatialId対応なし
isPrivate対応なしリポジトリの可視性で決まる
sourcehtml_url
externalIdnumber
dateCreatedcreated_at
dateModifiedupdated_at

この標準のデータを変換するための対応表(YAML): github-issues.yaml(使い方はデータを変換する)

IssueReporting(Smart Data Models dataModel.IssueTracking、IUDX 由来)10 項目中 8 項目が対応

インドの市民苦情記録(区・部局・ランドマーク)。相互運用のための対応表であり、採用ではない。

このモデル対応先備考
nametitle
description対応なし
subtypecategory / subCategory
progressresolutionStatus値は実装依存。resolved → completed
statusLabelresolutionStatus
assigneedepartmentId部局の識別子。エンティティ参照ではない
startobservationDateTime
locationlocationlandmark と wardId は拡張
externalIdreportId
keywords対応なし

この標準のデータを変換するための対応表(YAML): iudx-issuereporting.yaml(使い方はデータを変換する)

JSCalendar Task(RFC 8984)25 項目中 19 項目が対応

値域はこの標準に合わせている。JSCalendar の locations は名前付き地点の集合で座標は geo URI、こちらは GeoJSON ジオメトリ。participants は役割付きの集合で、assignee はその attendee/owner 相当。

このモデル対応先備考
nametitle
descriptiondescription
project対応なしJSCalendar にはプロジェクトの概念が無い(カレンダー単位)
parentrelatedTo[parent]
relatedTorelatedTofirst / next / child は拡張
refersTo対応なし
progressprogress値域は同一(cancelled も RFC 8984 の標準値)
statusLabel対応なし
subtype対応なし
prioritypriority
assigneeparticipantsroles に attendee または owner を持つ participant
author対応なしJSCalendar は所有者を participant の owner 役割で表す
startstartJSCalendar の start は時差を含まない日時(LocalDateTime)で、タイムゾーンは timeZone に持つ。ここでは日付か、時差付きの日時。日付は、時刻 00:00:00 の start と showWithoutTime: true に当たる
duedueJSCalendar の due は時差を含まない日時(LocalDateTime)。ここでは日付か、時差付きの日時
completedAtprogressUpdatedprogress が completed の場合のみ
estimatedDurationestimatedDuration
percentCompletepercentComplete
keywordskeywords
locationlocations点は coordinates(geo URI)に、線・面は対応なし
spatialId対応なし
isPrivateprivacyprivate / secret
sourcelinksrel=alternate のリンク
externalIduid
dateCreatedcreated
dateModifiedupdated

この標準のデータを変換するための対応表(YAML): jscalendar.yaml(使い方はデータを変換する)

Open311 GeoReport v2 service_requests(Smart Data Models dataModel.IssueTracking)16 項目中 13 項目が対応

相互運用のための対応表であり、採用ではない。Open311 は北米の 311 窓口の通報記録で、担当・期限・進捗率・親子関係を持たない。

このモデル対応先備考
nameservice_name
descriptiondescription
project対応なしjurisdiction_id が最も近い
refersTo対応なし
progressstatusopen → needs-action、closed → completed
statusLabelstatus_notes
subtypeservice_code
assigneeagency_responsible文字列。エンティティ参照ではない
startrequested_datetime
dueexpected_datetime
completedAtupdated_datetimeclosed のときのみ近似
locationlat, long点のみ。address / address_id / zipcode は住所(common JapaneseAddress の拡張候補)
source対応なし
externalIdservice_request_id
dateCreatedrequested_datetime
dateModifiedupdated_datetime

この標準のデータを変換するための対応表(YAML): open311.yaml(使い方はデータを変換する)

Redmine の Issue(redmine_gtt_fiware の出力を含む)26 項目中 23 項目が対応

Redmine の優先度は順序付きリスト(低・通常・高・緊急・今すぐ)で、1〜9 に写す。ステータスは is_closed で needs-action / completed を、それ以外は運用に応じて in-process を割り当てる。カスタムフィールドは拡張。GTT(redmine_gtt_fiware)は Issue を tm:Task のエイリアスまたはサブクラスとして対応付けられる。

このモデル対応先備考
namesubject
descriptiondescription
projectproject_id
milestonefixed_version_id対象バージョン
parentparent_issue_id
relatedTorelations[].issue_to_idrelation_type(relates, blocks, precedes, duplicates)は核に含めない
refersTo対応なしGTT の refersTo(購読元エンティティ)に対応
progressstatus.is_closedclosed なら completed、それ以外は needs-action または in-process
statusLabelstatus.name
subtypetracker.name
prioritypriority.position順位を 1〜9 に写す
assigneeassigned_to_id
authorauthor_id
startstart_date日付(YYYY-MM-DD)のまま入れる
duedue_date日付(YYYY-MM-DD)のまま入れる
completedAtclosed_on
estimatedDurationestimated_hours時間を ISO 8601 期間に変換(1.5 → PT1H30M)
percentCompletedone_ratio
keywords対応なしRedmine 核には無い。タグ系プラグインは拡張
locationgeomredmine_gtt の geometry(点・線・面、3D)
spatialId対応なし
isPrivateis_private
source<base_url>/issues/<id>
externalIdid
dateCreatedcreated_on
dateModifiedupdated_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 の値になります。