{"id":857,"date":"2015-12-15T11:58:36","date_gmt":"2015-12-15T10:58:36","guid":{"rendered":"http:\/\/www.mimuw.edu.pl\/~bojan\/?page_id=857"},"modified":"2017-02-03T06:50:53","modified_gmt":"2017-02-03T05:50:53","slug":"two-way-and-register-are-the-same","status":"publish","type":"page","link":"https:\/\/www.mimuw.edu.pl\/~bojan\/20152016-2\/jezyki-automaty-i-obliczenia-2\/6-transducers\/two-way-and-register-are-the-same","title":{"rendered":"Two-way and register are the same"},"content":{"rendered":"<p>Here we show that two-way automata and register automata describe the same functions from words to words.<\/p>\n<p><strong>Theorem. <\/strong><em>The following devices recognise the same partial functions from words to words:<\/em><\/p>\n<ol>\n<li><em>\u00a0deterministic two-way automaton with output<\/em><\/li>\n<li><em>deterministic register automaton with regular lookahead.<\/em><\/li>\n<\/ol>\n<p>Note that we have already claimed (but not proved) that for deterministic register automata, the <a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/20152016-2\/jezyki-automaty-i-obliczenia-2\/6-transducers\/register-transducers\">regular lookahead can be removed<\/a>.<\/p>\n<hr \/>\n<p><strong>From register automata to two-way automata<\/strong><\/p>\n<p>Let us show the implication from 2 to 1, i.e. how to convert a deterministic register automaton with regular lookahead. Recall that in a register automaton with registers <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-2c3ed362727b958141ddb6d2af724ecd_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#82;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"12\" style=\"vertical-align: 0px;\"\/> and 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;\"\/>, a register update is a function <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-bb4ee27bd030c092c23b5218cdfe0d5c_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#82;&#32;&#92;&#116;&#111;&#32;&#40;&#82;&#32;&#92;&#99;&#117;&#112;&#32;&#92;&#71;&#97;&#109;&#109;&#97;&#41;&#94;&#42;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"94\" style=\"vertical-align: -4px;\"\/>. We draw a register update like this:<\/p>\n<p><a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-02.svg\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-1257\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-02.svg\" alt=\"\" \/><\/a><\/p>\n<p>In the above picture, we assume that the inputs to the registers are read from top to bottom, formally speaking we would need to specify an ordering on the incoming edges for every register name at the right. When it reads an input word, the register automaton executes a sequence of register updates, as in the following picture:<\/p>\n<p><a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-01.svg\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-1258\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-01.svg\" alt=\"\" \/><\/a><\/p>\n<p>In the above picture, we assume that there is a single designated <em>output register<\/em>, and the output produced by the automaton is simply the contents of this output register at the end of the run. This assumption can be made when regular lookahead is available. Let <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-3ad167265eb5962588e65b9e2e9019f7_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#68;&#101;&#108;&#116;&#97;\" title=\"Rendered by QuickLaTeX.com\" height=\"11\" width=\"13\" style=\"vertical-align: 0px;\"\/> be the finite set of register operations that can be triggered by individual transition. Therefore a run of the register automaton can be viewed as transforming an input word into a word over <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-ff254e3d4cc5e09823e66b042f8d76ce_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#68;&#101;&#108;&#116;&#97;&#94;&#42;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"19\" style=\"vertical-align: 0px;\"\/>.<\/p>\n<p><strong>Lemma 1.\u00a0<\/strong><em>There is an NFA with output which takes an input word to the sequence of register updates that it triggers<\/em>.<\/p>\n<p><strong>Proof.\u00a0<\/strong>Just by simulating the automaton and using nondeterminism to guess the run of the regular lookahead. <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<p><strong>Lemma 2.\u00a0<\/strong><em>If <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-3fb8f3d177f842d8a385cbdb1090b455_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#102;&#32;&#58;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#94;&#42;&#32;&#92;&#116;&#111;&#32;&#92;&#68;&#101;&#108;&#116;&#97;&#94;&#42;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"84\" style=\"vertical-align: -3px;\"\/> is recognised by an NFA with output and <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-d7ac6ff67d3fad1128a735964f6cb733_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#103;&#32;&#58;&#32;&#92;&#68;&#101;&#108;&#116;&#97;&#94;&#42;&#32;&#92;&#116;&#111;&#32;&#92;&#71;&#97;&#109;&#109;&#97;&#94;&#42;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"81\" style=\"vertical-align: -3px;\"\/> is recognised by a deterministic two-way automaton, then their composition <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-f804f10a0176401626752d785ecfbd63_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#103;&#32;&#92;&#99;&#105;&#114;&#99;&#32;&#102;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"32\" style=\"vertical-align: -3px;\"\/> is recognised by a deterministic two-way automaton.<\/em><\/p>\n<p><strong>Proof.\u00a0<\/strong>Recall that NFA with output <a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/20152016-2\/jezyki-automaty-i-obliczenia-2\/6-transducers\/left-to-right-transducers\">are equivalent to Eilenberg bimachines<\/a>. An Eilenberg bimachine is\u00a0the same thing as an oracle in a deterministic two-way automaton, and therefore <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-f804f10a0176401626752d785ecfbd63_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#103;&#32;&#92;&#99;&#105;&#114;&#99;&#32;&#102;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"32\" style=\"vertical-align: -3px;\"\/> is recognised by a deterministic two-way automaton with an oracle. Then, the <a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/20152016-2\/jezyki-automaty-i-obliczenia-2\/6-transducers\/two-way-transducers\">oracle can be removed<\/a>. <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<p>Combining Lemmas 1 and 2 above, in order to show that a register automaton can be simulated by a deterministic two-way automaton, it suffices to show that there is a deterministic two-way automaton which inputs a sequence of register updates, and which outputs the contents of the designated output register at the end. The automaton views the register operations are a graph, where the vertices are pairs <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-f6113ada14bb89271e7414a66a91a643_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#40;&#120;&#44;&#114;&#41;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"33\" style=\"vertical-align: -4px;\"\/> where <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-2780ef1cb525460253e4d12a2fa56ea2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"9\" style=\"vertical-align: 0px;\"\/> is a position in the input word and <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-5f9ee823cc3794980fa8bb3288c67777_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#114;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"7\" style=\"vertical-align: 0px;\"\/> is a register name. \u00a0This graph is a tree, thanks to the copylesss assumption. The two-way automaton begins by going to <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-f6113ada14bb89271e7414a66a91a643_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#40;&#120;&#44;&#114;&#41;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"33\" style=\"vertical-align: -4px;\"\/> where <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-2780ef1cb525460253e4d12a2fa56ea2_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#120;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"9\" style=\"vertical-align: 0px;\"\/> is the last position and <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-5f9ee823cc3794980fa8bb3288c67777_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#114;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"7\" style=\"vertical-align: 0px;\"\/> is the designated output register. Then it does a depth-first search traversal through the tree, outputting letters during this run. In order to do this, the automaton needs to only remember the current register <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-5f9ee823cc3794980fa8bb3288c67777_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#114;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"7\" style=\"vertical-align: 0px;\"\/> and the edge of the tree that was previously processed, as in the following picture:<\/p>\n<p><a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-03.svg\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-1261\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-03.svg\" alt=\"\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p><strong>From two-way automata to register automata<\/strong><\/p>\n<p>The idea is classical, dating back to the proof of Rabin and Scott that two-way automata (as accept\/reject devices) can be made one way. Suppose that we have read a prefix of the input word. We need to remember what are the outputs that are produced by the two-way automaton on: a) the unique from the initial configuration to the first time that it reaches the current position; and b) runs that begin and end in the current position. Here is a picture:<\/p>\n<p><a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-04-1.svg\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-1263\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-04-1.svg\" alt=\"\" \/><\/a><\/p>\n<p>More formally, one\u00a0can describe the situation after reading a prefix <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-eedf2e7eca2b090be6b3ece6f6e31f7b_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#119;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"11\" style=\"vertical-align: 0px;\"\/> of the input by a function<\/p>\n<p class=\"ql-center-displayed-equation\" style=\"line-height: 17px;\"><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-3a680120ea96dc93a3cf23aa3dbf6986_l3.png\" height=\"17\" width=\"388\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91;&#102;&#95;&#119;&#32;&#58;&#32;&#81;&#32;&#92;&#99;&#117;&#112;&#32;&#92;&#115;&#101;&#116;&#123;&#92;&#109;&#98;&#111;&#120;&#123;&#105;&#110;&#105;&#116;&#105;&#97;&#108;&#125;&#125;&#32;&#92;&#116;&#111;&#32;&#81;&#32;&#92;&#99;&#117;&#112;&#32;&#92;&#115;&#101;&#116;&#123;&#92;&#109;&#98;&#111;&#120;&#123;&#114;&#101;&#106;&#101;&#99;&#116;&#125;&#125;&#32;&#92;&#99;&#117;&#112;&#32;&#32;&#40;&#92;&#71;&#97;&#109;&#109;&#97;&#94;&#42;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#40;&#81;&#32;&#92;&#99;&#117;&#112;&#32;&#92;&#115;&#101;&#116;&#123;&#92;&#109;&#98;&#111;&#120;&#123;&#97;&#99;&#99;&#101;&#112;&#116;&#125;&#125;&#41;&#41;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p>\n<p>whose definition is according to the picture above. The natural idea would be to store, for each argument of the above function, the value of the function. The state of the transducer would be used to store the finite part of the function, and the registers (one for each argument) would be used to store the output words used in the function. The problem with this idea is that it would lead to register updates that are not copyless. This problem would arise if there would be two transitions that move to the left and lead to the same target state, as in the following picture:<\/p>\n<p><a href=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-05.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-1264\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/upload\/transducery-05.svg\" alt=\"\" width=\"115\" height=\"194\" \/><\/a><\/p>\n<p>In such a situation, the register corresponding to state <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-5f9ee823cc3794980fa8bb3288c67777_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#114;\" title=\"Rendered by QuickLaTeX.com\" height=\"7\" width=\"7\" style=\"vertical-align: 0px;\"\/> would need to be used twice in the register update. The solution to this observation is that in an actual accepting run of the two-way automaton, only one of the transitions would be used. The reason is that if both transitions would be used, then the automaton would enter a loop.\u00a0To use this observation, we use the following lemma, whose straightforward proof is omitted.<\/p>\n<p><strong>Lemma.\u00a0<\/strong><em>Consider a deterministic two-way automaton with 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;\"\/> and 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;\"\/>. Consider the function <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-92a25c6f4dd19a5b1743bd04784ee7fd_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#103;&#32;&#58;&#32;&#92;&#83;&#105;&#103;&#109;&#97;&#94;&#42;&#32;&#92;&#116;&#111;&#32;&#40;&#92;&#83;&#105;&#103;&#109;&#97;&#32;&#92;&#116;&#105;&#109;&#101;&#115;&#32;&#92;&#109;&#97;&#116;&#104;&#115;&#102;&#123;&#80;&#125;&#40;&#81;&#41;&#41;&#94;&#42;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"146\" style=\"vertical-align: -4px;\"\/> which additionally labels each input position by the set of states used by (the unique) accepting run of the automaton in that position. Then <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-f3f120665f850c6a82881aea7d8128c9_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#103;\" title=\"Rendered by QuickLaTeX.com\" height=\"10\" width=\"8\" style=\"vertical-align: -3px;\"\/> is recognised by an NFA with output.<\/em><\/p>\n<p>Register automata with regular lookahead are closed under precomposing with functions computed by NFA with output; for this one convert the NFA with output into a lookahead DFA with output, and then use the regular lookahead of the register automaton. Therefore, we can assume that a register automaton has access to the states in the accepting run (possibly none if there is no accepting states). It can then compute the function <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-content\/ql-cache\/quicklatex.com-647de26b39382f839930ace38c98efb3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#102;&#95;&#119;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"17\" style=\"vertical-align: -3px;\"\/> with its domain restricted to states used in the accepting run; and here the natural construction works because it is copyless.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here we show that two-way automata and register automata describe the same functions from words to words. Theorem. The following devices recognise the same partial functions from words to words: \u00a0deterministic two-way automaton with output deterministic register automaton with regular lookahead. Note that we have already claimed (but not proved) that for deterministic register automata, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":789,"menu_order":5,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-857","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/857"}],"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=857"}],"version-history":[{"count":3,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/857\/revisions"}],"predecessor-version":[{"id":1266,"href":"https:\/\/www.mimuw.edu.pl\/~bojan\/wp-json\/wp\/v2\/pages\/857\/revisions\/1266"}],"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=857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}