quangis / quangis-workflow

Tools to describe GIS workflows semantically, and to generate them. Includes the core concept transformation algebra (CCT).
GNU General Public License v3.0
1 stars 0 forks source link

Issue in conversion from concrete to abstract workflow #21

Closed nsbgn closed 1 year ago

nsbgn commented 1 year ago

Evidently, the conversion from concrete to abstract has a mistake because residentialdensity produces artefacts that aren't connected to sources.

See also #17: ideally the conversion would be way less complex than it currently is.

nsbgn commented 1 year ago

There is still an input that is not accounted for:

wfexpert2:wfwalk_residentialdensity a wf:Workflow ;
    wf:edge [ wf:applicationOf abstr:SummarizeWithin2 ;
            wf:input1 _:out1 ;
            wf:input2 [ ] ;
            wf:output _:out3 ],
        [ wf:applicationOf abstr:LoadCountAmounts ;
            wf:input1 _:in1 ;
            wf:input2 _:in2 ;
            wf:output _:out4 ],
        [ wf:applicationOf abstr:CalculateObjectVectorAmountRatio ;
            wf:input1 _:out4 ;
            wf:input2 _:out3 ;
            wf:output _:out0 ],
        [ wf:applicationOf abstr:SelectLayerByAttribute ;
            wf:input1 _:in3 ;
            wf:output _:out1 ] ;
    wf:source _:in1,
        _:in2,
        _:in3 ;
    wf:target _:out0 .
nsbgn commented 1 year ago

The issue is that there is an artefact (buurten) that is produced inside a multitool (LoadCountAmounts) by a concrete tool (CopyFeatures). This intermediate artefact is then also used inside another tool (SummarizeWithin). Since only abstract tools can be annotated with CCT expressions, this isn't something with an easy fix.

The obvious solution would be to have a multitool produce multiple outputs if some intermediate output is needed in the workflow, but that doesn't generalize well (multitools should be reusable) and also makes the code that converts from concrete to abstract (that is already needlessly complicated) even more complicated.

nsbgn commented 1 year ago

Was an issue with workflow spec. Fixed by 8af644f