]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ontology/graph/Modeling.pgraph
Changed SCLTypeUtils to not log warnings for non-property relations
[simantics/platform.git] / bundles / org.simantics.modeling.ontology / graph / Modeling.pgraph
index a94c64f2df0c3f95b1e7d133e3f2a021af5bce3e..865f03e989527c9571d51d8c3be511586c1fd49e 100644 (file)
@@ -1,65 +1,66 @@
-L0 = <http://www.simantics.org/Layer0-1.1>\r
-L0X = <http://www.simantics.org/Layer0X-1.1>\r
-STR = <http://www.simantics.org/Structural-1.2>\r
-PROJ = <http://www.simantics.org/Project-1.2>\r
-G2D = <http://www.simantics.org/G2D-1.1>\r
-DIA = <http://www.simantics.org/Diagram-2.2>\r
-SIMU = <http://www.simantics.org/Simulation-1.1>\r
-DOC = <http://www.simantics.org/Document-1.2>\r
-ISSUE = <http://www.simantics.org/Issue-1.2>\r
-SG = <http://www.simantics.org/Scenegraph-1.1>\r
-VIEW = <http://www.simantics.org/Views-1.2>\r
-SEL = <http://www.simantics.org/SelectionView-1.2>\r
-VP = <http://www.simantics.org/Viewpoint-1.2>\r
-IMAGE = <http://www.simantics.org/Image2-1.2>\r
-SHEET = <http://www.simantics.org/Spreadsheet-1.2>\r
-\r
-PRED = L0X.Predicate\r
-\r
-MOD = <http://www.simantics.org/Modeling-1.2> : L0.Ontology\r
-    @L0.new\r
-    L0.HasResourceClass "org.simantics.modeling.ModelingResources"\r
-\r
-MOD.SCLMain : L0.SCLModule\r
-    L0.SCLModule.definition _ : L0.String\r
-      @L0.loadString "scl/SCLMain.scl"\r
-\r
-MOD.Functions : L0.Library\r
+L0 = <http://www.simantics.org/Layer0-1.1>
+L0X = <http://www.simantics.org/Layer0X-1.1>
+STR = <http://www.simantics.org/Structural-1.2>
+PROJ = <http://www.simantics.org/Project-1.2>
+G2D = <http://www.simantics.org/G2D-1.1>
+DIA = <http://www.simantics.org/Diagram-2.2>
+SIMU = <http://www.simantics.org/Simulation-1.1>
+GF = <http://www.simantics.org/GraphFile-0.1>
+DOC = <http://www.simantics.org/Document-1.2>
+ISSUE = <http://www.simantics.org/Issue-1.2>
+SG = <http://www.simantics.org/Scenegraph-1.1>
+VIEW = <http://www.simantics.org/Views-1.2>
+SEL = <http://www.simantics.org/SelectionView-1.2>
+VP = <http://www.simantics.org/Viewpoint-1.2>
+IMAGE = <http://www.simantics.org/Image2-1.2>
+SHEET = <http://www.simantics.org/Spreadsheet-1.2>
+
+PRED = L0X.Predicate
+
+MOD = <http://www.simantics.org/Modeling-1.2> : L0.Ontology
+    @L0.new
+    L0.HasResourceClass "org.simantics.modeling.ModelingResources"
+
+MOD.SCLMain : L0.SCLModule
+    L0.SCLModule.definition _ : L0.String
+      @L0.loadString "scl/SCLMain.scl"
+
+MOD.Functions : L0.Library
 
 //##########################################################################
 //## Concepts
 //##########################################################################
-\r
-MOD.StructuralModel <T SIMU.Model\r
-    >-- MOD.StructuralModel.HasComponentTypeSupertype --> STR.ComponentType <R L0.IsRelatedTo : L0.TotalFunction\r
-        L0.HasDescription """When a new component type is created, it inherits the type \r
-specified by this relation. If unspecified, the new component type inherits STR.Component."""\r
-    >-- MOD.StructuralModel.HasDefaultComponentTypeName --> L0.String <R L0.HasProperty : L0.TotalFunction : SEL.GenericParameterType\r
-        L0.HasDescription """Specifies the name of a new component type. If the name is \r
-already used, adds a large enough number after the name."""\r
-        L0.HasLabel "Default User Component Name"\r
-    >-- MOD.StructuralModel.HasComponentTypeSubstructureType --> STR.ComponentType <R L0.IsRelatedTo : L0.TotalFunction    \r
-        L0.HasDescription """Specifies the type of the substructure of a component type\r
-created to the model."""    \r
-    >-- MOD.StructuralModel.HasDefaultComponentTypeSymbol --> L0.Template <R L0.IsRelatedTo : L0.FunctionalRelation\r
-        L0.HasDescription """Specifies a template for a symbol that is created \r
-by default for the new component type under the model."""\r
-    >-- MOD.StructuralModel.HasSymbolDiagramType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation\r
-\r
-    >-- MOD.StructuralModel.HasConfigurationType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation\r
-\r
-    @L0.assert MOD.StructuralModel.HasComponentTypeSupertype STR.Component\r
-    @L0.assert MOD.StructuralModel.HasDefaultComponentTypeName "NewUserComponent"\r
-    @L0.assert MOD.StructuralModel.HasComponentTypeSubstructureType STR.Composite\r
-    @L0.assert MOD.StructuralModel.HasConfigurationType STR.Composite\r
-\r
-MOD.SharedOntology <T L0.SharedOntology\r
-    @L0.tag L0.Abstract\r
-    @L0.assert MOD.StructuralModel.HasComponentTypeSupertype STR.Component\r
-    @L0.assert MOD.StructuralModel.HasDefaultComponentTypeName "NewUserComponent"\r
-    @L0.assert MOD.StructuralModel.HasComponentTypeSubstructureType STR.Composite\r
-    @L0.assert MOD.StructuralModel.HasConfigurationType STR.Composite\r
-    \r
+
+MOD.StructuralModel <T SIMU.Model
+    >-- MOD.StructuralModel.HasComponentTypeSupertype --> STR.ComponentType <R L0.IsRelatedTo : L0.TotalFunction
+        L0.HasDescription """When a new component type is created, it inherits the type 
+specified by this relation. If unspecified, the new component type inherits STR.Component."""
+    >-- MOD.StructuralModel.HasDefaultComponentTypeName --> L0.String <R L0.HasProperty : L0.TotalFunction : SEL.GenericParameterType
+        L0.HasDescription """Specifies the name of a new component type. If the name is 
+already used, adds a large enough number after the name."""
+        L0.HasLabel "Default User Component Name"
+    >-- MOD.StructuralModel.HasComponentTypeSubstructureType --> STR.ComponentType <R L0.IsRelatedTo : L0.TotalFunction    
+        L0.HasDescription """Specifies the type of the substructure of a component type
+created to the model."""    
+    >-- MOD.StructuralModel.HasDefaultComponentTypeSymbol --> L0.Template <R L0.IsRelatedTo : L0.FunctionalRelation
+        L0.HasDescription """Specifies a template for a symbol that is created 
+by default for the new component type under the model."""
+    >-- MOD.StructuralModel.HasSymbolDiagramType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation
+    >-- MOD.StructuralModel.HasSymbolType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation
+    >-- MOD.StructuralModel.HasConfigurationType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation
+
+    @L0.assert MOD.StructuralModel.HasComponentTypeSupertype STR.Component
+    @L0.assert MOD.StructuralModel.HasDefaultComponentTypeName "NewUserComponent"
+    @L0.assert MOD.StructuralModel.HasComponentTypeSubstructureType STR.Composite
+    @L0.assert MOD.StructuralModel.HasConfigurationType STR.Composite
+
+MOD.SharedOntology <T L0.SharedOntology
+    @L0.tag L0.Abstract
+    @L0.assert MOD.StructuralModel.HasComponentTypeSupertype STR.Component
+    @L0.assert MOD.StructuralModel.HasDefaultComponentTypeName "NewUserComponent"
+    @L0.assert MOD.StructuralModel.HasComponentTypeSubstructureType STR.Composite
+    @L0.assert MOD.StructuralModel.HasConfigurationType STR.Composite
+    
 
 MOD.Encapsulable : PRED.Predicate
 MOD.Instantiable : PRED.Predicate
@@ -67,8 +68,8 @@ MOD.HasCounterpart : PRED.Predicate
 
 MOD.Mapped <R L0.IsWeaklyRelatedTo : L0.Tag
     L0.InverseOf MOD.Mapped
-MOD.MappedFromConnector <R MOD.Mapped\r
-    L0.InverseOf MOD.MappedFromConnector\r
+MOD.MappedFromConnector <R MOD.Mapped
+    L0.InverseOf MOD.MappedFromConnector
 
 MOD.HasMappingTemplate <R L0X.HasTemplate
 
@@ -83,20 +84,20 @@ MOD.DiagramToComposite <R L0.IsWeaklyRelatedTo
 MOD.CompositeToDiagram <R L0.IsRelatedTo
 MOD.ElementToComponent <R L0.IsWeaklyRelatedTo : L0.FunctionalRelation
     L0.InverseOf MOD.ComponentToElement
-MOD.ComponentToElement <R L0.IsWeaklyRelatedTo : L0.FunctionalRelation\r
-MOD.ConnectorToComponent <R L0.IsWeaklyRelatedTo\r
-    L0.InverseOf MOD.ComponentToConnector\r
-MOD.ComponentToConnector <R L0.IsWeaklyRelatedTo\r
-MOD.ConnectionToConnector <R L0.IsWeaklyRelatedTo\r
-    L0.InverseOf MOD.ConnectorToConnection <R L0.IsWeaklyRelatedTo\r
-MOD.MapsToConnection <R L0.IsWeaklyRelatedTo\r
-    L0.InverseOf MOD.ConnectionMapsTo\r
+MOD.ComponentToElement <R L0.IsWeaklyRelatedTo : L0.FunctionalRelation
+MOD.ConnectorToComponent <R L0.IsWeaklyRelatedTo
+    L0.InverseOf MOD.ComponentToConnector
+MOD.ComponentToConnector <R L0.IsWeaklyRelatedTo
+MOD.ConnectionToConnector <R L0.IsWeaklyRelatedTo
+    L0.InverseOf MOD.ConnectorToConnection <R L0.IsWeaklyRelatedTo
+MOD.MapsToConnection <R L0.IsWeaklyRelatedTo
+    L0.InverseOf MOD.ConnectionMapsTo
 MOD.ConnectionMapsTo <R L0.IsWeaklyRelatedTo
 MOD.DiagramConnectionToConnection <R MOD.MapsToConnection
     L0.InverseOf MOD.ConnectionToDiagramConnection
-MOD.ConnectionToDiagramConnection <R MOD.ConnectionMapsTo\r
-MOD.DiagramConnectionToConnectionSpecial <R MOD.MapsToConnection\r
-    L0.InverseOf MOD.ConnectionToDiagramConnectionSpecial\r
+MOD.ConnectionToDiagramConnection <R MOD.ConnectionMapsTo
+MOD.DiagramConnectionToConnectionSpecial <R MOD.MapsToConnection
+    L0.InverseOf MOD.ConnectionToDiagramConnectionSpecial
 MOD.ConnectionToDiagramConnectionSpecial <R MOD.ConnectionMapsTo
 MOD.DiagramConnectionRelationToConnectionRelation <R L0.IsWeaklyRelatedTo
     L0.InverseOf MOD.ConnectionRelationToDiagramConnectionRelation
@@ -104,72 +105,72 @@ MOD.DiagramConnectionTypeToConnectionType  <R L0.IsWeaklyRelatedTo
     L0.InverseOf MOD.ConnectionTypeToDiagramConnectionType  <R L0.IsWeaklyRelatedTo
 MOD.ConnectionRelationToDiagramConnectionRelation <R L0.IsWeaklyRelatedTo
 
-MOD.DiagramConnectionRelationToConnectionRelationB <R L0.IsWeaklyRelatedTo\r
+MOD.DiagramConnectionRelationToConnectionRelationB <R L0.IsWeaklyRelatedTo
     L0.InverseOf MOD.ConnectionRelationToDiagramConnectionRelationB  <R L0.IsWeaklyRelatedTo
-MOD.DiagramConnectionRelationToConnectionRelationC <R L0.IsWeaklyRelatedTo\r
+MOD.DiagramConnectionRelationToConnectionRelationC <R L0.IsWeaklyRelatedTo
     L0.InverseOf MOD.ConnectionRelationToDiagramConnectionRelationC  <R L0.IsWeaklyRelatedTo
 MOD.DiagramConnectionRelationToComponentType <R L0.IsWeaklyRelatedTo
-\r
-MOD.HasConnectionMappingSpecification <R L0.IsRelatedTo\r
-    L0.HasDomain DIA.Connector\r
-    L0.HasRange MOD.ConnectionMappingSpecification\r
-MOD.ConnectionTypeToConnectionMappingSpecification <R L0.IsRelatedTo\r
-    L0.HasDomain STR.ConnectionType\r
-    L0.HasRange MOD.ConnectionMappingSpecification\r
-MOD.ConnectionMappingSpecification <T L0.Entity\r
-    // MOD.DiagramConnectionRelationToConnectionRelationB\r
-    // MOD.DiagramConnectionRelationToConnectionRelationC\r
-    // MOD.DiagramConnectionRelationToComponentType\r
-MOD.ConnectionRelationToConnectionMappingSpecification <R L0.IsRelatedTo\r
-    L0.HasDomain STR.ConnectionRelation\r
-    L0.HasRange MOD.ConnectionMappingSpecification\r
-MOD.NeedsConnectionMappingSpecification <R L0.IsRelatedTo : L0.Tag : L0.FunctionalRelation\r
-    L0.HasDescription "Tells a connection relation that a diagram connection using it will require a DIA.Connector that has MOD.HasConnectionMappingSpecification statement attached to it if the used connection type has a MOD.ConnectionTypeToConnectionMappingSpecification specified. It guides connection creation."\r
-    L0.HasDomain STR.ConnectionRelation\r
-    L0.HasRange STR.ConnectionRelation\r
-\r
-MOD.ConnectionTypeToComponentType <R L0.IsWeaklyRelatedTo\r
-MOD.ConnectionTypeToConnectionRelation <R L0.IsWeaklyRelatedTo\r
-\r
-MOD.ConnectionRelationToTerminal <R L0.IsWeaklyRelatedTo : L0.FunctionalRelation\r
-
-MOD.DiagramToCompositeMapping <T L0X.Trigger\r
-MOD.ComponentTypeUpdater <T L0X.Trigger\r
-    L0.HasDescription """This trigger is used with component type configurations to keep the component type interface and symbol terminals in sync with the configuration."""\r
-\r
-MOD.ImpliesDiagramConnectionRelationType <R L0.IsRelatedTo\r
-    <-- STR.ConnectionRelation\r
-    --> L0.Type\r
-    L0.HasDescription """This relation indicates that a certain diagram connection relation type\r
+
+MOD.HasConnectionMappingSpecification <R L0.IsRelatedTo
+    L0.HasDomain DIA.Connector
+    L0.HasRange MOD.ConnectionMappingSpecification
+MOD.ConnectionTypeToConnectionMappingSpecification <R L0.IsRelatedTo
+    L0.HasDomain STR.ConnectionType
+    L0.HasRange MOD.ConnectionMappingSpecification
+MOD.ConnectionMappingSpecification <T L0.Entity
+    // MOD.DiagramConnectionRelationToConnectionRelationB
+    // MOD.DiagramConnectionRelationToConnectionRelationC
+    // MOD.DiagramConnectionRelationToComponentType
+MOD.ConnectionRelationToConnectionMappingSpecification <R L0.IsRelatedTo
+    L0.HasDomain STR.ConnectionRelation
+    L0.HasRange MOD.ConnectionMappingSpecification
+MOD.NeedsConnectionMappingSpecification <R L0.IsRelatedTo : L0.Tag : L0.FunctionalRelation
+    L0.HasDescription "Tells a connection relation that a diagram connection using it will require a DIA.Connector that has MOD.HasConnectionMappingSpecification statement attached to it if the used connection type has a MOD.ConnectionTypeToConnectionMappingSpecification specified. It guides connection creation."
+    L0.HasDomain STR.ConnectionRelation
+    L0.HasRange STR.ConnectionRelation
+
+MOD.ConnectionTypeToComponentType <R L0.IsWeaklyRelatedTo
+MOD.ConnectionTypeToConnectionRelation <R L0.IsWeaklyRelatedTo
+
+MOD.ConnectionRelationToTerminal <R L0.IsWeaklyRelatedTo : L0.FunctionalRelation
+
+MOD.DiagramToCompositeMapping <T L0X.Trigger
+MOD.ComponentTypeUpdater <T L0X.Trigger
+    L0.HasDescription """This trigger is used with component type configurations to keep the component type interface and symbol terminals in sync with the configuration."""
+
+MOD.ImpliesDiagramConnectionRelationType <R L0.IsRelatedTo
+    <-- STR.ConnectionRelation
+    --> L0.Type
+    L0.HasDescription """This relation indicates that a certain diagram connection relation type
 should be used together with a certain connection relation."""
 
 MOD.ReferenceElement <T DIA.Element
     @L0.singleProperty MOD.HasParentComponent
     @L0.singleProperty MOD.HasReferenceRelation
 MOD.HasParentComponent <R L0.IsWeaklyRelatedTo
-    L0.HasRange STR.Component\r
+    L0.HasRange STR.Component
     L0.InverseOf MOD.HasParentComponent.Inverse <R L0.IsWeaklyRelatedTo
 MOD.HasReferenceRelation <R L0.IsRelatedTo
-    L0.HasRange L0.Relation\r
-    L0.InverseOf MOD.HasReferenceRelation.Inverse <R L0.IsWeaklyRelatedTo\r
+    L0.HasRange L0.Relation
+    L0.InverseOf MOD.HasReferenceRelation.Inverse <R L0.IsWeaklyRelatedTo
     @L0.optionalProperty MOD.HasReferencedType
-MOD.HasReferencedType <R L0.IsRelatedTo\r
-    --> L0.Type\r
+MOD.HasReferencedType <R L0.IsRelatedTo
+    --> L0.Type
 
-MOD.TestTerminal <T DIA.DefinedElement <T DIA.Terminal\r
+MOD.TestTerminal <T DIA.DefinedElement <T DIA.Terminal
     @L0.tag L0.Deprecated
-    STR.IsDefinedBy _ : DIA.Composite <R L0.IsRelatedTo\r
+    STR.IsDefinedBy _ : DIA.Composite <R L0.IsRelatedTo
         @L0.orderedSet
             _ : DIA.SVGElement
                 G2D.HasSVGDocument """<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" overflow="visible" version="1.1"><g transform="translate(-0.0,-0.0)"><rect x="-0.5" y="-0.5" width="1.0" height="1.0" fill="rgb(255,102,0)" stroke="black" stroke-width="0.1"/></g></svg>"""
-\r
+
 //??
 MOD.WebmonVariable <T L0.OrderedSet
 
 MOD.HasModelQuery <R L0.IsRelatedTo
     L0.HasDescription "For attaching so called query nodes to models in the model browser. The query nodes will be shown under the model sub-node Queries."
     L0.HasRange L0.Entity
-\r
+
 MOD.HasBaseRules <R L0.IsRelatedTo
     L0.HasRange STR.ModelingRules
 MOD.MappedModelingRules <T STR.ModelingRules
@@ -177,48 +178,48 @@ MOD.MappedModelingRules <T STR.ModelingRules
 
 MOD.MappingSubgraphExtent : L0X.SubgraphExtent
 MOD.MappingSubgraphAdvisor : L0X.SubgraphAdvisor
-\r
-MOD.Documents : L0.Library\r
-\r
-MOD.Documents.IssueBinding : DOC.DocumentTypeBinding\r
-  DOC.DocumentTypeBinding.HasType ISSUE.Issue\r
-  DOC.DocumentTypeBinding.HasDocumentType MOD.Documents.IssueTemplate\r
-\r
-MOD.Documents.IssueTemplate <T DOC.Scenegraph.Composite\r
-  >-- MOD.Documents.IssueTemplate.UserContent <R L0.HasProperty : SG.LiftedPropertyRelation\r
-      --> DOC.WikiDocument.WikiText\r
-  @L0.assert MOD.Documents.IssueTemplate.UserContent "Some user-defined text about this issue"\r
-  @L0.assert SG.Node.children\r
-    _ : L0.List\r
-      @L0.list\r
-        MOD.Documents.IssueTemplate.Header : DOC.Scenegraph.Wiki\r
-          DOC.Scenegraph.Wiki.text MOD.Functions.issueDocumentHeader : L0.Function \r
-        MOD.Documents.IssueTemplate.User : DOC.Scenegraph.Wiki\r
-          DOC.Scenegraph.Node.printInPDF true\r
-          DOC.Scenegraph.Wiki.text\r
-            @SG.lifted MOD.Documents.IssueTemplate.UserContent\r
-    \r
-MOD.HiddenComposite <R L0.IsRelatedTo : L0.Tag : L0.FunctionalRelation\r
-    L0.HasDomain STR.Composite\r
-\r
-// @since 1.25.0, 1.22.2\r
-MOD.GeneratesConnectionComponentInternally\r
-    @L0.defTag\r
-    L0.HasDomain STR.ConnectionRelation\r
-    L0.HasDescription "Indicates that a tagged connection relation will generate a component for the configuration connection internally."\r
-\r
+
+MOD.Documents : L0.Library
+
+MOD.Documents.IssueBinding : DOC.DocumentTypeBinding
+  DOC.DocumentTypeBinding.HasType ISSUE.Issue
+  DOC.DocumentTypeBinding.HasDocumentType MOD.Documents.IssueTemplate
+
+MOD.Documents.IssueTemplate <T DOC.Scenegraph.Composite
+  >-- MOD.Documents.IssueTemplate.UserContent <R L0.HasProperty : SG.LiftedPropertyRelation
+      --> DOC.WikiDocument.WikiText
+  @L0.assert MOD.Documents.IssueTemplate.UserContent "Some user-defined text about this issue"
+  @L0.assert SG.Node.children
+    _ : L0.List
+      @L0.list
+        MOD.Documents.IssueTemplate.Header : DOC.Scenegraph.Wiki
+          DOC.Scenegraph.Wiki.text MOD.Functions.issueDocumentHeader : L0.Function 
+        MOD.Documents.IssueTemplate.User : DOC.Scenegraph.Wiki
+          DOC.Scenegraph.Node.printInPDF true
+          DOC.Scenegraph.Wiki.text
+            @SG.lifted MOD.Documents.IssueTemplate.UserContent
+    
+MOD.HiddenComposite <R L0.IsRelatedTo : L0.Tag : L0.FunctionalRelation
+    L0.HasDomain STR.Composite
+
+// @since 1.25.0, 1.22.2
+MOD.GeneratesConnectionComponentInternally
+    @L0.defTag
+    L0.HasDomain STR.ConnectionRelation
+    L0.HasDescription "Indicates that a tagged connection relation will generate a component for the configuration connection internally."
+
 //##########################################################################
 //## Templates
 //##########################################################################
 
 MOD.HasModelingTemplate <R L0X.HasTemplate
 
-MOD.DiagramTemplate <T L0.Template\r
-    >-- MOD.DiagramTemplate.HasMappingType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation\r
-    @L0.assert MOD.DiagramTemplate.HasMappingType MOD.DiagramToCompositeMapping\r
-\r
-MOD.HasDiagramType <R L0.IsRelatedTo\r
-    L0.HasRange L0.Type\r
+MOD.DiagramTemplate <T L0.Template
+    >-- MOD.DiagramTemplate.HasMappingType --> L0.Type <R L0.IsRelatedTo : L0.FunctionalRelation
+    @L0.assert MOD.DiagramTemplate.HasMappingType MOD.DiagramToCompositeMapping
+
+MOD.HasDiagramType <R L0.IsRelatedTo
+    L0.HasRange L0.Type
     
 
 //##########################################################################
@@ -229,277 +230,345 @@ MOD.DependenciesView <T L0X.RelationView
     @L0.assert L0.HasName "Dependencies"
     @L0.assert L0X.AppliesRelation L0X.DependenciesRelation
     @L0.assert L0X.HasBindingPattern "bfff"
-\r
-//##########################################################################\r
-//## Templates\r
-//##########################################################################\r
-\r
+
+//##########################################################################
+//## Templates
+//##########################################################################
+
 MOD.defSymbol : L0.Template
     @template %subject %label %componentType
         %subject <T DIA.Element
             MOD.SymbolToComponentType %componentType
-            L0.HasLabel %label\r
-\r
-MOD.terminal : L0.Template\r
-    @template %subject %parent %relation\r
-        %subject\r
+            L0.HasLabel %label
+
+MOD.terminal : L0.Template
+    @template %subject %parent %relation
+        %subject
             DIA.HasConnectionPoint %relation 
-                <-- %parent\r
-\r
-MOD.terminalRelation : L0.Template\r
-    @template %subject %target\r
-        %subject <R STR.IsConnectedTo\r
-            MOD.DiagramConnectionRelationToConnectionRelation %target\r
-\r
-MOD.connection : L0.Template\r
-    @template %subject %relation\r
-        %subject \r
-            >-- %relation\r
-            MOD.DiagramConnectionRelationToConnectionRelation %relation\r
-\r
-MOD.contextualHelpId ==> "String" <R L0.HasProperty : L0.FunctionalRelation\r
-\r
-MOD.convertedValue <R L0.HasProperty : L0.FunctionalRelation\r
-  L0.RequiresValueType "a"\r
-\r
-MOD.OntologyDependencies : PROJ.NamespaceRequirement\r
-    L0.HasDescription "Specifies the ontologies required by a modelling project."\r
-    PROJ.RequiresNamespace\r
-        "http://www.simantics.org/Layer0-1.1" : L0.URI\r
-        "http://www.simantics.org/Diagram-2.2" : L0.URI\r
-        "http://www.simantics.org/Modeling-1.2" : L0.URI\r
-        "http://www.simantics.org/SelectionView-1.2" : L0.URI\r
-\r
-MOD.ModelBrowser <T VIEW.Explorer\r
-    @L0.assert VIEW.Control.layoutData\r
-        _ : VIEW.GridLayout.GridData\r
-            VIEW.GridLayout.GridData.horizontalGrab true\r
-            VIEW.GridLayout.GridData.verticalGrab true\r
-    @L0.assert VIEW.Control.style\r
-        _ : VIEW.Control.Style\r
-            VIEW.Control.Style.HasConstant VIEW.Control.Style.Constant.Multi\r
-            VIEW.Control.Style.HasConstant VIEW.Control.Style.Constant.FullSelection\r
-    @L0.assert VIEW.Explorer.columns\r
-        _ : VIEW.Explorer.ColumnList\r
-            @L0.list\r
-                VIEW.SingleColumn\r
-    @L0.assert VIEW.Explorer.input MOD.Functions.projectSelection\r
-    @L0.assert VIEW.Explorer.columnsVisible false\r
-    @L0.assert VIEW.Explorer.displayFilter true\r
-    @L0.assert VIEW.Explorer.publishSelection true\r
-    @L0.assert VIEW.Explorer.persistor MOD.Functions.standardPersistor\r
-    @L0.assert VIEW.Explorer.browseContext\r
-        _ : VIEW.ResourceURI\r
-            VIEW.ResourceURI.HasResource PROJ.ProjectBrowseContext\r
-    @L0.assert VIEW.Explorer.contextMenuId "#ModelBrowserPopup"\r
-    @L0.assert VIEW.Explorer.uiContext "org.simantics.modeling.ui.modelBrowser"\r
-    @L0.assert VIEW.Explorer.useNodeBrowseContexts true\r
-    @L0.assert VIEW.Explorer.useNodeActionContexts true\r
-\r
-MOD.PlainModelBrowser : MOD.ModelBrowser\r
-\r
-MOD.Functions.sclValue : L0.ExternalValue\r
-\r
-MOD.MonitorValue <T STR.MonitorValue\r
-  @L0.assert L0.valueAccessor\r
-    MOD.Functions.monitorValueAccessor : L0.ExternalValue\r
-  @L0.assert L0.ConvertsToValueWith MOD.Functions.sclValue\r
-  @L0.assert L0.SCLValue.environment\r
-    _ : L0.SCLValue.Environment\r
-      L0.SCLValue.Environment.moduleName "Simantics/All"\r
-      L0.SCLValue.Environment.namespace ""\r
-  @L0.assert L0.readOnly\r
-    MOD.Functions.monitorReadOnly : L0.Function\r
-\r
-MOD.SCLValue <T L0.SCLValue\r
-  @L0.assert L0.ConvertsToValueWith MOD.Functions.sclValue\r
-  /*@L0.assert L0.SCLValue.environment\r
-    _ : L0.SCLValue.Environment\r
-      L0.SCLValue.Environment.moduleName "Simantics/All"\r
-      L0.SCLValue.Environment.namespace ""*/\r
-\r
-MOD.scl : L0.Template\r
-    @template %subject %property %expression %valueType\r
-        %subject\r
-            %property _ : MOD.SCLValue\r
-              L0.SCLValue.expression %expression\r
-              L0.HasValueType %valueType\r
-\r
-MOD.Functions.obtainedString : L0.Function\r
-  L0.HasValueType "String"\r
-\r
-MOD.Functions.obtainedDouble : L0.Function\r
-  L0.HasValueType "Double"\r
-\r
-MOD.Functions.obtainedBoolean : L0.Function\r
-  L0.HasValueType "Boolean"\r
-\r
-MOD.Functions.obtainedColor : L0.Function\r
-  L0.HasValueType "Color"\r
-    \r
-MOD.Functions.obtainedFormatter : L0.Function\r
-  L0.HasValueType "Formatter"\r
-\r
-MOD.Functions.obtainedVec2d : L0.Function\r
-  L0.HasValueType "Formatter"\r
-\r
-MOD.self <R L0.HasProperty : L0.FunctionalRelation\r
-\r
-//##########################################################################\r
-//## Source information modeling\r
-//##########################################################################\r
-\r
-MOD.SourceInformation <T L0.Entity\r
-    >-- MOD.SourceInformation.copiedFrom ==> "String" <R L0.HasProperty : L0.FunctionalRelation\r
-    >-- MOD.SourceInformation.copiedAtRevision --> L0.RevisionId <R L0.HasProperty : L0.FunctionalRelation\r
-MOD.HasSourceInformation --> MOD.SourceInformation <R L0.IsRelatedTo : L0.FunctionalRelation\r
-\r
-//##########################################################################\r
-//## Change information modeling\r
-//##########################################################################\r
-\r
-MOD.ChangeInformation <T L0.Literal\r
-    @L0.assert L0.HasDataType ${ createdBy : String, createdAt : Long, modifiedBy : String, modifiedAt : Long }\r
-\r
-MOD.Functions.modificationTimeTextLong : L0.Function\r
-    L0.HasValueType "String"\r
-\r
-MOD.ChangeInformation."n-createdBy" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
-    ==> "String"\r
-    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    \r
-    L0.HasLabel "Author"\r
-    SEL.SortingName "1"\r
-    L0.readOnly true\r
-\r
-MOD.ChangeInformation."n-createdAt" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType    \r
-    ==> "Long"\r
-    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    \r
-    L0.HasLabel "Created At"\r
-    SEL.HasDisplayValue MOD.Functions.modificationTimeTextLong\r
-    SEL.SortingName "2"\r
-    L0.readOnly true\r
-\r
-MOD.ChangeInformation."n-modifiedBy" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType    \r
-    ==> "String"\r
-    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    \r
-    L0.HasLabel "Last Modified By"\r
-    SEL.SortingName "3"\r
-    L0.readOnly true\r
-\r
-MOD.ChangeInformation."n-modifiedAt" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType    \r
-    ==> "Long"\r
-    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    \r
-    L0.HasLabel "Last Modified At"\r
-    SEL.HasDisplayValue MOD.Functions.modificationTimeTextLong\r
-    SEL.SortingName "4"\r
-    L0.readOnly true\r
-\r
-MOD.changeInformation <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
-    L0.HasLabel "Change Information"\r
-    --> MOD.ChangeInformation\r
-    SEL.HasDisplayValue ""\r
-    L0.readOnly true\r
-    SEL.canBeLifted false\r
-    SEL.HasStandardPropertyInfo MOD.SystemPropertyInfo\r
-\r
-MOD.TypeWithChangeInformation <T L0.Entity\r
-\r
-L0.HasName : SEL.GenericParameterType\r
-  SEL.HasDisplayValue _ : SEL.DisplayValue\r
-    L0.Literal.HasInputValidator MOD.Functions.nameInputValidator  : L0.Function\r
-\r
-L0.HasLabel : SEL.GenericParameterType\r
-L0X.HasGeneratedNamePrefix : SEL.GenericParameterType\r
-\r
-//MOD.HasNameBrowseContextContribution : VP.BrowseContextContribution\r
-//    VP.BrowseContextContribution.HasType L0.String\r
-//    VP.BrowseContextContribution.HasBrowseContext\r
-//      _ : VP.BrowseContext\r
-\r
-L0.SCLModule : MOD.TypeWithChangeInformation\r
-L0.Library : MOD.TypeWithChangeInformation\r
-SIMU.Model : MOD.TypeWithChangeInformation\r
-MOD.Subscription : MOD.TypeWithChangeInformation\r
-MOD.Subscription.Item : MOD.TypeWithChangeInformation\r
-SIMU.State : MOD.TypeWithChangeInformation\r
-ISSUE.Issue : MOD.TypeWithChangeInformation     \r
-DOC.Document : MOD.TypeWithChangeInformation\r
-SHEET.Book : MOD.TypeWithChangeInformation\r
-SHEET.Spreadsheet : MOD.TypeWithChangeInformation\r
-L0.Type  : MOD.TypeWithChangeInformation\r
-L0.Relation : MOD.TypeWithChangeInformation\r
-STR.ComponentType <T MOD.TypeWithChangeInformation\r
-\r
-L0.SCLModule : L0.TypeWithIdentifier\r
-L0.Type  : L0.TypeWithIdentifier\r
-L0.Relation : L0.TypeWithIdentifier\r
-L0.Library : L0.TypeWithIdentifier\r
-STR.ComponentType <T L0.TypeWithIdentifier\r
-\r
-MOD.PartialIC <T L0.Literal\r
-    //@L0.assert L0.HasDataType ${ values : Map( ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } ) [], Variant) }\r
-    @L0.assert L0.HasDataType ${ variants : ( ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } ) [] ) [], variants : Variant[] }\r
-\r
-MOD.SCLCommandSession <T L0.Entity\r
-    >-- MOD.SCLCommandSession.hasValue --> L0.Value <R L0.HasProperty : SEL.GenericParameterType\r
-    \r
-MOD.InitialCondition <T SIMU.State\r
-    >-- MOD.InitialCondition.sclState --> L0.ByteArray <R L0.HasProperty : L0.FunctionalRelation\r
-    >-- MOD.InitialCondition.HasSCLState --> MOD.SCLState <R L0.DependsOn\r
-\r
-MOD.SCLState <T L0.Entity\r
-    >-- MOD.SCLState.identifier --> L0.String <R L0.HasProperty : L0.FunctionalRelation\r
-    >-- MOD.SCLState.blob --> L0.ByteArray <R L0.HasProperty : L0.FunctionalRelation\r
-\r
-MOD.SCLQueryType <T STR.ComponentType\r
-\r
-MOD.SCLQuery : MOD.SCLQueryType <T STR.Component\r
-    >-- MOD.SCLQuery.values --> MOD.SCLQuery.Value <R L0.HasProperty : L0.FunctionalRelation\r
-    @L0.assert L0.domainChildren\r
-        MOD.Functions.queryChildMap : L0.ExternalValue\r
-\r
-MOD.SCLQuery.Value <T STR.SCLValue\r
-  @L0.assert L0.ConvertsToValueWith\r
-    MOD.Functions.queryValue : L0.ExternalValue\r
-    \r
-MOD.SystemPropertyInfo : SEL.StandardPropertyInfo\r
-  SEL.StandardPropertyInfo.CategoryName "System Properties"\r
-  SEL.StandardPropertyInfo.CategorySortingName "System Properties"\r
-  SEL.StandardPropertyInfo.IsHidden false\r
-\r
-MOD.UserDefinedPropertyInfo : SEL.StandardPropertyInfo\r
-  SEL.StandardPropertyInfo.CategoryName "User-defined Properties"\r
-  SEL.StandardPropertyInfo.CategorySortingName ""\r
-  SEL.StandardPropertyInfo.IsHidden false\r
-\r
-MOD.LifeCycleProcess <T L0.Entity\r
-  >-- MOD.LifeCycleProcess.load ==> "LifeCycleContext -> <Proc> ()" <R L0.HasProperty : L0.FunctionalRelation\r
-  >-- MOD.LifeCycleProcess.unload ==> "LifeCycleContext -> <Proc> ()" <R L0.HasProperty : L0.FunctionalRelation\r
-  \r
-MOD.DependencyTrackingProcess : MOD.LifeCycleProcess\r
-  @MOD.scl MOD.LifeCycleProcess.load\r
-    """\x -> trackDependencies"""\r
-    "LifeCycleContext -> <Proc> ()"\r
-  @MOD.scl MOD.LifeCycleProcess.unload\r
-    """\x -> untrackDependencies"""\r
-    "LifeCycleContext -> <Proc> ()"\r
-     \r
-\r
-MOD.EditorContribution <T L0.Entity\r
-  --> MOD.EditorContribution.canHandle ==> "Resource -> <ReadGraph> Boolean" <R L0.HasProperty : L0.FunctionalRelation \r
-  --> MOD.EditorContribution.editorId --> L0.String <R L0.HasProperty : L0.FunctionalRelation \r
-  --> MOD.EditorContribution.priority --> L0.Integer <R L0.HasProperty : L0.FunctionalRelation \r
-  --> MOD.EditorContribution.HasImage --> IMAGE.Image <R L0.DependsOn : L0.FunctionalRelation \r
-\r
-MOD.editorContribution : L0.Template\r
-    @template %subject %id %priority %image %canHandle\r
-        %subject : MOD.EditorContribution\r
-            MOD.EditorContribution.editorId %id\r
-            MOD.EditorContribution.priority %priority\r
-            MOD.EditorContribution.HasImage %image\r
-            MOD.EditorContribution.canHandle _ : MOD.SCLValue\r
-                L0.SCLValue.expression %canHandle\r
-                L0.HasValueType "Resource -> <ReadGraph> Boolean"\r
-                \r
-\r
-      
\ No newline at end of file
+                <-- %parent
+
+MOD.terminalRelation : L0.Template
+    @template %subject %target
+        %subject <R STR.IsConnectedTo
+            MOD.DiagramConnectionRelationToConnectionRelation %target
+
+MOD.connection : L0.Template
+    @template %subject %relation
+        %subject 
+            >-- %relation
+            MOD.DiagramConnectionRelationToConnectionRelation %relation
+
+MOD.contextualHelpId ==> "String" <R L0.HasProperty : L0.FunctionalRelation
+
+MOD.convertedValue <R L0.HasProperty : L0.FunctionalRelation
+  L0.RequiresValueType "a"
+
+MOD.OntologyDependencies : PROJ.NamespaceRequirement
+    L0.HasDescription "Specifies the ontologies required by a modelling project."
+    PROJ.RequiresNamespace
+        "http://www.simantics.org/Layer0-1.1" : L0.URI
+        "http://www.simantics.org/Diagram-2.2" : L0.URI
+        "http://www.simantics.org/Modeling-1.2" : L0.URI
+        "http://www.simantics.org/SelectionView-1.2" : L0.URI
+
+MOD.ModelBrowser <T VIEW.Explorer
+    @L0.assert VIEW.Control.layoutData
+        _ : VIEW.GridLayout.GridData
+            VIEW.GridLayout.GridData.horizontalGrab true
+            VIEW.GridLayout.GridData.verticalGrab true
+    @L0.assert VIEW.Control.style
+        _ : VIEW.Control.Style
+            VIEW.Control.Style.HasConstant VIEW.Control.Style.Constant.Multi
+            VIEW.Control.Style.HasConstant VIEW.Control.Style.Constant.FullSelection
+    @L0.assert VIEW.Explorer.columns
+        _ : VIEW.Explorer.ColumnList
+            @L0.list
+                VIEW.SingleColumn
+    @L0.assert VIEW.Explorer.input MOD.Functions.projectSelection
+    @L0.assert VIEW.Explorer.columnsVisible false
+    @L0.assert VIEW.Explorer.displayFilter true
+    @L0.assert VIEW.Explorer.publishSelection true
+    @L0.assert VIEW.Explorer.persistor MOD.Functions.standardPersistor
+    @L0.assert VIEW.Explorer.browseContext
+        _ : VIEW.ResourceURI
+            VIEW.ResourceURI.HasResource PROJ.ProjectBrowseContext
+    @L0.assert VIEW.Explorer.contextMenuId "#ModelBrowserPopup"
+    @L0.assert VIEW.Explorer.uiContext "org.simantics.modeling.ui.modelBrowser"
+    @L0.assert VIEW.Explorer.useNodeBrowseContexts true
+    @L0.assert VIEW.Explorer.useNodeActionContexts true
+
+MOD.PlainModelBrowser : MOD.ModelBrowser
+
+MOD.Functions.sclValue : L0.ExternalValue
+
+MOD.MonitorValue <T STR.MonitorValue
+  @L0.assert L0.valueAccessor
+    MOD.Functions.monitorValueAccessor : L0.ExternalValue
+  @L0.assert L0.ConvertsToValueWith MOD.Functions.sclValue
+  @L0.assert L0.SCLValue.environment
+    _ : L0.SCLValue.Environment
+      L0.SCLValue.Environment.moduleName "Simantics/All"
+      L0.SCLValue.Environment.namespace ""
+  @L0.assert L0.readOnly
+    MOD.Functions.monitorReadOnly : L0.Function
+
+MOD.SCLValue <T L0.SCLValue
+  @L0.assert L0.ConvertsToValueWith MOD.Functions.sclValue
+  /*@L0.assert L0.SCLValue.environment
+    _ : L0.SCLValue.Environment
+      L0.SCLValue.Environment.moduleName "Simantics/All"
+      L0.SCLValue.Environment.namespace ""*/
+
+MOD.scl : L0.Template
+    @template %subject %property %expression %valueType
+        %subject
+            %property _ : MOD.SCLValue
+              L0.SCLValue.expression %expression
+              L0.HasValueType %valueType
+
+MOD.sclValue : L0.Template
+    @template %subject %expression %valueType
+        %subject  : MOD.SCLValue
+            L0.SCLValue.expression %expression
+            L0.HasValueType %valueType
+
+MOD.sclAssertion : L0.Template
+    @template %type %property %expression %valueType
+        %type
+            L0.Asserts _ : L0.Assertion
+              L0.HasPredicate %property
+              L0.HasObject _ : MOD.SCLValue
+                L0.SCLValue.expression %expression
+                L0.HasValueType %valueType
+
+MOD.Functions.obtainedString : L0.Function
+  L0.HasValueType "String"
+
+MOD.Functions.obtainedDouble : L0.Function
+  L0.HasValueType "Double"
+
+MOD.Functions.obtainedBoolean : L0.Function
+  L0.HasValueType "Boolean"
+
+MOD.Functions.obtainedColor : L0.Function
+  L0.HasValueType "Color"
+    
+MOD.Functions.obtainedFormatter : L0.Function
+  L0.HasValueType "Formatter"
+
+MOD.Functions.obtainedVec2d : L0.Function
+  L0.HasValueType "Formatter"
+
+MOD.self <R L0.HasProperty : L0.FunctionalRelation
+
+//##########################################################################
+//## Source information modeling
+//##########################################################################
+
+MOD.SourceInformation <T L0.Entity
+    >-- MOD.SourceInformation.copiedFrom ==> "String" <R L0.HasProperty : L0.FunctionalRelation
+    >-- MOD.SourceInformation.copiedAtRevision --> L0.RevisionId <R L0.HasProperty : L0.FunctionalRelation
+MOD.HasSourceInformation --> MOD.SourceInformation <R L0.IsRelatedTo : L0.FunctionalRelation
+
+//##########################################################################
+//## Change information modeling
+//##########################################################################
+
+MOD.ChangeInformation <T L0.Literal
+    @L0.assert L0.HasValueType "ChangeInformation"
+    @L0.assert L0.HasDataType ${ createdBy : String, createdAt : Long, modifiedBy : String, modifiedAt : Long }
+
+MOD.Functions.modificationTimeTextLong : L0.Function
+    L0.HasValueType "String"
+
+MOD.ChangeInformation."n-createdBy" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
+    ==> "String"
+    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    
+    L0.HasLabel "Author"
+    SEL.SortingName "1"
+    L0.readOnly true
+
+MOD.ChangeInformation."n-createdAt" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType    
+    ==> "Long"
+    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    
+    L0.HasLabel "Created At"
+    SEL.HasDisplayValue MOD.Functions.modificationTimeTextLong
+    SEL.SortingName "2"
+    L0.readOnly true
+
+MOD.ChangeInformation."n-modifiedBy" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType    
+    ==> "String"
+    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    
+    L0.HasLabel "Last Modified By"
+    SEL.SortingName "3"
+    L0.readOnly true
+
+MOD.ChangeInformation."n-modifiedAt" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType    
+    ==> "Long"
+    L0.HasSubliteralPredicate.Inverse MOD.ChangeInformation    
+    L0.HasLabel "Last Modified At"
+    SEL.HasDisplayValue MOD.Functions.modificationTimeTextLong
+    SEL.SortingName "4"
+    L0.readOnly true
+
+MOD.changeInformation <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
+    L0.HasLabel "Change Information"
+    --> MOD.ChangeInformation
+    SEL.HasDisplayValue ""
+    L0.readOnly true
+    SEL.canBeLifted false
+    SEL.HasStandardPropertyInfo MOD.SystemPropertyInfo
+
+MOD.changed
+    @L0.defTag
+    L0.HasDescription "Indicates that the change information of this object has been modified after import into this database."
+
+MOD.TypeWithChangeInformation <T L0.Entity
+
+L0.HasName : SEL.GenericParameterType
+  SEL.HasDisplayValue _ : SEL.DisplayValue
+    L0.Literal.HasInputValidator MOD.Functions.nameInputValidator  : L0.Function
+
+L0.HasLabel : SEL.GenericParameterType
+L0X.HasGeneratedNamePrefix : SEL.GenericParameterType
+
+L0.SCLModule : MOD.TypeWithChangeInformation
+L0.SCLScript : MOD.TypeWithChangeInformation
+L0.Library : MOD.TypeWithChangeInformation
+SIMU.Model : MOD.TypeWithChangeInformation
+MOD.Subscription : MOD.TypeWithChangeInformation
+MOD.Subscription.Item : MOD.TypeWithChangeInformation
+SIMU.State : MOD.TypeWithChangeInformation
+ISSUE.Issue : MOD.TypeWithChangeInformation     
+DOC.Document : MOD.TypeWithChangeInformation
+SHEET.Book : MOD.TypeWithChangeInformation
+SHEET.Spreadsheet : MOD.TypeWithChangeInformation
+L0.Type  : MOD.TypeWithChangeInformation
+L0.Relation : MOD.TypeWithChangeInformation
+STR.ComponentType <T MOD.TypeWithChangeInformation
+
+L0.SCLModule : L0.TypeWithIdentifier
+L0.SCLScript : L0.TypeWithIdentifier
+L0.Type  : L0.TypeWithIdentifier
+L0.Relation : L0.TypeWithIdentifier
+L0.Library : L0.TypeWithIdentifier
+STR.ComponentType <T L0.TypeWithIdentifier
+
+MOD.PartialIC <T L0.Literal
+    //@L0.assert L0.HasDataType ${ values : Map( ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } ) [], Variant) }
+    @L0.assert L0.HasDataType ${ variants : ( ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } ) [] ) [], variants : Variant[] }
+
+MOD.SCLCommandSession <T L0.Entity
+    >-- MOD.SCLCommandSession.hasValue --> L0.Value <R L0.HasProperty : SEL.GenericParameterType
+    
+MOD.InitialCondition <T SIMU.State
+    >-- MOD.InitialCondition.sclState --> L0.ByteArray <R L0.HasProperty : L0.FunctionalRelation
+    >-- MOD.InitialCondition.HasSCLState --> MOD.SCLState <R L0.DependsOn
+
+MOD.SCLState <T L0.Entity
+    >-- MOD.SCLState.identifier --> L0.String <R L0.HasProperty : L0.FunctionalRelation
+    >-- MOD.SCLState.blob --> L0.ByteArray <R L0.HasProperty : L0.FunctionalRelation
+
+MOD.SCLQueryType <T STR.ComponentType
+
+MOD.SCLQuery : MOD.SCLQueryType <T STR.Component
+    >-- MOD.SCLQuery.values --> MOD.SCLQuery.Value <R L0.HasProperty : L0.FunctionalRelation
+    @L0.assert L0.domainChildren
+        MOD.Functions.queryChildMap : L0.ExternalValue
+
+MOD.SCLQuery.Value <T STR.SCLValue
+  @L0.assert L0.ConvertsToValueWith
+    MOD.Functions.queryValue : L0.ExternalValue
+    
+MOD.SystemPropertyInfo : SEL.StandardPropertyInfo
+  SEL.StandardPropertyInfo.CategoryName "System Properties"
+  SEL.StandardPropertyInfo.CategorySortingName "System Properties"
+  SEL.StandardPropertyInfo.IsHidden false
+
+MOD.UserDefinedPropertyInfo : SEL.StandardPropertyInfo
+  SEL.StandardPropertyInfo.CategoryName "User-defined Properties"
+  SEL.StandardPropertyInfo.CategorySortingName ""
+  SEL.StandardPropertyInfo.IsHidden false
+
+MOD.LifeCycleProcess <T L0.Entity
+  >-- MOD.LifeCycleProcess.load ==> "LifeCycleContext -> <Proc> ()" <R L0.HasProperty : L0.FunctionalRelation
+  >-- MOD.LifeCycleProcess.unload ==> "LifeCycleContext -> <Proc> ()" <R L0.HasProperty : L0.FunctionalRelation
+  
+MOD.DependencyTrackingProcess : MOD.LifeCycleProcess
+  @MOD.scl MOD.LifeCycleProcess.load
+    """\x -> trackDependencies"""
+    "LifeCycleContext -> <Proc> ()"
+  @MOD.scl MOD.LifeCycleProcess.unload
+    """\x -> untrackDependencies"""
+    "LifeCycleContext -> <Proc> ()"
+     
+
+MOD.OntologicalRequirementTracker <T MOD.LifeCycleProcess
+  @MOD.sclAssertion MOD.LifeCycleProcess.load
+    """\x -> trackOntologicalRequirements"""
+    "LifeCycleContext -> <Proc> ()"
+  @MOD.sclAssertion MOD.LifeCycleProcess.unload
+    """\x -> untrackOntologicalRequirements"""
+    "LifeCycleContext -> <Proc> ()"
+
+MOD.EditorContribution <T L0.Entity
+  --> MOD.EditorContribution.canHandle ==> "Resource -> <ReadGraph> Boolean" <R L0.HasProperty : L0.FunctionalRelation 
+  --> MOD.EditorContribution.editorId --> L0.String <R L0.HasProperty : L0.FunctionalRelation 
+  --> MOD.EditorContribution.priority --> L0.Integer <R L0.HasProperty : L0.FunctionalRelation 
+  --> MOD.EditorContribution.HasImage --> IMAGE.Image <R L0.DependsOn : L0.FunctionalRelation 
+
+MOD.editorContribution : L0.Template
+    @template %subject %id %priority %image %canHandle
+        %subject : MOD.EditorContribution
+            MOD.EditorContribution.editorId %id
+            MOD.EditorContribution.priority %priority
+            MOD.EditorContribution.HasImage %image
+            MOD.EditorContribution.canHandle _ : MOD.SCLValue
+                L0.SCLValue.expression %canHandle
+                L0.HasValueType "Resource -> <ReadGraph> Boolean"
+                
+MOD.SVGTabContribution : SEL.SCLTabContribution
+  @MOD.scl SEL.SCLTabContribution.instantiate
+    "svgTabContribution"
+    "() -> <Proc> TabContribution"
+
+MOD.SymbolCodeStyle : DIA.Style
+
+MOD.IssueDecorationStyle : DIA.Style
+
+MOD.PreferredDiagramEditorID <R L0.HasProperty : L0.FunctionalRelation
+    L0.HasDomain STR.Composite
+    L0.HasRange  L0.String
+    
+MOD.contentDumpFunction ==> "Resource -> <ReadGraph> Vector Byte" <R L0.HasProperty : L0.FunctionalRelation
+
+// We need to define the function inside this ontology to give it the right evaluation context
+L0.SCLModule
+  MOD.contentDumpFunction
+    MOD.SCLModuleContentDumpFunction
+      @L0.sclValue "sclModuleContentDump" "Resource -> <ReadGraph> Vector Byte"
+
+L0.SCLScript
+  MOD.contentDumpFunction
+    MOD.SCLScriptContentDumpFunction
+      @L0.sclValue "sclScriptContentDump" "Resource -> <ReadGraph> Vector Byte"
+
+L0.PGraph
+  MOD.contentDumpFunction
+    MOD.PGraphContentDumpFunction
+      @L0.sclValue "pgraphContentDump" "Resource -> <ReadGraph> Vector Byte"
+
+GF.File
+  MOD.contentDumpFunction
+    MOD.GraphFileContentDumpFunction
+      @L0.sclValue "graphFileContentDump" "Resource -> <ReadGraph> Vector Byte"
+
+STR.Component
+  MOD.contentDumpFunction
+    MOD.StructuralComponentContentDumpFunction
+      @L0.sclValue "structuralComponentContentDump" "Resource -> <ReadGraph> Vector Byte"
+
+SEL.GenericParameterType
+  MOD.contentDumpFunction
+    MOD.GenericParameterTypeContentDumpFunction
+      @L0.sclValue "genericParameterTypeContentDump" "Resource -> <ReadGraph> Vector Byte"