Abstract:
Systems and methods are provided that build and publish online documents. Source files of the online documents are automatically built into a book and published on a web site for review. A report regarding the build is provided to the author of the documents. The author can use the report to determine whether the build was successful, and whether manual intervention is necessary. The books are also archived.

Description:
FIELD OF THE INVENTION 
       [0001]    One embodiment is directed generally to document publication, and in particular to the automatic generation and publication of online documentation. 
       BACKGROUND INFORMATION 
       [0002]    Teams of technical documentation writers often author content on a daily basis and this is often a full-time job for them. To get that content reviewed and published, writers often create “books.” A “book” refers to a group of electronic files that, together, create an electronic version of a traditional book. For example, a book may include written content, graphics, a glossary, an index, cover art, spine art, etc. However, to get these files in the form of a book writers need to perform various tasks, such as the creation of Hypertext Markup Language (HTML), Portable Document Format (PDF), and Online Help versions of the book, copying of source and output files, running tests against the output files to ensure quality, posting the book for review in the context of a larger online library of books, and publishing a production-ready archive for online publication, backup and recovery purposes. The author typically performs this process manually. However, it is error-prone and can take a large amount of time. If it is not performed, however, the reviewable copies of the book get outdated and reviewers spend a lot of time reviewing old content. Additionally, testing the books late in a release cycle can lead to product release delays. 
       SUMMARY OF THE INVENTION 
       [0003]    One embodiment is a method for building and publishing online documents that comprises reading source files of the online documents, building the source files into a book, publishing the book on a web site, and creating a report describing the result of building the source files into a book. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1A  illustrates a hierarchy of a documentation library; 
           [0005]      FIG. 1B  illustrates an example user interface (UI) depicting the source files; 
           [0006]      FIG. 2  illustrates a system for building and publishing an online documentation library; 
           [0007]      FIG. 3  is a block diagram of a system or computer that can implement embodiments of the invention. 
           [0008]      FIG. 4  illustrates a flow diagram of a method for building and publishing an online documentation library; 
           [0009]      FIG. 5  illustrates an example UI seen by the user when selecting a library; 
           [0010]      FIG. 6  illustrates an example UI seen by the user when selecting books within the library for building; 
           [0011]      FIG. 7  illustrates an example UI of an HTML book; 
           [0012]      FIG. 8  illustrates an example UI of a PDF book; 
           [0013]      FIG. 9  illustrates and example UI of an Online Help book; 
           [0014]      FIG. 10  illustrates an example UI of a build in progress report; 
           [0015]      FIG. 11  illustrates an example UI of a review site for a book; 
           [0016]      FIG. 12  illustrates an example UI of a library build report; 
           [0017]      FIG. 13  illustrates an example UI of a build series report for a book; 
           [0018]      FIG. 14A  illustrates an example UI of a detailed build report for an individual book; 
           [0019]      FIG. 14B  illustrates an additional example UI of a detailed build report for an individual book; 
           [0020]      FIG. 14C  illustrates an additional example UI of a detailed build report for an individual book; and 
           [0021]      FIG. 15  illustrates an example UI of an email notification of a build. 
       
    
    
     DETAILED DESCRIPTION 
       [0022]      FIG. 1A  illustrates a hierarchy of a documentation library. When authors produce content, they work with a word processing application to produce source files  101 . These source files  101  may include book chapters, tables of contents, indices, cover art, book spine, etc. By way of example and not limitation, the source files  101  may be Adobe Framemaker® files. The source files  101  are compiled, or built, into a book  102 . Books are singular documents that are published in a common format readable by a web browser. By way of example and not limitation, books  102 - 104  may be HTML files, PDF files, or Online Help files for Oracle® Help for Java®, Java® Help, WebHelp, or Microsoft® HTML Help. Books  102 - 104  are assembled together to create a library  105 . However, a book may be included in multiple libraries. In general, library  105  can include information regard the location of files, properties of that group of files, attributes, and parameters controlling access and build procedures. Library  105  can then be posted publicly, as on the web, to be offered as an information resource.  FIG. 1B  illustrates and example UI  110  depicting the source files as seen by an author. 
         [0023]      FIG. 2  illustrates a system for building and publishing an online documentation library in accordance with an embodiment. A build server  200  is connected to source server  210 , web site server  220 , and archive server  230 . An author uses console  250  to access web site server  220  via network  240  and initiates a document build by the build server  200 . Alternatively, the build may be initiated as a regularly scheduled event. When the author has selected the book or library to build, build server  200  copies the sources files  101  from the source server to build server  200 . After running a quality analysis check on the documents, build server  200  prepares a build report and publishes the report on web site server  220 . The build server  200  then archives the documents in the archive server  230  and publishes the documents on web site server  220 . The author then uses console  250  again to access web site server  220  in order to review the build report. A reviewer uses console  260  to access web site server  220  via network  240  in order to review documents. One of ordinary skill in the art will recognize that build server  200 , source server  210 , web site server  220 , and archive server  230  may be implemented as services on the same physical server. 
         [0024]      FIG. 3  is a block diagram of a system or computer  10  that can implement embodiments of the invention. System  10  includes a bus  12  or other communication mechanism for communicating information, and a processor  22  coupled to bus  12  for processing information. Processor  22  may be any type of general or specific purpose processor. System  10  further includes a memory  14  for storing information and instructions to be executed by processor  22 . Memory  14  can be comprised of any combination of random access memory (“RAM”), read only memory (“ROM”), static storage such as a magnetic or optical disk, or any other type of computer readable media. In one embodiment, memory  14  stores an operating system  15  and a software application  16  that implements the functionality of build server  200 , described in greater detail below. System  10  further includes a communication device  20 , such as network interface card, to provide access to a network. Computer-readable media may be any available media that can be accessed by processor  22  and includes both volatile and nonvolatile media, removable and non-removable media, and communication media. Communication media may include computer readable instructions, data structures, program modules or other transport mechanism and includes any information delivery media. System  10  is further coupled via bus  12  to a display  24 , such as a Liquid Crystal Display (“LCD”), for displaying information to a user. A keyboard  26  and a cursor control device  28 , such as a computer mouse, is further coupled to bus  12  to enable a user to interface with system  10 . 
         [0025]      FIG. 4  illustrates a flow diagram of the functionality of build server  200  in accordance with an embodiment when automatically generating and publishing online documents. In one embodiment, the functionality of the flow diagram of  FIG. 4  is implemented by software stored in memory and executed by a processor. In other embodiments, the functionality can be performed by hardware, or any combination of hardware and software. Build server  200  prompts the user to select a library and a book or books within that library to build ( 400 ). Alternatively, the user may opt to build the entire library.  FIG. 5  illustrates an example UI  501  seen by the user when selecting a library, and  FIG. 6  illustrates an example UI  601  seen by the user when selecting books within the library for building. Still alternatively, the build server may initiate a build as a regularly scheduled event. For example, a book or library may be scheduled to be rebuilt every night. During the build process, build server  200  reads the source files from source server  210  ( 405 ), and verifies that the source files comply with defined parameters ( 410 ). For example, this verification may include verifying that the volume and cover spine comply with defined parameters, or that the chapters, color and graphics are consistent with defined parameters. The build process concludes by generating compiled books from the source files ( 415 ). These books may include HTML books, PDF books, and online Help books.  FIG. 7  illustrates an example UI  701  of an HTML book with links  703 .  FIG. 8  illustrates an example UI  801  of a PDF book.  FIG. 9  illustrates an example UI  901  of an Online Help book. During the build process, there may also be displayed a build-in-progress report that illustrates how much of the build has been completed, such a whether the build process has completed the HTML book, PDF book, or Online help book.  FIG. 10  illustrates an example UI  1001  of a build-in-progress report. 
         [0026]    Build server  200  may archive the books by creating an archivable file, such as a ZIP file, testing the integrity of the archivable file, and sending the archivable file to archive server  220  for storage and publication ( 420 ). Build server  200  publishes the books on web server  230  so that the books may be reviewed by other interested parties ( 425 ).  FIG. 11  illustrates an example UI  1101  of a review site for a book published on web server  230 . Build server  200  may further perform a quality analysis on the books created ( 430 ). For the HTML books, this quality analysis may include, for example, whether there are any defects in the embedded links, the file names, the file order, the titles of the documents, the anchors within the documents, and the Uniform Resource Identifiers (URIs). The analysis may further include, for example, determining whether the print date, copyright statement, legal text, and part numbers are included in the documents. For the PDF books, quality analysis may include, for example, determining whether the documents include the PDF version, an appropriate title, an author, a copyright statement, article threading, and table of contents bookmarks. The quality analysis may further include, for example, ensuring that the documents open to page 1, that there are no blank pages, and that all the pages are the same size. One of ordinary skill in the art will recognize that the quality analysis may be a proprietary program, or a commercially available program initiated by the build server. For example, Xenu&#39;s Link Sleuth detects broken links among HTML documents. 
         [0027]    When the quality analysis concludes, build server  200  generates reports with respect to the library and individual book builds ( 435 ).  FIG. 12  illustrates an example UI  1201  of a library build report, which may include the document ID, part number, and title column  1210 , build date column  1220 , build status column  1230 , and a build report column  1240  with links  1250  to the build details for each book in the library.  FIG. 13  illustrates an example UI  1301  of a build history for an individual book, which may include a build date column  1310 , build status column  1320 , and a details column  1330  with links  1340  to the build details.  FIGS. 14A ,  14 B, and  14 C illustrate an example UI  1401  of a detailed build report. The detailed build report may contain specific information about the build and resulting documents, such as, for example, the results of the HTML quality analysis, the PDF quality analysis, the volume and cover spine verification, the chapters, graphics and color verification, and the archivable file verification. Furthermore, the detailed build report may include an overview noting definitive violations of the quality analysis, as well as those triggered violations that may require human inspection. Build server  200  then publishes the reports on web server  230  ( 440 ), and provides the user with a link to the published reports ( 445 ). An email notification may also be sent to the author.  FIG. 15  illustrates an example UI  1501  of a an email notification notifying the author about the build. As previously mentioned, this process may be automated to execute on a regular interval, for example, nightly, and may be performed for a book, a library of books, and multiple libraries. 
         [0028]    By automating the build and archive process, authors are left with more time to produce content. Furthermore, authors are notified of critical errors in their book as they are introduced, not at the end of a long release. Because the review sites are always up-to-date with the latest version, reviewers may rest assured that they are not looking at stale or incorrect information. 
         [0029]    Some embodiments of the invention have been described as computer-implemented processes. It is important to note, however, that those skilled in the art will appreciate that the mechanisms of the invention are capable of being distributed as a program product in a variety of forms. The foregoing description of example embodiments is provided for the purpose of illustrating the principles of the invention, and not in limitation thereof, since the scope of the invention is defined solely by the appended claims.