- You should get a fast overview about the dish
- More headwords than prose
I thik both of these aspects can be reached by using a diagram notation. My diagram should be some kind of UML sequence diagram which looks like a UML flowchart diagram. Recipes should have a defined start state and multiple operations which can occure in parallel.
As I am more one of the text guys I prefere a textual notation for the recipies. The diagram should be generated from the textual recipe notation. The idea is a TeX approach: Define your document in a specialized language, then render the document.
As cooking is much like executing a Makefile :-) there should be many subtasks which depend on each other. Dependencies are very easy for humans to express and dependencies are enough for the recipe generator to determine which tasks can be executed in parallel.
So last but not least here is my recipe language draft. I mixed the concepts from above with some meta information about the ingredients, cooking duration, etc.
measure Prise {
}
measure Gramm {
}
measure Liter {
}
measure Blaetter {
}
ingredient Wasser;
ingredient Salz;
ingredient Nudeln;
ingredient Tomatenmark;
ingredient Basilikum;
recipe Tomatennudeln {
step WasserKochen {
title "Wasser zum kochen bringen";
ingredient 0.5 Liter Wasser;
duration 10 minutes;
}
step WasserSalzen {
title "Wasser salzen";
ingredient 1 Prise Salz;
duration 10 seconds;
}
step NudelnInWasser {
title "Nudeln weichkochen";
depends WasserKochen;
depends WasserSalzen;
ingredient 200 Gramm Nudeln;
duration 5 minutes;
}
step NudelnAbgiessen {
title "Nudeln abgiessen"
depends NudelnInWasser
duration 30 seconds;
}
step TomatenmarkErhitzen {
title "Tomatenmark wuerzen und erhitzen"
depends NudelnAbgiessen;
ingredient 10 Blaetter Basilikum;
duration 2 minutes;
}
step AllesVerruehren {
title "Nudeln und Tomatensosse verruehren"
depends NudelnAbgiessen;
depends TomatenmarkErhitzen;
duration 30 seconds;
}
}
Hopefully I will get some time soon to implement a prototype using TMF Xtext.
No comments:
Post a Comment