]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.viewpoint.ontology/graph/Viewpoint.pgraph
Fixed a typo in Viewpoint ontology
[simantics/platform.git] / bundles / org.simantics.viewpoint.ontology / graph / Viewpoint.pgraph
index c6db5efaaa1895616755ce77f2533765252dd9f0..e345d6798b83c20da9dc0beb2e8961f8d48815b0 100644 (file)
-L0 = <http://www.simantics.org/Layer0-1.1>\r
-IMAGE = <http://www.simantics.org/Image2-1.2>\r
-COLOR = <http://www.simantics.org/Color-1.1>\r
-\r
-VP = <http://www.simantics.org/Viewpoint-1.2> : L0.Ontology\r
-    @L0.new\r
-    L0.HasResourceClass "org.simantics.viewpoint.ontology.ViewpointResource"\r
-\r
-VP.NodeType <T L0.Entity\r
-    @L0.singleProperty VP.HasContentType\r
-    @L0.optionalProperty VP.HasBundle\r
-VP.HasBundle <R L0.HasProperty : L0.FunctionalRelation\r
-    L0.HasDescription """Bundle specifies the symbolic ID of the bundle which should be used for loading the class pointed to by HasContentType. This needs to be used if a class is not loadable by bundle org.simantics.browsing.ui.model."""\r
-    L0.HasRange L0.String\r
-VP.HasContentType <R L0.HasProperty : L0.FunctionalRelation\r
-    L0.HasDescription """Content type specifies the (SCL) type of the node content, if the subject is used as a node type. If not specified the content type is Resource."""\r
-    L0.HasRange L0.String\r
-VP.ResourceNodeType <T VP.NodeType\r
-    @L0.assert VP.HasContentType "Resource"\r
-    \r
-VP.BrowseContext <T L0.Entity\r
-    L0.HasDescription """All viewpoint contributions are associated with a browse context. They can be used to control which contributions are enabled for a specific browsing component. Browse contexts form a hierarchy: by enabling a super context also the contexts inherited from it are enabled."""\r
-VP.BrowseContext.Includes <R L0.IsRelatedTo\r
-    L0.HasDomain VP.BrowseContext\r
-    L0.HasRange VP.BrowseContext\r
-    L0.InverseOf VP.BrowseContext.IsIncludedIn <R L0.IsRelatedTo\r
-VP.BrowseContext.HasChildContribution <R L0.IsRelatedTo\r
-    L0.HasDomain VP.BrowseContext\r
-    L0.HasRange VP.ChildContribution\r
-VP.BrowseContext.HasVisualsContribution <R L0.IsRelatedTo\r
-    L0.HasDomain VP.BrowseContext\r
-    L0.HasRange VP.VisualsContribution\r
-\r
-VP.BrowseContextContribution <T L0.Entity\r
-    >-- VP.BrowseContextContribution.HasType --> L0.Type <R L0.IsRelatedTo\r
-    >-- VP.BrowseContextContribution.HasBrowseContext --> VP.BrowseContext <R L0.IsRelatedTo\r
-    >-- VP.BrowseContextContribution.allowedUIContexts --> L0.StringArray <R L0.HasProperty : L0.FunctionalRelation\r
-\r
-VP.ActionBrowseContextContribution <T L0.Entity\r
-    >-- VP.ActionBrowseContextContribution.HasType --> L0.Type <R L0.IsRelatedTo\r
-    >-- VP.ActionBrowseContextContribution.HasActionBrowseContext --> VP.BrowseContext <R L0.IsRelatedTo\r
-    >-- VP.ActionBrowseContextContribution.allowedUIContexts --> L0.StringArray <R L0.HasProperty : L0.FunctionalRelation\r
-\r
-VP.ChildContribution <T L0.Entity\r
-    L0.HasDescription """A child contribution is adds child nodes to the instances of a specific node type."""\r
-    >-- VP.ChildContribution.HasParentNodeType --> L0.Entity <R L0.IsRelatedTo : L0.TotalFunction\r
-    >-- VP.ChildContribution.HasChildNodeType --> L0.Entity <R L0.IsRelatedTo : L0.TotalFunction\r
-    >-- VP.ChildContribution.HasRule --> L0.Entity <R L0.IsRelatedTo : L0.TotalFunction\r
-    >-- VP.ChildContribution.identifier --> L0.String <R L0.HasProperty : L0.TotalFunction\r
-    >-- VP.ChildContribution.priority --> L0.Double <R L0.HasProperty : L0.TotalFunction\r
-    @L0.assert VP.ChildContribution.identifier "" \r
-    @L0.assert VP.ChildContribution.priority 0.0 \r
-\r
-VP.ChildRule <T L0.Entity\r
-    L0.HasDescription """A child rule is a part of child contribution that tells how the child nodes are found."""\r
-VP.EqualContentChildRule <T VP.ChildRule\r
-    L0.HasDescription """A child rule that says that there is exactly one child node whose content is equal to the content of the parent.\r
-There is an optional condition restricting when the rule is applied."""\r
-VP.EqualContentChildRule.HasCondition <R L0.IsRelatedTo : L0.FunctionalRelation\r
-    L0.HasDomain VP.EqualContentChildRule\r
-    L0.HasRange VP.Test\r
-VP.RelationChildRule <T VP.ChildRule\r
-    L0.HasDescription """A child rule that follows the given relation. Content type of both parent and child node types must be Resources."""\r
-    >-- VP.RelationChildRule.HasRelation --> L0.Relation <R L0.IsRelatedTo : L0.TotalFunction\r
-    >-- VP.RelationChildRule.HasTest --> VP.Test <R L0.IsRelatedTo : L0.FunctionalRelation\r
-VP.RelationStatementRule <T VP.ChildRule\r
-    L0.HasDescription """A child rule that follows the given relation. Content type of parent must be Resource. Content type of child must be Statement."""\r
-    >-- VP.RelationStatementRule.HasRelation --> L0.Relation <R L0.IsRelatedTo : L0.TotalFunction\r
-    >-- VP.RelationStatementRule.HasTest --> VP.Test <R L0.IsRelatedTo : L0.FunctionalRelation\r
-VP.CompositeChildRule <T VP.ChildRule\r
-    L0.HasDescription """A child rule composed of other child rules."""\r
-VP.CompositeChildRule.HasChildRules <R L0.IsComposedOf : L0.TotalFunction\r
-    L0.HasDomain VP.CompositeChildRule\r
-    L0.HasRange L0.OrderedSet\r
-VP.ConstantChildRule <T VP.ChildRule\r
-    L0.HasDescription """Says that a certain constant resource is a child of the parent."""\r
-VP.ConstantChildRule.HasChild <R L0.IsComposedOf\r
-    L0.HasDomain VP.ConstantChildRule\r
-    \r
-VP.VisualsContribution <T L0.Entity\r
-    L0.HasDescription """A visuals contribution adds visual properties to the instances of a specific node type."""\r
-VP.VisualsContribution.HasNodeType <R L0.IsRelatedTo : L0.TotalFunction\r
-    L0.HasDomain VP.VisualsContribution\r
-    L0.HasRange L0.Entity    \r
-VP.VisualsContribution.HasRule <R L0.IsRelatedTo\r
-    L0.HasDomain VP.VisualsContribution\r
-    L0.HasRange VP.VisualsRule\r
-VP.VisualsContribution.HasPriority <R L0.HasProperty : L0.FunctionalRelation\r
-    L0.HasDomain VP.VisualsContribution\r
-    L0.HasRange L0.Double\r
-VP.VisualsContribution.HasCondition <R L0.IsRelatedTo : L0.FunctionalRelation\r
-    L0.HasDomain VP.VisualsContribution\r
-    L0.HasRange VP.Test    \r
-    \r
-VP.VisualsRule <T L0.Entity   \r
-    \r
-VP.LabelRule <T VP.VisualsRule\r
-    L0.HasDescription """Label rule gives a label to a node."""\r
-VP.ConstantLabelRule <T VP.LabelRule     \r
-    L0.HasDescription """Constant label rule gives a fixed label to a node."""\r
-VP.ConstantLabelRule.HasLabel <R L0.HasProperty : L0.TotalFunction            \r
-    L0.HasDomain VP.ConstantLabelRule\r
-    L0.HasRange L0.String\r
-VP.ConstantLabelRule.HasColumnKey <R L0.HasProperty : L0.TotalFunction            \r
-    L0.HasDomain VP.ConstantLabelRule\r
-    L0.HasRange L0.String\r
-VP.StandardNameLabelRule : VP.LabelRule     \r
-    L0.HasDescription """Label rule based on resource names and labels controlled by PlatformUI.hasNameLabelMode."""\r
-VP.ResourceNameLabelRule : VP.LabelRule     \r
-    L0.HasDescription """Label rule based on resource names."""\r
-VP.ResourceLabelLabelRule : VP.LabelRule\r
-    L0.HasDescription """Label rule based on resource labels."""\r
-\r
-VP.TooltipRule <T VP.VisualsRule\r
-    L0.HasDescription """Tooltip rule gives a tooltip to a node."""\r
-VP.DescriptionTooltipRule : VP.TooltipRule\r
-    L0.HasDescription """Tooltip rule that reads tooltip from node's L0.HasDescription."""\r
-\r
-VP.ModifierRule <T VP.VisualsRule\r
-    L0.HasDescription """Modifier rule gives a modifier to a node."""\r
-VP.NoModifierRule : VP.ModifierRule\r
-    L0.HasDescription """Modifier rule that denies modifications."""\r
-VP.ResourceNameModifierRule : VP.ModifierRule\r
-    L0.HasDescription """Modifier rule based on resource names."""\r
-VP.ResourceLabelModifierRule : VP.ModifierRule\r
-    L0.HasDescription """Modifier rule based on resource labels."""\r
-VP.VariableLabelModifierRule : VP.ModifierRule\r
-    L0.HasDescription """Modifier rule based on variable labels."""\r
-\r
-VP.ImageRule <T VP.VisualsRule\r
-    L0.HasDescription """Label rule gives an image to a node."""\r
-VP.ConstantImageRule <T VP.LabelRule     \r
-    L0.HasDescription """Constant label rule gives a fixed image to a node."""\r
-VP.ConstantImageRule.HasImage <R L0.HasProperty : L0.TotalFunction            \r
-    L0.HasDomain VP.ConstantLabelRule\r
-    L0.HasRange IMAGE.Image\r
-VP.ConstantImageRule.HasColumnKey <R L0.HasProperty : L0.TotalFunction            \r
-    L0.HasDomain VP.ConstantLabelRule\r
-    L0.HasRange IMAGE.Image\r
-\r
-VP.LabelDecorationRule <T VP.VisualsRule\r
-    L0.HasDescription """Label decoration rule decorates the label of a node."""    \r
-VP.ConstantLabelDecorationRule <T VP.LabelDecorationRule\r
-VP.ConstantLabelDecorationRule.HasFormat <R L0.HasProperty : L0.FunctionalRelation            \r
-    L0.HasDomain VP.ConstantLabelDecorationRule\r
-    L0.HasRange L0.String\r
-VP.ConstantLabelDecorationRule.HasForegroundColor <R L0.HasProperty : L0.FunctionalRelation            \r
-    L0.HasDomain VP.ConstantLabelDecorationRule\r
-    L0.HasRange COLOR.RGB\r
-VP.ConstantLabelDecorationRule.HasBackgroundColor <R L0.HasProperty : L0.FunctionalRelation        \r
-    L0.HasDomain VP.ConstantLabelDecorationRule\r
-    L0.HasRange COLOR.RGB\r
-VP.ConstantLabelDecorationRule.HasFont <R L0.HasProperty : L0.FunctionalRelation            \r
-    L0.HasDomain VP.ConstantLabelDecorationRule\r
-    L0.HasRange L0.String\r
-VP.ConstantLabelDecorationRule.HasStyle <R L0.HasProperty : L0.FunctionalRelation            \r
-    L0.HasDomain VP.ConstantLabelDecorationRule\r
-    L0.HasRange L0.String\r
-\r
-VP.FlatNodeRule : VP.VisualsRule\r
-\r
-VP.ImageDecorationRule <T VP.VisualsRule\r
-    L0.HasDescription """Image decoration rule decorates the image of a node."""\r
-\r
-VP.SorterRule <T VP.VisualsRule\r
-VP.PassThruSorterRule : VP.SorterRule\r
-VP.AlphanumericSorterRule : VP.SorterRule\r
-VP.LinkedListSorterRule : VP.SorterRule\r
-\r
-VP.CheckedStateRule <T VP.VisualsRule\r
-\r
-VP.Test <T L0.Entity\r
-    L0.HasDescription """Tests may be used to control if contributions are enabled for specific node content."""  \r
-            \r
-// Templates \r
-VP.relationChildRule : L0.Template\r
-    @template %browseContext %parentType %relation %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.RelationChildRule\r
-                    VP.RelationChildRule.HasRelation %relation\r
-\r
-VP.relationStatementRule : L0.Template\r
-    @template %browseContext %parentType %relation %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.RelationStatementRule\r
-                    VP.RelationStatementRule.HasRelation %relation\r
-\r
-VP.equalContentChildRule : L0.Template\r
-    @template %browseContext %parentType %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule\r
-\r
-VP.constantChildRule : L0.Template\r
-    @template %browseContext %parentType %child\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType L0.Entity\r
-                VP.ChildContribution.HasRule _ : VP.ConstantChildRule\r
-                    VP.ConstantChildRule.HasChild %child                    \r
-                \r
-VP.customChildRule : L0.Template\r
-    @template %browseContext %parentType %childRule %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule %childRule\r
-\r
-VP.customModifierRule : L0.Template\r
-    @template %browseContext %parentType %modifierRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %modifierRule\r
-\r
-VP.customVisualsRule : L0.Template\r
-    @template %browseContext %parentType %labelRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-\r
-VP.customVisualsRuleWithPriority : L0.Template\r
-    @template %browseContext %parentType %labelRule %priority\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-                VP.VisualsContribution.HasPriority %priority\r
-\r
-VP.customVisualsRuleWithPriorityAndTest : L0.Template\r
-    @template %browseContext %parentType %labelRule %priority %condition\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-                VP.VisualsContribution.HasPriority %priority\r
-                VP.VisualsContribution.HasCondition %condition\r
-\r
-VP.constantLabelRule : L0.Template\r
-    @template %browseContext %parentType %label\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule\r
-                    VP.ConstantLabelRule.HasLabel %label\r
-                    VP.ConstantLabelRule.HasColumnKey "single"\r
-\r
-VP.constantLabelRuleWithColumn : L0.Template\r
-    @template %browseContext %parentType %key %label\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule\r
-                    VP.ConstantLabelRule.HasLabel %label\r
-                    VP.ConstantLabelRule.HasColumnKey %key\r
-\r
-VP.customLabelRule : L0.Template\r
-    @template %browseContext %parentType %labelRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-\r
-VP.customLabelRuleWithPriority : L0.Template\r
-    @template %browseContext %parentType %labelRule %priority\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-                VP.VisualsContribution.HasPriority %priority\r
-\r
-VP.constantImageRule : L0.Template\r
-    @template %browseContext %parentType %image\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule\r
-                    VP.ConstantImageRule.HasColumnKey "single"\r
-                    VP.ConstantImageRule.HasImage %image\r
-\r
-VP.constantImageRuleWithColumn : L0.Template\r
-    @template %browseContext %parentType %columnKey %image\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule\r
-                    VP.ConstantImageRule.HasColumnKey %columnKey\r
-                    VP.ConstantImageRule.HasImage %image\r
-\r
-VP.customImageRule : L0.Template\r
-    @template %browseContext %parentType %imageRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %imageRule\r
-\r
-VP.customCheckedStateRule : L0.Template\r
-    @template %browseContext %parentType %stateRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %stateRule\r
-\r
-VP.relationChildRuleWithFolder : L0.Template\r
-    @template %browseContext %parentType %relation %childType %folder \r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %folder\r
-                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule\r
-            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %folder\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.RelationChildRule\r
-                    VP.RelationChildRule.HasRelation %relation\r
-\r
-VP.customLabelDecorationRule : L0.Template\r
-    @template %browseContext %parentType %decorationRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %decorationRule \r
-\r
-VP.customImageDecorationRule : L0.Template\r
-    @template %browseContext %parentType %decorationRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %decorationRule \r
-\r
-VP.defineRelationChildRule : L0.Template\r
-    @template %rule %parentType %relation %childType\r
-        %rule : VP.ChildContribution\r
-            VP.ChildContribution.HasParentNodeType %parentType\r
-            VP.ChildContribution.HasChildNodeType %childType\r
-            VP.ChildContribution.HasRule _ : VP.RelationChildRule\r
-                VP.RelationChildRule.HasRelation %relation\r
-\r
-// Templates for named rules \r
-VP.namedRelationChildRule : L0.Template\r
-    @template %browseContext %name %parentType %relation %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.RelationChildRule\r
-                    VP.RelationChildRule.HasRelation %relation\r
-\r
-VP.namedRelationStatementRule : L0.Template\r
-    @template %browseContext %name %parentType %relation %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.RelationStatementRule\r
-                    VP.RelationStatementRule.HasRelation %relation\r
-\r
-VP.namedEqualContentChildRule : L0.Template\r
-    @template %browseContext %name %parentType %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule\r
-\r
-VP.namedConstantChildRule : L0.Template\r
-    @template %browseContext %name %parentType %child\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType L0.Entity\r
-                VP.ChildContribution.HasRule _ : VP.ConstantChildRule\r
-                    VP.ConstantChildRule.HasChild %child                    \r
-                \r
-VP.namedCustomChildRule : L0.Template\r
-    @template %browseContext %name %parentType %childRule %childType\r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule %childRule\r
-\r
-VP.namedCustomModifierRule : L0.Template\r
-    @template %browseContext %name %parentType %modifierRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %modifierRule\r
-\r
-VP.namedCustomVisualsRule : L0.Template\r
-    @template %browseContext %name %parentType %labelRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-\r
-VP.namedCustomVisualsRuleWithPriority : L0.Template\r
-    @template %browseContext %name %parentType %labelRule %priority\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-                VP.VisualsContribution.HasPriority %priority\r
-\r
-VP.namedCustomVisualsRuleWithPriorityAndTest : L0.Template\r
-    @template %browseContext %name %parentType %labelRule %priority %condition\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-                VP.VisualsContribution.HasPriority %priority\r
-                VP.VisualsContribution.HasCondition %condition\r
-\r
-VP.namedConstantLabelRule : L0.Template\r
-    @template %browseContext %name %parentType %label\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule\r
-                    VP.ConstantLabelRule.HasLabel %label\r
-                    VP.ConstantLabelRule.HasColumnKey "single"\r
-\r
-VP.namedConstantLabelRuleWithColumn : L0.Template\r
-    @template %browseContext %name %parentType %key %label\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule\r
-                    VP.ConstantLabelRule.HasLabel %label\r
-                    VP.ConstantLabelRule.HasColumnKey %key\r
-\r
-VP.namedCustomLabelRule : L0.Template\r
-    @template %browseContext %name %parentType %labelRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-\r
-VP.namedCustomLabelRuleWithPriority : L0.Template\r
-    @template %browseContext %name %parentType %labelRule %priority\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %labelRule\r
-                VP.VisualsContribution.HasPriority %priority\r
-\r
-VP.namedConstantImageRule : L0.Template\r
-    @template %browseContext %name %parentType %image\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule\r
-                    VP.ConstantImageRule.HasColumnKey "single"\r
-                    VP.ConstantImageRule.HasImage %image\r
-\r
-VP.namedConstantImageRuleWithColumn : L0.Template\r
-    @template %browseContext %name %parentType %columnKey %image\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule\r
-                    VP.ConstantImageRule.HasColumnKey %columnKey\r
-                    VP.ConstantImageRule.HasImage %image\r
-\r
-VP.namedCustomImageRule : L0.Template\r
-    @template %browseContext %name %parentType %imageRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %imageRule\r
-\r
-VP.namedCustomCheckedStateRule : L0.Template\r
-    @template %browseContext %name %parentType %stateRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %stateRule\r
-\r
-VP.namedRelationChildRuleWithFolder : L0.Template\r
-    @template %browseContext %folderName %folderChildrenName %parentType %relation %childType %folder \r
-        %browseContext\r
-            VP.BrowseContext.HasChildContribution %folderName : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %parentType\r
-                VP.ChildContribution.HasChildNodeType %folder\r
-                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule\r
-            VP.BrowseContext.HasChildContribution %folderChildrenName : VP.ChildContribution\r
-                VP.ChildContribution.HasParentNodeType %folder\r
-                VP.ChildContribution.HasChildNodeType %childType\r
-                VP.ChildContribution.HasRule _ : VP.RelationChildRule\r
-                    VP.RelationChildRule.HasRelation %relation\r
-\r
-VP.namedCustomLabelDecorationRule : L0.Template\r
-    @template %browseContext %name %parentType %decorationRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %decorationRule \r
-\r
-VP.namedCustomImageDecorationRule : L0.Template\r
-    @template %browseContext %name %parentType %decorationRule\r
-        %browseContext\r
-            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution\r
-                VP.VisualsContribution.HasNodeType %parentType\r
-                VP.VisualsContribution.HasRule %decorationRule \r
+L0 = <http://www.simantics.org/Layer0-1.1>
+IMAGE = <http://www.simantics.org/Image2-1.2>
+COLOR = <http://www.simantics.org/Color-1.1>
+
+VP = <http://www.simantics.org/Viewpoint-1.2> : L0.Ontology
+    @L0.new
+    L0.HasResourceClass "org.simantics.viewpoint.ontology.ViewpointResource"
+
+VP.NodeType <T L0.Entity
+    @L0.singleProperty VP.HasContentType
+    @L0.optionalProperty VP.HasBundle
+VP.HasBundle <R L0.HasProperty : L0.FunctionalRelation
+    L0.HasDescription """Bundle specifies the symbolic ID of the bundle which should be used for loading the class pointed to by HasContentType. This needs to be used if a class is not loadable by bundle org.simantics.browsing.ui.model."""
+    L0.HasRange L0.String
+VP.HasContentType <R L0.HasProperty : L0.FunctionalRelation
+    L0.HasDescription """Content type specifies the (SCL) type of the node content, if the subject is used as a node type. If not specified the content type is Resource."""
+    L0.HasRange L0.String
+VP.ResourceNodeType <T VP.NodeType
+    @L0.assert VP.HasContentType "Resource"
+    
+VP.BrowseContext <T L0.Entity
+    L0.HasDescription """All viewpoint contributions are associated with a browse context. They can be used to control which contributions are enabled for a specific browsing component. Browse contexts form a hierarchy: by enabling a super context also the contexts inherited from it are enabled."""
+VP.BrowseContext.Includes <R L0.IsRelatedTo
+    L0.HasDomain VP.BrowseContext
+    L0.HasRange VP.BrowseContext
+    L0.InverseOf VP.BrowseContext.IsIncludedIn <R L0.IsRelatedTo
+VP.BrowseContext.HasChildContribution <R L0.IsRelatedTo
+    L0.HasDomain VP.BrowseContext
+    L0.HasRange VP.ChildContribution
+VP.BrowseContext.HasVisualsContribution <R L0.IsRelatedTo
+    L0.HasDomain VP.BrowseContext
+    L0.HasRange VP.VisualsContribution
+
+VP.BrowseContextContribution <T L0.Entity
+    >-- VP.BrowseContextContribution.HasType --> L0.Type <R L0.IsRelatedTo
+    >-- VP.BrowseContextContribution.HasBrowseContext --> VP.BrowseContext <R L0.IsRelatedTo
+    >-- VP.BrowseContextContribution.allowedUIContexts --> L0.StringArray <R L0.HasProperty : L0.FunctionalRelation
+
+VP.ActionBrowseContextContribution <T L0.Entity
+    >-- VP.ActionBrowseContextContribution.HasType --> L0.Type <R L0.IsRelatedTo
+    >-- VP.ActionBrowseContextContribution.HasTest --> VP.Test <R L0.IsRelatedTo
+    >-- VP.ActionBrowseContextContribution.HasActionBrowseContext --> VP.BrowseContext <R L0.IsRelatedTo
+    >-- VP.ActionBrowseContextContribution.allowedUIContexts --> L0.StringArray <R L0.HasProperty : L0.FunctionalRelation
+
+VP.ChildContribution <T L0.Entity
+    L0.HasDescription """A child contribution is adds child nodes to the instances of a specific node type."""
+    >-- VP.ChildContribution.HasParentNodeType --> L0.Entity <R L0.IsRelatedTo : L0.TotalFunction
+    >-- VP.ChildContribution.HasChildNodeType --> L0.Entity <R L0.IsRelatedTo : L0.TotalFunction
+    >-- VP.ChildContribution.HasRule --> L0.Entity <R L0.IsRelatedTo : L0.TotalFunction
+    >-- VP.ChildContribution.identifier --> L0.String <R L0.HasProperty : L0.TotalFunction
+    >-- VP.ChildContribution.priority --> L0.Double <R L0.HasProperty : L0.TotalFunction
+    @L0.assert VP.ChildContribution.identifier "" 
+    @L0.assert VP.ChildContribution.priority 0.0 
+
+VP.ChildRule <T L0.Entity
+    L0.HasDescription """A child rule is a part of child contribution that tells how the child nodes are found."""
+VP.EqualContentChildRule <T VP.ChildRule
+    L0.HasDescription """A child rule that says that there is exactly one child node whose content is equal to the content of the parent.
+There is an optional condition restricting when the rule is applied."""
+VP.EqualContentChildRule.HasCondition <R L0.IsRelatedTo : L0.FunctionalRelation
+    L0.HasDomain VP.EqualContentChildRule
+    L0.HasRange VP.Test
+VP.RelationChildRule <T VP.ChildRule
+    L0.HasDescription """A child rule that follows the given relation. Content type of both parent and child node types must be Resources."""
+    >-- VP.RelationChildRule.HasRelation --> L0.Relation <R L0.IsRelatedTo : L0.TotalFunction
+    >-- VP.RelationChildRule.HasTest --> VP.Test <R L0.IsRelatedTo : L0.FunctionalRelation
+VP.RelationStatementRule <T VP.ChildRule
+    L0.HasDescription """A child rule that follows the given relation. Content type of parent must be Resource. Content type of child must be Statement."""
+    >-- VP.RelationStatementRule.HasRelation --> L0.Relation <R L0.IsRelatedTo : L0.TotalFunction
+    >-- VP.RelationStatementRule.HasTest --> VP.Test <R L0.IsRelatedTo : L0.FunctionalRelation
+VP.CompositeChildRule <T VP.ChildRule
+    L0.HasDescription """A child rule composed of other child rules."""
+VP.CompositeChildRule.HasChildRules <R L0.IsComposedOf : L0.TotalFunction
+    L0.HasDomain VP.CompositeChildRule
+    L0.HasRange L0.OrderedSet
+VP.ConstantChildRule <T VP.ChildRule
+    L0.HasDescription """Says that a certain constant resource is a child of the parent."""
+VP.ConstantChildRule.HasChild <R L0.IsComposedOf
+    L0.HasDomain VP.ConstantChildRule
+    
+VP.VisualsContribution <T L0.Entity
+    L0.HasDescription """A visuals contribution adds visual properties to the instances of a specific node type."""
+VP.VisualsContribution.HasNodeType <R L0.IsRelatedTo : L0.TotalFunction
+    L0.HasDomain VP.VisualsContribution
+    L0.HasRange L0.Entity    
+VP.VisualsContribution.HasRule <R L0.IsRelatedTo
+    L0.HasDomain VP.VisualsContribution
+    L0.HasRange VP.VisualsRule
+VP.VisualsContribution.HasPriority <R L0.HasProperty : L0.FunctionalRelation
+    L0.HasDomain VP.VisualsContribution
+    L0.HasRange L0.Double
+VP.VisualsContribution.HasCondition <R L0.IsRelatedTo : L0.FunctionalRelation
+    L0.HasDomain VP.VisualsContribution
+    L0.HasRange VP.Test    
+    
+VP.VisualsRule <T L0.Entity   
+    
+VP.LabelRule <T VP.VisualsRule
+    L0.HasDescription """Label rule gives a label to a node."""
+VP.ConstantLabelRule <T VP.LabelRule     
+    L0.HasDescription """Constant label rule gives a fixed label to a node."""
+VP.ConstantLabelRule.HasLabel <R L0.HasProperty : L0.TotalFunction            
+    L0.HasDomain VP.ConstantLabelRule
+    L0.HasRange L0.String
+VP.ConstantLabelRule.HasColumnKey <R L0.HasProperty : L0.TotalFunction            
+    L0.HasDomain VP.ConstantLabelRule
+    L0.HasRange L0.String
+VP.StandardNameLabelRule : VP.LabelRule     
+    L0.HasDescription """Label rule based on resource names and labels controlled by PlatformUI.hasNameLabelMode."""
+VP.ResourceNameLabelRule : VP.LabelRule     
+    L0.HasDescription """Label rule based on resource names."""
+VP.ResourceLabelLabelRule : VP.LabelRule
+    L0.HasDescription """Label rule based on resource labels."""
+
+VP.TooltipRule <T VP.VisualsRule
+    L0.HasDescription """Tooltip rule gives a tooltip to a node."""
+VP.DescriptionTooltipRule : VP.TooltipRule
+    L0.HasDescription """Tooltip rule that reads tooltip from node's L0.HasDescription."""
+
+VP.ModifierRule <T VP.VisualsRule
+    L0.HasDescription """Modifier rule gives a modifier to a node."""
+VP.NoModifierRule : VP.ModifierRule
+    L0.HasDescription """Modifier rule that denies modifications."""
+VP.ResourceNameModifierRule : VP.ModifierRule
+    L0.HasDescription """Modifier rule based on resource names."""
+VP.ResourceLabelModifierRule : VP.ModifierRule
+    L0.HasDescription """Modifier rule based on resource labels."""
+VP.VariableLabelModifierRule : VP.ModifierRule
+    L0.HasDescription """Modifier rule based on variable labels."""
+
+VP.ImageRule <T VP.VisualsRule
+    L0.HasDescription """Label rule gives an image to a node."""
+VP.ConstantImageRule <T VP.ImageRule
+    L0.HasDescription """Constant label rule gives a fixed image to a node."""
+VP.ConstantImageRule.HasImage <R L0.HasProperty : L0.TotalFunction            
+    L0.HasDomain VP.ConstantLabelRule
+    L0.HasRange IMAGE.Image
+VP.ConstantImageRule.HasColumnKey <R L0.HasProperty : L0.TotalFunction            
+    L0.HasDomain VP.ConstantLabelRule
+    L0.HasRange IMAGE.Image
+
+VP.LabelDecorationRule <T VP.VisualsRule
+    L0.HasDescription """Label decoration rule decorates the label of a node."""    
+VP.ConstantLabelDecorationRule <T VP.LabelDecorationRule
+VP.ConstantLabelDecorationRule.HasFormat <R L0.HasProperty : L0.FunctionalRelation            
+    L0.HasDomain VP.ConstantLabelDecorationRule
+    L0.HasRange L0.String
+VP.ConstantLabelDecorationRule.HasForegroundColor <R L0.HasProperty : L0.FunctionalRelation            
+    L0.HasDomain VP.ConstantLabelDecorationRule
+    L0.HasRange COLOR.RGB
+VP.ConstantLabelDecorationRule.HasBackgroundColor <R L0.HasProperty : L0.FunctionalRelation        
+    L0.HasDomain VP.ConstantLabelDecorationRule
+    L0.HasRange COLOR.RGB
+VP.ConstantLabelDecorationRule.HasFont <R L0.HasProperty : L0.FunctionalRelation            
+    L0.HasDomain VP.ConstantLabelDecorationRule
+    L0.HasRange L0.String
+VP.ConstantLabelDecorationRule.HasStyle <R L0.HasProperty : L0.FunctionalRelation            
+    L0.HasDomain VP.ConstantLabelDecorationRule
+    L0.HasRange L0.String
+
+VP.FlatNodeRule : VP.VisualsRule
+
+VP.ImageDecorationRule <T VP.VisualsRule
+    L0.HasDescription """Image decoration rule decorates the image of a node."""
+
+VP.SorterRule <T VP.VisualsRule
+VP.PassThruSorterRule : VP.SorterRule
+VP.AlphanumericSorterRule : VP.SorterRule
+VP.LinkedListSorterRule : VP.SorterRule
+
+VP.CheckedStateRule <T VP.VisualsRule
+
+VP.Test <T L0.Entity
+    L0.HasDescription """Tests may be used to control if contributions are enabled for specific node content."""  
+            
+// Templates 
+VP.relationChildRule : L0.Template
+    @template %browseContext %parentType %relation %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.RelationChildRule
+                    VP.RelationChildRule.HasRelation %relation
+
+VP.relationStatementRule : L0.Template
+    @template %browseContext %parentType %relation %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.RelationStatementRule
+                    VP.RelationStatementRule.HasRelation %relation
+
+VP.equalContentChildRule : L0.Template
+    @template %browseContext %parentType %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule
+
+VP.constantChildRule : L0.Template
+    @template %browseContext %parentType %child
+        %browseContext
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType L0.Entity
+                VP.ChildContribution.HasRule _ : VP.ConstantChildRule
+                    VP.ConstantChildRule.HasChild %child                    
+                
+VP.customChildRule : L0.Template
+    @template %browseContext %parentType %childRule %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule %childRule
+
+VP.customModifierRule : L0.Template
+    @template %browseContext %parentType %modifierRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %modifierRule
+
+VP.customVisualsRule : L0.Template
+    @template %browseContext %parentType %labelRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+
+VP.customVisualsRuleWithPriority : L0.Template
+    @template %browseContext %parentType %labelRule %priority
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+                VP.VisualsContribution.HasPriority %priority
+
+VP.customVisualsRuleWithPriorityAndTest : L0.Template
+    @template %browseContext %parentType %labelRule %priority %condition
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+                VP.VisualsContribution.HasPriority %priority
+                VP.VisualsContribution.HasCondition %condition
+
+VP.constantLabelRule : L0.Template
+    @template %browseContext %parentType %label
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule
+                    VP.ConstantLabelRule.HasLabel %label
+                    VP.ConstantLabelRule.HasColumnKey "single"
+
+VP.constantLabelRuleWithColumn : L0.Template
+    @template %browseContext %parentType %key %label
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule
+                    VP.ConstantLabelRule.HasLabel %label
+                    VP.ConstantLabelRule.HasColumnKey %key
+
+VP.customLabelRule : L0.Template
+    @template %browseContext %parentType %labelRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+
+VP.customLabelRuleWithPriority : L0.Template
+    @template %browseContext %parentType %labelRule %priority
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+                VP.VisualsContribution.HasPriority %priority
+
+VP.constantImageRule : L0.Template
+    @template %browseContext %parentType %image
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule
+                    VP.ConstantImageRule.HasColumnKey "single"
+                    VP.ConstantImageRule.HasImage %image
+
+VP.constantImageRuleWithColumn : L0.Template
+    @template %browseContext %parentType %columnKey %image
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule
+                    VP.ConstantImageRule.HasColumnKey %columnKey
+                    VP.ConstantImageRule.HasImage %image
+
+VP.customImageRule : L0.Template
+    @template %browseContext %parentType %imageRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %imageRule
+
+VP.customCheckedStateRule : L0.Template
+    @template %browseContext %parentType %stateRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %stateRule
+
+VP.relationChildRuleWithFolder : L0.Template
+    @template %browseContext %parentType %relation %childType %folder 
+        %browseContext
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %folder
+                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule
+            VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %folder
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.RelationChildRule
+                    VP.RelationChildRule.HasRelation %relation
+
+VP.customLabelDecorationRule : L0.Template
+    @template %browseContext %parentType %decorationRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %decorationRule 
+
+VP.customImageDecorationRule : L0.Template
+    @template %browseContext %parentType %decorationRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %decorationRule 
+
+VP.defineRelationChildRule : L0.Template
+    @template %rule %parentType %relation %childType
+        %rule : VP.ChildContribution
+            VP.ChildContribution.HasParentNodeType %parentType
+            VP.ChildContribution.HasChildNodeType %childType
+            VP.ChildContribution.HasRule _ : VP.RelationChildRule
+                VP.RelationChildRule.HasRelation %relation
+
+// Templates for named rules 
+VP.namedRelationChildRule : L0.Template
+    @template %browseContext %name %parentType %relation %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.RelationChildRule
+                    VP.RelationChildRule.HasRelation %relation
+
+VP.namedRelationStatementRule : L0.Template
+    @template %browseContext %name %parentType %relation %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.RelationStatementRule
+                    VP.RelationStatementRule.HasRelation %relation
+
+VP.namedEqualContentChildRule : L0.Template
+    @template %browseContext %name %parentType %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule
+
+VP.namedConstantChildRule : L0.Template
+    @template %browseContext %name %parentType %child
+        %browseContext
+            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType L0.Entity
+                VP.ChildContribution.HasRule _ : VP.ConstantChildRule
+                    VP.ConstantChildRule.HasChild %child                    
+                
+VP.namedCustomChildRule : L0.Template
+    @template %browseContext %name %parentType %childRule %childType
+        %browseContext
+            VP.BrowseContext.HasChildContribution %name : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule %childRule
+
+VP.namedCustomModifierRule : L0.Template
+    @template %browseContext %name %parentType %modifierRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %modifierRule
+
+VP.namedCustomVisualsRule : L0.Template
+    @template %browseContext %name %parentType %labelRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+
+VP.namedCustomVisualsRuleWithPriority : L0.Template
+    @template %browseContext %name %parentType %labelRule %priority
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+                VP.VisualsContribution.HasPriority %priority
+
+VP.namedCustomVisualsRuleWithPriorityAndTest : L0.Template
+    @template %browseContext %name %parentType %labelRule %priority %condition
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+                VP.VisualsContribution.HasPriority %priority
+                VP.VisualsContribution.HasCondition %condition
+
+VP.namedConstantLabelRule : L0.Template
+    @template %browseContext %name %parentType %label
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule
+                    VP.ConstantLabelRule.HasLabel %label
+                    VP.ConstantLabelRule.HasColumnKey "single"
+
+VP.namedConstantLabelRuleWithColumn : L0.Template
+    @template %browseContext %name %parentType %key %label
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantLabelRule
+                    VP.ConstantLabelRule.HasLabel %label
+                    VP.ConstantLabelRule.HasColumnKey %key
+
+VP.namedCustomLabelRule : L0.Template
+    @template %browseContext %name %parentType %labelRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+
+VP.namedCustomLabelRuleWithPriority : L0.Template
+    @template %browseContext %name %parentType %labelRule %priority
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %labelRule
+                VP.VisualsContribution.HasPriority %priority
+
+VP.namedConstantImageRule : L0.Template
+    @template %browseContext %name %parentType %image
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule
+                    VP.ConstantImageRule.HasColumnKey "single"
+                    VP.ConstantImageRule.HasImage %image
+
+VP.namedConstantImageRuleWithColumn : L0.Template
+    @template %browseContext %name %parentType %columnKey %image
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule _ : VP.ConstantImageRule
+                    VP.ConstantImageRule.HasColumnKey %columnKey
+                    VP.ConstantImageRule.HasImage %image
+
+VP.namedCustomImageRule : L0.Template
+    @template %browseContext %name %parentType %imageRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %imageRule
+
+VP.namedCustomCheckedStateRule : L0.Template
+    @template %browseContext %name %parentType %stateRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %stateRule
+
+VP.namedRelationChildRuleWithFolder : L0.Template
+    @template %browseContext %folderName %folderChildrenName %parentType %relation %childType %folder 
+        %browseContext
+            VP.BrowseContext.HasChildContribution %folderName : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %parentType
+                VP.ChildContribution.HasChildNodeType %folder
+                VP.ChildContribution.HasRule _ : VP.EqualContentChildRule
+            VP.BrowseContext.HasChildContribution %folderChildrenName : VP.ChildContribution
+                VP.ChildContribution.HasParentNodeType %folder
+                VP.ChildContribution.HasChildNodeType %childType
+                VP.ChildContribution.HasRule _ : VP.RelationChildRule
+                    VP.RelationChildRule.HasRelation %relation
+
+VP.namedCustomLabelDecorationRule : L0.Template
+    @template %browseContext %name %parentType %decorationRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %decorationRule 
+
+VP.namedCustomImageDecorationRule : L0.Template
+    @template %browseContext %name %parentType %decorationRule
+        %browseContext
+            VP.BrowseContext.HasVisualsContribution %name : VP.VisualsContribution
+                VP.VisualsContribution.HasNodeType %parentType
+                VP.VisualsContribution.HasRule %decorationRule 
                
\ No newline at end of file