Base Schema
Universal Ink Model base schema. Core structures that are used in several schemas.
Classes
InkModel
Abstract ink node within the content tree.
Name | Value |
---|---|
Class | will:uim/1.1/InkModel [final] |
Defined In | will:uim/1.1 |
Properties
Property | Attribute | Value |
---|---|---|
hasRoot | Data Type(s) | will:uim/1.1/Root |
Association Type | aggregation | |
Cardinality | [1, inf] (mandatory) | |
Inverse Of | hasParentInkModel | |
hasSchemaInclude | Data Type(s) | @uri |
Association Type | composition | |
Cardinality | [0, inf] (optional) |
InkNode
Abstract ink node within the content tree.
Name | Value |
---|---|
Class | will:uim/1.1/InkNode [abstract] |
Defined In | will:uim/1.1 |
Specialized By | will:uim/1.1/Root,will:uim/1.1/StrokeNode,will:uim/1.1/StrokeGroupNode,will:seg-math/0.1/ContentBlock |
Properties
Property | Attribute | Value |
---|---|---|
hasChild | Data Type(s) | will:uim/1.1/InkNode |
Association Type | composition | |
Cardinality | [0, inf] (optional) (ordered) | |
Inverse Of | hasParent | |
hasParent | Data Type(s) | will:uim/1.1/InkNode |
Association Type | composition | |
Cardinality | [0, 1] (optional) |
Root
Root node of the content tree.
Name | Value |
---|---|
Class | will:uim/1.1/Root [abstract] |
Defined In | will:uim/1.1 |
Specializes | will:uim/1.1/InkNode |
Specialized By | will:seg-math/0.1/Root,will:seg/0.3/Root |
Properties
Property | Attribute | Value |
---|---|---|
generatedBy | Data Type(s) | @uri |
Description | URI identifying the creator of the logical tree. | |
Association Type | composition | |
Cardinality | [0, 1] (optional) | |
hasChild | Data Type(s) | will:uim/1.1/InkNode |
Association Type | composition | |
Cardinality | [0, 1] overridden to [0, inf] (optional) | |
hasParent | Data Type(s) | |
Description | Roots can't have parents. | |
Association Type | composition | |
Cardinality | [0, 0] overridden to [0, 1] (optional) | |
hasParentInkModel | Data Type(s) | will:uim/1.1/InkModel |
Description | Referencing the parent InkModel . | |
Association Type | composition | |
Cardinality | [0, 1] (optional) | |
representsView | Data Type(s) | @string |
Description | The name of the view this node is a root of. | |
Association Type | composition | |
Cardinality | [0, 1] (optional) |
StrokeNode
References a stroke in the UIM.
Name | Value |
---|---|
Class | will:uim/1.1/StrokeNode |
Defined In | will:uim/1.1 |
Specializes | will:uim/1.1/InkNode |
Properties
Property | Attribute | Value |
---|---|---|
hasChild | Data Type(s) | |
Association Type | composition | |
Cardinality | [0, 0] overridden to [0, inf] (optional) | |
hasParent | Data Type(s) | |
Association Type | aggregation | |
Cardinality | [1, 1] overridden to [0, 1] (mandatory) | |
hasStroke | Data Type(s) | @uri |
Association Type | composition | |
Cardinality | [0, 1] (optional) |
StrokeGroupNode
Properties
Property | Attribute | Value |
---|---|---|
hasChild | Data Type(s) | will:uim/1.1/StrokeNode,will:uim/1.1/StrokeGroupNode |
Association Type | composition | |
Cardinality | [0, inf] (optional) | |
hasParent | Data Type(s) | |
Association Type | aggregation | |
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
}
}
}
}