<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-005-04-0243</article-id>
      <article-id pub-id-type="publisher-id">27556</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>E.1 - DATA STRUCTURES</subject>
          <subject>H.2 - DATABASE MANAGEMENT</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Automatic Data Restructuring</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Ginsburg</surname>
            <given-names>Seymour</given-names>
          </name>
          <email xlink:type="simple">ginsburg@pollux.usc.edu</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Simovici</surname>
            <given-names>Dan</given-names>
          </name>
          <xref ref-type="aff" rid="A2">2</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Computer Science Department, University of Southern California, Los Angeles, California, United States of America</addr-line>
        <institution>Computer Science Department, University of Southern California</institution>
        <addr-line content-type="city">Los Angeles, California</addr-line>
        <country>United States of America</country>
      </aff>
      <aff id="A2">
        <label>2</label>
        <addr-line content-type="verbatim">University of Massachusetts Boston, Boston, United States of America</addr-line>
        <institution>University of Massachusetts Boston</institution>
        <addr-line content-type="city">Boston</addr-line>
        <country>United States of America</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Seymour Ginsburg (<email xlink:type="simple">ginsburg@pollux.usc.edu</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>1999</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>28</day>
        <month>04</month>
        <year>1999</year>
      </pub-date>
      <volume>5</volume>
      <issue>4</issue>
      <fpage>243</fpage>
      <lpage>286</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/BA26E078-153A-54CB-90E4-1F2EE9B96050">BA26E078-153A-54CB-90E4-1F2EE9B96050</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/6995668">6995668</uri>
      <permissions>
        <copyright-statement>Seymour Ginsburg, Dan Simovici</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>Data restructuring is often an integral but non-trivial part of information processing, especially when the data structures are fairly complicated. This paper describes the underpinnings of a program, called the Restructurer, that relieves the user of the "thinking and coding" process normally associated with writing procedural programs for data restructuring. The process is accomplished by the Restructurer in two stages. In the first, the differences in the input and output data structures are recognized and the applicability of various transformation rules analyzed. The result is a plan for mapping the specified input to the desired output. In the second stage, the plan is executed using embedded knowledge about both the target language and run-time efficiency considerations. The emphasis of this paper is on the planning stage. The restructuring operations and the mapping strategies are informally described and explained with mathematical formalism. The notion of solution of a set of instantiated forms with respect to an output form is then introduced. Finally, it is shown that such a solution exists if and only if the Restructurer produces one.</p>
      </abstract>
    </article-meta>
  </front>
</article>
