JIIX format reference

Content Blocks

The ContentBlocks hierarchy of a ContentPart is described in JIIX as a hierarchy of JSON objects. All content block objects are associated with a “type” property, and with other properties depending on the “type” of the block.

  • type

    • purpose: indicates the type of block that is exported.
    • content: a string among “Diagram”, “Drawing”, “Math”, “Text”, “Raw Content” and “Container”.

Container Block

A block of type “Container” contains children blocks. It is associated with the following properties:

  • id

    • purpose: provides a unique reference for that block.
    • content: a string.
    • example: "id": "3544"
  • children

    • purpose: provides the list of blocks within this container block.
    • content: an array of blocks.

Diagram Block

A block of type “Diagram” is associated with the following properties:

  • elements

    • purpose: provides an array of recognized diagram items.
    • content: an array of diagram items.

Diagram Item Block

A diagram item block describes an item within the diagram : connector, text block, shape, etc.

  • type

    • purpose: describes the type of diagram item.
    • content: a string.
    • example: Node, Edge, Text
  • kind

    • purpose: describes the sub type of diagram items of type Node or Edge.
    • content: a string.
    • example: rectangle, circle, arc
  • id

    • purpose: provides a unique number identifier for this diagram item.
    • content: a number.
  • label

    • purpose: provides the id of the diagram item of type Text that describes the label associated with an item of type Node.
    • content: a diagram item numerical id.
    • example: "label": 24
  • parent

    • purpose: provides the diagram item’s parent item.
    • content: a diagram item numerical id.
    • example: "parent": 38,
  • children

    • purpose: provides an array of children diagram items associated with items of type Node or Edge.
    • content: an array of diagram items numerical ids.
    • example: "children": [ 48, 62 ]

Diagram Node Block

A diagram item of “type” Node is a associated with a given shape, which is described in its “kind” property. Supported “kind” values are : rectangle, rhombus, polygon, circle, ellipse, doodle. Depending on its “kind”, it is associated with the following properties:

  • "kind": rectangle

    • x the x position of the left edge of the rectangle.
    • y the y position of the top edge of the rectangle.
    • width the width of the rectangle.
    • height the height of the rectangle.
  • "kind": rhombus

    • points the array containing the 4 {x, y} points describing the rhombus.
  • "kind": polygon

    • points the array of {x, y} points describing the polygon.
  • "kind": circle

    • cx the x position of the center of the circle.
    • cy the y position of the center of the circle.
    • r the radius of the circle.
  • "kind": ellipse : an axis aligned ellipsis.

    • cx the x position of the center of the ellipse.
    • cy the y position of the center of the ellipse.
    • rx the x radius of the ellipse.
    • ry the y radius of the circle.
  • "kind": doodle

    • no specific property describes a doodle.

Diagram Edge Block

A diagram item of “type” Edge connects other diagram items. It is associated with the following properties. Supported “kind” values are : line, arc.

  • connected

    • purpose: provides the list of the diagram items connected by this edge.
    • content: an array of diagram items numerical ids.
    • example: "connected": [ 11, 62 ]
  • ports

    • purpose: provides the list of connection ports associated with this edge.
    • content: a list of ports numerical ids.
    • example: "ports": [ 0, 1 ]

Diagram Polyedge Block

A diagram item of “type” Polyedge connects other diagram items via several other edges. It is associated with the following properties:

  • connected

    • purpose: provides the list of the diagram items connected by this polyedge.
    • content: an array of diagram items numerical ids.
    • example: "connected": [ 11, 62 ]
  • edges

    • purpose: provides the list of edges composing this polyedge.
    • content: a list of diagram edge items.

Diagram Text Block

A diagram item of “type” Text combines the properties of a diagram item and of a Text Block.

Drawing Block

A drawing block is not associated with any specific properties, beyond the common block properties.

Math Block

A block of type “Math” is associated with the following properties:

  • expressions

    • purpose: provides an array of recognized Math expressions.
    • content: an array of math nodes.

Math Node Block

A math node block describes a portion of a mathematical expression. Depending on the math node “type”, a math node may contains other math nodes, in the “operands” property.

  • type

    • purpose: indicates the type of the node.
    • content: a string.
    • example: +, -, number, =, fraction, square root, fence, symbol, underscript, matrix
  • label

    • purpose: indicates the label associated with the node, when it is different from “type”.
    • content: a string.
    • example: 2.453..., , θ, dx
  • operands

    • purpose: provides the operands associated with the nodes, if any.
    • content: an array of math nodes.
  • generated

    • purpose: signals a node that was added by IINK SDK solver, when not provided this properties is considered false.
    • content: a boolean.
  • value

    • purpose: provides the numerical value associated to a given node, when not provided indicates that the IINK SDK solver could not solves this paticular node.
    • content: a number.

Fence Math Block

Math nodes of “type” fence contain specific properties:

  • open symbol

    • purpose: indicates the opening symbol of the fence. If this property is not set, indicates that no opening symbol was recognized.
    • content: a string.
    • example: (, [, {
  • close symbol

    • purpose: indicates the closing symbol of the fence. If this property is not set, indicates that no closing symbol was recognized.
    • content: a string.
    • example: ), ], }

Matrix Math Block

Math nodes of “type” matrix contain specific properties:

  • rows

    • purpose: provides the content of the matrix, row per row.
    • content: an array of cells objects, each representing a row of the matrix.
  • cells

    • purpose: provides the content of a row of the matrix.
    • content: an array of math nodes.

System Math Block

Math nodes of “type” system contain specific properties:

  • expressions

    • purpose: provides the array of expressions within the system.
    • content: an array of math nodes.

Text Block

A block of type “Text” is associated with the following properties:

  • label

    • purpose: provides the recognition result associated with this text block.
    • content: a string.
    • example: "label": "hello how are you"
  • words

    • purpose: the list of recognized words.
    • content: an array of word objects.

    • configuration: present in JIIX export when export.jiix.text.words configuration is true.
  • chars

    • purpose: the list of recognized chars.
    • content: an array of char objects.

    • configuration: present in JIIX export when export.jiix.text.chars configuration is true.

Word Block

A word block describes a recognized word. It is associated with the following properties:

  • label

    • purpose: provides the recognition result associated with this word.
    • content: a string.
    • example: "label": "hello"
  • candidates

    • purpose: provides the list of recognition candidates associated with this word.
    • content: an array of string.
    • example: "candidates": [ "hello", "Hello", "hellos", "hella", "bello" ]
  • first-char

    • purpose: provides the index of the first character contained in this word.
    • content: an integer.
    • example: "first-char": 24

    • configuration: present in JIIX export when export.jiix.text.chars configuration is true.
  • last-char

    • purpose: provides the index of the last character contained in this word.
    • content: an integer.
    • example: "last-char": 29

    • configuration: present in JIIX export when export.jiix.text.chars configuration is true.

Char Block

A char block describes a recognized character. It is associated with the following properties:

  • label

  • purpose: provides the recognition result associated with this char.
  • content: a string.
  • example: "label": "h"

  • grid

    • purpose: provides the highlight area associated with this char.
    • content: an array of 4 points, each containing x and y floating points coordinates.
    • example: "grid": [ {"x": 1, "y": 5}, {"x": 3.5, "y": 5}, {"x": 3.5, "y": 10}, {"x": 1, "y": 10} ]
  • word

    • purpose: provides the index of the word that contains this char.
    • content: an integer.
    • example: "word": 10

    • configuration: present in JIIX export when export.jiix.text.words configuration is true.

Raw Content Block

A Raw Content block corresponds to the output of raw digital ink analysis. It is meant to express a segmentation between ink corresponding to text vs. ink corresponding to non-text, with optional interpretation as text and shape recognition results expressed as a hierarchy of diagram items.

A block of type “Raw Content” is associated with the “elements” property:

  • elements

    • purpose: provides an array of Raw Content items and/or Diagram items, depending on whether raw-content.recognition.text and raw-content.recognition.shape are set to true or false.
    • content: an array of Raw Content and/or Diagram items.

Raw Content Item Block

  • kind:

    • purpose: identify the raw content item as representing “text” or “non-text” ink data
    • content: a string.
    • example: text or non-text
  • id

    • purpose: provides a unique number identifier for this raw content item.
    • content: a number.
  • label

    • purpose: provides the id of the raw content item of type Text that can be seen as the label associated with the current “non-text” item.
    • content: a raw content item numerical id.
    • example: "label": 24
  • parent

    • purpose: provides the raw content item’s parent item.
    • content: a raw content item numerical id.
    • example: "parent": 38,
  • children

    • purpose: provides an array of children raw content items associated with the current item
    • content: an array of raw content items numerical ids.
    • example: "children": [ 48, 62 ]

Common Block Properties

Following information is available for all types of JIIX blocks.

  • bounding-box

    • purpose: describes the extent of the item.
    • content: x, y, width, height.

      • configuration: present in JIIX export when export.jiix.bounding-box configuration is true.
  • strokes

    • purpose: describes the strokes associated with this item.
    • content: an array of objects that describe a stroke. A stroke is described as timestamp, an id and arrays containing X, Y, T and F values for the stroke.
    • remark: a given stroke is referenced only once, and strokes are provided only on blocks that are specifically associated with some ink.
  • configuration: present in JIIX export when export.jiix.strokes configuration is true.

  • range

    • purpose: identifies the group of strokes.
    • content: a string based on iink sdk internal references.
    • remark: a given range is referenced only once, and only on blocks that are specifically associated with some ink.
  • configuration: present in JIIX export when export.jiix.strokes configuration is true.

  • id

    • purpose: identifies the group of strokes.
    • content: a string based on iink sdk internal references.
    • remark: available only from a “Text Document” export.

Math Node Complete Overview

type operands other properties
number 0 label
symbol 0 label
group >=2  
+ >=1  
- >=1  
× (U+00D7: multiplication sign) >=1  
/ >=1  
÷ (U+00F7: division sign) >=1  
fraction 2  
power 1  
! 1  
percentage 2 (reference, percentage) operator:+, - or × (U+00D7: multiplication sign)
= 2  
> 2  
< 2  
(U+2248: almostEqualTo) 2  
(U+2243: asymptoticallyEqualTo) 2  
(U+2260: notEqualTo) 2  
(U+2261: identicalTo) 2  
(U+2262: notIdenticalTo) 2  
(U+2264: lessThanOrEqualTo) 2  
(U+2265: greaterThanOrEqualTo) 2  
(U+226A: muchLessThan) 2  
(U+226B: muchGreaterThan) 2  
(U+21D0: leftwardsDoubleArrow) 2  
(U+21D2: rightwardsDoubleArrow) 2  
(U+21D4: leftRightDoubleArrow) 2  
(U+2225: parallelTo) 2  
square root 1 (U+221A: square root)
system 0 expressions[node]
matrix 0 rows[cells]
rows 0 cells[node]
fence 1 open symbol, close symbol
underscript 2 (script, underscript)  
overscript 2 (script, overscript)  
underoverscript 3 (script, underscript, overscript)  
superscript 2 (script, superscript)  
subscript 2 (script, subscript)  
subsuperscript 3 (script, subscript, superscript)  
presuperscript 2 (script, presuperscript)  
presubscript 2 (script, presubscript)  
presubsuperscript 3 (script, presubscript, presuperscript)  
partialfractionnumerator 1 (numerator)  
partialfractiondenominator 1 (denominator)  
slantedfraction 2 (numerator, denominator)  

We use cookies to ensure that we give you the best experience on our website Read the privacy policy