{"action":"created","issue":{"url":"https://api.github.com/repos/tweag/funflow/issues/82","repository_url":"https://api.github.com/repos/tweag/funflow","labels_url":"https://api.github.com/repos/tweag/funflow/issues/82/labels{/name}","comments_url":"https://api.github.com/repos/tweag/funflow/issues/82/comments","events_url":"https://api.github.com/repos/tweag/funflow/issues/82/events","html_url":"https://github.com/tweag/funflow/issues/82","id":325430482,"node_id":"MDU6SXNzdWUzMjU0MzA0ODI=","number":82,"title":"tackle the complicated workflows","user":{"login":"kaizhang","id":852227,"node_id":"MDQ6VXNlcjg1MjIyNw==","avatar_url":"https://avatars3.githubusercontent.com/u/852227?v=4","gravatar_id":"","url":"https://api.github.com/users/kaizhang","html_url":"https://github.com/kaizhang","followers_url":"https://api.github.com/users/kaizhang/followers","following_url":"https://api.github.com/users/kaizhang/following{/other_user}","gists_url":"https://api.github.com/users/kaizhang/gists{/gist_id}","starred_url":"https://api.github.com/users/kaizhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaizhang/subscriptions","organizations_url":"https://api.github.com/users/kaizhang/orgs","repos_url":"https://api.github.com/users/kaizhang/repos","events_url":"https://api.github.com/users/kaizhang/events{/privacy}","received_events_url":"https://api.github.com/users/kaizhang/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-22T19:24:11Z","updated_at":"2018-06-01T14:12:12Z","closed_at":null,"author_association":"NONE","body":"Are you interested in developing a DSL on top of `funflow` to help user create complicated workflows?\r\nHere is a [real world workflow](https://github.com/Taiji-pipeline/Taiji/blob/master/Taiji.png) which is hard to specify by hand (because of many complex patterns). I've written a package which uses the Template Haskell to automate this process. See here for a minimal code example: https://github.com/kaizhang/SciFlow/blob/master/examples/wordcount.hs. I think it might be a good idea to use `funflow` as the engine to reimplement these features. I would like to hear your opinions."},"comment":{"url":"https://api.github.com/repos/tweag/funflow/issues/comments/393893076","html_url":"https://github.com/tweag/funflow/issues/82#issuecomment-393893076","issue_url":"https://api.github.com/repos/tweag/funflow/issues/82","id":393893076,"node_id":"MDEyOklzc3VlQ29tbWVudDM5Mzg5MzA3Ng==","user":{"login":"nc6","id":3274560,"node_id":"MDQ6VXNlcjMyNzQ1NjA=","avatar_url":"https://avatars2.githubusercontent.com/u/3274560?v=4","gravatar_id":"","url":"https://api.github.com/users/nc6","html_url":"https://github.com/nc6","followers_url":"https://api.github.com/users/nc6/followers","following_url":"https://api.github.com/users/nc6/following{/other_user}","gists_url":"https://api.github.com/users/nc6/gists{/gist_id}","starred_url":"https://api.github.com/users/nc6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nc6/subscriptions","organizations_url":"https://api.github.com/users/nc6/orgs","repos_url":"https://api.github.com/users/nc6/repos","events_url":"https://api.github.com/users/nc6/events{/privacy}","received_events_url":"https://api.github.com/users/nc6/received_events","type":"User","site_admin":false},"created_at":"2018-06-01T14:12:11Z","updated_at":"2018-06-01T14:12:11Z","author_association":"MEMBER","body":"We are definitely interested in this. At the moment we have an intern looking at whether [Common Workflow Language](https://www.commonwl.org/draft-3/UserGuide.html) might be a good language for a front-end DSL, mostly due to existing workflows and UI systems to build them. This would mostly cover the \"external\" case, but adds some useful features such as the ability to distribute workflows easily.\r\n\r\nWe also have a document at https://github.com/tweag/funflow/blob/master/funflow/doc/external-dsl.org which goes through some of our plans in this area.\r\n\r\nFrom looking at your DSL, it seems to be approaching DOT syntax? E.g. you're defining the graph explicitly, without giving bindings to the outputs between steps (approximating point-free style) and not requiring any ordering between the edges. I think it would certainly be plausible to translate this to funflow (the point-free style is basically composition with `>>>`, so would just require an ordering). I'd be interested in the translation of complex flows in that format, however. I think one of the complex aspects is often when we have flows where the outputs aren't quite matched to the inputs of subsequent steps - this is much easier to negotiate if we can explicitly bind the outputs to manipulate."}}
{"actor":{"display_login":"nc6"}}