vocabulary <http://ua.be/sdo2l/vocabulary/formalisms/script#> as script {
    extends <http://www.w3.org/2001/XMLSchema#> as xsd
    extends <http://ua.be/sdo2l/vocabulary/formalisms/code#> as code
    extends <http://ua.be/sdo2l/vocabulary/formalisms/file#> as file

    concept ScriptData < code:CodeData
    concept ScriptParameter < file:Data

    scalar property hasParameterName [
        domain ScriptParameter
        range xsd:string
        functional
    ]

    scalar property hasParameterValue [
        domain ScriptParameter
        // NOTE: Probably need to change this to some bottom value concept
        range xsd:string
    ]

    relation entity UsesScriptParameter [
        from ScriptData
        to ScriptParameter
        forward usesScriptParameter
    ]

    concept CScript      < ScriptData, code:CCode
    concept CppScript    < ScriptData, code:CppCode
    concept PythonScript < ScriptData, code:PythonCode
    concept MATLABScript < ScriptData, code:MATLABCode
}
