description <http://ua.be/drivetrain/description/artifacts/artifacts#> as artifacts {
    uses <http://ua.be/sdo2l/vocabulary/base#> as base
    uses <http://ua.be/sdo2l/vocabulary/base/file#> as file
	uses <http://ua.be/sdo2l/vocabulary/base/text#> as text
    uses <http://ua.be/sdo2l/vocabulary/base/script#> as script
    uses <http://ua.be/sdo2l/vocabulary/base/code#> as code
    uses <http://ua.be/sdo2l/vocabulary/base/tabular#> as tabular
   	extends <http://iso.org/iso-80000-4.13#> as iso-80000-4.13

    // NOTE: Artifacts in this OML are what ArtifactVersions are in FTG+PM++

	ci drivetrain-limitation : text:TextData [
        base:hasVersion "v0"
        file:isLocatedAt "limitations.txt"
        text:hasTextLine drivetrain-limitation-line-0
        text:hasTextLine drivetrain-limitation-line-1
	]
    ci drivetrain-limitation-line-0 : text:TextLine [text:isInTextFile drivetrain-limitation text:isOnLine 0 text:holdsTextData "We need to operate between 0 and 5000 RPM."]
        
    ci drivetrain-limitation-line-1 : text:TextLine [text:isInTextFile drivetrain-limitation text:isOnLine 1 text:holdsTextData "The torque cannot exceed 1000 Nm."]

    ci drivetrain-limitation-v1 : text:TextData [
        base:hasVersion "v1"
        file:isLocatedAt "limitationss.txt"
        base:newVersionOf drivetrain-limitation
	]
	
	ci drivetrain-limitation-v2 : text:TextData [
        base:hasVersion "v2"
        file:isLocatedAt "limitations2.txt"
        base:newVersionOf drivetrain-limitation-v1
	]

	
	ci test-requirements : text:TextData [
		base:hasVersion "v0"
        file:isLocatedAt "requirements.txt"
        text:hasTextLine test-requirements-line-0
        text:hasTextLine test-requirements-line-1
        text:hasTextLine test-requirements-line-2
        text:hasTextLine test-requirements-line-3
	]
    ci test-requirements-line-0 : text:TextLine [text:isInTextFile test-requirements text:isOnLine 0 text:holdsTextData "We need a drivetrain."]
    ci test-requirements-line-1 : text:TextLine [text:isInTextFile test-requirements text:isOnLine 1 text:holdsTextData "It needs a sensor."]
    ci test-requirements-line-2 : text:TextLine [text:isInTextFile test-requirements text:isOnLine 2 text:holdsTextData "This sensor needs to measure values."]
    ci test-requirements-line-3 : text:TextLine [text:isInTextFile test-requirements text:isOnLine 3 text:holdsTextData "These values need to be between certain limits."]


	ci test-requirements-v1 : text:TextData [
		base:hasVersion "v1"
        file:isLocatedAt "requirementss.txt"
        base:newVersionOf test-requirements
	]
	
	ci test-requirements-v2 : text:TextData [
		base:hasVersion "v2"
        file:isLocatedAt "requirements2.txt"
        base:newVersionOf test-requirements-v1
	]
	
	ci torque-profile-v1 : tabular:TabularData [
		base:hasVersion "v1"
		file:isLocatedAt "src/main/resources/csv/profile.csv"
		base:newVersionOf torque-profile
	]
    // NOTE: Only 3 rows are modelled
	ci torque-profile : tabular:TabularData [
		base:hasVersion "v0"
        file:isLocatedAt "profile.csv"
        tabular:hasCells torque-profile-cell-00
        tabular:hasCells torque-profile-cell-10
        tabular:hasCells torque-profile-cell-20
        tabular:hasCells torque-profile-cell-01
        tabular:hasCells torque-profile-cell-11
        tabular:hasCells torque-profile-cell-21
        tabular:hasColumns torque-profile-column-0
        tabular:hasColumns torque-profile-column-1
        tabular:hasRows torque-profile-row-0
        tabular:hasRows torque-profile-row-1
        tabular:hasRows torque-profile-row-2
	]
	
    ci torque-profile-cell-00 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 0
        tabular:holdsContent "time"
        tabular:isCellOfTabularData torque-profile
        tabular:isInCollection torque-profile-row-0
        tabular:isInCollection torque-profile-column-0
    ]
    ci torque-profile-cell-01 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 1
        tabular:holdsContent "value"
        tabular:isCellOfTabularData torque-profile
        tabular:isInCollection torque-profile-row-0
        tabular:isInCollection torque-profile-column-1
    ]
    ci torque-profile-cell-10 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 0
        tabular:holdsContent "1645343060000"
        tabular:isCellOfTabularData torque-profile
        tabular:isInCollection torque-profile-row-1
        tabular:isInCollection torque-profile-column-0
    ]
    ci torque-profile-cell-11 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 1
        tabular:holdsContent "0.1063435735"
        tabular:isCellOfTabularData torque-profile
        tabular:isInCollection torque-profile-row-1
        tabular:isInCollection torque-profile-column-1
    ]
    ci torque-profile-cell-20 : tabular:Cell [
        tabular:hasRowPosition 2
        tabular:hasColumnPosition 0
        tabular:holdsContent "1645799771000"
        tabular:isCellOfTabularData torque-profile
        tabular:isInCollection torque-profile-row-2
        tabular:isInCollection torque-profile-column-0
    ]
    ci torque-profile-cell-21 : tabular:Cell [
        tabular:hasRowPosition 2
        tabular:hasColumnPosition 1
        tabular:holdsContent "0.1413462533"
        tabular:isCellOfTabularData torque-profile
        tabular:isInCollection torque-profile-row-2
        tabular:isInCollection torque-profile-column-1
    ]
    ci torque-profile-row-0 : tabular:HeaderRow [
        tabular:hasRowId 0
        tabular:hasCell torque-profile-cell-00
        tabular:hasCell torque-profile-cell-01
    ]
    ci torque-profile-row-1 : tabular:Row [
        tabular:hasRowId 1
        tabular:hasCell torque-profile-cell-10
        tabular:hasCell torque-profile-cell-11
    ]
    ci torque-profile-row-2 : tabular:Row [
        tabular:hasRowId 2
        tabular:hasCell torque-profile-cell-20
        tabular:hasCell torque-profile-cell-21
    ]
    ci torque-profile-column-0 : tabular:Column [
        tabular:hasColumnId 0
        tabular:hasCell torque-profile-cell-00
        tabular:hasCell torque-profile-cell-10
        tabular:hasCell torque-profile-cell-20
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci torque-profile-column-1 : tabular:Column [
        tabular:hasColumnId 1
        tabular:hasCell torque-profile-cell-01
        tabular:hasCell torque-profile-cell-11
        tabular:hasCell torque-profile-cell-21
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]

	ci control-parameter-generator : script:MATLABScript [
		base:hasVersion "v0"
        file:isLocatedAt "generator.mlx"
        text:hasTextLine control-parameter-generator-line-0
        text:hasTextLine control-parameter-generator-line-1
        text:hasTextLine control-parameter-generator-line-2
        text:hasTextLine control-parameter-generator-line-3
        text:hasTextLine control-parameter-generator-line-4
        text:hasTextLine control-parameter-generator-line-5
	]
    ci control-parameter-generator-line-0 : text:TextLine [text:isInTextFile control-parameter-generator text:isOnLine 0 text:holdsTextData "num = randi(100)"]
    ci control-parameter-generator-line-1 : text:TextLine [text:isInTextFile control-parameter-generator text:isOnLine 1 text:holdsTextData "if num < 90"]
    ci control-parameter-generator-line-2 : text:TextLine [text:isInTextFile control-parameter-generator text:isOnLine 2 text:holdsTextData "   sz = 'yes'"]
    ci control-parameter-generator-line-3 : text:TextLine [text:isInTextFile control-parameter-generator text:isOnLine 3 text:holdsTextData "else"]
    ci control-parameter-generator-line-4 : text:TextLine [text:isInTextFile control-parameter-generator text:isOnLine 4 text:holdsTextData "   sz = 'no'"]
    ci control-parameter-generator-line-5 : text:TextLine [text:isInTextFile control-parameter-generator text:isOnLine 5 text:holdsTextData "end"]

	ci control-parameters : code:MATLABCode [
		base:hasVersion "v0"
        file:isLocatedAt "control.mat"
        text:hasTextLine control-parameters-line-0
        text:hasTextLine control-parameters-line-1
        text:hasTextLine control-parameters-line-2
        text:hasTextLine control-parameters-line-3
        text:hasTextLine control-parameters-line-4
        text:hasTextLine control-parameters-line-5
	]
    ci control-parameters-line-0 : text:TextLine [text:isInTextFile control-parameters text:isOnLine 0 text:holdsTextData "[x,y,z] = sphere;"]
    ci control-parameters-line-1 : text:TextLine [text:isInTextFile control-parameters text:isOnLine 1 text:holdsTextData "r = 2;"]
    ci control-parameters-line-2 : text:TextLine [text:isInTextFile control-parameters text:isOnLine 2 text:holdsTextData "surf(x*r,y*r,z*r)"]
    ci control-parameters-line-3 : text:TextLine [text:isInTextFile control-parameters text:isOnLine 3 text:holdsTextData "axis equal"]
    ci control-parameters-line-4 : text:TextLine [text:isInTextFile control-parameters text:isOnLine 4 text:holdsTextData "A = 4*pi*r^2;"]
    ci control-parameters-line-5 : text:TextLine [text:isInTextFile control-parameters text:isOnLine 5 text:holdsTextData "V = (4/3)*pi*r^3;"]

	ci c-code-to-be-run-on-rtt : code:CCode [
		base:hasVersion "v0"
        file:isLocatedAt "rtt.c"
        text:hasTextLine c-code-to-be-run-on-rtt-line-0
        text:hasTextLine c-code-to-be-run-on-rtt-line-1
	]
    ci c-code-to-be-run-on-rtt-line-0 : text:TextLine [text:isInTextFile c-code-to-be-run-on-rtt text:isOnLine 0 text:holdsTextData "#include <stdio.h>"]
    ci c-code-to-be-run-on-rtt-line-1 : text:TextLine [text:isInTextFile c-code-to-be-run-on-rtt text:isOnLine 1 text:holdsTextData 'int main() {printf("Hello, World!"); return 0;}']


	ci drivetrain-sensor-data-v2 : tabular:TabularData [
		base:hasVersion "v2"
		file:isLocatedAt "src/main/resources/csv/sensor2.csv"
		base:newVersionOf drivetrain-sensor-data-v1
	]

	ci drivetrain-sensor-data-v1 : tabular:TabularData [
		base:hasVersion "v1"
		file:isLocatedAt "src/main/resources/csv/sensor.csv"
		base:newVersionOf drivetrain-sensor-data
	]

    // NOTE: Only 2 rows are modelled
	ci drivetrain-sensor-data : tabular:TabularData [
		base:hasVersion "v0"
        file:isLocatedAt "sensor.csv"
        tabular:hasCells drivetrain-sensor-data-cell-00
        tabular:hasCells drivetrain-sensor-data-cell-01
        tabular:hasCells drivetrain-sensor-data-cell-02
        tabular:hasCells drivetrain-sensor-data-cell-03
        tabular:hasCells drivetrain-sensor-data-cell-04
        tabular:hasCells drivetrain-sensor-data-cell-05
        tabular:hasCells drivetrain-sensor-data-cell-06
        tabular:hasCells drivetrain-sensor-data-cell-07
        tabular:hasCells drivetrain-sensor-data-cell-08
        tabular:hasCells drivetrain-sensor-data-cell-09
        tabular:hasCells drivetrain-sensor-data-cell-10
        tabular:hasCells drivetrain-sensor-data-cell-11
        tabular:hasCells drivetrain-sensor-data-cell-12
        tabular:hasCells drivetrain-sensor-data-cell-13
        tabular:hasCells drivetrain-sensor-data-cell-14
        tabular:hasCells drivetrain-sensor-data-cell-15
        tabular:hasCells drivetrain-sensor-data-cell-16
        tabular:hasCells drivetrain-sensor-data-cell-17
        tabular:hasCells drivetrain-sensor-data-cell-18
        tabular:hasCells drivetrain-sensor-data-cell-19
        tabular:hasColumns drivetrain-sensor-data-column-0
        tabular:hasColumns drivetrain-sensor-data-column-1
        tabular:hasColumns drivetrain-sensor-data-column-2
        tabular:hasColumns drivetrain-sensor-data-column-3
        tabular:hasColumns drivetrain-sensor-data-column-4
        tabular:hasColumns drivetrain-sensor-data-column-5
        tabular:hasColumns drivetrain-sensor-data-column-6
        tabular:hasColumns drivetrain-sensor-data-column-7
        tabular:hasColumns drivetrain-sensor-data-column-8
        tabular:hasColumns drivetrain-sensor-data-column-9
        tabular:hasRows drivetrain-sensor-data-row-0
        tabular:hasRows drivetrain-sensor-data-row-1
	]
    ci drivetrain-sensor-data-cell-00 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 0
        tabular:holdsContent "index"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-0
    ]
    ci drivetrain-sensor-data-cell-01 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 1
        tabular:holdsContent "microsec"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-1
    ]
    ci drivetrain-sensor-data-cell-02 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 2
        tabular:holdsContent "sense_00"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-2
    ]
    ci drivetrain-sensor-data-cell-03 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 3
        tabular:holdsContent "sense_01"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-3
    ]
    ci drivetrain-sensor-data-cell-04 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 4
        tabular:holdsContent "sense_02"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-4
    ]
    ci drivetrain-sensor-data-cell-05 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 5
        tabular:holdsContent "sense_03"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-5
    ]
    ci drivetrain-sensor-data-cell-06 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 6
        tabular:holdsContent "sense_10"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-6
    ]
    ci drivetrain-sensor-data-cell-07 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 7
        tabular:holdsContent "sense_11"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-7
    ]
    ci drivetrain-sensor-data-cell-08 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 8
        tabular:holdsContent "sense_12"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-8
    ]
        ci drivetrain-sensor-data-cell-09 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 9
        tabular:holdsContent "sense_13"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-0
        tabular:isInCollection drivetrain-sensor-data-column-9
    ]
    ci drivetrain-sensor-data-cell-10 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 0
        tabular:holdsContent "0"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-0
    ]
    ci drivetrain-sensor-data-cell-11 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 1
        tabular:holdsContent "100"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-1
    ]
    ci drivetrain-sensor-data-cell-12 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 2
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-2
    ]
    ci drivetrain-sensor-data-cell-13 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 3
        tabular:holdsContent "0.6"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-3
    ]
    ci drivetrain-sensor-data-cell-14 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 4
        tabular:holdsContent "0.1"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-4
    ]
    ci drivetrain-sensor-data-cell-15 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 5
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-5
    ]
    ci drivetrain-sensor-data-cell-16 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 6
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-6
    ]
    ci drivetrain-sensor-data-cell-17 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 7
        tabular:holdsContent "0.1"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-7
    ]
    ci drivetrain-sensor-data-cell-18 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 8
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-8
    ]
    ci drivetrain-sensor-data-cell-19 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 9
        tabular:holdsContent "0.5"
        tabular:isCellOfTabularData drivetrain-sensor-data
        tabular:isInCollection drivetrain-sensor-data-row-1
        tabular:isInCollection drivetrain-sensor-data-column-9
    ]
    ci drivetrain-sensor-data-row-0 : tabular:HeaderRow [
        tabular:hasRowId 0
        tabular:hasCell drivetrain-sensor-data-cell-00
        tabular:hasCell drivetrain-sensor-data-cell-01
        tabular:hasCell drivetrain-sensor-data-cell-02
        tabular:hasCell drivetrain-sensor-data-cell-03
        tabular:hasCell drivetrain-sensor-data-cell-04
        tabular:hasCell drivetrain-sensor-data-cell-05
        tabular:hasCell drivetrain-sensor-data-cell-06
        tabular:hasCell drivetrain-sensor-data-cell-07
        tabular:hasCell drivetrain-sensor-data-cell-08
        tabular:hasCell drivetrain-sensor-data-cell-09
    ]
    ci drivetrain-sensor-data-row-1 : tabular:Row [
        tabular:hasRowId 1
        tabular:hasCell drivetrain-sensor-data-cell-10
        tabular:hasCell drivetrain-sensor-data-cell-11
        tabular:hasCell drivetrain-sensor-data-cell-12
        tabular:hasCell drivetrain-sensor-data-cell-13
        tabular:hasCell drivetrain-sensor-data-cell-14
        tabular:hasCell drivetrain-sensor-data-cell-15
        tabular:hasCell drivetrain-sensor-data-cell-16
        tabular:hasCell drivetrain-sensor-data-cell-17
        tabular:hasCell drivetrain-sensor-data-cell-18
        tabular:hasCell drivetrain-sensor-data-cell-19
    ]
    ci drivetrain-sensor-data-column-0 : tabular:Column [
        tabular:hasColumnId 0
        tabular:hasCell drivetrain-sensor-data-cell-00
        tabular:hasCell drivetrain-sensor-data-cell-10
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-1 : tabular:Column [
        tabular:hasColumnId 1
        tabular:hasCell drivetrain-sensor-data-cell-01
        tabular:hasCell drivetrain-sensor-data-cell-11
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-2 : tabular:Column [
        tabular:hasColumnId 2
        tabular:hasCell drivetrain-sensor-data-cell-02
        tabular:hasCell drivetrain-sensor-data-cell-12
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-3 : tabular:Column [
        tabular:hasColumnId 3
        tabular:hasCell drivetrain-sensor-data-cell-03
        tabular:hasCell drivetrain-sensor-data-cell-13
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-4 : tabular:Column [
        tabular:hasColumnId 4
        tabular:hasCell drivetrain-sensor-data-cell-04
        tabular:hasCell drivetrain-sensor-data-cell-14
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-5 : tabular:Column [
        tabular:hasColumnId 5
        tabular:hasCell drivetrain-sensor-data-cell-05
        tabular:hasCell drivetrain-sensor-data-cell-15
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-6 : tabular:Column [
        tabular:hasColumnId 6
        tabular:hasCell drivetrain-sensor-data-cell-06
        tabular:hasCell drivetrain-sensor-data-cell-16
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-7 : tabular:Column [
        tabular:hasColumnId 7
        tabular:hasCell drivetrain-sensor-data-cell-07
        tabular:hasCell drivetrain-sensor-data-cell-17
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-8 : tabular:Column [
        tabular:hasColumnId 8
        tabular:hasCell drivetrain-sensor-data-cell-08
        tabular:hasCell drivetrain-sensor-data-cell-18
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci drivetrain-sensor-data-column-9 : tabular:Column [
        tabular:hasColumnId 9
        tabular:hasCell drivetrain-sensor-data-cell-09
        tabular:hasCell drivetrain-sensor-data-cell-19
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    
    // NOTE: Only 2 rows are modelled
	ci coupling-sensor-data-v1 : tabular:TabularData [
		base:hasVersion "v1"
       	file:isLocatedAt "src/main/resources/csv/coupling.csv"
       	base:newVersionOf coupling-sensor-data
    ]

    // NOTE: Only 2 rows are modelled
	ci coupling-sensor-data : tabular:TabularData [
		base:hasVersion "v0"
        file:isLocatedAt "coupling.csv"
        tabular:hasCells coupling-sensor-data-cell-00
        tabular:hasCells coupling-sensor-data-cell-01
        tabular:hasCells coupling-sensor-data-cell-02
        tabular:hasCells coupling-sensor-data-cell-03
        tabular:hasCells coupling-sensor-data-cell-04
        tabular:hasCells coupling-sensor-data-cell-05
        tabular:hasCells coupling-sensor-data-cell-06
        tabular:hasCells coupling-sensor-data-cell-07
        tabular:hasCells coupling-sensor-data-cell-08
        tabular:hasCells coupling-sensor-data-cell-09
        tabular:hasCells coupling-sensor-data-cell-10
        tabular:hasCells coupling-sensor-data-cell-11
        tabular:hasCells coupling-sensor-data-cell-12
        tabular:hasCells coupling-sensor-data-cell-13
        tabular:hasCells coupling-sensor-data-cell-14
        tabular:hasCells coupling-sensor-data-cell-15
        tabular:hasCells coupling-sensor-data-cell-16
        tabular:hasCells coupling-sensor-data-cell-17
        tabular:hasCells coupling-sensor-data-cell-18
        tabular:hasCells coupling-sensor-data-cell-19
        tabular:hasColumns coupling-sensor-data-column-0
        tabular:hasColumns coupling-sensor-data-column-1
        tabular:hasColumns coupling-sensor-data-column-2
        tabular:hasColumns coupling-sensor-data-column-3
        tabular:hasColumns coupling-sensor-data-column-4
        tabular:hasColumns coupling-sensor-data-column-5
        tabular:hasColumns coupling-sensor-data-column-6
        tabular:hasColumns coupling-sensor-data-column-7
        tabular:hasColumns coupling-sensor-data-column-8
        tabular:hasColumns coupling-sensor-data-column-9
        tabular:hasRows coupling-sensor-data-row-0
        tabular:hasRows coupling-sensor-data-row-1
	]
    ci coupling-sensor-data-cell-00 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 0
        tabular:holdsContent "index"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-0
    ]
    ci coupling-sensor-data-cell-01 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 1
        tabular:holdsContent "microsec"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-1
    ]
    ci coupling-sensor-data-cell-02 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 2
        tabular:holdsContent "sense_00"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-2
    ]
    ci coupling-sensor-data-cell-03 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 3
        tabular:holdsContent "sense_01"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-3
    ]
    ci coupling-sensor-data-cell-04 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 4
        tabular:holdsContent "sense_02"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-4
    ]
    ci coupling-sensor-data-cell-05 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 5
        tabular:holdsContent "sense_03"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-5
    ]
    ci coupling-sensor-data-cell-06 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 6
        tabular:holdsContent "sense_10"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-6
    ]
    ci coupling-sensor-data-cell-07 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 7
        tabular:holdsContent "sense_11"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-7
    ]
    ci coupling-sensor-data-cell-08 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 8
        tabular:holdsContent "sense_12"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-8
    ]
        ci coupling-sensor-data-cell-09 : tabular:Cell [
        tabular:hasRowPosition 0
        tabular:hasColumnPosition 9
        tabular:holdsContent "sense_13"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-0
        tabular:isInCollection coupling-sensor-data-column-9
    ]
    ci coupling-sensor-data-cell-10 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 0
        tabular:holdsContent "0"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-0
    ]
    ci coupling-sensor-data-cell-11 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 1
        tabular:holdsContent "100"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-1
    ]
    ci coupling-sensor-data-cell-12 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 2
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-2
    ]
    ci coupling-sensor-data-cell-13 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 3
        tabular:holdsContent "0.6"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-3
    ]
    ci coupling-sensor-data-cell-14 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 4
        tabular:holdsContent "0.1"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-4
    ]
    ci coupling-sensor-data-cell-15 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 5
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-5
    ]
    ci coupling-sensor-data-cell-16 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 6
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-6
    ]
    ci coupling-sensor-data-cell-17 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 7
        tabular:holdsContent "0.1"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-7
    ]
    ci coupling-sensor-data-cell-18 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 8
        tabular:holdsContent "0.3"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-8
    ]
    ci coupling-sensor-data-cell-19 : tabular:Cell [
        tabular:hasRowPosition 1
        tabular:hasColumnPosition 9
        tabular:holdsContent "0.5"
        tabular:isCellOfTabularData coupling-sensor-data
        tabular:isInCollection coupling-sensor-data-row-1
        tabular:isInCollection coupling-sensor-data-column-9
    ]
    ci coupling-sensor-data-row-0 : tabular:HeaderRow [
        tabular:hasRowId 0
        tabular:hasCell coupling-sensor-data-cell-00
        tabular:hasCell coupling-sensor-data-cell-01
        tabular:hasCell coupling-sensor-data-cell-02
        tabular:hasCell coupling-sensor-data-cell-03
        tabular:hasCell coupling-sensor-data-cell-04
        tabular:hasCell coupling-sensor-data-cell-05
        tabular:hasCell coupling-sensor-data-cell-06
        tabular:hasCell coupling-sensor-data-cell-07
        tabular:hasCell coupling-sensor-data-cell-08
        tabular:hasCell coupling-sensor-data-cell-09
    ]
    ci coupling-sensor-data-row-1 : tabular:Row [
        tabular:hasRowId 1
        tabular:hasCell coupling-sensor-data-cell-10
        tabular:hasCell coupling-sensor-data-cell-11
        tabular:hasCell coupling-sensor-data-cell-12
        tabular:hasCell coupling-sensor-data-cell-13
        tabular:hasCell coupling-sensor-data-cell-14
        tabular:hasCell coupling-sensor-data-cell-15
        tabular:hasCell coupling-sensor-data-cell-16
        tabular:hasCell coupling-sensor-data-cell-17
        tabular:hasCell coupling-sensor-data-cell-18
        tabular:hasCell coupling-sensor-data-cell-19
    ]
    ci coupling-sensor-data-column-0 : tabular:Column [
        tabular:hasColumnId 0
        tabular:hasCell coupling-sensor-data-cell-00
        tabular:hasCell coupling-sensor-data-cell-10
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-1 : tabular:Column [
        tabular:hasColumnId 1
        tabular:hasCell coupling-sensor-data-cell-01
        tabular:hasCell coupling-sensor-data-cell-11
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-2 : tabular:Column [
        tabular:hasColumnId 2
        tabular:hasCell coupling-sensor-data-cell-02
        tabular:hasCell coupling-sensor-data-cell-12
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-3 : tabular:Column [
        tabular:hasColumnId 3
        tabular:hasCell coupling-sensor-data-cell-03
        tabular:hasCell coupling-sensor-data-cell-13
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-4 : tabular:Column [
        tabular:hasColumnId 4
        tabular:hasCell coupling-sensor-data-cell-04
        tabular:hasCell coupling-sensor-data-cell-14
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-5 : tabular:Column [
        tabular:hasColumnId 5
        tabular:hasCell coupling-sensor-data-cell-05
        tabular:hasCell coupling-sensor-data-cell-15
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-6 : tabular:Column [
        tabular:hasColumnId 6
        tabular:hasCell coupling-sensor-data-cell-06
        tabular:hasCell coupling-sensor-data-cell-16
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-7 : tabular:Column [
        tabular:hasColumnId 7
        tabular:hasCell coupling-sensor-data-cell-07
        tabular:hasCell coupling-sensor-data-cell-17
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-8 : tabular:Column [
        tabular:hasColumnId 8
        tabular:hasCell coupling-sensor-data-cell-08
        tabular:hasCell coupling-sensor-data-cell-18
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]
    ci coupling-sensor-data-column-9 : tabular:Column [
        tabular:hasColumnId 9
        tabular:hasCell coupling-sensor-data-cell-09
        tabular:hasCell coupling-sensor-data-cell-19
        tabular:hasBasicType "Double"
        tabular:hasUnit iso-80000-4.13:newton-metre
    ]

}
