-L0 = <http://www.simantics.org/Layer0-1.1>\r
-\r
-L0.Literal <T L0.Value\r
- >-- L0.HasDataType --> L0.DataType <R L0.HasProperty : L0.FunctionalRelation\r
-L0.DataType <T L0.Literal\r
- @L0.assert L0.HasDataType $DataType\r
-\r
-L0.Boolean <T L0.Literal\r
- @L0.assert L0.HasDataType $Boolean\r
- @L0.assert L0.Literal.HasInputValidator\r
- L0.Functions.booleanInputValidator\r
- @L0.assert L0.HasValueType "Boolean"\r
-L0.Byte <T L0.Literal\r
- @L0.assert L0.HasDataType $Byte\r
- @L0.assert L0.Literal.HasInputValidator\r
- L0.Functions.numberInputValidator\r
- @L0.assert L0.HasValueType "Byte"\r
-L0.Integer <T L0.Literal\r
- @L0.assert L0.HasDataType $Integer\r
- @L0.assert L0.Literal.HasInputValidator\r
- L0.Functions.numberInputValidator\r
- @L0.assert L0.HasValueType "Integer"\r
-L0.Long <T L0.Literal\r
- @L0.assert L0.HasDataType $Long\r
- @L0.assert L0.Literal.HasInputValidator\r
- L0.Functions.numberInputValidator\r
- @L0.assert L0.HasValueType "Long"\r
-L0.Float <T L0.Literal\r
- @L0.assert L0.HasDataType $Float\r
- @L0.assert L0.Literal.HasInputValidator\r
- L0.Functions.numberInputValidator\r
- @L0.assert L0.HasValueType "Float" \r
-L0.Double <T L0.Literal\r
- @L0.assert L0.HasDataType $Double\r
- @L0.assert L0.Literal.HasInputValidator\r
- L0.Functions.numberInputValidator\r
- @L0.assert L0.HasValueType "Double"\r
-L0.String <T L0.Literal /*<T L0X.StringAdapter*/\r
- @L0.assert L0.HasDataType $String\r
- @L0.assert L0.HasValueType "String"\r
-L0.BooleanArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Boolean[])\r
- @L0.assert L0.HasValueType "Vector Boolean"\r
-L0.ByteArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Byte[])\r
- @L0.assert L0.HasValueType "Vector Byte"\r
-L0.IntegerArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Integer[])\r
- @L0.assert L0.HasValueType "Vector Integer"\r
-L0.LongArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Long[])\r
- @L0.assert L0.HasValueType "Vector Long"\r
-L0.FloatArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Float[])\r
- @L0.assert L0.HasValueType "Vector Float"\r
-L0.DoubleArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Double[])\r
- @L0.assert L0.HasValueType "Vector Double"\r
-L0.StringArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(String[])\r
- @L0.assert L0.HasValueType "Vector String"\r
-L0.VariantArray <T L0.Literal\r
- @L0.assert L0.HasDataType $(Variant[])\r
- @L0.assert L0.HasValueType "Vector Variant"\r
-L0.Variant <T L0.Literal\r
- @L0.assert L0.HasDataType $Variant \r
-L0.CardinalityRange <T L0.Literal\r
- @L0.assert L0.HasDataType ${\r
- min : Optional(Integer),\r
- max : Optional(Integer) \r
- }\r
-L0.URI <T L0.String\r
- L0.HasDescription """A Uniform Resource Identifier (URI) is just a unique string that uniquely identifies something, commonly a namespace. Sometimes they look like a URL that you could type into the address bar of your web browser, but it doesn't have to point to any physical resource on the web."""\r
-L0.RevisionId <T L0.Literal\r
- @L0.assert L0.HasDataType $Long(unit="revision")\r
- @L0.assert L0.HasValueType "Long"\r
-//L0.URL <T L0.URI\r
-// L0.HasDescription """A Uniform Resource Locator (URL) is an URI which locates a resource on the web.""" \r
-\r
-L0.RVI <T L0.Literal\r
- @L0.assert L0.HasDataType ${ parts : ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } | GuidRVIPart { role : |CHILD|PROPERTY, guid : { mostSignificantPart : Long , leastSignificantPart : Long } } ) [] }\r
- \r
-// Constant literals \r
-L0.True = true\r
-L0.False = false \r
-//L0.EmptyString = ""\r
-\r
-L0.Cardinality0 = { max=0 } : L0.CardinalityRange\r
-L0.Cardinality1 = { min=1, max=1 } : L0.CardinalityRange\r
-L0.Cardinality2 = { min=2, max=2 } : L0.CardinalityRange\r
-L0.CardinalityAtMost1 = { max=1 } : L0.CardinalityRange\r
-L0.CardinalityAtLeast1 = { min=1 } : L0.CardinalityRange\r
-\r
-L0.Literal.HasInputValidator <R L0.HasProperty /*: L0X.ResourcePropertyRelation*/\r
-\r
-L0.Literal.BooleanValidator <T L0.Value\r
-L0.Literal.ByteValidator <T L0.Value\r
-L0.Literal.IntegerValidator <T L0.Value\r
-L0.Literal.LongValidator <T L0.Value\r
-L0.Literal.FloatValidator <T L0.Value\r
-L0.Literal.DoubleValidator <T L0.Value\r
-\r
-L0.GUID <T L0.Literal\r
- @L0.assert L0.HasValueType "(Long,Long)"\r
- @L0.assert L0.HasDataType ${ mostSigBits : Long, leastSigBits : Long }\r
- \r
-L0.TypeWithIdentifier <T L0.Entity\r
+L0 = <http://www.simantics.org/Layer0-1.1>
+
+L0.Literal <T L0.Value
+ >-- L0.HasDataType --> L0.DataType <R L0.HasProperty : L0.FunctionalRelation
+L0.DataType <T L0.Literal
+ @L0.assert L0.HasDataType $DataType
+
+L0.Boolean <T L0.Literal
+ @L0.assert L0.HasDataType $Boolean
+ @L0.assert L0.Literal.HasInputValidator
+ L0.Functions.booleanInputValidator
+ @L0.assert L0.HasValueType "Boolean"
+L0.Byte <T L0.Literal
+ @L0.assert L0.HasDataType $Byte
+ @L0.assert L0.Literal.HasInputValidator
+ L0.Functions.numberInputValidator
+ @L0.assert L0.HasValueType "Byte"
+L0.Integer <T L0.Literal
+ @L0.assert L0.HasDataType $Integer
+ @L0.assert L0.Literal.HasInputValidator
+ L0.Functions.numberInputValidator
+ @L0.assert L0.HasValueType "Integer"
+L0.Long <T L0.Literal
+ @L0.assert L0.HasDataType $Long
+ @L0.assert L0.Literal.HasInputValidator
+ L0.Functions.numberInputValidator
+ @L0.assert L0.HasValueType "Long"
+L0.Float <T L0.Literal
+ @L0.assert L0.HasDataType $Float
+ @L0.assert L0.Literal.HasInputValidator
+ L0.Functions.numberInputValidator
+ @L0.assert L0.HasValueType "Float"
+L0.Double <T L0.Literal
+ @L0.assert L0.HasDataType $Double
+ @L0.assert L0.Literal.HasInputValidator
+ L0.Functions.numberInputValidator
+ @L0.assert L0.HasValueType "Double"
+L0.String <T L0.Literal /*<T L0X.StringAdapter*/
+ @L0.assert L0.HasDataType $String
+ @L0.assert L0.HasValueType "String"
+L0.BooleanArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Boolean[])
+ @L0.assert L0.HasValueType "Vector Boolean"
+L0.ByteArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Byte[])
+ @L0.assert L0.HasValueType "Vector Byte"
+L0.IntegerArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Integer[])
+ @L0.assert L0.HasValueType "Vector Integer"
+L0.LongArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Long[])
+ @L0.assert L0.HasValueType "Vector Long"
+L0.FloatArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Float[])
+ @L0.assert L0.HasValueType "Vector Float"
+L0.DoubleArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Double[])
+ @L0.assert L0.HasValueType "Vector Double"
+L0.StringArray <T L0.Literal
+ @L0.assert L0.HasDataType $(String[])
+ @L0.assert L0.HasValueType "Vector String"
+L0.VariantArray <T L0.Literal
+ @L0.assert L0.HasDataType $(Variant[])
+ @L0.assert L0.HasValueType "Vector Variant"
+L0.Variant <T L0.Literal
+ @L0.assert L0.HasDataType $Variant
+L0.CardinalityRange <T L0.Literal
+ @L0.assert L0.HasDataType ${
+ min : Optional(Integer),
+ max : Optional(Integer)
+ }
+L0.URI <T L0.String
+ L0.HasDescription """A Uniform Resource Identifier (URI) is just a unique string that uniquely identifies something, commonly a namespace. Sometimes they look like a URL that you could type into the address bar of your web browser, but it doesn't have to point to any physical resource on the web."""
+L0.RevisionId <T L0.Literal
+ @L0.assert L0.HasDataType $Long(unit="revision")
+ @L0.assert L0.HasValueType "Long"
+//L0.URL <T L0.URI
+// L0.HasDescription """A Uniform Resource Locator (URL) is an URI which locates a resource on the web."""
+
+L0.RVI <T L0.Literal
+ @L0.assert L0.HasDataType ${ parts : ( | ResourceRVIPart { role : |CHILD|PROPERTY, resource : Long(unit="resource") } | StringRVIPart { role : |CHILD|PROPERTY, string : String } | GuidRVIPart { role : |CHILD|PROPERTY, guid : { mostSignificantPart : Long , leastSignificantPart : Long } } ) [] }
+
+L0.EmptyRVI = { parts = [] } : L0.RVI
+
+// Constant literals
+L0.True = true
+L0.False = false
+//L0.EmptyString = ""
+
+L0.Cardinality0 = { max=0 } : L0.CardinalityRange
+L0.Cardinality1 = { min=1, max=1 } : L0.CardinalityRange
+L0.Cardinality2 = { min=2, max=2 } : L0.CardinalityRange
+L0.CardinalityAtMost1 = { max=1 } : L0.CardinalityRange
+L0.CardinalityAtLeast1 = { min=1 } : L0.CardinalityRange
+
+L0.Literal.HasInputValidator <R L0.HasProperty /*: L0X.ResourcePropertyRelation*/
+
+L0.Literal.BooleanValidator <T L0.Value
+L0.Literal.ByteValidator <T L0.Value
+L0.Literal.IntegerValidator <T L0.Value
+L0.Literal.LongValidator <T L0.Value
+L0.Literal.FloatValidator <T L0.Value
+L0.Literal.DoubleValidator <T L0.Value
+
+L0.GUID <T L0.Literal
+ @L0.assert L0.HasValueType "(Long,Long)"
+ @L0.assert L0.HasDataType ${ mostSigBits : Long, leastSigBits : Long }
+
+L0.TypeWithIdentifier <T L0.Entity