CA2152788C - File translation system - Google Patents

File translation system Download PDF

Info

Publication number
CA2152788C
CA2152788C CA002152788A CA2152788A CA2152788C CA 2152788 C CA2152788 C CA 2152788C CA 002152788 A CA002152788 A CA 002152788A CA 2152788 A CA2152788 A CA 2152788A CA 2152788 C CA2152788 C CA 2152788C
Authority
CA
Canada
Prior art keywords
document
file
accessible
application program
programs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA002152788A
Other languages
French (fr)
Other versions
CA2152788A1 (en
Inventor
Dylan B. Ashe
Nick G. Kledzik
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CA2152788A1 publication Critical patent/CA2152788A1/en
Application granted granted Critical
Publication of CA2152788C publication Critical patent/CA2152788C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Abstract

A method and system for file translation is presented. The system and method add implicit translation capability to the Apple Finder system software. The invention provides file conversion capability that dynamically searches for alternative programs and translation software on disks connected to a computer both locally and remotely via a communications link, such as a local area network, and allows a user to select from recommended choices for opening or converting a document. The invention offers a user the option of converting one or more documents to a new format, without opening them.

Description

FILE TRANSLATION SYSTEM
Field of the invention This invention generally relates to improvements in filing systems for computers and more particularly to simplifying the interchange of documents between various file systems.
Background of Invention Among developers of workstation software, it is increasingly important to provide a flexible software environment while measuring consistency in the user interface. An early attempt at providing this type of an operating environment is disclosed in US
Patent 4,686,522 to Hemandez et al. This patent discusses a combined graphic and text processing system in which a user can invoke a dynamic menu at the location of the cursor and invoke any of a variety of functions from the menu. This type of natural interaction with a user improves the user interface and makes the application much more intuitive.
The WORD word-processing program and MacWrite word-processing program currently provide a static list of translation programs that are available to use in converting documents. However, there is no capability of adding to the static list dynamically as additional conversion routines are created. Further, there is no system-wide solution to provide dynamic opening of files that are otherwise unrecognizable to the operating system. Today, when a file is selected, and clicked on to initiate opening on a Macintosh ~R computer or other computer system, if the operating system has not been preprogrammed to recognize the unique characteristics of the particular file, or if the application for handling the file has not been installed, then a standard prompt issued to the user indicating that processing cannot proceed.
European Patent Application having publication number 040813A1, entitled 'A
System for Processing Data Organized in Files and a Control Module for Use Therein,' discloses a computer conversion system for translating a format in which data is stored in memory.
This reference enables new converters, each designed to execute a specific conversion, to be added to the system by loading conversion programs into the system memory.

Summary of the Invention Accordingly, it is a primary objective of the present invention to provide file conversion capability that searches for alternative programs and translation software on disks connected to a computer both locally and remotely via a communications line such as a local area network, and allows a user to select from recommended choices for opening or converting a document. The invention offers a user the option of converting one or more docurr~ents to a new format in an ergonomic manner. The invention also adds to a user's view of files new information about programs and kinds of documents, even documents created in other operating systems, such as Disk Operating System (DOS), Windows or UNIX.
In accordance with one aspect of the present invention there is provided a method i:n a computer system for processing a document created previously by an application program which is not currently accessible by the computer system, comprising the steps of:
determining that the application program that created the document is not accessible by the computer system; identifying application programs that are accessible by the computer system that are different from the application program that created the document and are capable of translating the document; calculating translation paths from the document to the accessible application programs; selecting one of the accessible application programs capable of translating the document; and using the selected application program to translate the document into a format acceptable to an accessible application program.
In accordance with another aspect of the present invention there is provided an apparatus for processing a document created previously by an application program which is not accessible by a computer system, comprising: means for determining that the application pro;~ram that created the document is not accessible to the computer system; means for identifying application programs that are accessible by the computer system that are different from the application program that created the document and are capable of translating the document;
means for calculating translation paths from the document to the accessible application programs; means for selecting one of the accessible application programs capable of translating the document; and means for using the selected application program to translate the document into a format acceptable to an accessible application program.
In accordance with yet another aspect of the present invention there is provided a computer usable information storage medium storing computer readable program code means for 2a causing a computer to perform the steps of: displaying a list of document files for selection by a user of the computer; detecting a user's selection of a listed document file; determining that the application program that created the selected document file is not accessible by the computer system; identifying application programs accessible by the computer system that are different from the application program that created the document and are capable of translating the document file; calculating translation paths from the document to the accessible application programs; selecting one of the accessible application programs capable of translating the document file; and using the selected program to translate the document file into a format acceptable to an accessible application program.
Brief Description of the Drawings Figure 1 is a block diagram of a personal computer system in accordance with the subject invention;
Figure 2 illustrates a prior art third-party translation tool;
Figure 3 is an example of a prior art display that accompanied an aborted attempt to open a 1 S file;
Figure 4A is an example of a prior art display of file information;
Figure 4B is an example of a display in accordance with the subject invention;
Figure SA is an illustration of a prior art Macintosh display of an open operation;
Figure SB is an illustration of an Open menu in accordance with the subject invention;
Figure 6 is a display that is dynamically presented when a user opens a file in accordance with the subject invention;
Figure 7 is a progress indicator which appears as a document is being translated in accordance with the subject invention;
Figure 8 is an illustration of the File menu in accordance with the subject invention;
Figure 9 is an illustration of a document translation display in accordance with the subject invention;

2b Figure 10 is an illustration of an operation in which a document icon is dragged and dropped on a program icon in accordance with the subject invention;
Figures 11A-11B are detailed flowcharts in accordance with the subject invention;
Figures 12A-12G are detailed flowcharts in accordance with the subject invention; and Figure 13 is a block diagram in accordance with the subject invention.
Detailed Description Of The Invention The invention is preferably practiced in the context of an operating system resident on a personal computer such as the IBM' PS/2' or Apples Macintosh computer. A
representative hardware environment is depicted in Figure 1, which illustrates a typical hardware configuration of a workstation in accordance with the subject invention having a central processing unit 10, such as a conventional microprocessor, and a number of other units interconnected via a system .~ WO 94115307 ~ z ~~ ~ PCTIUS93112585 bus 12. The workstation shown in Figure 1 includes a Random Access Memory (RAM) 14, Read Only Memory (ROM) 16, an I/O adapter 18 for connecting peripheral devices such as disk units 20 to the bus, a user interface adapter 22 for connecting a keyboard 24, a mouse 26, a speaker 28, a microphone 32, andlor other user interface devices such as a touch screen device (not shown) to the bus, a communication adapter 34 for connecting the workstation to a data processing network and a display adapter 36 for connecting the bus to a display device 38. The workstation has resident thereon an operating system such as the Apple System/? ~ operating system.
1o Figure 2 is an example of a prior art translation program that requires a user to invoke the program and actively select the appropriate translation routine to convert the document to a usable format. In Figure 3, the typical Macintosh message is illustrated for an aborted attempt to open a file.
Is The preferred embodiment of the invention is implemented as a system software extension that allows a computer to open a document even if the computer does not have access to the program that created it. Preferably, the invention converts a document into another program's format without opening the document.
2o The invention makes opening such documents and converting them into another document format as easy as any other Macintosh task. It provides a system with facilities to find programs that can open a document and list the programs for user selection. A user can then select a program that can convert the document using its own internal translation capability, or one that uses specialized translation software.
2s The invention sets up the conversion process and invokes translation software to perform the conversion. The invention gathers information about documents and programs, uses an expert system to select and list the best options, records user selections, and reminds users of previous selections. The invention also allows a user to experiment with options to determine the one 3o most desirable for a particular document. This facility provides more information about documents which allows a user greater flexibility to explore a wider variety of documents available on personal computers, including documents created with programs not currently active on the system and documents that were created on other computers, such as an Other Equipment Manufacturers (OEM) Personal Computer (PC). Figure 4A is an example of a prior art display of file names 400 and their associated size 410 and kind 420. Figure 4B is an example of a display in accordance with the subject invention. At 440, the Kind field has more extensive description information than the prior art display.
When a user selects to view the contents of disks and folders by name, size, kind, or date, detailed information is ascertainable that would not be available without the invention. Figure 5A
provides an illustration of prior art file views. In contrast, the invention provides a list of all the possible documents that can be opened when used with an application program.
When a user 1o selects the Open menu selection from a program's File menu, more documents may be displayed then can be opened with that program. Figure SB is an illustration of the Open menu in accordance with the subject invention.
Examples of translation extension files that are typical translation extensions include the XTND
15 for application extension files. These files are designed to link the invention to Claris programs and file translation software. The RTF/styl extension file is an additional file required for translating material when copying and pasting between certain programs, such as between Microsoft Word and MacWrite II.
2o The invention employs all of the typical Macintosh tools to open documents, to cut and paste between documents, and to use keyboard shortcuts. In addition, the invention allows a user to:
( 1 ) have choices of programs and translation software to use in opening and converting documents;
(2) make specialized document converters for fast, conversions; and 25 (3) customize the invention to match a particular user's preferences.
Opening documents The procedure that is typically employed on an Apple Macintosh computer is listed by steps below according to the preferred embodiment of the invention. Those skilled in the art will 3o realize that other steps can be substituted without departing from the claimed invention.
1. Double-click the Open Me icon in the Macintosh Easy Open (M EO) disk window. Open Me is a MacWrite, version 5.0, document. One of ordinary skill in the art will readily comprehend WO 94115307 .~ '~ ~ $ ~ PC'1'/US93/12585 that Open Me is an example title of a document and any other document and its associated title can be handled in a similar fashion.
2. Review the list and click to select your translation preference. A user selects a single choice at a time. Choices visible to a user depend on the kind of programs and translation software installed on the particular system. Often, choices that include translation extensions offer the best results, but translations can be swapped as desired. Figure 6 is a display that is dynamically presented when a user opens a file in accordance with the subject invention.
At 600, the invention indicates which program created the document. In this case, "MacWrite". Label 610 1o indicates that MacWrite II can open this document by itself, or at label 620, MacWrite II can also work with a XTND translation extension file. Finally, at label 630, a selection box indicates that options exist for showing only recommended choices.
3. Click the Open button. A progress indicator appears as the document is being translated.
~5 Figure 7 is a progress indicator which appears as a document is being translated in accordance with the subject invention. Label 700 explicitly presents the translation extension that is in use.
Label 710 indicates the progress that has taken place on the current translation. Label 720 is a selection area for stopping a translation in progress.
20 4. When the document opens, check to see if the document has been formatted correctly. The invention renames the document to show that it has been converted to a new program format.
S. To save the converted copy, select Save As_ from the File menu and put the copy in the location of your choice. Figure 8 is an illustration of the File menu in accordance with the subject 25 invention. At label 800, the Save As option has been selected to enable a user to save a file name of choice. The File menu has been selected as shown at label 810.
If the results of the translation are unsatisfactory, other options exist:
If you are sure you don't want this choice, you can quit the program, without saving the new 3o document, and double-click the Open Me icon again to make another choice;
and If you want to compare results, you can save the converted document, and then open the original again, with a different choice. The invention stores the most recent preference you make for each kind of document and the next time a document of a similar kind is selected, the most recent preference is highlighted in the list of choices. When there are no choices that produce optimum results, the invention displays choices that could open the document simply as text, without the original formatting. The 'Show only recommended choices' option is not available.
Figure 9 is an illustration of a document translation display in accordance with the subject invention. Label 900 is a check box that can be selected if only recommended choices are displayed. Label 910 shows that if you have made a choice to open a similar document previously, then the invention selects your most recent preference in the list. Choices listed below the line, 920, cannot be guaranteed to produce optimum results. When there are only recommended choices available, the invention displays all choices.
A document icon can be dragged to a program icon added to your system, and one or more documents can be automatically opened by dragging document icons to the icon of any program with the ability to open that document as shown in Figure 10. If the program can open a document, the icon is highlighted. If a program can open the document you drag to it, the is invention presents a list of available choices, similar to the list shown in Figure 6. This list is limited to choices that include the particular application program and any available translation software. Copying and pasting between programs is facilitated by the invention to manage the translation of copied material into an acceptable format in the document where the information is pasted.
Document Converters A document converter is a convenient system utility that is set up to convert documents to a specific program's format without opening the document. Once a document converter is initialized for a particular type of conversion, documents can be converted easily and quickly, by 2s dragging their icons to the converter icon. A specific document converter icon can be set up for each type of document.
Follow these steps to set up a document converter:
1. Select the Document Converter on your hard disk and choose Duplicate from the File menu.
2. Open the copy of the document converter.
3. Click the Set button.
4. Click the Set button.

WO 94115307 ~~ PC'TlUS93/12585 The invention assigns a new document converter name. This name can be changed at the user's discretion.
Converting documents Once a document converter is properly initialized, it is easy to use. To convert a document, drag the Open Me icon to the document converter icon and release the mouse button.
Both icons become highlighted, showing that the conversion has begun. The invention creates a copy of the document, adds (Converted) to the document name, and leaves the original untouched To convert a group of documents to a new format, select the icons and drag them to a document converter that has been initialized.
Initializing Invention Options A number of options exist to provide customization of the invention.
Options:
On/Off When you don't need to translate documents, you can turn off the translation features. However, as long as the inventive system soRware resides on the startup disk, enhanced information will 2o still be available in the Finder, and in the list views of files, and document converters are still available for use. Finder is discussed in detail in "Inside Macintosh", vols.
I-VI, published by Addison-Wesley Publishing Co., 1985-91.
Always Show Choices 2s With Always Show Choices selected, the system presents a list of choices even if a preference has been selected for opening a particular kind of document. When this option is deselected, the invention activates the preferences you have established without asking for your confirmation.
Include Choices from Servers 3o The invention is normally set to search for programs on all available disks, even on file servers that have been made available on a desktop. Using a program on a remote disk over a network could take a long time. To have the system search for programs only on hard disks directly connected to the system, click to deselect this control.

PCTlUS93112585 Delete Preferences To erase the invention's record of choices made for specific translation preferences, click the Delete Preferences button. For example, when new translation software is available, it may be convenient to delete all your previous choices at once and let the system prompt you for each new choice.
Dynamic Translation List In a computer where the operating system provides the user with a standard user interface for opening files, the invention provides the operating system with the file formats that the application can currently open based on the external translator files that have been installed. The invention builds a list of files that can be manipulated by an application program on-the-fly to facilitate current capabilities as discussed in detail below.
Detailed Logic Dynamic Application Open Capabilities The system and method for determining what formats of documents a particular program are determined in a dynamic manner and interactively presented to the user according to the logic 2o presented in Figure 11 A and Figure 11 B. Processing commences at function block 1100 where a general overview of the logic is presented. The logic finds file formats that a particular program can open and operate on. Then, at function block I 110, processing is initiated by starting with formats that an application can always open. This information is located at a predetermined location in most application programs. preferrably then, the first Dynamic Application Open Capability (DAOC) is commenced by obtaining a list of applications employing standard System 7 operations as shown in function block 1120 and 1130.
The detailed logic associated with function block l 130 is presented in Figure 11B. Processing commences at function block 1131 where all external translator files are identified. Then, 3o commencing at the first external translator file as depicted in function block 1132, the extract file format that the first translator file can read is identified as shown in function block I 133. Then, in function block 1135, the file format corresponding to the file translator file is appended to the source part of the list. A test is performed next at decision block I 136 to determine if any WO 94115307 ~ ~~$ PC'T/US93/12585 additional translator files are available. If so, then the next file is selected at fianction block 1134 and the file format that the translator file can process is determined at function block 1133. If no more files remain, then the applications that use these external translators is appended to destination part of the list, and processing is returned at terminal 1138 to decision block 1140 of Figure 11 A.
A test is performed at decision block 1140 to determine if a program is located in the destination portion of the list. If a program is located, then at function block 1150 all formats are appended to the list of programs that can be opened. Then, processing passes to decision block 1170 to 1o determine if any more DAOC remains to be processed. If no more processing is necessary, then the completed list of files that can be opened is returned to the user at terminal 1180. If' more files are available for processing, then the next DAOC is selected in function block 116U and control passes to function block 1130 for updating the list with the next DAOC.
1s Figures 12A-G are flowcharts of the detailed logic of a translation dialog in accordance with the subject invention. The translation dialog is a portion of the user interface that presents translation possibilities to a computer user. The possibilities are based on the proposition that a user does not really require knowledge of the translation processing, only that the translation is done in an effective manner consistent with normal file processing operations. Processing commences at 2o function block 1200 when the system detects that a user has double-clicked on a document.
A test is performed at decision block 1202 to determine if the application that created the document that was double-clicked on in function block 1200 is installed on the system. If the application exists on the system, then the document is opened as reflected in function block 1212.
2s If the application does not exist on the system, then another test is performed at decision block 1204 to determine if the invention can open the document. If not, then an appropriate message is presented to the user at function block 1214. However, if the document can be opened using the invention, as is usually the case, then the invention's translation dialog is applied to the document as shown in function block 1206 and detailed in Figures 12B-12G.
Figure 12B begins the expansion of the logic associated with fiznction block 1206 where the inventions translation dialog transpires. The first processing occurs at function block 1500 where the possible translation paths are calculated. The logic associated with this function block is WO 94115307 PCTlUS93112585 detailed in Figure 12C. Processing commences at function block 1510 where a table is generated of all translation combinations that are defined for the system by starting with the first translation combination at function block 1520 and processing all other combinations in a loop commencing with the next translation combination at function block 1530. Then, a decision is made at 5 decision block 1540 to determine if a path can translate from the document the user attempted to open. If so, then the translation combination is added to possible translations in the table as shown in function block 1 SSO. A test is performed at decision block 1560 to determine if any more combinations remain and if none are left then processing returns to label 1600 of Figure 12B. If additional translation combinations remain, then processing is returned to function block 10 1530.
The logic in function block 1600 of Figure 12B is expanded in Figure 12D.
Processing commences at function block 1610 by commencing with the first translation path, and then processing the next translation path as shown in function block 1620. Then, a search is performed in fianction block 1630 to determine if an application is installed on the system to open the selected document. If an application is located in decision block 1640, then, in function block 1650, the application is marked as a valid entry. If the application is not available in decision block 1640, then a test is performed at decision block 1660 to determine if any other paths remain. If additional paths remain, then the next translation path is selected at function block 1620. If no additional paths remain, then control is returned at terminal 1670 to decision block 1700 of Figure 12B.
A test is perforTned at decision block 1700 of Figure 12B to determine if a suitable translation dialog has been identified. If none is detected, then a failure result is set in function block 2040 and control is returned to decision block 1208 of Figure 12A. However, if a suitable translation dialog has been ascertained, then the paths are separated into categories based on established fidelity as shown in function block 1800 and detailed in Figure 12E. Fidelity refers to the amount of data preservation between formats. For example when a WORD document is converted to ASCII format, all of the formatting information is lost. However, when a WORD
document is 3o converted to WordPerfect via a translator, the formatting is conserved.
Thus, ASCII translation is low fidelity and WORD to WordPerfect is high fidelity. Processing commences in function block 1810 where the first translation path is set. Then, in function block 1820, the next translation path is selected and a test is performed in decision block 1830 to determine if the destination is a low fidelity format. If the destination is a low fidelity format, then the path is set to a non-preferred choice category in function block 1840 and control passes to decision block 1860. If the destination is not a low fidelity format, then in function block 1850, the path is added to a preferred choice category and control passes to decision block 1860 to determine if any paths remain to be processed. If additional paths remain, then control passes to function block 1820 to process the next path. If no paths remain, then control passes to terminal 1870 where processing is passed back to function block 1900 of Figure 12B.
Preferences are loaded in function block 1900. The details of the logic for the load preference operation are contained in Figure 12F. Processing commences at function block 1910 where the preferred applications are loaded. Then, at function block 1920, the preferred translation path is loaded. Finally, at function block 1930, the preferences are validated and control is returned at terminal 1940 to function block 2000 of Figure 12B.
1 s A list of contents is generated as shown in function block 2000 and detailed in Figure 12G.
Processing commences at function block 2100 where the start translation path is set. Then, in function block 2110 the next translation path is selected and the application name is obtained at function block 2120. Then, a test is performed at decision block 2130 to determine if the path can use the translation system. If so, then the translation system name is obtained at function 2o block 2140 and control passes to function block 21 S0. If not, then control passes to function block 21 S0, to append the entry to the list of translation files. Then, at decision block 2160, a test is performed to determine if the entry is the preference, if so, then the preferences is selected at function block 2170 and control passes to decision block 2180. If not, then control passes to decision block 2180 to determine if any paths are left to process. If additional paths remain, then 25 control passes to fi~nction block 2110 to process the paths. If not, then control is returned via 2190 to function block 2010 of Figure 12B.
Function block 2010 displays the dialog shown in Figure 6 and sets the result based on the user decision as shown in fianction block 2020. Thereafter control returns via terminal 2060 to 3o decision block 1208 of Figure 12A. A test is performed at decision block 1208 to determine if the user has overridden the preferred translation program. If the user has not overriden the preferred translation program, then the user is so informed at fimction block 1214. If the alternate choice is appropriately selected, then the document is translated at function block 1210, the documents are swapped, and the document is opened as shown in function block 1212.
Alternatively, if a user drags an icon onto an application as shown in function block 1220, then a s test is performed to determine if the application can open the document the icon represents at decision block 1222. If the document can be opened, then the icon is highlighted to so indicate.
If the document cannot be opened by the application, then a test is performed at decision block 1224 to determine if the document can be opened employing the logic presented in Figure 11. If the invention can be used to open the document then control passes to function block 1230 to to highlight the icon. If the invention cannot be used to open the document, then the icon is not highlighted as shown in function block 1226.
If a user releases a document icon proximal to another application as indicated in function block 1240, then a test is performed at decision block 1242 to determine if an application can open the 15 document. If no application is available, then processing passes to decision block 1204 to use the invention to process the document as described earlier. If an application can open the document, then the document is opened as shown in function block 1244.
If a user selects Open from the File Menu as shown in function block 1260, then documents are 2o added that can be translated to the Open dialog list as shown in function block 1262. Finally, if a user clicks Open in an Open dialog, then a test is performed at decision block 1252 to determine if an application can open the selected document. If an application can open the document, then the document is opened as shown in function block 1254. If the application cannot be opened, then control passes to decision block 1204 to employ the invention to open the document.
Application Details There are two programmatic views of the subject invention. One is the toolbox services it provides to the Finder, StandardFile, and future applications. This is called the Application Capabilities Manager. The other view is the services it requires from translation extensions.
3o Figure 13 is a block diagram in accordance with the subject invention.
Finder 1300 is a part of the, standard Apple System 7 operating system, and is responsible for normal file processing routines, including opening a document. Application 1310 can be a word-processing or other application for acting upon standard files 1320. The application capabilities manager 1330 provides the services that the Finder 1300 requires to perform document translation. Translation extensions 1340 are a set of translation operatives for files that are not application files.
Application translation extensions 1350 include translation extensions for applications. These parts will be discussed in detail below.
Declaring the File Types Your Application Can Open In Apple system software versions 7.0 and later, the Finder determines which types of files an application can open by inspecting the resources of type 'FREF' whose resource IDs are listed in an application's bundle (that is, application's resource of type BNDL').
Finder uses this to information to determine which file types can be drop-launched onto a given application. All file types in the'FREF' resources listed in an application's bundle, regardless of whether they have associated icons, are considered droppable on that application.
In some cases, however, an application may include'FKEF' resources for file types that should 15 not be opened. For example, an application might use non-document files such as dictionaries and help files. Even though these files should have icons and hence deserve 'FREF' resources, their contents cannot be displayed to a user. Similarly, an application might read data from preferences files; this data is intended to be used internally by the application, not opened by a user as a document. Because the list of file types an application can open may be different than 2o the list of types that have icons, the Translation Manager defines a new resource of type'open'.
The open resource declares which file types an application can open as documents. A Rez input form of a sample resource of type 'open' is presented below.
/*open resource for TeachText*/
25 resource 'open' ( 128) {'ttxt', { 'ttro', PICT', 'TEXT' } };
An open resource consists of an application signature followed by a Iist of file types. It indicates the specified application can open files whose types occur in the list. For example, TeachText 3o can open documents created in its own private format, 'ttro', as well as documents of file type PICT' and 'TEXT'. If Macintosh Easy Open is available, Finder allows a user to drop documents of those types onto the application. In addition, if any translation extensions are installed, all documents that can be translated to one of the specified types can also be dropped on the WO 94/15307 PCTlUS93112585 application. So, if a translation extension exists that can translate documents of type 'SURF' into the file type 'ttro', the user can drop SurfWriter documents onto TeachText.
If the Translation Manager has to choose between multiple file types as the destination file type for a translation, it chooses the file type that occurs earliest in the list.
The open resource is also used by the routine StandardOpenDialog to determine which documents should be listed in the file opening dialog box.
It's possible that the types of files an application can open must be determined dynamically (perhaps by inspecting which filters are available in a certain folder).
Filters refer to the available 1o translation routines for a particular application. If so, the system cannot list those file types statically in an open resource. Instead, a simple translation extension must be written to generate a list of openable file types at runtime.
Writing a Translation Extension A translation extension is a component that works with the invention to provide data recognition and translation capabilities. Because a translation extension is a component, it must respond to standard selectors sent by a Component Manager. In addition, a translation extension must perform the following tasks:
o communicate its translation capability to Macintosh Easy Open o identify the formats of specific documents and scraps o translate documents and scraps Scraps refer to portions of documents, for example the portions used in a cut and paste operation. Translation extensions identify and translate files, scraps, or both. A translation extension handles files or scraps by setting bits in the component flags field in the'thng' resource.
The lone exception to this rule concerns applications that need to determine dynamically which file types they can open.
FileType and ScrapType data types:
TYPE

IS
FileType = OSType; {file types}
ScrapType = ResType; { scrap types }
The ScrapType data type describes the format of data in memory. In general, the scrap types used by the invention are identical to scrap types used by a Scrap Manager.
There is, however, one notable exception. The invention defines a new scrap type, 'stxt', to describe styled text. A
scrap having format 'stxt' is formed by appending the text to the style information. This is 1o necessary to have a single scrap pass to a scrap translation extension. The FileType data type describes the format of a file. Often, but not always, the format of a file's data can be identified by inspecting the file's type, as maintained in the HFS catalog file (hereafter called the file's catalog type). For purposes of translation, however, it is sometimes necessary to use a more specific identification. For example, a developer might revise an application but retain the 15 existing file type for documents the application creates. This could cause problems for translation extensions, which might be able to translate a specific version of the file's data format but not later ones. Similarly, some applications that create files on Macintosh computers (such as electronic mail programs or disk mounting utilities) often use standard file types (such as 'TEXT' or BINA') as the default new file type. Once again, a translation extension needs more 2o information about the actual format of the data in the file before it can translate it to some other format.
To avoid problems associated with using a file's catalog type as the only indication of the file's data format, the invention defines a translation file type. In many cases the catalog file type is 25 sufficient as the translation file type. However, the invention always presents a translation extension the opportunity to inspect a particular file to see whether its catalog file type is indeed sufficient for translation purposes. If an extension can identify a more specific format, it will return that information to the invention.
3o Translation Extension Data Structures This section describes the data structures necessary for writing a translation extension.
File Type Specifications describe document formats in a file translation list.
The interpretation of some of the fields of a file type specification depend on whether the specification occurs in the list of source document types or in the list of destination document types. A file type specification is defined by the FileTypeSpec data structure.
TYPE FileTypeSpec =
RECORD
format:
FileType;
hint:
Longlnt;
flags:
to TranslationAttributes;
catInfoType:
OSType;
catInfoCreator:
OSType;
END;
formatThe translation file type of the document. The invention uses this field as the canonical way to describe the format of a file for translation purposes.
hint A four-byte value reserved for use by your translation extension.
flags A four-byte value consisting of bit flags that specify how to control the translation. This field is used only for destination file types; you should set it to 0 for all source file type specifications. Currently two bits are defined; all other bits should be cleared to 0:
CONST
taDstDocNeedsResourceFork = 1;
taDstIsAppTranslation = 2;

WO 94!15307 ~ ~ ~' PCT/US93/12585 8g Before the invention invokes a translation routine DoTranslateFile, it creates the destination file's data fork. The bit specified by the constant taDstDocNeedsResourceFork is set if the translated document also requires a resource fork.
The bit specified by the constant taDstIsAppTranslation should be set if an extension doesn't perform the translation because an associated application can already translate the specified file type into the desired format.
catInfoType The type of the file as contained in the volume's catalog file.
to catInfoCreator The creator of the file as contained in the volume's catalog file.
In file type specifications occurring in the list of source document types in a file translation list, Macintosh Easy Open uses the format and catInfoCreator fields to determine the kind string displayed in the "From" format specification in the translation progress dialog box.
In file type specifications occurring in the list of destination document types in a file translation list, the invention uses the format and catInfoCreator fields to determine the kind string displayed in the "To" format specification in the translation progress dialog box. The format and catInfoCreator fields are also used to get the information displayed in the Document Converter 2o dialog box. However, the invention uses the catInfoType and catInfoCreator fields to determine the file type and creator of the translated file.
File Translation Lists The FileTranslationList data structure to describe which file formats your extension can translate 2s into which other file formats. The Translation Manager uses the file translation list that it gets from each translation system to create a master database of its translation capability.
TYPE FileTranslationList =
RECORD
30 modDate:
LongInt;
groupCount:
LongInt;

WO 94115307 PC'T/US93112585 { group 1 SrcCount:
Longlnt; }
{ group 1 SrcEntrySize:
Longlnt; }
{ group 1 SrcTypes:
ARRAY [ l ..group 1 SrcCount]
OF FileTypeSpec; }
{ group 1 DstCount:
LongInt; }
{ group 1 DstEntrySize:
Longlnt; }
{ group 1 DstTypes:
ARRAY [ l ..group 1 DstCount]
OF FileTypeSpec;}
{repeat above six lines for a total of groupCount times}
END;
FileTranslationListPtr _ ~FileTranslationList;
FileTranslationListHandle -~FileTranslationListPtr;
A file translation list consists of a field indicating the modification date of the list and a count of the number of groups that follow those two fields. The size of the translation list that is prepared by an extension is variable, depending upon the number of groups, the file specification record size, and the number of file types that the extension knows about.
modDate The creation date of the file translation list. If an extension uses external translators. this field is set to the modification date of a folder containing those translators.
groupCount The number of translation groups that follow.
grouplSrcCount The number of file types in a group that the extension can read.

WO 94115307 "~ ~ ~ PCTIUS93I12585 grouplSrcEntrySize The size of the file specification records in the array that follows this field.
In general, you can set this field to SizeOf~FileTypeSpec).
grouplSrcTypes An array of file specification records. Include a file specification record in this array for each file type that your extension knows how to translate.
grouplDstCount The number of file types in a group that the extension can write.
1o grouplDstEntrySize The size of the file specification records in the array that follows this field.
In general, you can set this field to SizeOf~FileTypeSpec).
grouplDstTypes An array of file specification records. This file should include a file specification record in this array for each file type that an extension can be translated into.
Creating a Translation List A translation extension must be able to inform Macintosh Easy Open of its translation capabilities when requested. To do this, define a DoGetFileTranslationList function in which a file translation list is filed as defined by a FileTranslationList record. The invention uses the file translation list 2o returned to indicate which types of files an extension can translate into which other types. On the basis of this information, it may later call an extension to identify a particular document and possibly then also to translate it.
The FileTranslationList record has the following structure:
TYPE FileTranslationList =
RECORD
modDate:
_ LongTint;
3o groupCount:
LongInt;
{ group 1 SrcCount v Longlnt; }

{ group 1 SrcEntrySize:
LongInt; }
{ group 1 SrcTypes:
ARRAY [ l ..group 1 SrcCount]
5 OF FileTypeSpec; }
{ group 1 DstCount:
Longlnt; }
{ group 1 DstEntrySize:
LongInt; }
10 { group 1 DstTypes:
ARRAY [l..grouplDstCount]
OF FileTypeSpec; }
{ repeat above six lines for a total of groupCount times }
END;
1s This record contains a modification date and a count of the number of translation groups that follow. Each translation group in the file translation list specifies a collection of file types from which the extension can translate (the group 1 SrcTypes field) and a collection of file types into which the extension can translate (the grouplDstTypes field). Within a translation group, an 2o extension must be able to translate any of the source types into any of the destination types.
Different translation groups may correspond to different categories of applications within a group. For instance, you can place word processing applications in one group, spreadsheet applications in another, and so on. In most cases, grouplSrcCount and grouplDstCount will each be greater than 1, because most translators operate by translating through a particular data model. In these cases, it's also quite likely that the source and destination file types overlap or even coincide.
Within any particular group of file types, you specify a particular document format using a file 3o type specification, defined by the FiIeTypeSpec data type.
TYPE FileTypeSpec =
RECORD
format:

grouplSrcEntrySize The size of ~~ ~2'~88 FileType;
hint:
LongInt;
flags:
s TranslationAttributes;
catInfoType:
OSType;
catInfoCreator:
OSType;
1 o END;
A file type specification includes the file type, a hint reserved for use by your extension, a flags field, and the original file type and creator. Because the list of file types that this extension can translate never changes, DoGetFileTranslationList fills out a file translation list the first time 15 Macintosh Easy Open ever calls it; every other time it is called, DoGetFileTranslationList simply passes back the list it was just passed.
In most cases, a translation extension relies on external translators to perform the actual translation of files or scraps. If so, it's also likely that a user will be able to add and remove 2o translators used by your extension-possibly by moving translators into or out of some specific folder. In that case, DoGetFileTranslationList function could read the modification date of that folder and compare with a value previously put in the modDate field to determine whether to regenerate the translation list.
2s Identifying Files Once the invention knows the types of files from and to which an extension can translate, it can call an extension to determine whether the extension can translate a particular file. This further check is necessary because some documents might have file types that are not specific enough for translation purposes. For example, a document imported from a different operating system might 3o have a file type of'TEXT'. Another translation extension might be able to determine, however, that the file actually contains SurfWriterPC data and hence deserves special format conversion treatment. When a translation extension is called to identify a particular document, it should call your extension's DoIdentifyFile function.

Some documents can be identified simply by inspecting their file type and creator. Other documents (in particular, those of type'TEXT') might require opening files and examining their contents to determine whether they can be translated by an extension. If an extension cannot recognize the document type, DoIdentifyFile would return noTypeErr. Otherwise, DoIdentifyFile would return noErr and the docKind parameter should be set to the recognized file type. The DoIdentifyFile function should not return 'TEXT' as a file type unless it's certain that the document consists of plain, unformatted ASCII text. It should be aware that even if an extension identifies a particular document as one that it can translate, The invention might not in fact call an to extension to do the translation.
Translating Files If a translation extension identifies a document as one that it can translate and the user chooses to use your translation extension, the extension is called to translate the document. The component selector dispatcher calls the DoTranslateFile fixnction.
Translating a document By the time the DoTranslateFile routine is called, the file specified by the dstDoc parameter already exists. The destination file has a data fork; it also has a resource fork if the flags field in the appropriate destination file type specification has the taDstDocNeedsResourceFork bit set.
The extension should open the destination file and fill it with the translated data.
Application Translation Extensions An Application Translation Extension is a file that is put in the extension folder. Most applications can open only a certain number of file types and can therefore declare those openable 3o file types by including an open resource in their resource forks. Some applications, however, need to determine dynamically which files they can open. This might be because those applications already contain data conversion capabilities using external filters. For these applications, the open resource alone is inadequate to specify which kinds of files they can open.

~' a ~~'~~8 A preferable way to generate dynamically a list of application's openable file types is to provide an application translation extension, a translation extension that can create a list of file types and identify files, but which performs no actual translation. Essentially, the application translation extension exists solely to generate the dynamic list of file types an application can open. The source list in the file translation list that an extension returns to the invention should contain a file type specification for each of those types; for the destination list of types, the file translation list should contain a single file type specification whose format field contains some arbitrary and otherwise unused file type. Suppose this destination file type is 'VOm'.
to The open resource in your application should then consist of a static list containing at least the value in the format field of the sole destination file type specification in the file translation list (that is, 'VOIIT). The net effect, as far as the invention is concerned, is that an application can open documents of type 'VOID' and that a translation extension exists that can translate some 15 other file types into type 'VOm'. As a result, that list of file types-which was generated dynamically-is now associated with an application.

Claims (21)

Claims
1. A method in a computer system for processing a document created previously by an application program which is not currently accessible by the computer system, comprising the steps of:
determining that the application program that created the document is not accessible by the computer system;
identifying application programs that are accessible by the computer system that are different from the application program that created the document and are capable of translating the document;
calculating translation paths from the document to the accessible application programs;
selecting one of the accessible application programs capable of translating the document; and using the selected application program to translate the document into a format acceptable to an accessible application program.
2. The method according to claim 1, wherein following using the selected program to translate the document, the method further comprises launching the accessible application program.
3. The method according to claim 2, further comprising opening the document.
4. The method according to claim 1, wherein following identifying programs, the method further comprises listing the accessible programs in order of fidelity.
5. The method according to claim 4, wherein the listing of programs includes an indicia indicating the preferred choice from among the programs based on fidelity.
6. The method according to claim 4, wherein the listing of programs includes an identification of translation paths.
7. The method according to claim 1, further comprising identifying the file format of the document.
8. The method of claim 1 wherein the computer system is connected to a communications link, and further comprising:
searching via the communications link for remotely located programs that a.re capable of translating the selected document.
9. The method of claim 1, further comprising determining that a currently operating application program is incapable of translating the document.
10. An apparatus for processing a document created previously by an application program which is not accessible by a computer system, comprising:
means for determining that the application program that created the document is not accessible to the computer system;
means for identifying application programs that are accessible by the computer system that are different from the application program that created the document and are capable of translating the document;
means for calculating translation paths from the document to the accessible application programs;
means for selecting one of the accessible application programs capable of translating the document; and means for using the selected application program to translate the document into a format acceptable to an accessible application program.
11. The apparatus according to claim 10, further comprising means for launching the accessible application program.
12. The apparatus according to claim 10, further comprising means for identifying the file format of the document.
13. The apparatus according to claim 10, further comprising means for opening the document.
14. The apparatus according to claim 10, further comprising means for listing the programs in order of fidelity.
15. The apparatus of claim 10 wherein the computer system is connected to a communications link, and further comprising:
means for searching via the communications link for remotely located programs that are capable of translating the selected document.
16. A computer usable information storage medium storing computer readable program code means for causing a computer to perform the steps of:
displaying a list of document files for selection by a user of the computer;
detecting a user's selection of a listed document file;
determining that the application program that created the selected document file is not accessible by the computer system;
identifying application programs accessible by the computer system that are:
different from the application program that created the document and are capable of translating the document file;
calculating translation paths from the document to the accessible application programs;
selecting one of the accessible application programs capable of translating the document file; and using the selected program to translate the document file into a format acceptable to an accessible application program.
17. A method for computer system processing of a document file created previously, comprising the steps of:
using the computer to display a list of document files;
selecting a document file;
determining whether the application program that created the document file is currently accessible by the computer system, and if not then identifying application programs accessible by the computer system that are different from the application program that created the document and which are capable of translating the document file;
calculating translation paths from the document to the accessible application programs;
selecting from the identified application programs an application program capable of translating the document file; and using the selected application program to translate file document file.
18. The method of claim 17 further comprising after translating the document file, using the selected program to open the document file.
19. The method of claim 17 wherein identifying programs comprises listing the identified programs in order of fidelity of translation.
20. An apparatus for processing a document ale created previously, comprising:
computer system memos for listing document files;
means for selecting a document file listed by the computer system means;
means for determining that the application program that created the document file is not accessible by the computer system means;
means for identifying application programs accessible by the computer system means that are different from the application program that created the document and that are capable of translating the document file;
means for calculating translation paths from the document to the accessible application programs;
means for selecting one of the identified application programs; and means for using the selected application program to translate the document file.
21. A computer usable information storage medium storing computer readable program code means for causing a computer to perform the steps of:
displaying a list of document files for selection by a user of the computer;
detecting a user's selection of a listed document file;
determining that the application program that created the selected document file is not accessible by the computer;
identifying application programs accessible by the computer that are different from the application program that created the document and that are capable of translating the document file;
calculating translation paths from the document to the accessible application programs; and using the selected application program to translate the document file.
CA002152788A 1992-12-28 1993-12-27 File translation system Expired - Lifetime CA2152788C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US99768892A 1992-12-28 1992-12-28
US997,688 1992-12-28
PCT/US1993/012585 WO1994015307A1 (en) 1992-12-28 1993-12-27 File translation system

Publications (2)

Publication Number Publication Date
CA2152788A1 CA2152788A1 (en) 1994-07-07
CA2152788C true CA2152788C (en) 2004-11-02

Family

ID=25544273

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002152788A Expired - Lifetime CA2152788C (en) 1992-12-28 1993-12-27 File translation system

Country Status (8)

Country Link
US (1) US5652876A (en)
EP (1) EP0676069B1 (en)
JP (3) JP3993227B2 (en)
AT (1) ATE164016T1 (en)
AU (1) AU5960594A (en)
CA (1) CA2152788C (en)
DE (1) DE69317443T2 (en)
WO (1) WO1994015307A1 (en)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
JP3684555B2 (en) * 1995-04-20 2005-08-17 富士ゼロックス株式会社 Document processing device
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
US6119130A (en) * 1996-03-28 2000-09-12 Oracle Corporation Method and apparatus for providing schema evolution without recompilation
US5832213A (en) * 1996-07-03 1998-11-03 Sun Microsystems, Inc. Flexible mounting and unmounting of user removable media
US5909568A (en) * 1996-09-03 1999-06-01 Apple Computer, Inc. Process and apparatus for transferring data between different file formats
US5893916A (en) * 1996-12-13 1999-04-13 Ncr Corporation Method of converting man pages to help topic files
JP4054398B2 (en) * 1997-03-24 2008-02-27 キヤノン株式会社 Information processing apparatus and method
USD419542S (en) * 1997-06-18 2000-01-25 Apple Computer, Inc. Utility window for a computer display screen
USD423483S (en) * 1997-06-18 2000-04-25 Apple Computer, Inc. Modal window for a computer display screen
USD406122S (en) * 1997-06-18 1999-02-23 Apple Computer, Inc. Set of windows for a computer display screen
US6134544A (en) * 1997-11-21 2000-10-17 Telefonaktiebolaget Lm Ericsson (Publ) Query supporting interface between a customer administrative system and database network elements in a telecommunications system
USD418122S (en) * 1998-04-08 1999-12-28 Apple Computer, Inc. Modal window for a computer display screen
USD427575S (en) * 1998-04-08 2000-07-04 Apple Computer, Inc. Modal window for a computer display screen
USD426525S (en) * 1998-05-01 2000-06-13 Apple Computer, Inc. Window for a computer display screen
USD424037S (en) * 1998-05-01 2000-05-02 Apple Computer, Inc. Window for a computer display screen
USD430885S (en) * 1998-05-04 2000-09-12 Apple Computer, Inc. Composite desktop for a computer display screen
USD431038S (en) * 1998-05-04 2000-09-19 Apple Computer, Inc. Window for a computer display screen
USD420341S (en) * 1998-05-04 2000-02-08 Apple Computer, Inc. Window for a computer display screen
USD427607S (en) * 1998-05-07 2000-07-04 Apple Computer, Inc. Composite desktop on a computer display screen
USD426207S (en) * 1998-05-07 2000-06-06 Apple Computer, Inc. Window for a computer display screen
USD432544S (en) * 1998-05-08 2000-10-24 Apple Computer, Inc. Composite desktop for a computer display screen
US6226658B1 (en) * 1998-06-19 2001-05-01 Hewlett-Packard Company Layout code tuning in universally readable document files
US6486897B1 (en) * 1998-09-29 2002-11-26 Apple Computer, Inc. Multi-repository display system using separate presentation, adaptation and access layers
US6230310B1 (en) 1998-09-29 2001-05-08 Apple Computer, Inc., Method and system for transparently transforming objects for application programs
US6532472B1 (en) * 1998-09-29 2003-03-11 Apple Computer, Inc. Persistent state database for operating system services
US6275987B1 (en) * 1998-11-05 2001-08-14 International Business Machines Corporation Adaptive, predictive progress indicator
USD424542S (en) * 1998-12-18 2000-05-09 Apple Computer, Inc. Composite desktop for a computer display screen
USD424038S (en) * 1998-12-18 2000-05-02 Apple Computer, Inc. Composite desktop for a computer display screen
USD423486S (en) * 1999-01-20 2000-04-25 Apple Computer, Inc. Window for a computer display screen
USD426208S (en) * 1999-01-20 2000-06-06 Apple Computer, Inc. Window for a computer display screen
USD426209S (en) * 1999-01-20 2000-06-06 Apple Computer, Inc. Window for a computer display screen
USD424039S (en) * 1999-01-20 2000-05-02 Apple Computer, Inc. Window for a computer display screen
USD424040S (en) * 1999-01-20 2000-05-02 Apple Computer, Inc. Window for a computer display screen
USD433392S (en) * 1999-03-04 2000-11-07 Apple Computer, Inc. Window for a computer display screen
USD425038S (en) * 1999-03-04 2000-05-16 Apple Computer, Inc. Window for a computer display screen
US6813621B1 (en) * 1999-08-12 2004-11-02 Hewlett-Packard Development Company, L.P. Processing graphic images having various file formats
US6470345B1 (en) * 2000-01-04 2002-10-22 International Business Machines Corporation Replacement of substrings in file/directory pathnames with numeric tokens
EP1132833A3 (en) * 2000-01-14 2005-08-03 Sun Microsystems, Inc. A method and structure for dynamic conversion of data
US7296217B1 (en) * 2000-05-05 2007-11-13 Timberline Software Corporation Electronic transaction document system
US6646658B1 (en) * 2000-05-17 2003-11-11 Sharp Laboratories Of America, Inc. Tagging data files with application information
US20020067364A1 (en) * 2000-06-22 2002-06-06 Lane John F. Method for browsing various intelligent design data abstractions
US7231050B1 (en) * 2000-07-21 2007-06-12 Harris Scott C Protection against unintentional file changing
JP2002049562A (en) * 2000-08-03 2002-02-15 Nec Access Technica Ltd Electronic mail service system
US7574346B2 (en) * 2000-10-30 2009-08-11 Microsoft Corporation Kernel emulator for non-native program modules
US7207031B2 (en) * 2001-03-01 2007-04-17 Wind River Systems, Inc. System and method for utilization of a command structure representation
EP1271342A1 (en) * 2001-04-30 2003-01-02 Sun Microsystems, Inc. Method for accessing database table columns
US6990497B2 (en) * 2001-06-26 2006-01-24 Microsoft Corporation Dynamic streaming media management
US6986018B2 (en) * 2001-06-26 2006-01-10 Microsoft Corporation Method and apparatus for selecting cache and proxy policy
US7171626B2 (en) * 2001-10-29 2007-01-30 Microsoft Corporation System and method for presenting the contents of a content collection based on content type
US7421438B2 (en) 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7769794B2 (en) 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7627552B2 (en) * 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US20040225508A1 (en) * 2003-05-05 2004-11-11 Urali Prem S. Reusable canonical e-business process
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
JP2007517281A (en) * 2003-11-28 2007-06-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data processing system
US7661101B2 (en) * 2004-01-15 2010-02-09 Parametric Technology Corporation Synchronous and asynchronous collaboration between heterogeneous applications
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US7788301B2 (en) * 2004-06-21 2010-08-31 Canon Kabushiki Kaisha Metadata driven user interface
US9552141B2 (en) * 2004-06-21 2017-01-24 Apple Inc. Methods and apparatuses for operating a data processing system
US20060101053A1 (en) * 2004-11-05 2006-05-11 Proctor Reginal R System and method for associating software programs with data files within a computer network
US7568182B2 (en) * 2004-12-20 2009-07-28 Microsoft Corporation Method and system for controlling software to facilitate cross-version collaboration of files
US7614016B2 (en) 2005-04-21 2009-11-03 Microsoft Corporation Multiple roots in navigation pane
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US7512833B1 (en) 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program
US7636883B2 (en) * 2005-05-18 2009-12-22 International Business Machines Corporation User form based automated and guided data collection
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
US7788290B2 (en) * 2007-03-27 2010-08-31 Microsoft Corporation Automatic file conversion to a target format
JP2009116432A (en) * 2007-11-02 2009-05-28 Branddialog Inc Application/data transaction management system, and program for the same
US10188049B1 (en) * 2008-08-06 2019-01-29 Cropmetrics Llc Customized crop modeling
US9178842B2 (en) * 2008-11-05 2015-11-03 Commvault Systems, Inc. Systems and methods for monitoring messaging applications for compliance with a policy
US20100122313A1 (en) * 2008-11-09 2010-05-13 Aspect9, Inc. Method and system for restricting file access in a computer system
US20110125733A1 (en) * 2009-11-25 2011-05-26 Fish Nathan J Quick access utility
US20130018950A1 (en) * 2011-07-15 2013-01-17 Microsoft Corporation Connecting a device to a meeting
US9218118B2 (en) 2012-09-11 2015-12-22 Apple Inc. Media player playlist management
US9558278B2 (en) 2012-09-11 2017-01-31 Apple Inc. Integrated content recommendation
US9507790B2 (en) 2012-11-06 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Providing file indexes and per-file viewing modes within a file management application
EP4213001A1 (en) 2012-12-06 2023-07-19 Samsung Electronics Co., Ltd. Display device and method of controlling the same
US10282088B2 (en) 2012-12-06 2019-05-07 Samsung Electronics Co., Ltd. Configuration of application execution spaces and sub-spaces for sharing data on a mobile tough screen device
USD789988S1 (en) * 2015-12-12 2017-06-20 Adp, Llc Display screen with graphical user interface
JP6859768B2 (en) * 2017-03-15 2021-04-14 富士ゼロックス株式会社 Information processing equipment and information processing programs

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686522A (en) * 1985-02-19 1987-08-11 International Business Machines Corporation Method of editing graphic objects in an interactive draw graphic system using implicit editing actions
US5065347A (en) * 1988-08-11 1991-11-12 Xerox Corporation Hierarchical folders display
NL8901827A (en) * 1989-07-14 1991-02-01 Oce Nederland Bv SYSTEM FOR PROCESSING FILE ORGANIZED DATA, MANAGEMENT MODULE USED THEREIN AND STORAGE MEDIA, PROVIDED WITH THE PROGRAMMING OF THIS MANAGEMENT MODULE.

Also Published As

Publication number Publication date
CA2152788A1 (en) 1994-07-07
AU5960594A (en) 1994-07-19
EP0676069B1 (en) 1998-03-11
EP0676069A1 (en) 1995-10-11
ATE164016T1 (en) 1998-03-15
DE69317443D1 (en) 1998-04-16
JP4145947B2 (en) 2008-09-03
JP2006127551A (en) 2006-05-18
JP3993227B2 (en) 2007-10-17
JPH08505723A (en) 1996-06-18
DE69317443T2 (en) 1998-10-08
JP2007293869A (en) 2007-11-08
US5652876A (en) 1997-07-29
WO1994015307A1 (en) 1994-07-07
JP3993215B2 (en) 2007-10-17

Similar Documents

Publication Publication Date Title
CA2152788C (en) File translation system
EP0640913B1 (en) Multilingual standard resources
US8046718B2 (en) System for extending the file system API
US5535323A (en) Method of and system for displaying context sensitive and application independent help information
US5220675A (en) Method and system for customizing a user interface in an integrated environment
JP4366065B2 (en) Resource file builder tool and computer readable code
US8689137B2 (en) Command user interface for displaying selectable functionality controls in a database application
US6433800B1 (en) Graphical action invocation method, and associated method, for a computer system
US6026416A (en) System and method for storing, viewing, editing, and processing ordered sections having different file formats
US6121968A (en) Adaptive menus
US5886699A (en) Method and system for transferring data to common destinations using a common destination list
US9875227B2 (en) Manipulating of labelled data for data entry in management applications
US5805811A (en) Dynamic electronic mail facility for applications executing in an integrated operating environment
EP2911044A1 (en) Rich drag drop user interface
US20060184880A1 (en) Discoverability of tasks using active content wizards and help files - the what can I do now? feature
US20080005752A1 (en) Methods, systems, and computer program products for generating application processes by linking applications
US5542086A (en) Document type metamorphosis in an object-oriented operating system having a graphical user interface
US5764983A (en) Method and system for efficiently creating a new file associated with an application program
US6046739A (en) System and method for organizing objects managed within a desktop
Torres Windows Admin Scripting Little Black Book
Libes et al. An Object-Oriented Tcl/Tk Binding for Interpreted Control of the NIST EXPRESS Toolkit in the NIST STEP Application Protocol Development Environment

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20131227