Расквартированная клубника и другие особенности машинного перевода: чтобы сделать еще один шаг в сторону автоматизированных кухонь, нужно научить технику понимать рецепты, написанные человеческим языком и в человеческой логике. Для этого их нужно трансформировать. Под катом текст-размышление над проблемой, который родился за чашкой с кофе в ходе обсуждения смежной темы.



Автоматизированные кухни. Необходимые этапы


Умные кухонные приборы облегчают процесс готовки, но человек все же делает большую часть работы: моет, режет и помещает в них продукты, перемешивает и т.д. А как хотелось бы просто сказать: «Горшочек, вари», и чтобы оно все само помылось, нарезалось, перемешалось, а пользователю осталось только дождаться звукового сигнала и идти трапезничать.
Сейчас автоматические кухни только появляются в промышленных масштабах, но до бытового уровня это дойдёт ещё очень нескоро. Для этого нужно решить несколько групп задач, и решения эти должны быть доступными.

Первая группа задач — дать кухне возможность действовать автономно от пользователя. 
Эта задача, например, может решаться внедрением в кухню системы манипуляторов, конвейера;

Вторая группа задач — внедрить в кухню компьютерное зрение и систему датчиков для автоматического определения степени готовности блюда или его части.

Третья группа задач — интерфейс управления. Задача может быть реализована посредством приложения на смартфонах, а также голосовых помощников.

И, наконец, четвертая группа — задание кухне логики поведения. Как научить кухню готовить? Например, робота-повара обучает человек — профессиональный повар. Надев на руки датчики, он медленно показывает, как надо. Машина затем воспроизводит его действия, до мелочей, вплоть до подрагивания рук. Конечно, при обработке лишние движения должны быть убраны, но если программист что-то упустит, то робот-повар однажды остановится, чтобы почесать свой несуществующий нос.

К тому же, для того чтобы научить робота одному рецепту, движения нужно повторять несколько раз. Даже если научить робота отдельным движениям, которые он сможет потом комбинировать, то времени на такое обучение уйдет предельно много. Не говоря уже о строжайшем соответствии рецепту и, видимо, калиброванных ингредиентах: дать возможность роботу выковыривать глазки из картофелин — отдельная сложная инженерная задача. А еще после готовки все равно придется мыть плиту и посуду.

Рецепт — это код


Если вернуться к положению дел сейчас — т.е. учесть экономическую составляющую вопроса, трудности разработки, etc., становится понятно, что в обозримом будущем мы можем только научить умную бытовую технику читать рецепт и применять его. Для этого требуется преобразовать рецепт в код. Но классический программный Java или C здесь вряд ли подойдет — им можно описать рецепт, но если пользователь захочет внести в него какие-либо изменения, то ему придется или связываться с техподдержкой, или записываться на курсы программирования. К тому же, классический код слишком формальный. Например, если в ингредиентах написано «сушенные грибы», значит свежие в готовку не пойдут. Дополнительно усложняет задачу тот факт, что рецепты национальных кухонь представлены на разных естественных языках.

А хотелось бы дать возможность пользователю найти в Сети интересный ему рецепт, загрузить его, а робокухне — правильно интерпретировать его и применить. Задача-максимум — это возможность кухни самостоятельно, основываясь на кулинарных предпочтениях пользователя, искать и предлагать варианты. По-хорошему рецепты приготовления пищи должны не только включать в себя список сырых ингредиентов и способы приготовления пищи, но также и условия окружающей среды, в которой растут продукты. Блюдо относится к национальной кухне по многим критериям, в том числе специфическим способам готовки, применяемой посуде, инструментам и т.д. Трансформация всех этих данных в надлежащую цифровую форму или, скорее всего, ее интерпретация будет сложной задачей.

Итак, какие языки могут подходить для составления рецептов?

RDF


Существующие технологии формализованного представления знаний попадают в несколько групп структур.

К ним относятся подход Semantic Web с его технологиями OWL и RDF. Онлайн-коллекции взаимосвязанных наборов данных с использованием инструментов Semantic Web также известны как Linked Data. Недавно на Хабре появилась статья, посвященная этой концепции, потому не будем на ней заострять внимание. Многие проекты оцифровки построены вокруг идеи использования некоторой высшей онтологии, которая может быть расширена онтоинженерами в конкретной области знаний.

Рассмотрим случай использования и применения этих инструментов для оцифровки национальных кухонь. Основной идеей RDF является то, что Интернет отходит от хранения информации, воспринимаемой только человеком, становясь всемирной сетью взаимодействующих процессов. Как следует из названия, RDF является основой для выражения информации о ресурсах. В первую очередь — о веб-документах и различных организациях. Его формализм основан на идее статических классов и свойств. Возникает вопрос: насколько разумно рассматривать рецепт как сущность, а не как сложный процесс с аргументами, расчетом времени, входящими подпроцессами и т. д. Для рецепта этого будет явно недостаточно.

Schema.org


Вторым подходом можно считать инициативу Schema.org — совместная деятельность интернет-сообщества по созданию, поддержанию и продвижению схем для структурирования данных в Интернете. Эта инициатива направлена на предоставление стандартизированного словаря для общих метаданных опубликованных на веб-ресурсах. Веб-ресурсы, связанные с приготовлением пищи, могут использовать метаданные полей класса «Recipe», которые хранятся по ссылке. Ниже пример кода рецепта, предоставленного Google:

<script type="application/ld+json">
  {
    "@context": "<a href="
    http: //schema.org/">http://schema.org/</a>",
      "@type": "Recipe",
    "name": "Strawberry-Mango Mesclun Recipe",
    "image": [
      "<a href="
      https: //example.com/photos/1x1/photo.jpg">https://example.com/photos/1x1/photo.jpg</a>"
    ],
    "author": {
      "@type": "Person",
      "name": "scoopnana"
    },
    "datePublished": "2008-03-03",
    "description": "Mango, strawberries, and sweetened dried cranberries are a vibrant addition to mixed greens tossed with an oil and balsamic vinegar dressing.
    ",
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "5",
      "reviewCount": "52"
    },
    "prepTime": "PT15M",
    "totalTime": "PT14M",
    "recipeYield": "12 servings",
    "nutrition": {
      "@type": "NutritionInformation",
      "servingSize": "1 bowl",
      "calories": "319 cal",
      "fatContent": "20.2 g"
    },
    "recipeIngredient": [
      "1/2 cup sugar",
      "3/4 cup canola oil",
      "1 teaspoon salt",
      "1/4 cup balsamic vinegar",
      "8 cups mixed salad greens",
      "2 cups sweetened dried cranberries",
      "1/2 pound fresh strawberries, quartered",
      "1 mango — peeled, seeded, and cubed",
      "1/2 cup chopped onion",
      "1 cup slivered almonds"
    ],
    "recipeInstructions": "\n1. Place the sugar, oil, salt, and vinegar in a jar with a lid.Seal jar, and shake vigorously to mix.\n2.In a large bowl, mix salad greens, sweetened dried cranberries, strawberries, mango, and onion.To serve, toss with dressing and sprinkle with almonds.
    "
  }
</script>

Словарь и формат, принятый Schema.org, в первую очередь ориентированы на представление метаданных высокого уровня в веб-документах. Однако правильно нормализованный семантический граф требует гораздо более явного представления понятий. Большинство строковых значений в полях Schema.org — это естественные тексты, требующие человеческой когнитивной интерпретации. Такой текст не может быть напрямую прочитан цифровыми системами без специальных инструментов обработки естественного языка, которые довольно часто подвержены ошибкам. В качестве иллюстрации подойдет машинный перевод Google к одному элементу строки из списка ингредиентов вышеприведенного примера рецепта:

‘fresh strawberries, quartered’

Перевод на русский язык дает совершенно неправильное смысловое значение:

'Свежая клубника, расквартированная'

с «quartered», используемым в смысле «жилья», как в «Наши войска были расквартированы в Бостоне», а не «Разрезанная на четыре части».

Отсутствие четко определенных ролей объектов и явной идентификации методов делает задачу машинного перевода рецепта намного сложнее.

Для нашей футуристической задачи для цифровых рецептов — сценария, в котором роботизированная машина могла бы следовать инструкции по приготовлению блюда, простая строка текста не может быть решением.

Рассмотрим типичное описание ингредиента:

‘8 Granny Smith apples — peeled, cored and sliced’



Совершенно очевидно, что эта текстовая строка содержит много классифицирующей информации: сырьевой ингредиент как класс, конкретный сорт яблок, количество в кусках, список методов, которые должны применяться к каждой части, чтобы нормально использовать ингредиент: удаление семечек, кожуры, разрезание объекта на части определенной формы.

Формализм Schema.org недостаточно выразителен для того, чтобы записать процесс приготовления в некий программный код. Чтобы правильно оцифровать рецепты для роботизированной кулинарии, нам нужно отделить описание ингредиента от логики

Третий подход — когнитивное моделирование рецепта


Традиционный способ составления рецепта – начать с компонентов и операций, которые необходимо выполнить. Этот порядок и стиль описания известны как императивный или процедурный. Декларативный или функциональный стиль описания логики процесса обычно начинается от вершины пирамиды исполнения, ожидаемого полезного результата, которого мы хотим достичь.

Рассмотрим следующее упрощенное представление классического русского рецепта грибного супа. Стрелки обозначают подпроцессы (иногда альтернативные), необходимые для родительского процесса.



Когнитивная интерпретация может поставить в тупик еще на моменте, когда мы попытаемся дать определение рецепта. Термин «рецепт» имеет несколько контекстуальных значений. Он может быть определен в общем смысле как способ получения желаемого результата. При употреблении в контексте приготовления пищи он обозначает набор инструкций по приготовлению кулинарного блюда. Таким образом, это понятие можно рассматривать как объект с определенными свойствами, такими как необходимые ингредиенты и время. В качестве альтернативы его можно рассматривать как технологический процесс, который имеет какие-то начальные данные, проходит серии этапов, которые должны быть выполнены, и приводит к определенным результатам. Рецепт также включает в себя время, которое необходимо затратить на выполнение шагов, и описание необходимой посуды.

С 2006 года в целях разработки оптимального формализма для выражения сложной семантики естественного языка был создан проект Knowdy, ориентированный на управление данными графов.

Проект Knowdy


Knowdy — это программный проект с открытым исходным кодом научно-исследовательской группы лингвистов в Санкт-Петербурге, занимающейся разработкой сверхбыстрой базы данных графов, которая позволяет прямо и эффективно работать с концептуальными графами, в обход любых промежуточных представлений, таких как таблицы SQL. Движок базы данных реализован на C и может использоваться как в качестве сетевой службы, так и в качестве автономной библиотеки для встроенной среды.

После нескольких лет исследований и разработок команда исследователей-разработчиков придумала специальный формат данных для Knowdy DB, называемый GSL (акроним General Semantics Language). GSL оптимизирован для компактного хранения концептуальных графов. Он используется для хранения данных, передачи сообщений и обмена информацией. Этот формат не чрезмерно многословный, как XML, и немного более компактный, чем JSON. Язык принимает некоторые особенности S-выражений Lisp, но с большой модификацией семантики, поскольку нужно иметь в виду, что графы — не списки. Скобочное описание в GSL имеет особое значение, позволяющее пользователям выражать не только многоуровневые группировки, но также операции CRUD внутри системы хранения базы данных.

В описании GSL процесс кодируется как функция первого класса, которая может быть названа или может быть анонимной, поддерживает наследование от базовой функции, имеет аргументы и подпроцессы, которые могут работать параллельно. Процессы ниже описывают некоторую логику все того же рецепта русского грибного супа.

{!proc prepare mushroom soup mix
    [_gloss {ru подготовка заправки грибного супа}]
    {is cooking by boiling}
 
    {arg cut-mushrooms
        {do prepare mushroom mix}}
    {arg cut-potatoes
        {do prepare potato mix}}
    {arg cut-onions
        {do prepare onion mix}}
    {do _put
        [_gloss {ru Все ингредиенты выложить в контейнер и перемешать.}]
        {obj _all}
        {target-loc container}}}
 
{!proc prepare mushroom mix
    [_gloss {ru подготовка грибной заправки}]
    {arg clean-mushrooms
         {do clean mushrooms}}
    {do _cut
       [_gloss {ru Нарезать грибы мелкими кубиками.}]
       {obj clean-mushrooms}
       {form slice {size 1.5 {unit cm}}}}}
 

В R4S используется третий подход. Он позволяет представить рецепт с нужной степенью формализма, описать как сущность, так и действие. Рецепт, записанный таким образом в базу данных, может быть быстро загружен и применен техникой. В приборах нашей разработки, где поддерживаются рецепты, они записываются в формате GSL. В планах — обучить нейросеть для записи рецептов народов мира, что упростит обмен рецептами и даст технологический задел для полноценных автоматизированных кухонь.

Мы часто сталкиваемся с, казалось бы, тривиальными задачами, воплощение которых не так-то просто. Какой, по вашему мнению, язык может быть использован для записи рецептов, с одной стороны доступных пользователям со всего мира, с другой — понимаемый и интерпретируемый машинами? 

Комментарии (52)


  1. paranoya_prod
    01.10.2018 17:57

    Всё проще. Домашнюю робокухню можно собрать хоть завтра. Проблема в том, что не нужно подходить к автоматизации кухни в лоб, как это делают с автоматизацией хаоса на предприятиях — автоматизировать то, что есть сейчас. Любая автоматизация меняет концепцию того, как раньше что-то делалось вручную. То-есть, придётся менять подход к совершению определённых действий — удаление ненужных действий, замена одних действий другими, введение новых действий.
    Если посмотреть на профессиональные кухни, то у них есть такое совершенно замечательное изобретение как «заготовка», то есть, пришли повара утречком и нашинковали лучок, картошечку. Лук шинкуется очень просто — чищенную луковицу бросаешь в шинковку и получаешь лучок. Картошечка то же самое, можно кубиком, брусочком, и толщину можно варьировать и всё это делает обычный кухонный процессор.
    Картошку чистят автоматы чуть-ли не с появления первых чипсов.
    Поэтому вся домашняя робокухня будет сведена к распознаванию QR-кода на упаковке уже очищенного и нарезанного продукта и засыпания его в соответствующую посуду. :)
    Как пример, кухня напрямую подключена к холодильнику раструбом. В холодильнике, на вращающихся полках лежат упаковки с нужными ингредиентами. После изъявления желания покушать борщика, по раструбу нужные ингредиенты поступают прямо в кастрюлю. Сухие специи так-же заQR-кодены и поэтому «хочу борщика по-острее» выполняется на раз-два. :)

    PS. В СССР была передача «Это Вы можете», в одной из них рассказывалось о действующей автоматизированной столовой где-то на просторах СССР.

    PS2. Извините за комментарий не совсем по теме, просто хотелось про свою мечту-идею рассказать. :)


    1. Stas911
      01.10.2018 21:30

      Или просто холодильник очень похожий на современный вендинговые автоматы, где на каждой полке контейнер с заготовками. В дальнейшем эти холодильники вообще будут давать бесплатно в аренду вместе с подпиской на еду на год


    1. MikailBag
      02.10.2018 16:53

      кухня напрямую подключена к холодильнику раструбом. В холодильнике, на вращающихся полках лежат упаковки с нужными ингредиентами. После изъявления желания покушать борщика, по раструбу нужные ингредиенты поступают прямо в кастрюлю

      Это уже было в Minecraft:)


    1. balexa
      02.10.2018 17:19

      Фактически вы предлагаете перенести проблему на уровень выше и использовать домашнюю кухню только как для разогрева? Тогда то, что вы предлагаете уже есть. В любом супермаркете пакеты с готовой едой продаются, как с замороженной, так и с той, которую надо просто высыпать в кастрюлю. От борща и плова до шницелей и пасты. Качество соответствующее.


      1. Arty_Fact
        02.10.2018 17:25

        Соответствующее ресторану? В любом ресторане и кафе делают заготовки, но не во всех ресторанах и кафе еда отвратительная. И нет, подготовка заготовок не значит, что просто разогреть и съесть. Это просто способ ускорить выход основного блюда.


        1. balexa
          02.10.2018 17:58

          В ресторанах лук и картошку чистят на неделю вперед? Как вы себе представляете заранее порезанные и долго хранящиеся овощи? В вакуумных упаковках заранее дозированные? Тогда вы ничего кроме предусмотренного производителем из этого не приготовите.


  1. amarao
    01.10.2018 18:15

    Борщ невозможно сварить в мультиварке.

    /тред.

    Hint: нужна сковородка.


    1. wordwild
      01.10.2018 18:26

      При небольшой сноровке, зажарку можно и в мультиварке сделать.


      1. GeMir
        01.10.2018 18:34

        При небольшой сноровке
        …можно и бульон из кубиков приравнять к свежесваренному.

        Просто кто-то оптимизирует соотношение вложенных сил к насыщению, а кого-то интересует качество, вкус и прочие мелочи вроде самого удовольствия от процесса приготовления пищи.


      1. amarao
        01.10.2018 19:11

        С предварительно сваренным бульоном? Мне кажется, или мультиварка тут начинает выступать в роли кастрюли со встроенным обогревателем?


        1. LuckyStarr
          01.10.2018 19:30

          Предварительно сваренный бульон очень часто используется поварами. Не только в общепите.


      1. LuckyStarr
        01.10.2018 19:20

        При очень большом терпении и куче свободного времени в мультиварке можно сделать зажарку.


    1. 0o0
      01.10.2018 20:24

      /Отрываясь от борща из мультиварки/
      что?


      1. LuckyStarr
        01.10.2018 21:10

        В мультиварке наверняка можно сварить борщ, но теряется весь смысл мультиварки: загрузил, включил, занимаешься другими делами, пока пища готовится. Если готовить поэтапно, как следует, то обычным способом это куда быстрее и вкуснее, ИМХО. А результат и называть именно так и нужно — «борщ из мультиварки», а то подумают, что это и есть борщ)


        1. 0o0
          01.10.2018 21:48

          Пока режется свекла и прочие капусты, там в режиме варки на пару обжаривается мясо, всё дорезали, покидали, и пошли кататься на великах. Приехали к готовому борщу. Так же и кашу можете называть Из мультиварки. И хлеб из хлебопечки. И… файлы из интернета.


          1. LuckyStarr
            01.10.2018 22:15

            Называть это борщом? Нарезка овощей — несколько минут, основное время — обжарка и тушение заправки. Ещё же нужно подкислить, чтоб яркий цвет сохранить свекольный. А дальше нюансы типа степени готовности картошки(развареная/мягкая/чуть жестче), капусты. Борщ без зажарки? А пампушки с чесноком пока варится? В результате либо её сторожить и загружать разные продукты вовремя, либо получить просто варево. И назвать это борщом у меня язык не поворачивается, это обычный свекольный суп сваренный абы как. ИМХО.

            P.S. про бульон не пишу, предполагается, что он готов.


            1. 0o0
              01.10.2018 23:47

              В общем, о чём мы спорим… тут уже дело вкуса.


            1. safari2012
              02.10.2018 17:17

              свеклу лучше в духовке запекать. цвет очень насыщенный остается.


      1. amarao
        02.10.2018 14:31

        Либо вы использовали мультиварку как портативную электроплитку, либо у вас не борщ, а свекольный суп неясного рецепта.


        1. 0o0
          02.10.2018 16:20

          Попытался погуглить разницу между борщём и свекольным супом, но ничего не нашёл.


          1. amarao
            02.10.2018 16:27

            Свекольный суп = суп со свёклой. Даже если свёклу не чистить и варить в соевом соусе.


    1. Ezhyg
      01.10.2018 23:41

      Который из борщей? В которой из мультиварок?

      Вот это ^^^ называется «Шах и мат!».

      Я бы ещё спросил, что вам мешает, но я ставлю шляпу на сожжение, что знаю ответ — начитался ваших предыдущих постов с «альтернативным мнением».


      1. amarao
        02.10.2018 14:33

        В любой из. В режиме «загрузил ингридиенты» — «получил борщ» ни одна не умеет, хотя бы из-за обжарки.

        Я понимаю, что мы сейчас можем обсудить борщ из кефира с селёдкой, но я подразумеваю плюс-минус стандартный рецепт, в котором фигурирует обжарка, бульон, и закладка компонентов в разные моменты времени.


        1. Ezhyg
          03.10.2018 01:56

          Как я и говорил — «альтернативное мнение».

          плюс-минус стандартный рецепт

          Нет такого! Рецепт отличается не то что по странам, а даже по регионам (даже по областям).

          в котором фигурирует обжарка

          И снова — нет никакой «стандартности», а навязывать своё представление — некрасиво!

          Словари:
          БОРЩ — суп, в состав котоpoгo входит свекла.

          БОРЩ, а, муж. Суп со свёклой и другими овощами. | уменьш. борщок, щка, муж. (разг.). | прил. борщовый, ая, ое. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова.

          БОРЩ — муж. квашеная свекла; | род щей, похлебка из свекольной кваши, на говядине и свинине или со свиным салом.


          прямо жду, что вы наконец-то откроете тайну, что борщ это вообще не суп, а «жидкое блюдо»

          О, а есть ещё «свекольники», в некоторых из них и свеклы-то нет, есть только ботва, и некоторые из них даже не супы.


  1. AlexeyReshetnyak
    01.10.2018 18:50

    Похожий подход применяется в проекте knowrob.org. За все годы существования, какого-то уровня автоматизации, готового к внедрению на кухни так и не удалось достичь. Видимо дело в самом подходе. Описание окружающей действительности в виде системы логических правил перестает работать при сколько ни-будь существенном увеличении сохраняемых концепций и связей между ними. Скорее всего будущее за системами со свободными параметрами, которые настраиваются под воздействием окружающей среды. Такие системы демонтрируют способность к запоминанию рецептов. Например могут завязывать хирургические узлы.


  1. klivlend
    01.10.2018 18:50

    А Вы не думали использовать чистый JSON?


    1. Stas911
      01.10.2018 21:37

      yaml же!


  1. tunelix
    01.10.2018 22:58

    задача seq2seq. на вход рецепт, на выход инструкции для кухонной машины Тьюринга


  1. lxsmkv
    01.10.2018 23:58

    Какой, по вашему мнению, язык может быть использован для записи рецептов, с одной стороны доступных пользователям со всего мира, с другой — понимаемый и интерпретируемый машинами
    Любой язык программирования с функциями.

    Машина никогда не станет понимать, что она делает. Но машина может выполнять инструкции.
    Если все «щепотки» и на «кончике ножа» и «до золотистой корочки» заменить нормальными исчислимыми мерами — уже будет куда проще. Яйцеварка например — не надо понимать как она работает, достаточно следовать инструкции, и яйца получатся идеальными.


    1. Arty_Fact
      02.10.2018 15:49

      Я только сейчас узнал о существовании такой вещи, как яйцеварка. Это же яркий пример бесполезного изобретения. Яйца получаются идеальными и в кастрюле. Из инструкций — это время варки после закипания. Зачем для этого какое-то отдельное устройство кроме таймера, для меня остается загадкой.


      1. balexa
        02.10.2018 16:30

        Ну тогда и тостер яркий пример бесполезного изобретения, потому что есть сковородка. И шинковщик бесполезное, есть нож и доска. И т.д.

        У меня дома подаренная яйцеварка, почти каждое утро использую. Очень удобно — закинул, нажал кнопку, пошел в душ. С кастрюлей получается чуть более геморройно — надо ждать пока вода закипит, потом не переварить. Это не та вещь, которая жизненно необходима на кухне, но бесполезной я бы ее не назвал.


        1. Arty_Fact
          02.10.2018 17:14

          Нет, тосты в тостере и на сковороде отличаются, а шинковщик ускоряет нарезку продуктов. Яйцеварка бесполезна (по моему мнению) потому что требуется также поставить яйца, дождаться срабатывания таймера и также поместить яйца под холодную воду. Вот если бы она сама заливала яйца холодной водой, было бы другое дело.


      1. cyberly
        02.10.2018 17:14

        >>… в кастрюле
        Могут лопнуть. Важна соленость воды, сила кипения, модель кастрюли и от самих яиц еще зависит.

        Яйцеварка — это же подвид пароварки вроде, там такого не должно происходить… У меня в обычной, универсальной пароварке были выемки для яиц, кстати… правда, я их там варить не пробовал.


        1. Arty_Fact
          02.10.2018 17:17

          Если яйцо не треснутое, с чего ему лопаться? Не закидывайте яйца из холодильника в кипящую воду просто. От модели кастрюли и яиц ничего не зависит, солить, конечно нужно.
          Ну судя по описанию — да, это пароварка. Да способ передачи тепла не очень важен для яиц, как мне кажется.


          1. cyberly
            03.10.2018 04:59

            Я вопрос не изучал прям вот досконально. Но при прочих равных в соленой воде яйца трескаются с гораздо меньшей вероятностью, так что тут либо осмотическое давление вносит существенный вклад, либо из скорлупы в чистой воде что-то вымывается (вполне вариант, судя по тому, что вода после варки яиц не остается идеально чистой). От яиц (а скорее, от того, какой образ жизни вела снесшая их курица) сильно зависит прочность скорлупы. У домашних кур яйца заметно прочнее. Птицефабрики, думаю, тоже не все одинаковы.


            1. andyudol
              03.10.2018 09:12

              Меня в детстве мама учила, что вероятность растрескивания совсем не меняется. А вот белок сворачивается в солёной воде очень быстро и не успевает вытечь.


      1. andyudol
        02.10.2018 17:31

        Вот смотрите, у меня такая проблема: на даче яйца варятся идеально. И идеально чистятся. А дома — плёнка, которая под скорлупой держится очень прочно, не оторвёшь. Яйца одни и те же, варю одинаково. Значит, всё-таки какая-то разница есть.
        А всякие чего-то варки, по крайней мере в принципе, позволяют стандартизировать процесс — температуру, давление, время варки, скорость нагрева, охлаждения.
        Но для меня лично это не имеет никакого значения, я считаю, что вы правы. Ну не получаются варёные — наплевать, зато дома яишница лучше получается.


        1. Arty_Fact
          02.10.2018 17:41

          Спасибо за поддержку! В вашем случае, скорее всего, разница в свежести яиц — чем свежее яйцо, тем хуже чистится.
          А так раскрою всем идеальное время для варки нескольких яиц вкрутую — 9 минут. Всегда красивый желтый желток получается. Никакой столовской синевы.


  1. saege5b
    02.10.2018 02:26

    Соль, сахар, иные специи по вкусу.
    Картофель для пюре/жарки.
    Лук острый/сладкий.
    Варить до готовности.

    Любой рецепт, это ориентир, каждый раз будет получаться что-то новое.


    1. JediPhilosopher
      02.10.2018 13:36

      Поэтому большинство айтишников вроде меня, которые редко готовят и не имеют особого опыта, зато имеют опыт написания формальных рецептов (программ) адово ненавидят все эти поваренные книги. Что значит «варить до готовности»? Я блин взял книгу/рецепт чтобы узнать, как его готовить, а вы мне говорите «варить до готовности». Чего уж сразу тогда вместо рецепта не написать «добавить ингридинты по вкусу, варить до готовности» — идеальный рецепт для 100% блюд! Я что, знаю когда эта готовность будет? Знал бы — не стал бы рецептами пользоваться. Соль по вкусу. Это сколько вообще? На какую порцию? Почему нельзя написать точнее? Ааа, ненависть.


      1. klivlend
        02.10.2018 14:29

        Нельзя написать универсальную инструкцию, у Вас электрическая плита, а у меня газовая. Разная мощность. Я использую медную посуду, а Вы из алюминия. И таких примеров десятки.


      1. balexa
        02.10.2018 16:23
        +1

        А рецепты не предназначены для того чтобы научить вас включать духовку и знать сколько сыпят соли, этому в школе на уроках труда учат. Правда почему-то в основном девочек, мальчики учатся позже в общаге. Но рецепт предполагает что вы примерно знаете сколько сыпят соли и можете определить состояние «картошка готова».

        Вас же не смущает что в DIY-инструкциях написано «отполировать поверхность», а не сколько раз в какую сторону двигать наждачкой и силу во сколько ньютон надо прикладывать.


      1. saege5b
        02.10.2018 23:44

        А откуда знать составителю рецепта, как любит пользователь?
        Я вообще без соли ем :) знаю тех, кто вбухивает столько, что для меня прямо ад.
        На варку влияет состояние свариваемых продуктов (Свежие, спелые(техническая, биологическая, физиологическая)), жёсткость воды, статус(молодой/старый/долго_лежал/только_что_зарезали), атмосферное давление, технология варки(калорийность топлива, мощность, КПД посуды).
        Я в детстве и чуть позже, съедал полторы-две взрослых порции (в 8-20 лет), сейчас аппетит уменьшился; кстати, мой рекорд — 21 стакан молока за раз :) классических.

        Это больше похоже как если кто захотел научится программировать и с оторопью читает-слушает что и как :) декларативное, императивное, ооп, функциональное, версии, диалекты…


        1. Ezhyg
          03.10.2018 03:15

          klivlend balexa saege5b оппонирую сразу троим:
          В «тупых рецептах» не определяют, не описывают и т.п. — главные элементы: «степень готовности» и как собственно «определить готовность» этого блюда (и/или ингредиентов — да, они тоже в разных средах готовятся по разному).
          В нормальных рецептах (обычно это рецепты сложнее каши, «моноблюда» или чего-то простого) — всегда пишут что-то вроде, «картошка, при варке в мясном бульоне, готовится по другому в отличие от варки в воде и имеет такие-то особенности, поэтому степень готовности определяется вот так-то»

          Нельзя написать универсальную инструкцию

          Здрасьте! Так сам рецепт и есть универсальная инструкция. Описывается всё и ингредиенты, и их подготовка, и способ приготовления, и примерное время готовки при рецептурной температуре. При особенностях, например в «горшочке», ещё и это указывается, и не только в названии.
          А какая плита — это не суть важно. Можно и на походной плитке. Но например, резка кубиками и соломкой — разный результат и т.п.

          Вас же не смущает что в DIY-инструкциях написано «отполировать поверхность»

          Если это конкретное требование, то будет сказано аж до какого квалитета :P

          На варку влияет состояние свариваемых продуктов

          Сама рецептура не меняется. Хотя рецепт это и не строгий алгоритм, но писать «возьмите овощи, уложите их слоями, сверху украсьте и варите до готовности» — вообще не «рецепт», а отсебятина в самом плохом смысле.


          1. balexa
            03.10.2018 10:05

            Вы путаете DIY (а это именно аналог домашней готовки) и техкарту промышленного (ресторанного) производства.

            В нормальных рецептах (обычно это рецепты сложнее каши, «моноблюда» или чего-то простого) — всегда пишут что-то вроде, «картошка, при варке в мясном бульоне, готовится по другому в отличие от варки в воде и имеет такие-то особенности, поэтому степень готовности определяется вот так-то»

            Не совсем. Это определяют не в нормальных рецептах. Этому учат на кулинарных курсах. О том как варить картошку в бульоне и о многом другом. То что в конкретном рецепте напомнили, это не значит что все так делают. Вы когда открываете схему, нормальную схему какого нибудь электронного устройства, там всегда написано чем диод шотки от обычного отличается, почему он рассчитывается по другому (и как именно) и что обратите внимание на эти закорючки, это не простой диод? Или все же предусматривается, что читающий схему человек решивший сделать DIY вещь должен обладать определенным багажом знаний и опытом? В каждом рецепте по разному. Чтобы пожарить яичницу или поморгать светодиодом на ардуине надо знать поменьше, чтобы приготовить сарсуэллу или собрать пеленгатор в шариковой ручке — побольше.

            Если это конкретное требование, то будет сказано аж до какого квалитета :P

            Да. Если это конкретное требование к конкретному изделию на потоке. Аналогом этого является ресторан. Если вы говорите про профессиональную ресторанную кухню, то там шеф-повар составляет техкарту, и там именно алгоритм с точностью до минут и грамм. И не дай боже, повар отварит для супа рис другой марки.

            Но опять таки, у повара должен быть опыт готовки, для чего-то больше, для чего-то меньше. «Нормальные» рецепты не предназначены для того, чтобы человек никогда в жизни не державший ножа и не включавший плиту смог приготовить потрясающее блюдо. И так не только в кулинарии. Рассматривайте домашние рецепты именно как набор инструкций на thingiverse


      1. cyberly
        03.10.2018 05:33

        Ну а как вы себе это представляете? Чтобы рецепт был точный-точный, у вас должны быть «стандартные» продукты и «стандартное» оборудование, дающее возможность очень точно выдерживать температуру и время. Слышал, что в фастфуде как раз так — еда готовится из сырья четко определенных сортов, заранее нарезанного на кусочки четко определенных размеров, хранящегося при четко определенной температуре. Количество ингридиентов — с точностью до граммов, температура — до градусов, а время обработки — до секунд. Поэтому бигмак — он везде бигмак и бла-бла-бла.

        А у вас на кухне что? Можно начать с плиты без обратной связи по температуре… и, этого уже достаточно.

        Вообще, рецепты бывают разные. И если какие-то параметры действительно критичны, все указывается. Плюс, для многих полуфабрикатов точные значения есть на пачке (сколько добавлять воды в рис, сколько минут варить макароны и т.п.). А второй момент, рецепт — это не совсем алгоритм. Часто это скорее указание, какие продукты нужно совместить для достижения определенного эффекта.

        Ну и про определение степени готовности, про выбор продуктов (и про то, как отразятся те или иные девиации в их характеристиках на конечном результате), про то, сколько сахара в столовой ложке и сколько муки в стакане, про то, на что влияет отношение диаметра сковороды к ее высоте и угол наклона ее бортиков, в приличных поваренных есть отдельные главы.


  1. vesper-bot
    02.10.2018 09:16

    Крайне не хватает операции «нарезать». А то вместо «борща» винегрет получится.


    1. safari2012
      02.10.2018 17:21

      надо добавить блендер между холодильником и мультиваркой :)


      1. vesper-bot
        03.10.2018 07:28

        Что-то, умеющее резать — да, но не блендер, иначе вместо борща получится даже не винегрет, а смузи. ;)


  1. DGN
    03.10.2018 14:04

    Лично мне не хватает в мультиварке инженерного режима, не всякие там суп-каша-плов, а график разогрева и контрольные точки готовности. Надо как нибудь купить умершую процессором мультиварку, ардуину и 82266 — будет нормальный девайс.


  1. TriAn
    03.10.2018 14:34

    ready_for_sky_team подскажите пожалуйста, что за GSL то такой? А то гугление приводит только к General Service List и GNU Scientific Library, что явно не то.


    1. lxsmkv
      03.10.2018 22:05

      в статье расшифровано: General Semantics Language