WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure    
United States Patent5119465   
Link to this pagehttp://www.wikipatents.com/5119465.html
Inventor(s)Jack; Martin L. (Merrimac, NH); Gumbel; Richard T. (Windham, NH)
AbstractA data structure format conversion system comprising a front end converter, a back end converter, and a converter executive. The front end converter converts a source data structure in a source format to data in an intermediate format. The back end converter converts the data in the intermediate format to a target data structure in a target format. Finally, a converter executive controls the front end converter and back end converter to effect a conversion from the source data structure in the source format to the target data structure in the target format, through the intermediate format.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5119465
System for selectively converting plurality of source data structures

     through corresponding source intermediate structures, and target

     intermediate structures into selected target structure - US Patent 5119465 Drawing
System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure
Inventor     Jack; Martin L. (Merrimac, NH); Gumbel; Richard T. (Windham, NH)
Owner/Assignee     Digital Equipment Corporation (Maynard, MA)
Patent assignment
All assignments
Publication Date     June 2, 1992
Application Number     07/368,716
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 19, 1989
US Classification     717/137 717/146
Int'l Classification     G06F 009/44 G06F 009/45
Examiner     Lee; Thomas C.
Assistant Examiner     Donaghue; L.
Attorney/Law Firm     Arnold, White & Durkee
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/900 MS File
Patent Tags     selectively converting plurality source data structures through corresponding source intermediate structures, target intermediate structures into selected target
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4791558
Chaitin
717/140
Dec,1988

[0 after 0 votes]
4754428
Schultz
709/246
Jun,1988

[0 after 0 votes]
4751740
Wright
382/180
Jun,1988

[0 after 0 votes]
4667290
Goss
717/147
May,1987

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed as new and desired to be secured by Letters Patent of the United States is:

1. A data structure format conversion system comprising:

a front end converter for converting a source data structure in a source data format to a source domain intermediate structure;

a domain converter for converting the source domain intermediate structure to a target domain intermediate structure;

said domain converter including a domain conversion activation portion for establishing the domain converter as an intermediary when domain conversion is required between a selected front end converter and a selected back end converter;

a back end converter for converting the target domain intermediate structure to a target data structure in a target data format; and

a converter executive for controlling the front end converter, the domain converter, and the back end converter to effect a conversion from the source data structure in the source format to the target data structure in the target data format.

2. The data structure format conversion system as claimed in claim 1, wherein the converter executive further comprises:

a converter selection portion for selecting a front end converter from a plurality of front end converters, and for selecting a back end converter from a plurality of back end converters.

3. The data structure format conversion system as claimed in claim 1 in which the back end converter operates iteratively in connection with sequential portions of the source data structure, the back end converter iteratively generating data requests which enable the converter executive to, in turn, enable the front end converter to perform a conversion operation in connection with a next sequential portion of the source data structure.

4. The data structure format conversion system as claimed in claim 3 in which the back end converter further generates position requests, and the converter executive enables the front end converter to generate position information in response to the position requests.

5. A data structure format conversion system comprising:

a plurality of front end converters for converting respective source data structures in respective source data formats to intermediate data structures, at least one of said front end converters converting to a first intermediate data structure, and at least another of said front end converters converting to a second intermediate data structure;

a domain converter for converting the first intermediate data structure to the second intermediate data structure, and for converting the second intermediate data structure to the first intermediate data structure;

a plurality of back end converters for converting the intermediate data structures to respective target data structures in respective target data formats, at least one of said back end converters converting from the first intermediate data structure and at least another of said back end converters converting from the second intermediate data structure; and

a converter executive for effecting a conversion from a specified one of the source data structures to a specified one of the target data structures, said converter executive including a converter selecting portion for selecting a front end converter converting from the specified one of the source data structures and selecting a back end converter converting to the specified one of the target data structures, an intermediary selection portion for determining whether the format provided by the selected front end converter corresponds to the format required by the selected back end converter, an intermediate data structure portion for establishing for data transfer the intermediate data structure having the format provided by the selected front end converter and required by the selected back end converter when the intermediary selection portion determines that the format provided by the selected front end converter is the same as the format required by the selected back end converter, and a domain activation portion for activating the domain converter as an intermediary between the selected front end converter and the selected back end converter when the intermediary selection portion determines that the format provided by the selected front end converter is not the same as the format required by the selected back end converter.

6. The data structure format conversion system as claimed in claim 5 in which the selected back end converter operates iteratively in connection with sequential portions of the source data structure, and the back end converter iteratively generates data requests which enable the converter executive to, in turn, enable the selected front end converter to perform a conversion operation in connection with a next sequential portion of the source data structure.

7. The data structure format conversion system as claimed in claim 5 in which the selected back end converter further generates position requests, and the converter executive enables the front end converter to generate position information in reponsive to the position requests.

8. The data structure format conversion system as claimed in claim 5 in which the first intermediate data structure is a document data structure, and the second intermediate data structure is a tabular data structure.

9. A method of operating a digital computer system for converting a source data structure in a specified source data format to a target data structure in a specified target data format; said digital computer system having a plurality of front end converters for converting respective source data structures in respective source data formats to intermediate data structures, at least one of said front end converters converting to a first intermediate data structure, and at least another of said front end converters converting to a second intermediate data structure; said digital computer system also having a domain converter for converting the first intermediate data structure to the second intermediate data structure, and for converting the second intermediate data structure to the first intermediate data structure; said digital computer system also having a plurality of back end converters for converting the intermediate data structures to respective target data structures in respective target data formats, at least one of said back end converters converting from the first intermediate data structure and at least another of said back end converters converting from the second intermediate data structure; said method comprising the steps of:

selecting a front end converter converting from the specified one of the source data structures and selecting a back end converter converting to the specified one of the target data structures;

determining whether the format provided by the selected front end converter corresponds to the format required by the selected back end converter;

establishing for data transfer the intermediate data structure having the format provided by the selected front end converter and required by the selected back end converter when the format provided by the selected front end converter is the same as the format required by the selected back end converter; and

acitivating the domain converter as an intermediary between the selected front end converter and the selected back end converter when the format provided by the selected front end converter is not the same as the format required by the selected back end converter.

10. The method of operating a digital computer system as claimed in claim 9, wherein the selected back end converter is operated iteratively in connection with sequential portions of the source data structure, the selected back end converter iteratively generates data requests, and the selected front end converter performs a conversion operation in connection with a next sequential portion of the source data structure in response to each of said data requests.

11. The method of operating a digital computer system as claimed in claim 10, wherein the back end converter further generates position requests, and wherein the method further comprises enabling the front end converter to generate position information in response to the position requests.

12. The method of operating the digital computer system as claimed in claim 9, wherein the first intermediate data structure is a document data structure, and the second intermediate data structure is a tubular data structure.
 Description Submit all comments and votes
 


INCORPORATION BY REFERENCE

U.S. patent application Ser. No. 07/368,703 filed Jun. 19, 1989, in the name of Robert L. Travis and William R. Laurune and entitled Data Structure Including External Reference Arrangement, which is incorporated herein by reference.

U.S. patent application Ser. No. 07/368,697, filed Jun. 19, 1989, in the name of Carol A. Young and Neal F. Jacobson and entitled Tabular Data Format, which is incorporated herein by reference.

FIELD OF THE INVENTION

The invention is directed generally to the field of digital computer systems and more particularly to arrangements for converting structures, such as file structures, from a source format to a target format.

BACKGROUND OF THE INVENTION

In a digital computer system, computer programs provided by a number of vendors typically organize data for processing in a number of diverse formats. Each vendor may use different formats for organizing the data processed by its programs, with the formats being selected to enhance the processing by the particular program. Some programs may also include conversion routines which allow the program to import data from files having selected formats to a format used by the program, and to export data from the format used by the program to another format.

Some document interchange formats have been proposed as standard formats for use by programs, and a number of programs support those formats at least to the extent that they convert data from the formats normally processed by them to one or more of the standard document interchange formats, thereby facilitating export of the data at least to the standard formats. In addition, typically the same programs will also convert data from the standard document interchange formats to the formats normally used by them, thereby facilitating import of the data at least from the standard formats.

SUMMARY OF THE INVENTION

In brief summary, the invention provides a data structure format conversion system comprising a front end converter, a back end converter, and a converter executive. The front end converter converts a source data structure in a source format to data for an intermediary. The back end converter converts the data from the intermediary to a target data structure in a target format. The intermediary includes a domain conversion arrangement comprising a source domain intermediate data structure for receiving data from the front end converter in the format provided by the front end converter, a target domain intermediate data structure for supplying data to the back end converter in the format required by the back end converter, and a domain converter for converting data from the format in the source domain intermediate data structure to the format for storage in the target domain intermediate data structure. Finally, a converter executive controls the front end converter and back end converter to effect a conversion from the source data structure in the source format to the target data structure in the target format, through the intermediate format.

In a further aspect, the invention provides a data structure format conversion system comprising a front end converter, a back end converter, and a converter executive. The front end converter converts a source data structure in a source format to data in an intermediate format. The back end converter converts the data in the intermediate format to a target data structure in a target format. Finally, a converter executive controls the front end converter and back end converter to effect a conversion from the source data structure in the source format to the target data structure in the target format, through the intermediate format. The converter executive selects the front end converter and the back end converter from a plurality of converters, each identified by a name identifying the respective formats converted thereby in response to the respective names. To accomplish that, the converter executive includes an intermediary selection portion for determining whether the format provided by a selected front end converter corresponds to the format required by a selected back end converter. An intermediate data structure portion responsive is to a positive determination by the intermediary selection portion for establishing an intermediate data structure to facilitate transfer of data in the intermediate format from the front end converter to the back end converter. Finally, a domain conversion portion responsive to a negative determination by the intermediary selection portion for establishing a domain conversion arrangement to facilitate conversion of data in the intermediate format provided by the front end converter to the intermediate format required by the back end converter.

In yet a further aspect, the invention provides a data structure format conversion system comprising a front end converter, a back end converter, and a converter executive. The front end converter converts a source data structure in a source format to data in an intermediate format. The back end converter converts the data in the intermediate format to a target data structure in a target format. Finally, a converter executive controls the front end converter and back end converter to effect a conversion from the source data structure in the source format to the target data structure in the target format, through the intermediate format. The front end converter and the back end converter operate iteratively in connection with sequential portions of the source data structure, the back end converter iteratively generating data requests which enable the converter executive to, in turn, enable the front end converter to perform a conversion operation in connection with a next sequential portion of the source data structure.

In yet a further aspect, the invention provides a data structure format conversion system comprising a front end converter, a back end converter, and a converter executive. The front end converter converts a source data structure in a source format to data in an intermediate format. The back end converter converts the data in the intermediate format to a target data structure in a target format. Finally, a converter executive controls the front end converter and back end converter to effect a conversion from the source data structure in the source format to the target data structure in the target format, through the intermediate format. The front end converter and the back end converter operate iteratively in connection with sequential portions of the source data structure, the back end converter iteratively generating data requests which enable the converter executive to, in turn, enable the front end converter to perform a conversion operation in connection with a next sequential portion of the source data structure. The back end converter further generates position requests, the converter executive enabling the front end converter to generate position information in response thereto for use by the back end converter.

In yet a further aspect, the invention provides a method of converting a data structure from a source structure to a target structure comprising the steps of converting a source data structure in a source format to data in a source domain intermediate data structure, converting the source domain intermediate data structure to a target domain intermediate data structure and converting the data in the target domain intermediate format to a target data structure in a target format.

BRIEF DESCRIPTION OF THE DRAWINGS

This invention is pointed out with particularity in the appended claims. The above and further advantages of this invention may be better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:

FIG. 1 depicts a functional block diagram of a conversion system, for use in connection with a digital computer system, constructed in accordance with the invention;

FIGS. 2A through 2D depict flow diagrams illustrating the operation of the conversion system depicted in FIG. 1;

FIG. 3 is a block diagram useful in understanding a data structure for a "DOCUMENT" intermediate data format;

FIGS. 4A through 4D comprise diagrams depicting various aspects of the DOCUMENT intermediate data structure;

FIG. 5 depicts a flow chart illustrating a selected processing operation in connection with the DOCUMENT data structure;

FIGS. 6 through 10D illustrate data structures, at various levels of detail, of a "TABULAR" intermediate data format; and

FIG. 11 depicts a flow chart illustrating a selected processing operation in connection with the TABULAR data structure.

DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

FIG. 1 depicts a functional block diagram of a data format conversion system 10, for use in connection with a digital computer system, constructed in accordance with the invention. With reference to FIG. 1, the conversion system 10 includes an executive converter 11 which receives a conversion command from a command source 12. The command source may comprise, for example, an operator input system, such as a video display terminal, through which the operator may enter a conversion command through the operating system command line. Alternatively, the command source 12 may comprise an applications program that requires a conversion from a source format to a target format.

A conversion command from command source 12 includes the identification of the source structure to be converted, the identification of the destination structure to be created, and also the source format and the target format. The data format conversion system 10 includes a plurality of converters stored in a converter store 13, which may be located in a known location in the digital computer system, such as one or more directories in a disk storage system (not shown). Each converter in converter store 13 converts data between a source structure and one of a plurality of known intermediate formats, such as, for example, formats identified as DOCUMENT and TABULAR formats, or between one of the intermediate formats and a target format. In response to the conversion command, the converter executive 11 selects one or two converters, as described below, with one of the selected converters comprising a front end converter 14 and the other comprising a back end converter 15.

The details of one embodiment of the illustrative DOCUMENT format are described in U.S. patent application Ser. No. 07/368,703, filed on even date herewith, in the name of Robert L. Travis and William R. Laurune and entitled Data Structure Including External Reference Arrangement, which is incorporated herein by reference, and the details of the illustrative TABULAR format are described in U.S. patent application Ser. No. 07/368,697, filed on even date herewith, in the name of Carol A. Young and Neal F. Jacobson and entitled Tabular Data Format, which is also incorporated herein by reference.

The front end converter 14, selected by the converter executive 11, converts source data structure 16 to an output data structure for an intermediary 17, and the back end converter 15, selected by the converter executive 11, converts a data structure from the intermediary 17 to a target data structure 20. The source data structure 16 and the target data structure 20 may comprise in-memory data structures, or they may be data structures stored in files on disk or other non-volatile mass storage.

The intermediary 17 may take one of two forms. If the front end converter 14 selected by the converter executive 11 generates an output data structure having the same intermediate format as that used by the back end converter 15 as its input, the converter executive 11 uses an intermediate data structure 21 as its intermediary 17. For example, if the front end converter 14 generates an output data structure having the DOCUMENT format, and the back end converter 15 uses an input data structure having the DOCUMENT format, both of them use the intermediate data structure 21 as the intermediary 17. Similarly, if the front end converter 14 generates an output data structure having the TABULAR format, and the back end converter 15 uses data in the TABULAR format as its input, both of them use the intermediate data structure 21 as the intermediary. The intermediate data structure 21 may be an in-memory data structure, or a data structure stored in files on disk or other non-volatile mass storage.

On the other hand, if the front end converter 14 generates an output data structure which has a different format than the format required by the back end converter 15 for its input data structure, the converter executive 11 uses a domain conversion arrangement 23 as the intermediary 17. The domain conversion arrangement 23 changes the format of the data structure produced by the front end converter 14 to the format of the data structure for use by the back end converter 15. The domain conversion arrangement 23 includes a domain converter 24 that obtains data from a source domain intermediate data structure 25, which receives output data from the front end converter 14, and generates in response thereto a target domain intermediate data structure 26, which provides input data to the back end converter 15. The back end converter 15 uses the data in the target domain intermediate data structure 26 in its conversion operation. Using the illustrative DOCUMENT and TABULAR formats, if the front end converter 14 generates data in the source domain intermediate data structure 25 that is in the DOCUMENT format, the domain converter 24 converts the data in the source domain intermediate data structure 25 from the DOCUMENT format to the TABULAR format for the target domain intermediate data structure 26. Similarly, if the front end converter 14 generates data in the source domain intermediate data structure 25 that is in the TABULAR format, the domain converter 24 converts the data in the source domain intermediate data structure 25 from the TABULAR format to the DOCUMENT format for the target domain intermediate data structure 26.

One specific embodiment includes a domain converter 24 which converts from the DOCUMENT format to the TABULAR format, and another domain converter which converts from the TABULAR format to the DOCUMENT format. In that embodiment, the domain converters may be stored in the converters store 13 along with the various format converters and selected by the converter executive 11 when necessary as described below.

The format conversion system 10 also includes an intermediate source/target structure 27, which may comprise a target for data from the front end converter 14 if the conversion command from the converter executive 11 specifies a converted format comprising either the DOCUMENT or the TABULAR format. In that case, the data output from the front end converter 14, or the domain conversion arrangement 23, is in the format specified by format conversion command provided by the command source 12, and so the converter executive 11 does not need to locate a back end converter 15 to form the required output format.

Similarly, the intermediate source/target structure 27 may comprise a source for data for the back end converter 15, either directly or following domain conversion by the domain conversion arrangement 23, if the conversion command provided to the converter executive 11 specifies input data formatted in either the DOCUMENT or the TABULAR format. In that case, if the back end converter 15 can use, as its input, data that is formatted as specified in the conversion command, the converter executive 11 can enable the back end converter 15 to use the data from the intermediate source/target structure 27 directly. On the other hand, if the back end converter 15 requires data in the other of the DOCUMENT or TABULAR formats than that specified in the conversion command received by the converter executive 11, the converter executive 11 enables the domain conversion arrangement 23 to perform a domain conversion operation to convert the format of the data in the intermediate source/target structure 27 for use by the back end converter 15.

The operations performed by the various elements depicted in FIG. 1 will be described in detail in connection with FIGS. 2A through 2D. With reference to FIG. 2A, the converter executive 11 first receives a conversion command from the command source 12 (step 50). The conversion command identifies the formats of the source data structure 16 and target data structure 20 as well as the identification of the file or other source for the source data structure 16, and the identification of the file or other sink for the target data structure 20.

After receiving the conversion command, the converter executive 11 searches for converters in converter store 13 that are satisfactory for converting from the source format to the target format (step 51). In one embodiment, the converters all have predetermined name formats identifying them as either front end converters or back end converters, and identifying the input and output formats for which they are compatible. That is, the front end converters all have a name format DOCUMENT$READ.sub.-- <SRC.sub.-- FORM> or TABULAR$READ.sub.-- <SRC.sub.-- FORM> (where "<SRC.sub.-- FORM>" represents a format name, that is, the name of the format of the data structure to be converted, namely, the source structure 16). A front end converter 14 with a name DOCUMENT$READ.sub.-- <SRC.sub.-- FORM> performs a format conversion operation between a source format identified by <SRC.sub.-- FORM> and the DOCUMENT format, and a front end converter 14 with a name TABULAR$READ.sub.-- <SRC.sub.-- FORM> performs a format conversion operation between a source format identified by <SRC.sub.-- FORM> and the TABULAR format. Similarly, the back end converters 15 all have a name format DOCUMENT$WRITE.sub.-- <TGT.sub.-- FORM> or TABULAR$WRITE.sub.-- <TGT.sub.-- FORM> (where "<TGT.sub.-- FORM>" represents a format name, that is, the name of the format of the data structure to be created by the conversion, namely, target structure 20), with a back end converter 15 with a name DOCUMENT$WRITE.sub.-- <TGT.sub.-- FORM> performing a format conversion operation between the DOCUMENT format and a target format identified by <TGT.sub.-- FORM>, and a back end converter 15 with a name TABULAR$READ.sub.-- <TGT.sub.-- FORM> performing a format conversion operation between the TABULAR format and a target format identified by <TGT.sub.-- FORM>.

Thus, in that embodiment, in performing step 51, the converter executive 11 searches for converters in converter store 13 which identify the source format <SRC.sub.-- FORM> and target format <TGT.sub.-- FORM> which correspond to the source format and target format identified in the conversion command from the command source 12. If it cannot find the necessary converters (step 52), it sequences to step 53 to return an error message to the command source 12, and then exits.

On the other hand, if the converter executive 11, in step 52, determines that it has found the necessary converters from converter store 13, it sequences to step 54 to establish the located converters as a front end converter 14 and a back end converter 15. Thereafter, the converter executive 11 determines whether a domain conversion is required (step 55). If the front end converter 14 and back end converter 15 established by the converter executive 11 in step 54 identify different domains, that is, if the front end converter 14 contains DOCUMENT in its name while the back end converter 15 contains TABULAR in its name, or if the front end converter 14 contains TABULAR in its name while the back end converter 15 contains DOCUMENT in its name, a domain conversion is required, and the converter executive 11 establishes the domain conversion arrangement 23 as the intermediary 17 (step 56). However, if the converter executive 11 determines in step 55 that both the front end converter 14 and the back end converter 15 have DOCUMENT in their names, or if it determines that both have TABULAR in their names, it establishes in step 55 the intermediate data structure as the intermediary 17.

In step 56, the converter executive 11 operates to select a domain converter 24 for use in domain conversion arrangement 23 in substantially the same manner as it selects front and back end converters as described above. That is, in one embodiment, a domain converter for converting from the DOCUMENT format to the TABULAR format is named $DOCUMENT.sub.-- TO.sub.-- TABULAR and a domain converter for converting from the TABULAR format to the DOCUMENT format is named $TABULAR.sub.-- TO.sub.-- DOCUMENT. In that embodiment, if the converter executive 11, in selecting a front end converter 14 from the converter store 13, can only locate a front end converter that has the name DOCUMENT$READ.sub.-- <SRC.sub.-- FORM>, which converts from the format <SRC.sub.-- FORM> to the DOCUMENT format, and a back end converter that has the name TABULAR$WRITE.sub.-- <TGT.sub.-- FORM>, which converts from the TABULAR format to the format <TGT.sub.-- FORM>, then the converter 11 selects a domain converter having the name $DOCUMENT.sub.-- TO.sub.-- TABULAR, which converts from the DOCUMENT format generated by the front end converter 14, to the TABULAR format required by the back end converter 15. Conversely, if the converter executive 11, in selecting a front end converter 14 from the converter store 13, can only locate a front end converter that has the name TABULAR$READ.sub.-- <SRC.sub.-- FORM>, which converts from the format <SRC.sub.-- FORM> to the TABULAR format, and a back end converter that has the name DOCUMENT$WRITE.sub.-- <TGT.sub.-- FORM>, which converts from the DOCUMENT format to the format <TGT.sub.-- FORM>, then the converter 11 selects a domain converter having the name $TABULAR.sub.-- TO.sub.-- DOCUMENT, which converts from the TABULAR format generated by the front end converter 14, to the DOCUMENT format required by the back end converter 15.

Thereafter, the converter executive 11 sequences to step 57 (FIG. 2B) to call the front end converter 14, along with the name of the source structure 16 to be converted. The call may be by any conventional inter-process or inter-procedure call mechanism. The front end converter 14 receives the call, initializes itself in a conventional manner (step 60) and then opens the identified source structure (step 61). Thereafter, the front end converter 14 creates a root aggregate for the identified source structure (step 62). In this operation, the front end converter 14 allocates a portion of its memory space for the source structure 16 identified in the call from the converter executive 11, and inserts there into selected context information, including pointers to major portions of the source data structure 16, in particular, pointers to a descriptor portion, a header portion, and a content portion. The front end converter 14 then returns control to the converter executive 11, along with a pointer, identified as the root aggregate handle, to the just-created root aggregate (step 63). Subsequent communications between the converter executive 11 and the front end converter 14 regarding the conversion of the source data structure 16 include the root aggregate handle to identify the communications as relating to that conversion.

When the front end converter 14 returns control to the converter executive 11 (step 63), the converter executive 11 calls the back end converter 15, identifying the front end converter 14 and the root aggregate handle (step 64). As with the call to the front end converter 14 in step 57, the call to the back end converter 15 may be made by means of any conventional inter-process or inter-procedure call mechanism. The back end converter 15 then initializes itself (step 65) and calls the converter executive 11 for a conversion operation, the call identifying the root aggregate handle and the front end converter 14 (step 66). The converter executive 11, in turn, calls the front end converter 14 identified in the call from the back end converter 15, identifying the root aggregate handle (step 67).

Upon receiving the call from the converter executive 11, the front end converter 14 performs a conversion operation in connection with the source data structure 16 to generate an intermediate aggregate. In this operation, the converter executive 11 may convert the entire source data structure 16, or only a portion thereof, sufficient to provide at least one aggregate in the intermediate format produced by the front end converter 14. An aggregate is a manageable portion of the intermediate format, which is associated with a data type. For example, in the DOCUMENT format described in the aforementioned Document Data Format patent application, aggregate types include such categories as the document descriptor, document header, document segment beginning and end, and various types of document content, including text, directives, Bezier curves, lines, arcs, references to external information, and so forth. Similarly, in the TABULAR format described in the aforementioned Tabular Data Format patent application, aggregate types include such categories as the descriptor, header, and tables.

The front end converter 14, while performing its conversion operation, iteratively generates, from the source data structure 16, sufficient information from the source data structure 16 to produce at least one aggregate. The specific details of the conversion operation depend on the format of the source data structure 16 and the particular intermediate format comprising the output of the front end converter 14. If the front end converter 14 loads an entire source data structure 16 into memory for processing, it converts the entire source data structure 16 at that point, iteratively producing aggregates and passing them to the converter executive 11 for storage in either the intermediate data structure 21 or the source domain intermediate data structure 25, depending on whether the converter executive 11 determined that a domain conversion was required.

On the other hand, if the front end converter 14 does not load the entire source data structure 16 into memory it converts only an aggregate at a time, upon request from the converter executive 11, beginning with the header, and descriptor aggregates and proceeding sequentially through the source data structure 16 for the remaining portions thereof. In addition, the front end converter 14 provides to the converter executive 11 status information regarding the status of the conversion along with the converted aggregate, in particular indicating when it has completed conversion of the entire source data structure 16.

Following the conversion of either the entire source data structure 16 or an aggregate (step 70), front end converter 14 returns control to the converter executive 11. The converter executive 11 then determines whether a domain conversion is required (step 71), and if so calls the domain converter 24 to perform the conversion in connection with the source domain intermediate data structure 25 to form the target domain intermediate data structure 26 (step 72). This occurs if the converter executive 11 has previously established the domain conversion arrangement 23 as the intermediary 17. Following step 72, or step 71 if the converter executive 11 determines that domain conversion is not necessary, the converter executive 11 calls the back end (step 73).

Upon receiving the call from the converter executive 11 (step 73), the back end converter 15 determines whether the information provided by the intermediary 17, comprising either the intermediate data structure 21 or the target domain intermediate data structure 26, indicates that the entire source data structure 16 has been converted (step 74). This occurs if the front end converter 14 has notified the converter executive 11, in the call in step 70, that it has completed conversion of the entire source data structure 16 as indicated above. If not, the back end converter 15 sequences to step 75 to perform a conversion of the aggregate in either the intermediate data structure 21 or the target domain intermediate data structure 26 from the intermediate format to form the target data structure 20. As with the front end converter 14 noted above, the specific operations performed by the back end converter 15 in performing the conversion will depend on the intermediate format and the specific format of the target data structure 20. After performing the conversion on the aggregate provided by the intermediary 17, the back end converter 15 returns to step 66 to request the next aggregate from the converter executive 11.

If the back end converter 15 determines, in step 74, that the entire source data structure 16 has been converted, it sequences to step 76 to close the target data structure 20. In this operation, the back end converter 15 may, if necessary, write the target data structure 20 to a disk file, and eliminate any in-memory data structures which it used for performing the format conversion to the target format. Thereafter, the back end converter 15 calls the converter executive 11, indicating completion of the conversion operation (step 76), after which it exits.

In response to notification from the back end converter 15 that the conversion operation has been completed, the converter executive 11 calls the front end converter 14, indicating that the conversion operation has been completed (step 77). The front end converter 14 also closes the source data structure 16 (step 80), and eliminates in-memory data structures which it used during the conversion, including the root aggregate established during step 62 (FIG. 2B). The front end converter 14 then, exits, returning control to the converter executive 11. The converter executive 11 then returns the conversion status and the identification of the target data structure 20 to the command source 12, after which it exits, thereby completing the conversion operation.

It will be appreciated that, if the conversion command from the command source 12 indicates that the format of the source data is in either the DOCUMENT format or the TABULAR format, the converter executive 11 does not, in step 51, need to search for a front end converter 14, but instead uses the intermediate source/target data structure 27 as the source of the data to be converted. The converter executive 11 operates, in conjunction with the back end converter 15, as a front end converter to the extent that it converts either the entire intermediate source/target data structure 27, if it can load it into memory, or an aggregate at a time on request from the back end converter 15 as described above. In addition, the converter executive 11 uses the particular intermediary 17 as required by the format of the intermediate source/target data structure 27 and the input format of required by the back end converter 15. That is, if the format of the intermediate source/target data structure 27 is the same as that required by the back end converter 15 as its input, the converter executive 11 uses the intermediate data structure 21 as the intermediary 17. On the other hand, if the format of the intermediate source/target data structure 27 differs from that required by the back end converter 15 as its input, the converter executive 11 uses the domain conversion arrangement 23 to perform the required domain conversion.

Similarly, if the conversion command from the command source 12 indicates that the format of the target data is in either the DOCUMENT format or the TABULAR format, the converter executive 11 does not, in step 51, need to search for a back end converter 15, but instead uses the intermediate source/target data structure 27 as the target of the data that was converted. The converter executive 11 operates, in conjunction with the front end converter 14, as a back end converter to the extent that it receives the output from the front end converter 14 as the intermediate source/target data structure 27, if it is in the proper DOCUMENT or TABULAR format as required by the conversion command. However, if the output of the front end converter 14 is not in the format required by the conversion command, the converter executive 11 enables the domain conversion arrangement 23 to perform the required domain conversion to produce the intermediate source/target data structure 27.

With this background, the operations of a front end converter 14 and a back end converter 15 will now be generally described. A front end converter 14 comprises a procedure which essentially has four entry points, including a main calling entry point, which the converter executive 11 uses to initially call the front end converter 14 (in step 57, FIG. 2B), a GET.sub.-- AGGREGATE entry point, a GET.sub.-- POSITION entry point, and a CLOSE entry point. The main calling point is identified by the front end converter's name, as described above, and enables the converter executive 11 and front end converter 14 to establish a context, pass the identification of the source data structure 16, establish various processing options, and enable the front end converter 14 to return pointers to the other entry points. In calling the front end converter 14 through the main entry point, the converter executive 11 supplies a converter context value and a pointer to a location in which the front end converter 14 may insert a returned context value which is used in subsequent call operations through the GET.sub.-- AGGREGATE, GET.sub.-- POSITION and CLOSE entry points as described below. This front end converter-supplied context value is used to disambiguate conversion operations if the front end converter 14 is being used to convert multiple source data structures 16 contemporaneously. The converter executive 11 also supplies pointers to locations in which the called front end converter 14 can supply the pointers to the GET.sub.-- AGGREGATE, GET.sub.-- POSITION and CLOSE entry points. In response to a call through its main entry point, as described above the front end converter 14 allocates memory space for the source data structure 16, or at least a portion thereof, in a conventional manner.

The GET.sub.-- AGGREGATE entry point is used by the converter executive 11 (in step 67 FIG. 2C) to enable the front end converter 14 to provide the next aggregate during an incremental conversion operation. In calling through this entry point, the converter executive 11 identifies the context value supplied by the front end converter 14 in response to the call through the main entry point (step 57), a pointer to a buffer to receive the aggregate, and a pointer to a locatio