{"id":812,"date":"2015-12-14T14:48:27","date_gmt":"2015-12-14T13:48:27","guid":{"rendered":"http:\/\/www.mimuw.edu.pl\/~bojan\/?page_id=812"},"modified":"2017-02-03T06:49:15","modified_gmt":"2017-02-03T05:49:15","slug":"left-to-right-transducers","status":"publish","type":"page","link":"https:\/\/www.mimuw.edu.pl\/~bojan\/20152016-2\/jezyki-automaty-i-obliczenia-2\/6-transducers\/left-to-right-transducers","title":{"rendered":"One-way transducers"},"content":{"rendered":"<p>On this page, we describe three different models of transducers, which describe the same kinds of functions. The idea is that the functions process the input from left to right, but have some kind of mechanism (lookahead, or maybe nondeterminism) to query the part of the input that has not been seen yet.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>NFA with output<\/strong><\/p>\n<p>An\u00a0<em>NFA with<\/em>\u00a0<em>output\u00a0<\/em>is a nondeterministic finite automaton over an input alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-aeb6fee794feaade92eebde4e9865fd9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/>, where each transition is labelled by a possibly empty word over the output alphabet. When given an input word over the input alphabet, the automaton produces all those words over the output alphabet which can be found by taking an accepting run, and reading from left to right the words on the transitions. Such an automaton is called\u00a0<em>functional\u00a0<\/em>if for every input word, there is exactly one output word (but possibly realised through several different accepting runs). Such an automaton is called\u00a0<em>unambiguous\u00a0<\/em>if for every input word, it has a unique accepting run; this implies being functional.<\/p>\n<p>Here is an example of such an NFA, which is unambiguous, and which realises the function &#8220;identity if the last letter is <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-b9876851baf92019e82e43590932dc73_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"8\" style=\"vertical-align: 0px;\"\/>, otherwise erase the entire word&#8221;.<a href=\"http:\/\/www.mimuw.edu.pl\/~bojan\/upload\/nfa-output1.svg\"><br \/>\n<img decoding=\"async\" class=\" size-medium wp-image-801 aligncenter\" src=\"http:\/\/www.mimuw.edu.pl\/~bojan\/upload\/nfa-output.svg\" alt=\"nfa output\" \/><\/a><\/p>\n<p><b>Lookahead DFA with output<\/b><\/p>\n<p>Define a\u00a0<em>lookahead DFA with output\u00a0<\/em>to be the following tuple:<\/p>\n<p>\u2022 an input alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-aeb6fee794feaade92eebde4e9865fd9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/>;<br \/>\n\u2022 an output alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-6a76799f4c1833cdbda79a51e7a1783f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#71;&#97;&#109;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -1px;\"\/>;<br \/>\n\u2022 a finite automaton, called the\u00a0<em>lookahead automaton,\u00a0<\/em>which has\u00a0input alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-aeb6fee794feaade92eebde4e9865fd9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/> and\u00a0is deterministic from right to left;<br \/>\n\u2022 a set of control states <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-bed8547872890507f19a89d0b85aac65_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#81;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"12\" style=\"vertical-align: -3px;\"\/> \u00a0with a distinguished initial state <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-8a6486cc0b4f558c9c2cc2b5eecbc434_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#113;&#95;&#48;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"13\" style=\"vertical-align: -3px;\"\/>;<br \/>\n\u2022 a transition function <\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 16px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-7a959da9edf45640859d4f2296b083d7_l3.png\" height=\"16\" width=\"136\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91;&#92;&#100;&#101;&#108;&#116;&#97;&#32;&#58;&#32;&#81;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#80;&#32;&#92;&#116;&#111;&#32;&#81;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#92;&#71;&#97;&#109;&#109;&#97;&#94;&#42;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p> where <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-4ea9c849f1f3ffe3aee17ed595d147c0_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#80;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"12\" style=\"vertical-align: 0px;\"\/> are the states of the lookahead automaton.<\/p>\n<p>The behaviour of the automaton, when given an input word <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-e28aacf97ca23d2be338aa4a40157c90_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#97;&#95;&#49;&#32;&#92;&#99;&#100;&#111;&#116;&#115;&#32;&#97;&#95;&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"53\" style=\"vertical-align: -3px;\"\/> over the input alphabet, is as follows. The automaton begins before the first position in the initial state. Suppose that the automaton has already read the letters <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-1f13c3a266d8c14abaa6e074445deba7_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#97;&#95;&#49;&#32;&#92;&#99;&#100;&#111;&#116;&#115;&#32;&#97;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"50\" style=\"vertical-align: -3px;\"\/>, and is in state <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-7b295853314f2d5a3c49b7e96e28be64_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#113;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"7\" style=\"vertical-align: -3px;\"\/>. One runs the lookahead automaton\u00a0on the\u00a0remaining input <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-0afb7d2fe14e88db620f9f153e211f81_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#97;&#95;&#123;&#105;&#43;&#49;&#125;&#32;&#92;&#99;&#100;&#111;&#116;&#115;&#32;&#97;&#95;&#123;&#110;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"67\" style=\"vertical-align: -4px;\"\/> from right to left,\u00a0yielding a state\u00a0<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-80c4e54e1e3be2cd42e31542a3f54526_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#112;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"9\" style=\"vertical-align: -3px;\"\/>. To the pair <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-77419309a09e7cdd329a33b323ea6789_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#40;&#113;&#44;&#112;&#41;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"33\" style=\"vertical-align: -4px;\"\/> the transition function is applied, yielding a new state and some output word. The output word is added to the output produced so far, and the automaton moves to the next letter in the new state.<\/p>\n<p>Here is an example of a lookahead DFA with output which realises the function &#8220;identity if the last letter is <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-b9876851baf92019e82e43590932dc73_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"8\" style=\"vertical-align: 0px;\"\/>, otherwise erase the entire word&#8221;. \u00a0The automaton has only one control state, and uses a lookahead automaton whose states\u00a0partition the input words into four kinds: <\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 15px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-6a66b2ac48db8f315b819d2841b8d090_l3.png\" height=\"15\" width=\"219\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91;&#92;&#101;&#112;&#115;&#105;&#108;&#111;&#110;&#32;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#94;&#42;&#98;&#32;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#97;&#43;&#97;&#92;&#83;&#105;&#103;&#109;&#97;&#94;&#42;&#97;&#32;&#92;&#113;&#113;&#117;&#97;&#100;&#32;&#98;&#92;&#83;&#105;&#103;&#109;&#97;&#94;&#42;&#97;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p> Here is the picture of the automaton:<\/p>\n<p><a href=\"http:\/\/www.mimuw.edu.pl\/~bojan\/upload\/dfalookahead.svg\"><img decoding=\"async\" class=\" size-medium wp-image-802 aligncenter\" src=\"http:\/\/www.mimuw.edu.pl\/~bojan\/upload\/dfalookahead.svg\" alt=\"dfalookahead\" \/><\/a><\/p>\n<p>In general, there might be a need to use control states, e.g. for the function &#8220;swap the first and last letter&#8221;.<\/p>\n<p><strong>Eilenberg bimachine<\/strong><\/p>\n<p>An Eilenberg bimachine is very similar to a lookahead DFA with output, only the definition is more symmetric. The machine consists of the following ingredients:<\/p>\n<p>\u2022 an input alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-aeb6fee794feaade92eebde4e9865fd9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/>;<br \/>\n\u2022 an output alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-6a76799f4c1833cdbda79a51e7a1783f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#71;&#97;&#109;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"10\" style=\"vertical-align: -1px;\"\/>;<br \/>\n\u2022 a finite, called the\u00a0<em>past<\/em><em>\u00a0automaton,\u00a0<\/em>which has\u00a0input alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-aeb6fee794feaade92eebde4e9865fd9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/> and\u00a0is deterministic\u00a0from left to right, i.e. in the usual sense of determinism;<br \/>\n\u2022\u00a0a finite, called the\u00a0<em>future<\/em><em>\u00a0automaton,\u00a0<\/em>which has\u00a0input alphabet <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-aeb6fee794feaade92eebde4e9865fd9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#83;&#105;&#103;&#109;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/> and\u00a0is deterministic\u00a0from right to left;<br \/>\n\u2022 an output function \u00a0<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 16px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-05943a4e378fc22234a17f60395ec419_l3.png\" height=\"16\" width=\"149\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91;&#111;&#117;&#116;&#32;&#58;&#32;&#80;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#81;&#32;&#92;&#116;&#111;&#32;&#92;&#71;&#97;&#109;&#109;&#97;&#94;&#42;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p> where <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-4ea9c849f1f3ffe3aee17ed595d147c0_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#80;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"12\" style=\"vertical-align: 0px;\"\/> are the states of the past\u00a0automaton and <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-bed8547872890507f19a89d0b85aac65_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#81;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"12\" style=\"vertical-align: -3px;\"\/> are the states of the future automaton.<\/p>\n<p>The function defined by such a machine is as follows. When given a word over the input alphabet, the automaton replaces, in parallel, each position\u00a0<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-94b2245f3ac0472586363dd0fde68eb5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"5\" style=\"vertical-align: 0px;\"\/> by the value of the function <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-b44aed4f73b6ab05fbd644b8daf014aa_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#111;&#117;&#116;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"23\" style=\"vertical-align: 0px;\"\/> on the triple consisting of:<br \/>\n\u2022 the state of the past automaton on the prefix up to but not including <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-94b2245f3ac0472586363dd0fde68eb5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"5\" style=\"vertical-align: 0px;\"\/>;<br \/>\n\u2022 the <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-94b2245f3ac0472586363dd0fde68eb5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"5\" style=\"vertical-align: 0px;\"\/>-th letter;<br \/>\n\u2022 the state of the future automaton on the suffix from but not including <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-94b2245f3ac0472586363dd0fde68eb5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"5\" style=\"vertical-align: 0px;\"\/>.<\/p>\n<p>This definition is illustrated below:<\/p>\n<p><a href=\"http:\/\/www.mimuw.edu.pl\/~bojan\/upload\/eilenberg.svg\"><img decoding=\"async\" class=\" size-medium wp-image-807 aligncenter\" src=\"http:\/\/www.mimuw.edu.pl\/~bojan\/upload\/eilenberg.svg\" alt=\"eilenberg\" \/><\/a><\/p>\n<p><strong>Theorem.\u00a0<\/strong>The following models are equivalent, in terms of the functions from words to words that they define:<br \/>\n1. functional NFA with output;<br \/>\n2. unambiguous NFA with output;<br \/>\n3. lookahead DFA with output;<br \/>\n4. Eilenberg bimachines.<\/p>\n<p><strong>Proof.\u00a0<\/strong><\/p>\n<ul>\n<li>From 2 to 1. A special case.<\/li>\n<li>From 1 to 3. A lookahead DFA with output can\u00a0simulate a functional NFA with output in the same manner as above: it constructs some accepting run during its left to right pass.<\/li>\n<li>From 3 to 2. An NFA can guess, in an unambiguous way, the run of the lookahead automaton.<\/li>\n<li>From 2 to 4.\u00a0An Eilenberg bimachine can simulate an unambiguous NFA with output: for every position, it computes the transition that is used in the unique run, and outputs the label of that transition.<\/li>\n<li>From 4 to 2. An NFA can guess, in an unambiguous way, the runs of the past and future automaton in an Eilenberg bimachine.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-b06cee67d5b1a769f0a344ace98d5692_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#66;&#111;&#120;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"11\" style=\"vertical-align: 0px;\"\/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>On this page, we describe three different models of transducers, which describe the same kinds of functions. The idea is that the functions process the input from left to right, but have some kind of mechanism (lookahead, or maybe nondeterminism) to query the part of the input that has not been seen yet. &nbsp; NFA [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":789,"menu_order":1,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-812","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/812"}],"collection":[{"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/comments?post=812"}],"version-history":[{"count":3,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/812\/revisions"}],"predecessor-version":[{"id":1265,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/812\/revisions\/1265"}],"up":[{"embeddable":true,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/789"}],"wp:attachment":[{"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/media?parent=812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}