• Guest
HabraHabr
  • Main
  • Users

  • Development
    • Programming
    • Information Security
    • Website development
    • JavaScript
    • Game development
    • Open source
    • Developed for Android
    • Machine learning
    • Abnormal programming
    • Java
    • Python
    • Development of mobile applications
    • Analysis and design of systems
    • .NET
    • Mathematics
    • Algorithms
    • C#
    • System Programming
    • C++
    • C
    • Go
    • PHP
    • Reverse engineering
    • Assembler
    • Development under Linux
    • Big Data
    • Rust
    • Cryptography
    • Entertaining problems
    • Testing of IT systems
    • Testing Web Services
    • HTML
    • Programming microcontrollers
    • API
    • High performance
    • Developed for iOS
    • CSS
    • Industrial Programming
    • Development under Windows
    • Image processing
    • Compilers
    • FPGA
    • Professional literature
    • OpenStreetMap
    • Google Chrome
    • Data Mining
    • PostgreSQL
    • Development of robotics
    • Visualization of data
    • Angular
    • ReactJS
    • Search technologies
    • Debugging
    • Test mobile applications
    • Browsers
    • Designing and refactoring
    • IT Standards
    • Solidity
    • Node.JS
    • Git
    • LaTeX
    • SQL
    • Haskell
    • Unreal Engine
    • Unity3D
    • Development for the Internet of things
    • Functional Programming
    • Amazon Web Services
    • Google Cloud Platform
    • Development under AR and VR
    • Assembly systems
    • Version control systems
    • Kotlin
    • R
    • CAD/CAM
    • Customer Optimization
    • Development of communication systems
    • Microsoft Azure
    • Perfect code
    • Atlassian
    • Visual Studio
    • NoSQL
    • Yii
    • Mono и Moonlight
    • Parallel Programming
    • Asterisk
    • Yandex API
    • WordPress
    • Sports programming
    • Lua
    • Microsoft SQL Server
    • Payment systems
    • TypeScript
    • Scala
    • Google API
    • Development of data transmission systems
    • XML
    • Regular expressions
    • Development under Tizen
    • Swift
    • MySQL
    • Geoinformation services
    • Global Positioning Systems
    • Qt
    • Dart
    • Django
    • Development for Office 365
    • Erlang/OTP
    • GPGPU
    • Eclipse
    • Maps API
    • Testing games
    • Browser Extensions
    • 1C-Bitrix
    • Development under e-commerce
    • Xamarin
    • Xcode
    • Development under Windows Phone
    • Semantics
    • CMS
    • VueJS
    • GitHub
    • Open data
    • Sphinx
    • Ruby on Rails
    • Ruby
    • Symfony
    • Drupal
    • Messaging Systems
    • CTF
    • SaaS / S+S
    • SharePoint
    • jQuery
    • Puppet
    • Firefox
    • Elm
    • MODX
    • Billing systems
    • Graphical shells
    • Kodobred
    • MongoDB
    • SCADA
    • Hadoop
    • Gradle
    • Clojure
    • F#
    • CoffeeScript
    • Matlab
    • Phalcon
    • Development under Sailfish OS
    • Magento
    • Elixir/Phoenix
    • Microsoft Edge
    • Layout of letters
    • Development for OS X
    • Forth
    • Smalltalk
    • Julia
    • Laravel
    • WebGL
    • Meteor.JS
    • Firebird/Interbase
    • SQLite
    • D
    • Mesh-networks
    • I2P
    • Derby.js
    • Emacs
    • Development under Bada
    • Mercurial
    • UML Design
    • Objective C
    • Fortran
    • Cocoa
    • Cobol
    • Apache Flex
    • Action Script
    • Joomla
    • IIS
    • Twitter API
    • Vkontakte API
    • Facebook API
    • Microsoft Access
    • PDF
    • Prolog
    • GTK+
    • LabVIEW
    • Brainfuck
    • Cubrid
    • Canvas
    • Doctrine ORM
    • Google App Engine
    • Twisted
    • XSLT
    • TDD
    • Small Basic
    • Kohana
    • Development for Java ME
    • LiveStreet
    • MooTools
    • Adobe Flash
    • GreaseMonkey
    • INFOLUST
    • Groovy & Grails
    • Lisp
    • Delphi
    • Zend Framework
    • ExtJS / Sencha Library
    • Internet Explorer
    • CodeIgniter
    • Silverlight
    • Google Web Toolkit
    • CakePHP
    • Safari
    • Opera
    • Microformats
    • Ajax
    • VIM
  • Administration
    • System administration
    • IT Infrastructure
    • *nix
    • Network technologies
    • DevOps
    • Server Administration
    • Cloud computing
    • Configuring Linux
    • Wireless technologies
    • Virtualization
    • Hosting
    • Data storage
    • Decentralized networks
    • Database Administration
    • Data Warehousing
    • Communication standards
    • PowerShell
    • Backup
    • Cisco
    • Nginx
    • Antivirus protection
    • DNS
    • Server Optimization
    • Data recovery
    • Apache
    • Spam and antispam
    • Data Compression
    • SAN
    • IPv6
    • Fidonet
    • IPTV
    • Shells
    • Administering domain names
  • Design
    • Interfaces
    • Web design
    • Working with sound
    • Usability
    • Graphic design
    • Design Games
    • Mobile App Design
    • Working with 3D-graphics
    • Typography
    • Working with video
    • Work with vector graphics
    • Accessibility
    • Prototyping
    • CGI (graphics)
    • Computer Animation
    • Working with icons
  • Control
    • Careers in the IT industry
    • Project management
    • Development Management
    • Personnel Management
    • Product Management
    • Start-up development
    • Managing the community
    • Service Desk
    • GTD
    • IT Terminology
    • Agile
    • Business Models
    • Legislation and IT-business
    • Sales management
    • CRM-systems
    • Product localization
    • ECM / EDS
    • Freelance
    • Venture investments
    • ERP-systems
    • Help Desk Software
    • Media management
    • Patenting
    • E-commerce management
    • Creative Commons
  • Marketing
    • Conferences
    • Promotion of games
    • Internet Marketing
    • Search Engine Optimization
    • Web Analytics
    • Monetize Web services
    • Content marketing
    • Monetization of IT systems
    • Monetize mobile apps
    • Mobile App Analytics
    • Growth Hacking
    • Branding
    • Monetize Games
    • Display ads
    • Contextual advertising
    • Increase Conversion Rate
  • Sundry
    • Reading room
    • Educational process in IT
    • Research and forecasts in IT
    • Finance in IT
    • Hakatonas
    • IT emigration
    • Education abroad
    • Lumber room
    • I'm on my way

We translate the recipe into the language of the multivark

Housed strawberries and other features of machine translation: to take another step towards automated kitchens, you need to teach the technique to understand recipes written in human language and in human logic. To do this, they need to be transformed. Under the cut text is a reflection on the problem that was born over a cup of coffee during the discussion of a related topic.
 
 
We translate the recipe into the language of the multivark
 

 

Automated kitchens. The required steps are


 
Smart kitchen appliances facilitate the cooking process, but the person still does most of the work: washes, cuts and puts products into them, mixes, etc. And as I would like to simply say: "A pot, varie," and that it all washed itself, cut, mixed, and the user only had to wait for the sound signal and go to the trapeznichat.
 
Now, automatic kitchens only appear on an industrial scale, but it will not reach the consumer level for a very long time. To do this, you need to solve several groups of tasks, and these solutions should be available.
 
 
The first group of tasks is to allow the kitchen to act autonomously from the user.
 
This task, for example, can be solved by introducing into the kitchen system of manipulators , the conveyor ;
 
 
The second group of tasks is to introduce computer vision and a system of sensors into the kitchen to automatically determine the degree of readiness of a dish or part of it.
 
 
The third group of tasks is the management interface. The task can be implemented through an application on smartphones, as well as voice assistants.
 
 
And, finally, the fourth group is the task of the kitchen with the logic of behavior. How to teach the kitchen to cook? For example, a robot cook is taught by a person - a professional cook. Putting on the sensors, he slowly shows how to. The machine then reproduces its actions, to the smallest detail, down to the trembling of the hands. Of course, when processing extra traffic should be removed, but if the programmer misses something, the robot cook will stop one day to scratch its nonexistent nose.
 
 
In addition, in order to teach the robot a recipe, the movements need to be repeated several times. Even if we teach the robot individual movements, which he can then combine, then there will be a lot of time for such training. Not to mention strict compliance with the prescription and, apparently, calibrated ingredients: to enable the robot to pick out the eyes from the potato - a separate complex engineering problem. And even after cooking, you still have to wash the stove and dishes.
 
 

The recipe is the code


 
If we return to the state of affairs now - i.e. take into account the economic component of the issue, the difficulties of development, etc., it becomes clear that in the foreseeable future we can only teach smart home appliances to read the recipe and apply it. To do this, you need to convert the recipe to a code. But the classic Java or C program is hardly suitable - they can describe the recipe, but if the user wants to make any changes to it, then he will either have to contact tech support, or sign up for programming courses. In addition, the classic code is too formal. For example, if the ingredients say "dried mushrooms," then fresh will not be cooked. In addition, the fact that recipes of national cuisines are represented in different natural languages ​​complicates the task.
 
 
And I would like to give the user the opportunity to find on the web an interesting recipe for him, download it, and robokuhne - correctly interpret it and apply it. The maximum task is the ability of the kitchen itself, based on the culinary preferences of the user, to search and offer options. In a good way, cooking recipes should not only include a list of raw ingredients and ways of cooking, but also the environment in which foods grow. The dish refers to the national cuisine by many criteria, including specific cooking methods, used dishes, tools, etc. Transformation of all these data into a proper digital form or, most likely, its interpretation will be a difficult task.
 
 
So, which languages ​​can be suitable for making recipes?
 
 

RDF


 
The existing technologies of formalized representation of knowledge fall into several groups of structures.
 
 
These include the Semantic Web approach with its technologies. OWL and RDF . Online collections of related datasets using Semantic Web tools are also known as Linked Data. Recently on Habré appeared article , dedicated to this concept, so we will not focus on it. Many digitization projects are built around the idea of ​​using some higher ontology , which can be extended by onto engineers in a specific field of knowledge.
 
 
Consider the use and application of these tools for the digitization of national cuisines. The main idea of ​​RDF is that the Internet departs from the storage of information perceived only by a person, becoming a worldwide network of interacting processes. As the name suggests, RDF is the basis for expressing information about resources. First of all - about web documents and various organizations. Its formalism is based on the idea of ​​static classes and properties. The question arises: how reasonable to treat the recipe as an entity, and not as a complex process with arguments, time calculation, incoming subprocesses, etc. For the recipe, this is clearly not enough.
 
 

Schema.org


 
The second approach can be considered the initiative Schema.org - joint activity of the Internet community to create, maintain and promote schemes for structuring data on the Internet. This initiative aims to provide a standardized vocabulary for common metadata published on web resources. Web resources related to cooking can use the metadata fields of the class "Recipe", which are stored at . Below is an example of the recipe code provided by Google:
 
 
 
The dictionary and format adopted by Schema.org , primarily focused on the presentation of high-level metadata in Web documents. However, a correctly normalized semantic graph requires a much more explicit notion of concepts. Most of the string values ​​in the fields Schema.org These are natural texts that require human cognitive interpretation. Such text can not be directly read by digital systems without special processing tools natural language , which are often subject to errors. As an illustration, a machine translation of Google to one element of a line from the list of ingredients of the above recipe example is suitable:
 
 
'Fresh strawberries, quartered'
 
Translation into Russian gives a completely incorrect semantic meaning:
 
 
    'Fresh strawberries, quartered'    

 
with "quartered" used in the sense of "housing", as in "Our troops were quartered in Boston", rather than "Cut into four parts".
 
 
The lack of clearly defined object roles and the explicit identification of methods makes the task of machine translation a recipe much more difficult.
 
 
For our futuristic task for digital recipes - a scenario in which a robotic machine could follow instructions for preparing a dish, a simple line of text can not be a solution.
 
 
Consider a typical description of the ingredient:
 
 
    '8 Granny Smith apples - peeled, cored and sliced'    

 
 
 
It is obvious that this text string contains a lot of classifying information: a raw ingredient as a class, a specific apple variety, quantity in pieces, a list of methods that should be applied to each part to properly use the ingredient: removing seeds, peel, cutting the object into parts of a certain form.
 
 
Formalism Schema.org is not expressive enough to record the cooking process in a certain program code. To properly digitize recipes for robotic cooking, we need to separate the description of the ingredient from the logic
 
 

The third approach is cognitive modeling of prescription


 
The traditional way of composing a recipe is to start with the components and operations that need to be performed. This order and style descriptions are known as imperative or procedural. A declarative or functional style of describing the logic of a process usually starts from the top of the execution pyramid, the expected useful result that we want to achieve.
 
 
Consider the following simplified representation of the classic Russian recipe for mushroom soup. Arrows denote subprocesses (sometimes alternative) necessary for the parent process.
 
 
 
 
Cognitive interpretation can lead to a dead end even at the moment when we try to define the recipe. The term "recipe" has several contextual meanings. It can be defined in a general sense as a way of obtaining the desired result. When used in the context of cooking, it means a set of instructions for preparing a culinary dish. Thus, this concept can be considered as an object with certain properties, such as the necessary ingredients and time. As an alternative, it can be viewed as a technological process that has some initial data, goes through a series of steps that must be performed, and leads to certain results. The recipe also includes the time it takes to complete the steps, and a description of the necessary utensils.
 
 
Since 200? in order to develop the optimal formalism for expressing the complex semantics of natural language, the project was created. Knowdy , focused on the management of graph data.
 
 

The project Knowdy


 
Knowdy Is an open source software project for a research group of linguists in St. Petersburg, which develops a super-fast graph database that allows you to directly and efficiently work with conceptual graphs, bypassing any intermediate views, such as SQL tables. The database engine is implemented in C and can be used both as a network service and as a stand-alone library for the embedded environment.
 
 
After several years of research and development, a team of research researchers came up with a special data format for Knowdy DB, called GSL (an acronym for General Semantics Language). GSL is optimized for compact storage of conceptual graphs. It is used for storing data, sending messages and exchanging information. This format is not too wordy, like XML, and a bit more compact than JSON. The language takes some peculiarities of Lisp S-expressions, but with a large modification of the semantics, since one should keep in mind that the charts are not lists. The parenthesized description in GSL is of particular importance, allowing users to express not only multi-level groupings, but also CRUD operations within the database storage system.
 
 
In the GSL description, the process is encoded as a function of the first class, which can be named or can be anonymous, supports inheritance from the base function, has arguments and subprocesses that can work in parallel. The processes below describe some logic of the same recipe of Russian mushroom soup.
 
 
    {! proc prepare mushroom soup mix
[_gloss {ru подготовка заправки
грибного супа}]
Unknown macro: {is cooking by boiling}
(arg cut-mushrooms
{run prepare mushroom mix})
(arg cut-potatoes
{run prepare potato mix})
(arg cut-onions
{run prepare onion mix})
{run _put
[_gloss {ru Все ингредиенты выложить
в контейнер и перемешать.}]
{obj _all}
{into_loc container}}}
(proc prepare mushroom mix
[_gloss {ru подготовка
грибной заправки}]
(arg clean-mushrooms
{run clean mushrooms})
{run_cut
.[_gloss {ru Нарезать грибы
мелкими кубиками.}].
{obj clean-mushrooms}
{form slice {size 1.5 {unit cm}}}})

 
The third approach is used in R4S. It allows us to present a recipe with the required degree of formalism, to describe both the essence and the action. The recipe, written in this way in the database, can be quickly loaded and applied by technology. In our development instruments, where recipes are supported, they are recorded in the GSL format. The plans are to train the neural network for recording recipes of the peoples of the world, which will simplify the exchange of recipes and give the technological reserve for full-fledged automated kitchens.
 
 
We often come across seemingly trivial problems, the embodiment of which is not so simple. What language do you think can be used to record recipes, on the one hand accessible to users from around the world, on the other hand - understood and interpreted by machines?

It may be interesting

  • Comments
  • About article
  • Similar news
This publication has no comments.

weber

Author

2-10-2018, 06:11

Publication Date

Development / Programming

Category
  • Comments: 0
  • Views: 298
History and experience of using machine
Revolution in AI will not produce
Music in the apartment. Embedding of
Three technological trends that change
Neural machine translation Google
Behavior Driven Testing in Automated
Write a comment
Name:*
E-Mail:


Comments
Global Dezigns is a Website Development Company in Karachi, Providing services of
website design in karachi
. We are delivering the best partnership across Pakistan. provides a complete range of web development services including web applications, website hosting and maintenance, domain registration, on-page search engine optimization, and website integration with social media platforms such as Facebook, Twitter, LinkedIn, Google Maps, and Google Local Directory. We believe we are well placed to take our knowledge and expertise to the logical next level with the latest web standards.  
  Show/hide text
https://www.globaldezigns.com/



Yesterday, 22:45

mike tomlin

This blog is really great. The information here will surely be of some help to me. Thanks!.mastering physics

Yesterday, 17:57

raymond weber

Coinyspace is the cryptocurrency community and trading forum where members can find any contributors of crypto ecosystem like currencies, exchanges & merchants. Check Out: Bitcoin Merchants
Yesterday, 16:57

noorseo

This is a great high resolution screen which you have shared for the users. Making a website is not an easy task but managing a good website is really a hard work. As far as this website is concerned, I am very happy.https://19216801.1
Yesterday, 16:01

nushra45

i'm satisfied to deem this make recognized Very beneficial for me, as it contains lot of advice. I usually favor to buttonhole The excellent and glad i found this count number in you assertion. thanks Subliminal Hypnosis
Yesterday, 14:56

jahangirkhatri

Adv
Website for web developers. New scripts, best ideas, programming tips. How to write a script for you here, we have a lot of information about various programming languages. You are a webmaster or a beginner programmer, it does not matter, useful articles will help to make your favorite business faster.

Login

Registration Forgot password