1. A computer implemented method of matching a partial workflow, the method comprising: obtaining a query partial workflow comprising a plurality of tasks and a plurality of operations; obtaining a plurality of workflows, each workflow comprising a plurality of tasks and a plurality of operations; decomposing each of the plurality of workflows into a plurality of components, each component comprising a plurality of tasks, whereby a plurality of decomposed workflows are obtained; filtering the plurality of workflows based on the decomposed workflows and a decomposition of the query partial workflow, whereby a plurality of filtered workflows are obtained; sequencing the plurality of filtered workflows, whereby a plurality of sequenced filtered workflows are obtained; matching the query partial workflow to each of the plurality of sequenced filtered workflows, each matching based on a corresponding plurality of recursively determined scores, whereby scores for each of the plurality of sequenced filtered workflows are obtained; identifying, from among the plurality of workflows, a matched workflow corresponding to an extremum among the scores for each of the plurality of sequenced filtered workflows; and providing the matched workflow.