See discussion: https://github.com/MADICES/MADICES-2025/discussions/21 __General guiding principles__ - Only one representation of how something is done (interoperability format should be clearly well-defined) - Minimal changes to previous version - Minimal set of keywords With this, we stay at 0.1.x and only add a `workflow` node type. Example of a nested workflow, as defined by two separate JSON files: ```json { "version": "0.1.1", "nodes": [ { "id": 0, "type": "function", "value": "workflow.get_prod_and_div" }, { "id": 1, "type": "function", "value": "workflow.get_sum" }, { "id": 2, "type": "function", "value": "workflow.get_square" }, { "id": 3, "type": "input", "value": 1, "name": "x" }, { "id": 4, "type": "input", "value": 2, "name": "y" }, { "id": 5, "type": "output", "name": "result" } ], "edges": [ { "target": 0, "targetPort": "x", "source": 3, "sourcePort": null }, { "target": 0, "targetPort": "y", "source": 4, "sourcePort": null }, { "target": 1, "targetPort": "x", "source": 0, "sourcePort": "prod" }, { "target": 1, "targetPort": "y", "source": 0, "sourcePort": "div" }, { "target": 2, "targetPort": "x", "source": 1, "sourcePort": null }, { "target": 5, "targetPort": null, "source": 2, "sourcePort": null } ] } ``` ```json { "version": "0.1.1", "nodes": [ { "id": 0, "type": "workflow", "value": "prod_div.json" }, { "id": 1, "value": 1, "type": "input", "name": "a" }, { "id": 2, "value": 2, "type": "input", "name": "b" }, { "id": 3, "type": "output", "name": "final_result" } ], "edges": [ { "target": 0, "targetPort": "x", "source": 1, "sourcePort": null }, { "target": 0, "targetPort": "y", "source": 2, "sourcePort": null }, { "target": 3, "targetPort": "null", "source": 0, "sourcePort": "result" } ] } ``` - [ ] aiida - [ ] jobflow - [ ] pyiron - [ ] `plot` function - [ ] Port validation that ports of the outer graph map correctly to the ports of the inner graph
Activity