Skip to main content

Base Schema

Universal Ink Model base schema. Core structures that are used in several schemas.

Classes

InkModel

Abstract ink node within the content tree.

NameValue
Classwill:uim/1.1/InkModel [final]
Defined Inwill:uim/1.1

Properties

PropertyAttributeValue
hasRootData Type(s)will:uim/1.1/Root
Association Typeaggregation
Cardinality[1, inf] (mandatory)
Inverse OfhasParentInkModel
hasSchemaIncludeData Type(s)@uri
Association Typecomposition
Cardinality[0, inf] (optional)

InkNode

Abstract ink node within the content tree.

NameValue
Classwill:uim/1.1/InkNode [abstract]
Defined Inwill:uim/1.1
Specialized Bywill:uim/1.1/Root,will:uim/1.1/StrokeNode,will:uim/1.1/StrokeGroupNode,will:seg-math/0.1/ContentBlock

Properties

PropertyAttributeValue
hasChildData Type(s)will:uim/1.1/InkNode
Association Typecomposition
Cardinality[0, inf] (optional) (ordered)
Inverse OfhasParent
hasParentData Type(s)will:uim/1.1/InkNode
Association Typecomposition
Cardinality[0, 1] (optional)

Root

Root node of the content tree.

NameValue
Classwill:uim/1.1/Root [abstract]
Defined Inwill:uim/1.1
Specializeswill:uim/1.1/InkNode
Specialized Bywill:seg-math/0.1/Root,will:seg/0.3/Root

Properties

PropertyAttributeValue
generatedByData Type(s)@uri
DescriptionURI identifying the creator of the logical tree.
Association Typecomposition
Cardinality[0, 1] (optional)
hasChildData Type(s)will:uim/1.1/InkNode
Association Typecomposition
Cardinality[0, 1] overridden to [0, inf] (optional)
hasParentData Type(s)
DescriptionRoots can't have parents.
Association Typecomposition
Cardinality[0, 0] overridden to [0, 1] (optional)
hasParentInkModelData Type(s)will:uim/1.1/InkModel
DescriptionReferencing the parent InkModel.
Association Typecomposition
Cardinality[0, 1] (optional)
representsViewData Type(s)@string
DescriptionThe name of the view this node is a root of.
Association Typecomposition
Cardinality[0, 1] (optional)

StrokeNode

References a stroke in the UIM.

NameValue
Classwill:uim/1.1/StrokeNode
Defined Inwill:uim/1.1
Specializeswill:uim/1.1/InkNode

Properties

PropertyAttributeValue
hasChildData Type(s)
Association Typecomposition
Cardinality[0, 0] overridden to [0, inf] (optional)
hasParentData Type(s)
Association Typeaggregation
Cardinality[1, 1] overridden to [0, 1] (mandatory)
hasStrokeData Type(s)@uri
Association Typecomposition
Cardinality[0, 1] (optional)

StrokeGroupNode

NameValue
Classwill:uim/1.1/StrokeGroupNode
Defined Inwill:uim/1.1
Specializeswill:uim/1.1/InkNode
Specialized Bywill:seg/0.3/ContentBlock,will:seg/0.3/TextLine,will:seg/0.3/Word,will:seg/0.3/Line,will:seg/0.3/UnlabelledItemGroup,will:seg/0.3/UnlabelledItem,will:seg/0.3/DrawingItemGroup,will:seg/0.3/DrawingItem,will:seg/0.3/GenericExpressionItemGroup,will:seg/0.3/GenericExpressionItem,will:seg/0.3/DiagramConnector,will:seg/0.3/DiagramPart,will:seg/0.3/Border,will:seg/0.3/ListItem,will:seg/0.3/ListItemBullet,will:seg/0.3/Annotation

Properties

PropertyAttributeValue
hasChildData Type(s)will:uim/1.1/StrokeNode,will:uim/1.1/StrokeGroupNode
Association Typecomposition
Cardinality[0, inf] (optional)
hasParentData Type(s)
Association Typeaggregation
Cardinality[1, 1] overridden to [0, 1] (mandatory)

Schema Definition

{
"head": {
"uri": "will:uim/1.1",
"version": "1.1",
"description": "Universal Ink Model base schema. Core structures that are used in several schemas.",
"classUriTemplate": "will:uim/1.1/[class]",
"propertyUriTemplate": "will:uim/1.1/[class]#[property]",
"includes": []
},
"body": {
"extensions": {},
"classes": {
"will:uim/1.1/InkModel": {
"subclassOf": null,
"properties": {
"hasSchemaInclude": {
"dataType": "@uri",
"minCardinality": 0,
"maxCardinality": -1,
"isFinal": false
},
"hasRoot": {
"dataType": "will:uim/1.1/Root",
"minCardinality": 1,
"maxCardinality": -1,
"isFinal": false,
"inverseOf": "hasParentInkModel"
}
},
"isAbstract": false,
"isFinal": true,
"@desc": "Abstract ink node within the content tree."
},
"will:uim/1.1/InkNode": {
"subclassOf": null,
"properties": {
"hasChild": {
"dataType": "will:uim/1.1/InkNode",
"minCardinality": 0,
"maxCardinality": -1,
"isFinal": false,
"isOrdered": true,
"inverseOf": "hasParent"
},
"hasParent": {
"dataType": "will:uim/1.1/InkNode",
"minCardinality": 0,
"maxCardinality": 1,
"isFinal": false
}
},
"isAbstract": true,
"isFinal": false,
"@desc": "Abstract ink node within the content tree."
},
"will:uim/1.1/Root": {
"subclassOf": "will:uim/1.1/InkNode",
"properties": {
"hasChild": {
"dataType": "will:uim/1.1/InkNode",
"minCardinality": 0,
"maxCardinality": 1,
"isFinal": false
},
"hasParent": {
"dataType": "",
"minCardinality": 0,
"maxCardinality": 0,
"isFinal": false,
"@desc": "Roots can't have parents."
},
"representsView": {
"dataType": "@string",
"minCardinality": 0,
"maxCardinality": 1,
"isFinal": false,
"@desc": "The name of the view this node is a root of."
},
"generatedBy": {
"dataType": "@uri",
"minCardinality": 0,
"maxCardinality": 1,
"isFinal": false,
"@desc": "URI identifying the creator of the logical tree."
},
"hasParentInkModel": {
"dataType": "will:uim/1.1/InkModel",
"minCardinality": 0,
"maxCardinality": 1,
"isFinal": false,
"@desc": "Referencing the parent `InkModel`."
}
},
"isAbstract": true,
"isFinal": false,
"@desc": "Root node of the content tree."
},
"will:uim/1.1/StrokeNode": {
"subclassOf": "will:uim/1.1/InkNode",
"properties": {
"hasStroke": {
"dataType": "@uri",
"minCardinality": 0,
"maxCardinality": 1,
"isFinal": false
},
"hasChild": {
"dataType": "",
"minCardinality": 0,
"maxCardinality": 0,
"isFinal": false
},
"hasParent": {
"dataType": "",
"minCardinality": 1,
"maxCardinality": 1,
"isFinal": false
}
},
"isAbstract": false,
"isFinal": false,
"@desc": "References a stroke in the UIM."
},
"will:uim/1.1/StrokeGroupNode": {
"subclassOf": "will:uim/1.1/InkNode",
"properties": {
"hasChild": {
"dataType": "will:uim/1.1/StrokeNode,will:uim/1.1/StrokeGroupNode",
"minCardinality": 0,
"maxCardinality": -1,
"isFinal": false
},
"hasParent": {
"dataType": "",
"minCardinality": 1,
"maxCardinality": 1,
"isFinal": false
}
},
"isAbstract": false,
"isFinal": false
}
}
}
}