Pre-release. Until the official launch, content may change, including published files.
Skip to content

Comment draft ​

A note, handover or reply on a task. Field change history is not a comment; the temporal API keeps history.

Japanese nameコメント
Type IRIhttps://datamodels.jp/ns/task/Comment
@contexthttps://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/Comment/v1.json
/schema/task/Comment/v1.0.0.json
Exampleskey-values · normalized
Sourcegithub.com/geolonia/datamodels

Attributes ​

task ​

required

The task this belongs to

  • Value: Relationship → Task
  • IRI: https://datamodels.jp/ns/task/task

author ​

Creator (a person, organisation or team entity)

  • Value: Relationship → person, organisation or team
  • IRI: https://schema.org/author

text ​

required

The text

  • Value: Property, string
  • IRI: https://schema.org/text

textFormat ​

Format of the text

  • Value: Property, string: text | markdown | textile | html
  • IRI: https://datamodels.jp/ns/task/textFormat

inReplyTo ​

The comment this replies to

  • Value: Relationship → Comment
  • IRI: https://datamodels.jp/ns/task/inReplyTo

isPrivate ​

true when private; default false

  • Value: Property, boolean
  • IRI: https://datamodels.jp/ns/task/isPrivate

sentAt ​

When it was posted

  • Value: Property, string (date-time)
  • IRI: https://schema.org/dateSent

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

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:Comment:1234-3",
  "type": "Comment",
  "task": "urn:ngsi-ld:Task:1234",
  "author": "urn:ngsi-ld:Team:field-team-a",
  "text": "水位上昇中、注視継続。災害対策本部へ申し送り。",
  "textFormat": "text",
  "isPrivate": false,
  "sentAt": "2026-07-08T11:05:00+09:00",
  "source": "https://tracker.example.jp/issues/1234#note-3",
  "externalId": "5678"
}

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:Comment:1234-3",
  "type": "Comment",
  "task": {
    "type": "Relationship",
    "object": "urn:ngsi-ld:Task:1234"
  },
  "author": {
    "type": "Relationship",
    "object": "urn:ngsi-ld:Team:field-team-a"
  },
  "text": {
    "type": "Property",
    "value": "水位上昇中、注視継続。災害対策本部へ申し送り。"
  },
  "textFormat": {
    "type": "Property",
    "value": "text"
  },
  "isPrivate": {
    "type": "Property",
    "value": false
  },
  "sentAt": {
    "type": "Property",
    "value": {
      "@type": "DateTime",
      "@value": "2026-07-08T11:05:00+09:00"
    }
  },
  "source": {
    "type": "Property",
    "value": "https://tracker.example.jp/issues/1234#note-3"
  },
  "externalId": {
    "type": "Property",
    "value": "5678"
  }
}
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 issue comment ​

GitHub issue comment

This modelMaps toNote
taskissue_url
authoruser
textbody
textFormatno counterpartalways markdown
sentAtcreated_at
sourcehtml_url
externalIdid

Corresponding standards: Redmine journal note ​

Redmine journal note

journals with empty notes (field changes only) are not comments

This modelMaps toNote
taskissue_id
authoruser
textnotes
textFormatno counterpartinstance setting (textile or markdown)
isPrivateprivate_notes
sentAtcreated_on
source<base_url>/issues/<issue_id>#note-<n>
externalIdid

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.
  • Trackers often keep comments and field-change history in one log; only the written note is a Comment. History belongs to the temporal API.

Model content on this page is licensed under CC BY 4.0. LICENSE-CONTENT