Patent Document

FIELD OF THE INVENTION 
   The invention relates to organizing information and particularly, though not exclusively, to the formatting and presentation of information using the hypertext markup language (HTML) on World Wide Web (Web) sites accessed via the Internet global communications network. 
   BACKGROUND 
   Many Web sites hosted on the Internet typically comprise an often large number of separate HTML files that are interpretable by Web browsers operating on client terminals connected to the Internet. The HTML files are rendered by the browser so that the information within the HTML file is appropriately formatted for presentation by the browser. 
   There is often a considerable overhead associated with the non-data or formatting protocols used by these HTML files. For example, in some cases, especially involving tables, formatting tags can represent 3 times the data of the actual information content of the file. 
   Cascading style sheets (CSS) have been proposed as a method of more conveniently formatting Web sites across HTML documents. However, the use of style sheets is limited due to the inherent limitations of the defined standard, which dictates only a limited number of possible styles. 
   In view of the above, an improved method of organizing information in the context of, for example, markup languages, which at least attempts to address these and other limitations associated with existing techniques, is clearly desirable. 
   SUMMARY 
   Presentation of information in HTML files is desirably enhanced by the use of separate scripting files, referenced from the HTML file, which uses information presented as variables in the HTML file. In this manner, a high degree of formatting flexibility can be achieved, while reducing the likelihood of errors in the HTML pages, improving ease of site maintenance, and standardising the “look and feel” of the site. Improvements in the network bandwidth required to browse sites organised in this way can also be achieved in favourable instances. 
   A method of providing information files structured in a format having a predefined language and syntax involves providing a source file in a primary language and a supporting auxiliary file in a secondary language. The source file defines source variables interpretable by statements in the auxiliary file, and includes a reference to these statements in the auxiliary file. As a result, the source file is interpretable as statements wholly in the primary language, via the reference to the auxiliary file. Related techniques involve creating, organising or interpreting such information files. Information files so created can be stored and provided for access by third parties on a server or through an accessible storage medium. 
   The primary language is a formatting or descriptive language, or more particularly one of the existing markup languages such as HTML or, more generally, XML. The secondary language is a scripting, interpreted or functional language able to interpret variables from the source HTML file, and use those variables to generate HTML formatting statements. An example of a suitable language is the Javascrip™ language. The source variables represent information particular to the HTML file, which the auxiliary file formats in a defined manner. The use of this arrangement is particularly advantageous if there are a large number of HTML pages containing corresponding data values that are appropriately formatted in a common way by a single auxiliary Javascript™ file. 

   
     DESCRIPTION OF DRAWINGS 
       FIG. 1  is a schematic representation of a server connected to the Internet and serving various client terminals, in which the server is able to host information files. 
       FIG. 2  is a flowchart of the steps which occur in interpreting information files. 
       FIG. 3  is a schematic representation of structure and components of the information files referred to in  FIG. 2 . 
       FIG. 4  is a listing of the contents of a first example HTML file. 
       FIGS. 5A and 5B  is a listing of the contents of a first example Javascript™ file. 
       FIGS. 6A and 6B  is an equivalent listing of the contents of the first example HTML file of  FIG. 4 , after the reference to the Javascript™ file of  FIGS. 5A and 5B  has been taken into account to provide HTML formatting information to the data st ored in the HTML file. 
       FIG. 7  is a listing of the contents of a second example HTML file. 
       FIGS. 8A and 8B  is a listing of the contents of a second example Javascript™ file. 
       FIGS. 9A and 9B  is an equivalent listing of the contents of the second example HTML file of  FIG. 7 , after the reference to the Javascript™ file of  FIGS. 8A and 8B  has been taken into account to provide HTML formatting information to the data stored in the HTML file. 
       FIG. 10  is a representation rendered by a compatible Web browser, of the first and second example HTML files of  FIGS. 4 and 7 , in conjunction with the respective Javascript™ files of  FIGS. 5A and 5B , and  FIGS. 8A and 8B . 
       FIG. 11  is a schematic representation of a computing system appropriate for the use of the server or client terminals of  FIG. 1 , and with which the information files described herein can be generated, stored, and interpreted. 
   

   DETAILED DESCRIPTION 
   A technique for providing HTML files that use the Javascript™ scripting language to provide formatting information is described. 
     FIG. 1  represents the context in which the HTML and Javascript™ files are used. Client computer systems  110  connect to the Internet  120 , to which the server  130  is also connected. The server  130  has stored a source HTML file  140  and a supporting auxiliary Javascript™ file  150 . In practice, various HTML files  140  are hosted and can refer to a smaller number (or even a single) Javascript™ file  150 . 
     FIG. 2  represents the steps involved in providing a HTML file  140  with a supporting Javascript™ file  150 . First, the HTML file  140  is created in step  210 , containing statements necessary for interpretation as an HTML file. Various source variables are defined within the HTML file  140 , relating to the relevant data conveyed by the HTML file  140 . A supporting auxiliary Javascript™ file  150  is then created in step  230 . In the Javascript™ file  150 , step  240  includes a single function in which various Javascript™ statements are defined to generate HTML formatting statements. These statements use source variables defined in the HTML file  140 . In step  250 , a reference is included in the HTML file  140  where appropriate to the formatting function earlier defined in the Javascript™ file  150 . 
   The result is that when the HTML file  140  is interpreted, by a Web browser, the HTML file  140  calls the formatting function of the Javascript™ file  150  to generate regular HTML statements involving the source variables within the HTML file  140 . This outcome and the benefits of this arrangement are illustrated by the following example given in  FIGS. 3 to 5 . 
     FIG. 3  represents in overview the structure and components of the HTML and Javascript™ files  140 ,  150 , as described above. As noted, the HTML file  140  contains:
         a reference  342  to the Javascript™ file  150     various defined source variables  344     a function call  346  to the Javascript™ file  150         
   The Javascript™ file  150  contains a formatting function  352  which uses the defined source variables in the HTML file  140 . The reference  342  establishes a link between the two files  140 ,  150 , while the function call  346  triggers execution of the function  352  defined within the Javascript™ file  150 . 
   The above described architecture of the HTML file  140  and Javascript™ file  150 , and their interaction with each other, is now described with reference to two particular examples. 
   For both examples, the HTML file  140  is entitled navjs.html, and the Javascript™ file is entitled idpnav.js. An equivalent file listing is given for both HTML files  140 , once expanded with the formatting information supplied by the Javascript™ files  150 . 
   Though each example is described in turn below, the following comments are made in respect of the differences between these two examples. 
   The first example uses a series of Javascript™ functions in the HTML file  140  of  FIG. 4 , while the second example uses a single, more complicated, Javascript™ function in the HTML file  140  of  FIG. 7 . In the first example, a number of relatively small functions in the Javascript™ file  150  of  FIG. 4  have defined functions in the task of information formatting. By contrast, in the second example, the single function of the Javascript™ file  150  of  FIG. 7  understands the structure of the (in this case, three) arrays which are passed to the Javascript™ file. 
   The first example is now described directly below with reference to  FIGS. 4 ,  5 A and  5 B, and  6 A and  6 B. 
     FIG. 4  illustrates the contents of the HTML file  140 , which contains HTML statements. The HTML statements include source variable definitions, as well as reference to an external file (the Javascript™ file  150 ) and formatting functions contained within that Javascript™ file  150 . The HTML file  140  refers to the Javascript™ file  150 , titled idpnav.js, after the first &lt;SCRIPT&gt;tag. This is the auxiliary file. After the second &lt;SCRIPT&gt;tag, a number of source variables  344  are defined as arguments of references  346  to various Javascript™ functions (in this case, _B( ); _L( ); _S( ); _H( ); and _E( )) with which the respective arguments or source variables  344  are associated. 
     FIGS. 5A and 5B  jointly list the contents of the Javascript™ file  150 , idpnav.js, as referred to by the HTML file  140  of  FIG. 4 . This Javascript™ file defines various formatting functions  352 , described below, which are referenced by the HTML file  140 , as noted above. These functions  352  each defines various specific formatting functions which use the source variables  344  which are included in the HTML file  140  as arguments to these functions. 
   The functions each define includes various document.writeln or output statements that generate strings which are valid HTML statements for inclusion in the HTML file  140 . 
   An author of the HTML file  140  is familiar with the operation of the various (five) formatting functions  352  included in the HTML file  140 . These are:
         _B(tm) for “Begin Menu”. The “tm” parameter is the white margin left at the top of the menu.   _L(i, txt, url) for “Menu Link Item”. The “i” parameter is the indent (1,2 or 3), the “txt” is the text that is displayed in the menu and the “url” is the link information—what URL is linked to if the user “clicks” this menu item.   _H(i, txt) for “Menu Highlighted Item”. The “i” is again the indent and the “txt” is the text that is displayed—and highlighted. This should represent the current page (thus there is no link).   _S(i) for “Menu Spacer”. The “i” is again the indent. This function just leaves a “blank line” in the menu.   _E( ) for “End of Menu”.       

   The JavaScript™ file  150  has various other functions (which can be identified as they are all in lower case rather than upper case) besides the five main functions  352  referenced by the HTML file  140 . The only functions that need concern an author of the HTML file  140  are the formatting functions  352  discussed above that are included in the HTML file  140 , and which are in upper case in the Javascript™ file  150 . 
     FIGS. 6A and 6B  jointly represent the HTML file  140  of  FIG. 4  when the references  346  to the formatting functions  352  is replaced by the equivalent HTML statements generated by the formatting functions  352  of the Javascript™ file  150  for the particular source variables  344  defined in the HTML file  140  as arguments to the formatting functions  352 . 
   The second example is now described directly below with reference to  FIGS. 7 ,  8 A and  8 B and  9 A and  9 B, in similar terms as the first example. 
     FIG. 7  illustrates the contents of the HTML file  140 , which contains various HTML statements. The HTML statements include source variable definitions, as well as reference to an external file (the Javascript™ file  150 ) and the formatting function contained within that file  150 . The HTML file refers to the Javascript™ file  150 , titled idpnav.js, after the first &lt;SCRIPT&gt;tag. This is the auxiliary file. After the second &lt;SCRIPT&gt;tag, a number of source variables  344  are defined as text strings or text string arrays. Standard HTML statements follow, leading to a reference  346  to the Javascript™ function getNavigator( ) after the third &lt;SCRIPT&gt;tag. 
     FIGS. 8A and 8B  jointly list the contents of the Javascript™ file  150 , titled idpnav.js, as referred to by the HTML file  140  of  FIG. 4 . This Javascript™ file  150  defines a single formatting function  352 , titled getNavigator( ), which was referenced by the HTML file  140 , as noted above. The getNavigator( ) function  352  defines various internal variables or strings based on the source variables of the HTML file  140 , and includes various document.writeln or output statements that generate strings which are valid HTML statements for inclusion in the HTML file  140 . These strings are variously formed from possible combinations involving string text, internal string variables and source variables. Such output statements may be provided by repetitive (for loops) or conditional (if statement) inclusion in the HTML file  140 . 
     FIGS. 9A and 9B  jointly represent the HTML file  140  of  FIG. 4  when the reference to the getNavigator( ) function  352  is replaced by the equivalent HTML statements generated by the getNavigator( ) function  352  of the Javascript™ file  150  for the particular source variables  344  defined in t he HTML file  140 . 
   The “expanded” HTML listings in  FIGS. 6A and 6B , and  FIGS. 9A and 9B  are essentially equivalent to each other. For the two examples presented, the HTML file  140  of  FIG. 4  and the Javascript™ file  150  of  FIGS. 5A and 5B  represent HTML statements that are closely similar to HTML statements represented by the corresponding combination of HTML file  140  of  FIG. 7  and Javascript™ file  150  of  FIGS. 8A and 8B . There are minor differences between  FIGS. 6A and 6B  and  FIGS. 9A and 9B , but these are cosmetic in nature. Accordingly, both examples render in a similar manner in a Javascript™-enabled HTML Web browser application such as Netscape Navigator™. 
     FIG. 10  represents the HTML file  140  of FIG.  4 / 7 , when interpreted or rendered by a Web browser (in this case Netscape Navigator™) with reference to the Javascript™ file  150  of FIGS.  5 A and  5 B/ FIGS. 8A and 8B . The Web browser is effectively rendering the equivalent HTML statements of FIGS.  6 A and  6 B/ FIGS. 9A and 9B . 
   The implementation provided in the first example is generally preferred over that provided in the second example. Interpretation of arrays in the Javascript™ file  150  is avoided, and the menu information appears in the HTML file  140  where it also appears in the rendered document, illustrated in  FIG. 10 . In the two examples given, the first example occupies approximately 400 bytes less storage capacity compared with the second example. 
   With reference to the two examples described above, the expanded notional HTML files of  FIGS. 6A and 6B , and  FIGS. 9A and 9B  can be represented more compactly in the form of the HTML file  140  of  FIG. 4  or  FIG. 7 . The HTML file  140  relies on a single supporting Javascript™ file  150  of  FIGS. 5A and 5B , or  FIGS. 8A and 8B . This Javascript™ file  150  includes the necessary formatting information to generate expanded notional HTML statements with reference to information in the HTML file  140 . 
   By extension from the two examples given above, a family of similar HTML pages can more conveniently maintained and formatted in a standard manner with reference to a single supporting Javascript™ file of the type described. As Web browsers typically cache accessed files for later access, there can be bandwidth savings if the browser does not need to repetitively access similar formatting information for a number of HTML files that is now conveniently included in a single Javascript™ file. 
   The HTML and Javascript™ files described in the above examples are used in conjunction with servers  130  and client computer terminals  110 . These devices  110 ,  130  are both representative of a general purpose computer system  1100  of  FIG. 11 , which is generically described below in relation to a computing system  1100 . The above described process can be implemented using a computer program product in conjunction with a computer system  1100  as shown in  FIG. 11 . In particular, the process can be implemented as a computer software program, or some other form of programmed code, executing on the computer system  1100 . 
   As noted,  FIG. 11  is a schematic representation of the computer system  1100  which can be used to perform steps in a process which implements the techniques described herein. The computer system  1100  is provided for the purpose of executing computer software which is programmed to assist in performing the described techniques. This computer software executes under a suitable operating system installed on the computer system  1100 . 
   The computer software involves a set of programmed logic instructions that are able to be interpreted by the computer system  1100  for instructing the computer system  1100  to perform predetermined functions specified by those instructions. The computer software can be an expression recorded in any language, code or notation, comprising a set of instructions intended to cause a compatible information processing system to perform particular functions, either directly or after conversion to another language, code or notation. 
   The computer software is programmed by a computer program comprising statements in an appropriate computer language. The computer program is processed using a compiler into computer software which has a binary format suitable for execution by the operating system. The computer software is programmed in a manner which involves various software components, or code means, that perform particular steps in the process of the described techniques. 
   The components of the computer system  1000  include: a computer  1120 , input devices  1110 ,  1115  and video display  1170 . The computer  1120  includes: processor  1140 , memory module  1150 , input/output (I/O) interfaces  1160 ,  1165 , video interface  1145 , and storage device  1155 . 
   The processor  1140  is a central processing unit (CPU) that executes the operating system and the computer software executing under the operating system. The memory module  1150  include random access memory (RAM) and read-only memory (ROM), and is used under direction of the processor  1140 . 
   The video interface  1145  is connected to video display  1190  and provides video signals for display on the video display  1170 . User input to operate the computer  1130  is provided from input devices  1110 ,  1115  consisting of keyboard  1110  and mouse  1115 . The storage device  1155  can include a disk drive or any other suitable non-volatile storage medium. 
   Each of the components of the computer  1120  is connected to a bus  1130  that includes data, address, and control buses, to allow these components to communicate with each other via the bus  1130 . 
   The computer system  1100  can be connected to one or more other similar computers via a input/output (I/O) interface  1165  using a communication channel  1185  to a network  1180 , represented as the Internet. 
   The computer software program may be provided as a computer program product, and recorded on a portable storage medium. In this case the computer software program is accessed by the computer system  1100  from the storage device  1162 . Alternatively, the computer software can be accessed directly from the network  1180  by the computer  1120 . In either case, a user can interact with the computer system  1100  using the keyboard  1110  and mouse  1115  to operate the programmed computer software executing on the computer  1120 . 
   The computer system  1100  is described for illustrative purposes: other configurations or types of computer systems can be equally well used to implement the described techniques. The foregoing is only an example of a particular type of computer system suitable for implementing the described techniques. 
   It is understood that various alterations and modifications can be made to the techniques and arrangements described herein, as would be apparent to one skilled in the relevant art.

Technology Category: 3