A dataviz file describes a standard as a graph: its items (chapters, requirements, recommendations...), the links between them, the item and link types, and the filters a reader can tick. The viewer and the builder read it in the browser: nothing is uploaded, there is no account.

A dataviz file is not the standard itself. To use a standard you have as a PDF, turn it into a dataviz file first, in one of three ways:

The same content can be written in four carriers, all read the same way: JSON, YAML, Excel (one sheet per table) and CSV (one file per table). A complete example using every feature: example.dataviz.yaml. A JSON Schema for editors and validators: dataviz-file.schema.json.

The smallest file

Only items with an id are required.

items:
  - id: "1"
  - id: "1.1"
    parent: "1"

About the standard

FieldMeaningDefault
datavizFormat version: 11
idShort name used for file names, links and the browser storage: lower case, digits, dashesfrom the title
titleShown at the top of the viewer"Untitled standard"
subtitleOne line under the title
versionVersion of the standard (quote it in YAML: "1.0")
dateDate, YYYY-MM-DD
authorsWho made this file
urlWhere the standard can be read
licenceThe licence of this file (CC-BY-4.0, CC0-1.0, ...). Mind the copyright of any text quoted from a standard
descriptionA few lines, same text syntax as items
layoutauto (saved positions if any, else organic), saved, hierarchical, organic, grid, circleauto
directionFor hierarchical: LR, TB, RL, BTLR

In Excel and CSV these are the rows of the About table, with the columns field and value.

Items

One per chapter, requirement, recommendation, document, test... Table Items.

FieldMeaning
idRequired. Unique. Use the standard's own numbering (5.1-1, ACM-1); quote ids that look like numbers in YAML
titleThe item's name
typeThe id of a type (below)
parentThe id of the item that contains it; leave it out at the top level. Parents are drawn as boxes around their children
tagsTag ids (below). A list in JSON and YAML; comma-separated in Excel and CSV
textThe description. One paragraph per line, - starts a bullet, bold, backticks for code, link; anything else is shown as typed (no HTML)
labelOptional short text drawn on the node, instead of what its type shows
urlOptional link to the item in the standard
x, ySaved position, for the saved layout. The builder fills them in when you arrange the graph

One per arrow. Table Links.

FieldMeaning
fromRequired. Item id where the arrow starts
toRequired. Item id the arrow points to
typeThe id of a link type (below)
labelOptional text on the arrow (the reader can show link labels)

Item types

What each item is, how it looks, and whether it can be assessed. Table Item types.

FieldValuesDefault
idRequired. Referenced by items
labelShown in the legend and the detailsthe id
color#rrggbbautomatic
shaperound-rectangle, rectangle, ellipse, hexagon, diamond, triangle, octagon, tag, barrelround-rectangle
bordersolid, dashed, dotted, double, none. Dashed and dotted draw a light "optional" looksolid
captionWhat the node shows: id, title, bothid
assessyes, no, or empty: items of this type get the self-assessment form (status, justification, evidence, verdict)empty: items without children
descriptionShown as a tooltip in the legend

A type used by an item but not declared is added with default looks (and reported).

What an arrow means. Table Link types.

FieldValuesDefault
idRequired. Referenced by links
labelShown in the legend and the detailsthe id
color#rrggbbautomatic
stylesolid, dashed, dottedsolid
arrowtriangle, none, square, circle, diamond, tee, veetriangle

Filters and tags

A filter is a group of checkboxes in the viewer's sidebar; each checkbox is a tag, and items carry the tags that apply to them. Table Filters: one row per tag, with the columns filter, filter label, mode, tag, tag label; rows with the same filter form one filter.

modeTicking tags...Typical use
any (default)shows the items carrying any ticked tagconditions ("passwords are used")
allshows the items carrying every ticked tagapplicability ("part 1" and "part 2")
nonehides the items carrying a ticked tag"hide recommendations"

Tag ids are unique across all filters. Tags used by items but not declared are gathered in a "Tags" filter (and reported). Several filters combine: an item must pass each one. Parents of a kept item are always drawn; the reader can also keep the items linked to the kept ones.

In JSON and YAML:

filters:
  - id: condition
    label: Conditions
    mode: any
    tags:
      - id: c1
        label: Passwords are used

Excel and CSV

The workbook has one sheet per table, named About, Item types, Link types, Filters, Items, Links (a Read me sheet is ignored). The first row of each sheet holds the column names, in any order; unknown columns are ignored; rows whose first cell starts with # are ignored. Common spellings are understood: source/target for from/to, kind or category for type, description for text, name for title...

With CSV, give one file per table. Each file is recognised by its name (items.csv, my-standard-links.csv...) or by its columns, so a single file of items is enough to start. Comma, semicolon and tab separators are all read.

What the reader does with it

Checks

The viewer and the builder (Check tab) report what they had to fix:

A file with errors still opens: what can be drawn is drawn.

Versioning

dataviz: 1 is the current format. Future versions will keep reading version 1 files. Unknown fields are ignored by the viewer and are not kept when the builder saves the file.