Bioblogs

Iteration methods and strategies in Taverna

hongiiv 2007. 8. 31. 14:01
반응형
Taverna에서는 묵시적이지만, 설정이 가능한 iteration 메커니즘을 가지고 있다. processor가 하나의 list를 입력으로 받으면 여러번 processor가 수행되어 그 결과를 새로운 list로 받을 수 있다.  이러한 iteration은 cross와 dot이 존재한다.

iteration

첫 번째는 a 하나만을 입력으로 받아서 function f를 수행하고 나면 결과로 f(a)를 받는 일반적인 상황이고, 첫 번쨰 하단은 입력으로 리스트 [a1,a2,a3]를 받아서 결과로 묵시적인 iteration이 발생해서 각각의 입력에 대해 하나씩 수행된 상황이다.

이제 cross와 dot strategy가 발생하는 상황인데, 첫 번째 cross는 입력으로 [a1,a2] [b1,b2]를 받으면 두개의 list가 cross로 대응해서 (a1,b1),(a1,b2),(a2,b1),(a2,b2)가 결과로 나온다. 반면 dot은 입력으로 [a1,a2][b1,b2]를 받으면 리스트당 한번씩만 대응해서(?) (a1,b1)(a2,b2)가 결과로 나오게 된다. 이러한 iteration을 활용해서 processor를 몇번, 어떻게 수행할지를 사용자가 정의할 수 있다.

예를 들어 두 개의 문자를 입력으로 받아 서로 합치는 processor가 있다고 할 때에 첫번째 입력으로 [우리,나라]를 두번째 입력으로 [대한,민국]를 주면 dot인 경우 결과는 [우리,대한][나라,민국]가 나오면서 총 2번 processor를 수행하게 된다. cross인 경우에는 결과는 [우리,대한][우리,민국][나라,대한][나라,민국] 총 4번 processor가 수행되게 된다.
반응형