# baseURI: http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2
# imports: http://onto.fel.cvut.cz/ontologies/aviation
# imports: http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2
# imports: http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext
# imports: http://onto.fel.cvut.cz/ontologies/documentation
# imports: http://onto.fel.cvut.cz/ontologies/form
# imports: http://onto.fel.cvut.cz/ontologies/form-layout
# imports: http://onto.fel.cvut.cz/ontologies/form-lib
# imports: http://topbraid.org/sparqlmotionfunctions
# imports: http://topbraid.org/sparqlmotionlib-tbc

@prefix : <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2/> .
@prefix aviation: <http://onto.fel.cvut.cz/ontologies/aviation/> .
@prefix doc: <http://onto.fel.cvut.cz/ontologies/documentation/> .
@prefix form: <http://onto.fel.cvut.cz/ontologies/form/> .
@prefix form-lib: <http://onto.fel.cvut.cz/ontologies/form-lib/> .
@prefix form-lt: <http://onto.fel.cvut.cz/ontologies/form-layout/> .
@prefix form376: <http://onto.fel.cvut.cz/ontologies/aviation/376-form/> .
@prefix form376-0-2: <http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2/> .
@prefix form376ext: <http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sm: <http://topbraid.org/sparqlmotion#> .
@prefix sml: <http://topbraid.org/sparqlmotionlib#> .
@prefix sp: <http://spinrdf.org/sp#> .
@prefix spin: <http://spinrdf.org/spin#> .
@prefix spl: <http://spinrdf.org/spl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://inbas.cz/form-generation-test/event_type>
  rdf:type owl:DatatypeProperty ;
  rdfs:label "event type"^^xsd:string ;
  rdfs:range xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2#BindSession>
  rdf:type sml:BindWithConstant ;
  sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2#CreateForm> ;
  sm:outputVariable "sessionId"^^xsd:string ;
  sml:value [
      rdf:type sp:struuid ;
    ] ;
  rdfs:label "Bind sessionId"^^xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2#CreateForm>
  rdf:type sml:ApplyConstruct ;
  sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#generateForms_Return> ;
  sm:next :ExtendAerodromeLocationValues ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object doc:form ;
            sp:predicate rdf:type ;
            sp:subject [
                sp:varName "f"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """CONSTRUCT {
        ?f a doc:form .     
}
WHERE {
	    ?ft a form:form .     
		BIND(form-lib:generate-question(?ft,?sessionId) as ?f)
}""" ;
      sp:where (
          [
            sp:object form:form ;
            sp:predicate rdf:type ;
            sp:subject [
                sp:varName "ft"^^xsd:string ;
              ] ;
          ]
          [
            rdf:type sp:Bind ;
            sp:expression [
                rdf:type form-lib:generate-question ;
                sp:arg1 [
                    sp:varName "ft"^^xsd:string ;
                  ] ;
                sp:arg2 [
                    sp:varName "sessionId"^^xsd:string ;
                  ] ;
              ] ;
            sp:variable [
                sp:varName "f"^^xsd:string ;
              ] ;
          ]
        ) ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object doc:question ;
            sp:predicate rdf:type ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "qt"^^xsd:string ;
              ] ;
            sp:predicate form:has-template ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "qLabel"^^xsd:string ;
              ] ;
            sp:predicate rdfs:label ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "qComment"^^xsd:string ;
              ] ;
            sp:predicate rdfs:comment ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "qLayoutClass"^^xsd:string ;
              ] ;
            sp:predicate form-lt:has-layout-class ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """# 1 - copy labels, comments, layout
CONSTRUCT {
    ?q a doc:question .
    ?q form:has-template ?qt .
    ?q rdfs:label ?qLabel .     
    ?q rdfs:comment ?qComment .
    ?q form-lt:has-layout-class ?qLayoutClass .
}   
WHERE {
   ?qt a/rdfs:subClassOf* form:question-template . 
   ?qt rdfs:label ?qLabel .
   OPTIONAL {
      ?qt rdfs:comment ?qComment .
   }
   OPTIONAL {
      ?qt form-lt:has-layout-class ?qLayoutClass .
   }
   BIND(form-lib:generate-question(?qt,?sessionId) as ?q)
}""" ;
      sp:where (
          [
            rdf:type sp:TriplePath ;
            sp:object form:question-template ;
            sp:path [
                rdf:type sp:SeqPath ;
                sp:path1 rdf:type ;
                sp:path2 [
                    rdf:type sp:ModPath ;
                    sp:modMax -2 ;
                    sp:modMin 0 ;
                    sp:subPath rdfs:subClassOf ;
                  ] ;
              ] ;
            sp:subject [
                sp:varName "qt"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "qLabel"^^xsd:string ;
              ] ;
            sp:predicate rdfs:label ;
            sp:subject [
                sp:varName "qt"^^xsd:string ;
              ] ;
          ]
          [
            rdf:type sp:Optional ;
            sp:elements (
                [
                  sp:object [
                      sp:varName "qComment"^^xsd:string ;
                    ] ;
                  sp:predicate rdfs:comment ;
                  sp:subject [
                      sp:varName "qt"^^xsd:string ;
                    ] ;
                ]
              ) ;
          ]
          [
            rdf:type sp:Optional ;
            sp:elements (
                [
                  sp:object [
                      sp:varName "qLayoutClass"^^xsd:string ;
                    ] ;
                  sp:predicate form-lt:has-layout-class ;
                  sp:subject [
                      sp:varName "qt"^^xsd:string ;
                    ] ;
                ]
              ) ;
          ]
          [
            rdf:type sp:Bind ;
            sp:expression [
                rdf:type form-lib:generate-question ;
                sp:arg1 [
                    sp:varName "qt"^^xsd:string ;
                  ] ;
                sp:arg2 [
                    sp:varName "sessionId"^^xsd:string ;
                  ] ;
              ] ;
            sp:variable [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
        ) ;
      rdfs:comment "1 - copy labels, comments, layout"^^xsd:string ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object "section" ;
            sp:predicate form-lt:has-layout-class ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """# 2 - create section layout class
CONSTRUCT {
    ?q form-lt:has-layout-class \"section\" .
}
WHERE {
    ?qt a form:section .
    BIND(form-lib:generate-question(?qt,?sessionId) as ?q)
}""" ;
      sp:where (
          [
            sp:object form:section ;
            sp:predicate rdf:type ;
            sp:subject [
                sp:varName "qt"^^xsd:string ;
              ] ;
          ]
          [
            rdf:type sp:Bind ;
            sp:expression [
                rdf:type form-lib:generate-question ;
                sp:arg1 [
                    sp:varName "qt"^^xsd:string ;
                  ] ;
                sp:arg2 [
                    sp:varName "sessionId"^^xsd:string ;
                  ] ;
              ] ;
            sp:variable [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
        ) ;
      rdfs:comment "2 - create section layout class"^^xsd:string ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object [
                sp:varName "q2"^^xsd:string ;
              ] ;
            sp:predicate doc:has_related_question ;
            sp:subject [
                sp:varName "q1"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """# 0 - create question tree structure from template graph structure
CONSTRUCT {
    ?q1 doc:has_related_question ?q2 .     
} WHERE {
  ?hasSubTemplate rdfs:subPropertyOf* form:has-subtemplate .
  ?qt1 ?hasSubTemplate ?qt2 .
   BIND(form-lib:generate-question(?qt1,?sessionId) as ?q1)
   BIND(form-lib:generate-question(?qt2, ?sessionId) as ?q2)  
}""" ;
      sp:where (
          [
            rdf:type sp:TriplePath ;
            sp:object form:has-subtemplate ;
            sp:path [
                rdf:type sp:ModPath ;
                sp:modMax -2 ;
                sp:modMin 0 ;
                sp:subPath rdfs:subPropertyOf ;
              ] ;
            sp:subject [
                sp:varName "hasSubTemplate"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "qt2"^^xsd:string ;
              ] ;
            sp:predicate [
                sp:varName "hasSubTemplate"^^xsd:string ;
              ] ;
            sp:subject [
                sp:varName "qt1"^^xsd:string ;
              ] ;
          ]
          [
            rdf:type sp:Bind ;
            sp:expression [
                rdf:type form-lib:generate-question ;
                sp:arg1 [
                    sp:varName "qt1"^^xsd:string ;
                  ] ;
                sp:arg2 [
                    sp:varName "sessionId"^^xsd:string ;
                  ] ;
              ] ;
            sp:variable [
                sp:varName "q1"^^xsd:string ;
              ] ;
          ]
          [
            rdf:type sp:Bind ;
            sp:expression [
                rdf:type form-lib:generate-question ;
                sp:arg1 [
                    sp:varName "qt2"^^xsd:string ;
                  ] ;
                sp:arg2 [
                    sp:varName "sessionId"^^xsd:string ;
                  ] ;
              ] ;
            sp:variable [
                sp:varName "q2"^^xsd:string ;
              ] ;
          ]
        ) ;
      rdfs:comment "0 - create question tree structure from template graph structure"^^xsd:string ;
    ] ;
  sml:replace "true"^^xsd:boolean ;
  rdfs:label "Create form"^^xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2>
  rdf:type owl:Ontology ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/aviation> ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2> ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext> ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/documentation> ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/form> ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/form-layout> ;
  owl:imports <http://onto.fel.cvut.cz/ontologies/form-lib> ;
  owl:imports <http://topbraid.org/sparqlmotionfunctions> ;
  owl:imports <http://topbraid.org/sparqlmotionlib-tbc> ;
  owl:versionInfo "Created with TopBraid Composer"^^xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#CreateForm>
  rdf:type sml:ApplyConstruct ;
  sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-0.2#CreateForm> ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object form376ext:passenger-flight ;
            sp:predicate form:has-possible-value ;
            sp:subject form376:type-of-operation ;
          ]
          [
            sp:object "Passenger flight" ;
            sp:predicate rdfs:label ;
            sp:subject form376ext:passenger-flight ;
          ]
          [
            sp:object form376ext:cargo-flight ;
            sp:predicate form:has-possible-value ;
            sp:subject form376:type-of-operation ;
          ]
          [
            sp:object "Cargo flight" ;
            sp:predicate rdfs:label ;
            sp:subject form376ext:cargo-flight ;
          ]
        ) ;
      sp:text """# add possible values to \"type of operation\"
CONSTRUCT {
     form376:type-of-operation form:has-possible-value form376ext:passenger-flight .
     form376ext:passenger-flight rdfs:label \"Passenger flight\" .
     form376:type-of-operation form:has-possible-value form376ext:cargo-flight .
     form376ext:cargo-flight rdfs:label \"Cargo flight\" .
}
WHERE {
    
}"""^^xsd:string ;
      sp:where () ;
      rdfs:comment "add possible values to \"type of operation\""^^xsd:string ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object form:form ;
            sp:predicate rdf:type ;
            sp:subject [
                sp:varName "form376"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "section"^^xsd:string ;
              ] ;
            sp:predicate form:has-subtemplate ;
            sp:subject [
                sp:varName "form376"^^xsd:string ;
              ] ;
          ]
          [
            sp:object "wizard-step" ;
            sp:predicate form-lt:has-layout-class ;
            sp:subject [
                sp:varName "section"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """# make top sections wizard steps
CONSTRUCT {
   ?form376 a form:form . 
   ?form376   form:has-subtemplate ?section .
   ?section    form-lt:has-layout-class \"wizard-step\" .
}
WHERE {
    GRAPH <http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext> {
        ?event_type form376ext:has-relevant-part ?section .
    }
    BIND(<http://onto.fel.cvut.cz/ontologies/aviation/376-form/form> as ?form376)
}"""^^xsd:string ;
      sp:where (
          [
            rdf:type sp:NamedGraph ;
            sp:elements (
                [
                  sp:object [
                      sp:varName "section"^^xsd:string ;
                    ] ;
                  sp:predicate form376ext:has-relevant-part ;
                  sp:subject [
                      sp:varName "event_type"^^xsd:string ;
                    ] ;
                ]
              ) ;
            sp:graphNameNode <http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext> ;
          ]
          [
            rdf:type sp:Bind ;
            sp:expression form376:form ;
            sp:variable [
                sp:varName "form376"^^xsd:string ;
              ] ;
          ]
        ) ;
      rdfs:comment "make top sections wizard steps"^^xsd:string ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object "true"^^xsd:boolean ;
            sp:predicate form376:is-disabled ;
            sp:subject [
                sp:varName "question"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """# disable fields that are irrelevant for the event
CONSTRUCT {
    ?question form376:is-disabled \"true\"^^xsd:boolean .
}
WHERE {
    GRAPH <http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext> {
        ?event_type form376ext:has-irrelevant-part ?question .
    } 
    
}"""^^xsd:string ;
      sp:where (
          [
            rdf:type sp:NamedGraph ;
            sp:elements (
                [
                  sp:object [
                      sp:varName "question"^^xsd:string ;
                    ] ;
                  sp:predicate form376ext:has-irrelevant-part ;
                  sp:subject [
                      sp:varName "event_type"^^xsd:string ;
                    ] ;
                ]
              ) ;
            sp:graphNameNode <http://onto.fel.cvut.cz/ontologies/aviation/376-form-ext> ;
          ]
        ) ;
      rdfs:comment "disable fields that are irrelevant for the event"^^xsd:string ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object "type-ahead" ;
            sp:predicate form-lt:has-layout-class ;
            sp:subject form376:location-on-the-aerodrome ;
          ]
        ) ;
      sp:text """# add type ahead to aerodrome location
CONSTRUCT {
    form376:location-on-the-aerodrome  form-lt:has-layout-class \"type-ahead\" .
}
WHERE {
   
}"""^^xsd:string ;
      sp:where () ;
      rdfs:comment "add type ahead to aerodrome location"^^xsd:string ;
    ] ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object [
                sp:varName "o"^^xsd:string ;
              ] ;
            sp:predicate [
                sp:varName "p"^^xsd:string ;
              ] ;
            sp:subject [
                sp:varName "s"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """CONSTRUCT {
    ?s ?p ?o.
}
WHERE {
    ?s ?p ?o.
}"""^^xsd:string ;
      sp:where (
          [
            sp:object [
                sp:varName "o"^^xsd:string ;
              ] ;
            sp:predicate [
                sp:varName "p"^^xsd:string ;
              ] ;
            sp:subject [
                sp:varName "s"^^xsd:string ;
              ] ;
          ]
        ) ;
    ] ;
  sml:replace "true"^^xsd:boolean ;
  rdfs:label "Create form template"^^xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#ImportRDFFromWorkspace_1>
  rdf:type sml:ImportRDFFromWorkspace ;
  sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#CreateForm> ;
  sml:baseURI [
      rdf:type sp:concat ;
      sp:arg1 "http://onto.fel.cvut.cz/ontologies/aviation/376-form-" ;
      sp:arg2 [
          sp:varName "formVersion"^^xsd:string ;
        ] ;
    ] ;
  sml:ignoreImports "false"^^xsd:boolean ;
  rdfs:label "Import RDFFrom workspace"^^xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#generateForms_Return>
  rdf:type sml:ReturnRDF ;
  sml:baseURI "http://miro.example.org"^^xsd:string ;
  sml:serialization sml:JSONLD ;
.
:BindFormVersion
  rdf:type sml:BindWithConstant ;
  sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#ImportRDFFromWorkspace_1> ;
  sm:outputVariable "formVersion"^^xsd:string ;
  sml:value "0.2"^^xsd:string ;
  rdfs:label "Bind form version"^^xsd:string ;
.
:ExtendAerodromeLocationValues
  rdf:type sml:ApplyConstruct ;
  sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#generateForms_Return> ;
  sml:constructQuery [
      rdf:type sp:Construct ;
      sp:templates (
          [
            sp:object <http://onto.fel.cvut.cz/ontologies/aviation-safety/aerodrome-location> ;
            sp:predicate rdf:type ;
            sp:subject [
                sp:varName "location"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "label"^^xsd:string ;
              ] ;
            sp:predicate rdfs:label ;
            sp:subject [
                sp:varName "location"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "comment"^^xsd:string ;
              ] ;
            sp:predicate rdfs:comment ;
            sp:subject [
                sp:varName "location"^^xsd:string ;
              ] ;
          ]
          [
            sp:object "type-ahead" ;
            sp:predicate form-lt:has-layout-class ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
          [
            sp:object [
                sp:varName "location"^^xsd:string ;
              ] ;
            sp:predicate form:has-possible-value ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
        ) ;
      sp:text """CONSTRUCT {
    ?location a <http://onto.fel.cvut.cz/ontologies/aviation-safety/aerodrome-location> .
    ?location rdfs:label ?label .    
    ?location rdfs:comment ?comment .
    ?q form-lt:has-layout-class \"type-ahead\" .
    ?q form:has-possible-value ?location . 
} WHERE {
    GRAPH <http://onto.fel.cvut.cz/ontologies/aviation/376-form/extension/aerodrome-location> { 
       	?location <http://onto.fel.cvut.cz/ontologies/aviation-safety/has_town>  ?town.
         BIND(replace(str(?location), \"^.*aviation-safety.\",\"\") as ?locationId) 
         BIND(concat(?locationId, \" (\", ?town, \")\") as ?label)
         BIND(concat(\"Aerodrome \", ?locationId, \" located in \", ?town, \".\") as ?comment)
    }    
   ?q form:has-template <http://onto.fel.cvut.cz/ontologies/aviation/376-form/location-on-the-aerodrome> .
}"""^^xsd:string ;
      sp:where (
          [
            rdf:type sp:NamedGraph ;
            sp:elements (
                [
                  sp:object [
                      sp:varName "town"^^xsd:string ;
                    ] ;
                  sp:predicate <http://onto.fel.cvut.cz/ontologies/aviation-safety/has_town> ;
                  sp:subject [
                      sp:varName "location"^^xsd:string ;
                    ] ;
                ]
                [
                  rdf:type sp:Bind ;
                  sp:expression [
                      rdf:type sp:replace ;
                      sp:arg1 [
                          rdf:type sp:str ;
                          sp:arg1 [
                              sp:varName "location"^^xsd:string ;
                            ] ;
                        ] ;
                      sp:arg2 "^.*aviation-safety." ;
                      sp:arg3 "" ;
                    ] ;
                  sp:variable [
                      sp:varName "locationId"^^xsd:string ;
                    ] ;
                ]
                [
                  rdf:type sp:Bind ;
                  sp:expression [
                      rdf:type sp:concat ;
                      sp:arg1 [
                          sp:varName "locationId"^^xsd:string ;
                        ] ;
                      sp:arg2 " (" ;
                      sp:arg3 [
                          sp:varName "town"^^xsd:string ;
                        ] ;
                      sp:arg4 ")" ;
                    ] ;
                  sp:variable [
                      sp:varName "label"^^xsd:string ;
                    ] ;
                ]
                [
                  rdf:type sp:Bind ;
                  sp:expression [
                      rdf:type sp:concat ;
                      sp:arg1 "Aerodrome " ;
                      sp:arg2 [
                          sp:varName "locationId"^^xsd:string ;
                        ] ;
                      sp:arg3 " located in " ;
                      sp:arg4 [
                          sp:varName "town"^^xsd:string ;
                        ] ;
                      sp:arg5 "." ;
                    ] ;
                  sp:variable [
                      sp:varName "comment"^^xsd:string ;
                    ] ;
                ]
              ) ;
            sp:graphNameNode <http://onto.fel.cvut.cz/ontologies/aviation/376-form/extension/aerodrome-location> ;
          ]
          [
            sp:object form376:location-on-the-aerodrome ;
            sp:predicate form:has-template ;
            sp:subject [
                sp:varName "q"^^xsd:string ;
              ] ;
          ]
        ) ;
    ] ;
  sml:replace "true"^^xsd:boolean ;
  rdfs:label "Extend with aerodrome location values"^^xsd:string ;
.
<http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2/generate376Forms-0.2>
  rdf:type sm:Function ;
  spin:constraint [
      rdf:type spl:Argument ;
      spl:defaultValue "http://onto.fel.cvut.cz/ontologies/eccairs-3.4.0.2/vl-a-430/v-102"^^xsd:string ;
      spl:optional "false"^^xsd:boolean ;
      spl:predicate <http://inbas.cz/form-generation-test/event_type> ;
      sm:next <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#ImportRDFFromWorkspace_1> ;
      rdfs:comment "Occurrence category."^^xsd:string ;
    ] ;
  sm:returnModule <http://onto.fel.cvut.cz/ontologies/aviation/376-form-generation-0.2#generateForms_Return> ;
  rdfs:comment "Generate forms from occurrence category."^^xsd:string ;
  rdfs:subClassOf sm:Functions ;
.
form376:aerodrome-related-data-fields-0e644de1-bb7c-464f-aec5-5e8953b1fdf1
  form-lt:has-layout-class "wizard-step" ;
.
