Skip to content

timeline.fbl

Example document timeline.fbl

Views generated from the file

This view is drawn by this site from timeline.fbl itself. It shows the data in the document, not the notation the diagram draws.

Bindings of timeline.fbl. Flowchart of the bindings in timeline.fbl: 1 binding(s) (timeline) as boxes with the files they claim and their body's format family, and 2 element rule(s) and 1 relation rule(s) as rounded boxes with the type each produces.
Generated from timeline.fbl at 46e5f91
Diagram as text (Mermaid)
flowchart LR
  accTitle: Bindings of timeline.fbl
  accDescr: Flowchart of the bindings in timeline.fbl: 1 binding(s) (timeline) as boxes with the files they claim and their body's format family, and 2 element rule(s) and 1 relation rule(s) as rounded boxes with the type each produces.
  b_timeline["Timeline Markup Language<br/>timeline<br/>.tml, yaml family"]
  e_timeline_period("period<br/>Period")
  b_timeline -->|element| e_timeline_period
  e_timeline_moment("moment<br/>Moment")
  b_timeline -->|element| e_timeline_moment
  r_timeline_connection(["connection<br/>Connection"])
  b_timeline -->|relation| r_timeline_connection

The file

Download timeline.fbl (3,249 bytes, unchanged from the source).

{
  "$schema": "https://etalii.net/adp/fbl/schema/0.1/fbl.schema.json#/$defs/Document",
  "fbl": "0.5",
  "doc": "The timeline's .tml body (definitions/diagrams/timeline.dis, timeline.md): ADP's own YAML, owned outright by the timeline. The simplest complete binding, and the one the timeline specification would name as persistence.binding. A timeline keeps every value as the text it was written with (FBL 0.5, section 5.2): label is a string and reads its written text unasked, begin and end are date-times read as text so that the tool reports a time it cannot read in its own words, and a row that is not a number is row 0.",
  "bindings": {
    "timeline": {
      "title": "Timeline Markup Language",
      "claims": {
        "extensions": [".tml"],
        "origins": ["generic/timeline"]
      },
      "body": { "kind": "file", "family": "yaml" },
      "reader": "declared",
      "text": { "newline": "crlf", "indent": 2, "sequenceIndent": "indented", "finalNewline": true, "quote": "double" },
      "header": { "key": "timeline", "value": 1 },
      "elements": [
        {
          "name": "period",
          "type": "Period",
          "at": "/elements/*",
          "when": "has(entry.end)",
          "id": { "from": { "key": "id" } },
          "attributes": {
            "label": { "key": "label", "empty": "keep" },
            "begin": { "key": "begin", "read": "text", "time": "keep-precision" },
            "end": { "key": "end", "read": "text", "time": "keep-precision", "empty": "remove" },
            "row": { "key": "row", "default": 0, "quoted": "convert", "fallback": { "value": 0, "report": false } }
          },
          "insert": { "place": "after-last", "container": "/elements", "keys": ["id", "label", "begin", "end", "row"] },
          "remove": { "cascade": ["connection"] }
        },
        {
          "name": "moment",
          "type": "Moment",
          "at": "/elements/*",
          "when": "!has(entry.end)",
          "id": { "from": { "key": "id" } },
          "attributes": {
            "label": { "key": "label", "empty": "keep" },
            "begin": { "key": "begin", "read": "text", "time": "keep-precision" },
            "row": { "key": "row", "default": 0, "quoted": "convert", "fallback": { "value": 0, "report": false } }
          },
          "insert": { "place": "after-last", "container": "/elements", "keys": ["id", "label", "begin", "row"] },
          "remove": { "cascade": ["connection"] }
        }
      ],
      "relations": [
        {
          "name": "connection",
          "type": "Connection",
          "at": "/connections/*",
          "id": { "from": { "key": "id" } },
          "source": { "key": "from" },
          "target": { "key": "to" },
          "attributes": {
            "label": { "key": "label", "empty": "remove" }
          },
          "insert": {
            "place": "after-last",
            "container": "/connections",
            "create": { "at": "end-of-document" },
            "keys": ["id", "from", "to", "label"]
          },
          "remove": { "container": "keep" }
        }
      ],
      "registration": { "createOnFirstPlacement": false },
      "template": { "text": "timeline: 1\r\nelements: []\r\n" }
    }
  }
}

In an IDE

No IDE host runs this example yet.