Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.


  1. Advanced Patent Search
Publication numberUS7349918 B2
Publication typeGrant
Application numberUS 10/611,509
Publication dateMar 25, 2008
Filing dateJun 30, 2003
Priority dateJun 30, 2003
Fee statusPaid
Also published asUS20040267775, WO2005006135A2, WO2005006135A3, WO2005006135B1
Publication number10611509, 611509, US 7349918 B2, US 7349918B2, US-B2-7349918, US7349918 B2, US7349918B2
InventorsLuis Azcona, Melinda K. Pollock, Robert A. Sorensen, Art Tramutolo
Original AssigneeAmerican Express Travel Related Services Company, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method and system for searching binary files
US 7349918 B2
In the past, it has not been possible to perform searches within documents stored in a proprietary, binary format, such as Microsoft Word documents and Adobe Acrobat documents. The present invention solves the problem by storing the binary file as a field in a record of the database. Then, the binary file is translated into a text format, which is searchable within the database. Thereafter, a user of the database is able to search within binary files by performing a search of the translated file.
Previous page
Next page
1. A method for facilitating a search of a database for binary content corresponding to a text string, said method comprising:
creating a record in said database;
storing said binary content within a binary large object field of said record, wherein said binary content does not contain searchable text and, wherein said binary content was created from text saved to a file of at least one of: a word processing program, a spreadsheet program, a presentation program, and a document layout program;
converting each binary set of said binary content directly into each corresponding ASCII value to form text content;
storing said text content within a character large object field of said record;
searching for said text string within said character large object field; and,
downloading, from said database, said binary content to a computer based on said searching step.
2. The method of claim 1, wherein said converting step comprises:
determining a file format of said binary content; and,
converting said binary content to said text content based on said file format.
3. The method of claim 1, wherein said converting step comprises:
determining a file format of said binary content; and,
converting said binary content to said text content based on said file format by applying an algorithm according to said file format.
4. The method of claim 1, wherein said searching step comprises:
receiving search criteria, wherein said search criteria comprises said text string;
constructing a query based on said search criteria;
executing said query to locate data within said character large object field;
matching said search criteria to produce search results; and,
retrieving said binary content from said binary large object field corresponding to said character large object field based on said search results.
5. The method of claim 4, further comprising parsing said binary content according to said search criteria.
6. The method of claim 1, wherein said searching step comprises searching for said text string via a browser application.
7. The method of claim 1, wherein said downloading step comprises:
saving said binary content to a file; and,
providing a hyperlink to said file.
8. The method of claim 1, wherein said downloading step comprises downloading said binary content to said computer which is remote from said database.

This application generally relates to a computer database, and more particularly, to a method and system for facilitating full-text searching of binary files.


A database is a collection of information that is stored in such a way that a computer program can quickly find desired data. Databases are used for many purposes throughout the world such as, for example, to store information regarding financial accounts, contact information, parts for specific products, court cases, and a multitude of other different uses. It is sometimes desirable to have a database that is accessible by many people at once such that multiple people can access data simultaneously. With the growth of the Internet, it has also become desirable for people in remote locations to be able to access data.

One problem with prior art databases is that, for a database to be used on a global basis, it was often necessary to create a “local copy” of the database in the remote location. For example, a database system may be stored in New York. However, it is desirable to have the database system accessed by people in London, England. Accessing a database on a global basis often becomes slow. Therefore, databases of the prior art relied on a local copy of the database being used in England and other sites that are far from the location of the database. Some globally used databases required the use of multiple local copies because of the number of users in different areas of the world. The local copy is periodically synchronized such that the information in the local database is the same as the information in the master database. However, between synchronizations, the data in the local database may be different than data in the master database. Such a situation may occur when either the master database is changed or when the local database is changed. Because certain databases contain very important information that can be changed by certain users, it is desirable to have a database that is accessible worldwide and does not incorporate the use of local databases.

One other problem with prior art databases is the lack of ability to search certain types of files. Databases typically contain records and fields. Fields contain individual pieces of information, such as a part number, or contact address, while a record is a complete set of fields. The various fields may be configured to store numeric information or text information, or a variety of other specialized types of information, such as date/time. Certain types of fields contain large amounts of text. Each of the fields can be searched to find records, wherein the fields meet certain criteria for the record request.

In certain instances, it is desirable to place existing information in a database for easy searching and access. However, the existing information may be in a proprietary binary format (i.e., a format that is computer-readable but not directly human-readable). Exemplary binary file formats include files created by Microsoft Word, WordPerfect, and Adobe Acrobat. In the prior art, it was not possible to perform a search on those types of binary files, as opposed to traditional files containing only text. It is desirable to have greater search capabilities of databases, including searching of binary files.


The present invention solves the problems in the prior art by providing for the searching of binary files. A binary file is placed in the database and the binary file is also processed such that the text information is extracted. The extracted text is then placed in another field of the database. A user is then able to search the extracted text. When the user wishes to access the information in the record, the user is able to open the binary file.

The present invention also provides a method for searching a database. Once a query is entered, a text field of the database is searched. The text field contains a text-only translation of a binary file. The results of the query are presented to the user such that a user is able to download or view the binary file, which is contained in the same database as the text-only translation.


A more complete understanding of the present invention may be derived by referring to the detailed description and claims when considered in connection with the Figures, where like reference numbers refer to similar elements throughout the Figures, and:

FIG. 1 presents a block diagram illustrating an exemplary system of the present invention;

FIG. 2 presents a flowchart illustrating an exemplary method for the creation of a database record containing a binary file; and

FIG. 3 presents a flowchart illustrating an exemplary method for searching a database.


The present invention may be described herein in terms of various functional components and various processing steps. It should be appreciated that such functional components may be realized by a variety of different hardware or structural components configured to perform the specified functions. For purposes of illustration only, exemplary embodiments of the present invention will be described herein. Further, it should be noted that, while various components may be suitably coupled or connected to other components, such connections and couplings may be realized by a direct connection between components, or by a connection through other components and devices.

With reference to FIG. 1, a block diagram illustrating an embodiment of the present invention is shown. Database Server 102 is the server computer that houses the database to be accessed globally. Web Server 104 is a web server that operates in a manner known in the art to direct users to the database server. Client computer 106 is a typical personal computer that can be used to access the Internet 108 using, e.g., a web browser such as Internet Explorer, Netscape Navigator, Opera, Mozilla, and the like.

When a user desires to access the database, the user uses a web browser on client computer 106 to access the Internet 108. Using the correct URL, the user is able to authenticate himself and access database server 102 through web server 104.

As described above, full-text searching is a feature that is very desirable. With such a feature, a user is able to search lengthy text, such as user manuals, court opinions, and the like, for desired phrases. However, such a process does not adequately function for files stored in proprietary binary formats, such as those by word processors such as Microsoft Office and WordPerfect, spreadsheets such as Microsoft Excel, presentation programs such as Microsoft PowerPoint, and document layout programs such as Adobe Acrobat. Because those types of files are stored in a binary format, it is not easy to search the contents of files created by those programs for text phrases.

With reference to FIG. 2, a flow chart illustrating the creation of a full-text database record of the present embodiment is shown. As is known in the art, databases are typically organized into tables, where each table contains a variety of records organized into fields. A record is a set of related information, such as all information related to a customer. A field is a specific category of information. For example, contact information may contain a field for a name, a field for an address, and a field containing a telephone number.

Certain databases include the ability to contain a Character Large Object (CLOB), which is a large amount of text data. That text data can be queried, such that text phrases can be found within the CLOB. However, the database cannot contain a Binary Large Object (BLOB) file in the CLOB. Therefore, when attempting to load information into an embodiment of the present invention, if the format of the information includes a BLOB, the information is translated such that it only contains text information (step 202), and can thus be stored as a CLOB in the database (step 203). Such a translation step may occur in a variety of ways now known or developed in the future. For example, a translating program can be accessible by an embodiment of the present invention. The translating program may be preconfigured to be able to translate a variety of different files into text files. The BLOB is also stored in the database, such that the BLOB can be opened in its native format (step 204). By storing the BLOB in its native format in the database, the BLOB can be downloaded and opened in its native program by a user.

With reference to FIG. 3, a flowchart illustrates the exemplary actions taken when a user searches a database that is set up as described above. If a user desires to perform a full-text search of the database, the CLOB is the field that is being searched. A user may start a full-text search in one of a variety of different manners. For example, there may be a drop-down box, push button, check-box, or other type of graphical control that can be used by the user to indicate that he wishes to perform a full-text search. If any other type of search is desired, the records are scanned in the typical manner known in the art. The user enters in his desired query (step 302). For example, the user may desire to search for documents regarding public-key encryption. Instead of merely searching the title of the documents, the user is able to search the text to find any document that contains the text “public-key encryption.” The database is searched (step 304) and the user is presented with the search results (step 306). The results of the search may be presented in a variety of ways known in the art. In an embodiment of the present invention, the search results are in a format readable by a web browser. The search results may be placed in a table summarizing the results. In the alternative, search results may be formatted so that each returned result is on a single page.

The user then selects the record he wishes to view. The selection may occur in any number of different methods known in the art. For example, a user may be able to click (using a pointer controlled by a mouse) a push button or check box associated with the record noting that the user wishes to few a particular record.

The various fields of the selected record are then examined and parsed by an embodiment of the present invention (step 308). If there is information contained in the CLOB field, the BLOB field is checked to determine if it is empty. This comparison can be performed in a variety of manners. For example, a particular field can be compared to a NULL value. If the field is not equal to the NULL value, it is not empty. In the alternative, a database program may respond to a command that determines if a field is empty.

If the BLOB field contains data, an indication can be made to the user. For example, a text message can be displayed stating that there is a binary file available. Thereafter, the user can download the binary file stored in the BLOB field (step 310). The download may occur in a variety of manners known in the art. For example, the binary file may be placed at a specific location. Then a hyperlink to that location can be created and displayed to the user. Thereafter, a user can access the file by clicking on the hyperlink, triggering a download of the file in question.

The present invention is described herein with reference to block diagrams, flowchart illustrations of methods, systems, and computer program products according to various aspects of the invention. It will be understood that each functional block of the block diagrams and the flowchart illustrations, and combinations of functional blocks in block diagrams and flowchart illustrations, respectively, may be implemented by computer program instructions. These computer program instructions may be loaded on a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks.

For the sake of brevity, conventional data networking, application development and other functional aspects of the systems (and components of the individual operating components of the systems) may not be described in detail herein. Furthermore, the connecting lines shown in the various figures contained herein are intended to represent exemplary functional relationships and/or physical couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may be present in a practical electronic transaction system.

These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart block or blocks. The computer program instructions may also be loaded on a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.

Accordingly, functional blocks of the block diagrams and flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions. It will also be understood that each functional block of the block diagrams and flowchart illustrations, and combinations of functional blocks in the block diagrams and flowchart illustrations, can be implemented by either special purpose hardware-based computer systems which perform the specified functions or steps, or suitable combinations of special purpose hardware and computer instructions.

The system may include a host server or other computing systems including a processor for processing digital data, a memory coupled to said processor for storing digital data, an input digitizer coupled to the processor for inputting digital data, an application program stored in said memory and accessible by said processor for directing processing of digital data by said processor, a display coupled to the processor and memory for displaying information derived from digital data processed by said processor and a plurality of databases, said databases including client data, merchant data, financial institution data and/or like data that could be used in association with the present invention. As those skilled in the art will appreciate, user computer will typically include an operating system (e.g., Windows NT, 95/98/2000, Linux, Solaris, etc.) as well as various conventional support software and drivers typically associated with computers. User computer can be in a home or business environment with access to a network. In an exemplary embodiment, access is through the Internet through a commercially-available web-browser software package.

As will be appreciated by one of ordinary skill in the art, the present invention may be embodied as a method, a data processing system, a device for data processing, and/or a computer program product. Accordingly, the present invention may take the form of an entirely software embodiment, an entirely hardware embodiment, or an embodiment combining aspects of both software and hardware. Furthermore, the present invention may take the form of a computer program product on a computer-readable storage medium having computer-readable program code means embodied in the storage medium. Any suitable computer-readable storage medium may be utilized, including hard disks, CD-ROM, optical storage devices, magnetic storage devices, and/or the like.

In the foregoing specification, the invention has been described with reference to specific embodiments. However, it will be appreciated that various modifications and changes can be made without departing from the scope of the present invention. The specification and figures are to be regarded in an illustrative manner, rather than a restrictive one, and all such modifications are intended to be included within the scope of present invention.

Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. No element described herein is required for the practice of the invention unless expressly described as “essential” or “critical.”

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US5729741 *Apr 10, 1995Mar 17, 1998Golden Enterprises, Inc.System for storage and retrieval of diverse types of information obtained from different media sources which includes video, audio, and text transcriptions
US5778359 *Apr 18, 1996Jul 7, 1998Davox CorporationSystem and method for determining and verifying a file record format based upon file characteristics
US5799310 *Nov 1, 1995Aug 25, 1998International Business Machines CorporationRelational database extenders for handling complex data types
US5818978 *Jan 27, 1997Oct 6, 1998Canon Kabushiki KaishaImage pre-processor for character image recognition system
US5884304 *Nov 15, 1996Mar 16, 1999Novell, Inc.Alternate key index query apparatus and method
US5892843 *Jan 21, 1997Apr 6, 1999Matsushita Electric Industrial Co., Ltd.Title, caption and photo extraction from scanned document images
US5893087 *Apr 10, 1996Apr 6, 1999Dex Information Systems, Inc.Method and apparatus for improved information storage and retrieval system
US5896462 *Jun 11, 1996Apr 20, 1999Stern; YonatanMethod for storing and retrieving images in/from a database
US6026397 *May 22, 1996Feb 15, 2000Electronic Data Systems CorporationData analysis system and method
US6047291 *Jul 13, 1998Apr 4, 2000International Business Machines CorporationRelational database extenders for handling complex data types
US6070160 *Jan 29, 1996May 30, 2000Artnet Worldwide CorporationNon-linear database set searching apparatus and method
US6078925 *Jun 7, 1995Jun 20, 2000International Business Machines CorporationComputer program product for database relational extenders
US6108669 *Apr 2, 1998Aug 22, 2000Lucent Technologies, Inc.Method and apparatus for creating and modifying databases derived from a database warehouse for a telecommunication system
US6202070 *Dec 31, 1997Mar 13, 2001Compaq Computer CorporationComputer manufacturing system architecture with enhanced software distribution functions
US6212494 *Jul 20, 1998Apr 3, 2001Apple Computer, Inc.Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like
US6292802 *May 9, 2000Sep 18, 2001Hewlett-Packard CompanyMethods and system for using web browser to search large collections of documents
US6324547 *Apr 2, 1998Nov 27, 2001Lucent Technologies Inc.Method for creating and modifing similar and dissimilar databases for use in intelligent network configurations for telecommunication systems
US6741988 *Aug 10, 2001May 25, 2004Attensity CorporationRelational text index creation and searching
US6990445 *Dec 17, 2001Jan 24, 2006Xl8 Systems, Inc.System and method for speech recognition and transcription
US20020156767 *Apr 12, 2002Oct 24, 2002Brian CostaMethod and service for storing records containing executable objects
US20020165879 *Dec 12, 2000Nov 7, 2002Jacob DreybandTD/TDX universal data presentation system and method
US20020169746 *May 9, 2001Nov 14, 2002Cowman Ernie EugeneSystem for retrieving aircraft maintenance documents
US20030033275 *Aug 13, 2001Feb 13, 2003Alpha Shamim A.Combined database index of unstructured and structured columns
US20030130843 *Dec 17, 2001Jul 10, 2003Ky Dung H.System and method for speech recognition and transcription
US20030177443 *Nov 14, 2002Sep 18, 2003Christoph SchnelleMaintenance of a markup language document in a database
US20030204500 *Apr 24, 2003Oct 30, 2003Jean-Francois DelpechProcess and apparatus for automatic retrieval from a database and for automatic enhancement of such database
US20040010419 *Jul 15, 2002Jan 15, 2004Sinnott Timothy JohnMethod and apparatus for facilitating acquistion of prospective payoff information on an existing loan account
US20040025030 *May 21, 2001Feb 5, 2004Corbett-Clark Timothy AlexanderMethod and system for collection and verification of data from plural sites
US20040151377 *Feb 4, 2003Aug 5, 2004Boose Molly L.Apparatus and methods for converting network drawings from raster format to vector format
US20040199516 *May 17, 2002Oct 7, 2004Metacyber.NetSource information adapter and method for use in generating a computer memory-resident hierarchical structure for original source information
US20040268235 *Jun 26, 2003Dec 30, 2004International Business Machines CorporationRich text handling for a web application
US20060080308 *Nov 18, 2005Apr 13, 2006Emc CorporationContent addressable information encapsulation, representation and transfer
Non-Patent Citations
1 *Grooves, "My Play Ground >> Binary Conversion", Mar. 2003.
2 *, "Text-to-Binary Converter", 2000, 2001, Snarkers.
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US8255701 *Nov 24, 2009Aug 28, 2012Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd.File encryption method
US20110040982 *Nov 24, 2009Feb 17, 2011Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd.File encryption method
U.S. Classification707/718, 707/E17.006, 707/917, 707/770, 707/999.102, 707/812, 707/755, 707/999.003, 707/999.103, 707/999.104, 707/999.004, 707/999.101
International ClassificationG06F17/30, G06F17/00, G06F
Cooperative ClassificationY10S707/99933, Y10S707/99943, Y10S707/99934, G06F17/30569, Y10S707/99944, Y10S707/99945, Y10S707/99942, Y10S707/917
European ClassificationG06F17/30S5V
Legal Events
Feb 5, 2004ASAssignment
Sep 13, 2011FPAYFee payment
Year of fee payment: 4
Apr 21, 2014ASAssignment
Effective date: 20140324
Aug 25, 2015FPAYFee payment
Year of fee payment: 8