Aspects of the present invention relate to databases and retrieving information from databases, and more particularly to an intelligent mechanism for identifying ontological hypertext and pre-fetching and presenting the target information.
Web documents, such as Extensible Mark-up Language (XML) documents can be grouped and stored on a server. These documents may also be annotated and linked to related data or a dynamic set of knowledge entities. However, the information in these entities may not be contained on the same data server as the web documents or XML documents and the Uniform Resource Locator (URI) to these knowledge entities may not be validated. Even if the related data or information resides on the same server, a lack of association information linking the knowledge entities makes it difficult to explore or access these related knowledge entities. Accordingly, a query for information contained in a particular document on the server cannot be leveraged for also obtaining enhanced information related to the original query.
In accordance with an aspect of the present invention, a computer implemented method for identifying ontological hypertext and pre-fetching and presenting the target information may include receiving an original query by a database server. The method may also include searching the database server to locate an ontological mapping record. The ontological mapping record may represent an association between information responsive to the original query and related information associated by ontological hypertext. The method may further include presenting information responsive to the original query and the related information.
In accordance with an aspect of the present invention, a system for identifying ontological hypertext and pre-fetching and presenting the target information may include a database server. A module on the database server may be adapted to search the database server to identify ontological hypertext. The ontological hypertext associates information responsive to an original query received by the database server to ontological information. The ontological information may be information related to the information responsive to the original query. A module on the database server may send the information responsive to the original query and the ontological information to a requester that sent the original query.
In accordance with a further aspect of the present invention, a computer program product for identifying ontological hypertext and pre-fetching and presenting the target information may include a computer readable storage medium having computer readable program code embodied therewith. The computer readable program code may include computer readable program code configured to receive an original query by a database server. The computer readable program code may also include computer readable program code configured to search the database server to locate an ontological mapping record. The ontological mapping record represents an association between information responsive to the original query and related information associated by ontological hypertext. The computer readable program code may additionally include computer readable program code configured to present information responsive to the original query and the related information.
Other aspects and features of the present invention, as defined solely by the claims, will become apparent to those ordinarily skilled in the art upon review of the following non-limited detailed description of the invention in conjunction with the accompanying figures.
The following detailed description of embodiments refers to the accompanying drawings, which illustrate specific embodiments of the invention. Other embodiments having different structures and operations do not depart from the scope of the present invention.
As will be appreciated by one of skill in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer-readable medium(s) may be utilized. The computer-readable medium may be a computer readable signal medium or a computer readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, a device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. Note that the computer-readable storage medium could even be paper or another suitable medium upon which a program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-readable storage medium may be any medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in base band or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof, A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc. or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other device to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
In block 104, the database server may be searched to locate an ontological mapping record. An ontological mapping record may be defined as a record representing an association between information responsive to an original query and ontological information or related or collaborative information to the information or data response to the query. The ontological, related or collaborative information may be linked to or associated with the information responsive to the original query by ontological hypertext. Ontological information as used herein focuses on the association of information between two or more tables or information in different columns of the same table. As described in more detail herein, the tables may be pre-fetched and stored on a single database server. Such ontological information can be saved in relational tables, as an XML data type in a hybrid database server or in an XML-format data (physical) file. A module on the database server may identify ontological hypertext and validate target ontologies and knowledge entities on the database server.
In block 106, an associated query or associated queries based on a user defined equivalent condition or an equivalent condition or conditions defined in the mapping record may be automatically constructed to identify ontological information. As described in more detail below, navigation mapping may be used to keep the user defined equivalent condition.
In block 108, related, collaborative or ontological data or information may be pre-fetched or retrieved. The related, collaborative or ontological data or information may be pre-fetched before any queries from a user. In block 110, the ontological or related information may be stored on the database server or hybrid database server. The system may provide an option to the user to decide or select whether to store the ontological information or not on the same server.
As previously described, navigation mapping may be used to keep the user defined equivalent condition. The navigation mapping may be saved in the XML format (e.g. navmapping.xml) and checked at the query construction stage. Referring also to
When a user tries to find the editor with name “Ella Ellis” 214 in the original XML document 200, for example, in the table BOOK 206, the query is constructed to user “$authorinfo/AUTHORS/author/editor=‘Ella Ellis’” as a condition to search table BOOK 206. Under this disclosed system, the user can expect the expanded results in the database, which means the system searches the navmapping.xml to locate the mapping record 204 and automatically construct another query using equivalent search condition, “$details/EDITORS/editor/name=‘Ella Ellis’”, to retrieve the table EDITOR 208.
This mechanism may not only apply to XML-XML mapping, but may also be expanded to XML-relationalColumn and relationalColumn-relationalColumn easily. For example, given a table HISTORY(id int not null, name varchar(50), location varchar(30)), which has record: (199, ‘Ella Ellis’, ‘New York’), defines the association in navmapping.xml:
When the query with search predicate “$authorinfo/AUTHORS/author/editor=‘Ella Ellis’” is constructed, the extended search can build a query with predicate “name=‘Ella Ellis’”. With such an associative computing mechanism, the application can explore the collaborative data information or ontological information widely from the database server or hybrid database server. This is a major benefit to implementing the ontological association mechanism as described herein in a hybrid database server or similar server.
Navigation mapping information may also be stored as table records. For example, a mapping table can be defined in the database server:
As for the preceding XML mapping format records, the following data records can be stored in this defined table MAPPING:
The query construction can retrieve the mapping information from the table and build the related query to get expanded results based on the equivalent predicate.
Referring back to
Referring also to
In block 112, an option may be presented or sent to the user to select whether the additional related, collaborative or ontological data or information is also presented to the user.
As previously described, related, collaborative or associated ontological data or information 506 may also be stored on the database server 502. The ontological data or information 506 may be stored in different tables and linked or associated with one another via ontological hypertext similar to that described with referenced to
Also as previously described, a portion or all of the associated ontological data or information 506 may be pre-fetched or retrieved from another online resource 508. The online resource 508 may be another database or server which may store related information or ontological information 510. The related information may be retrieved or pre-fetched via a network 512.
A user 514 may use a computer system 516 to access the server 502 and module 504 for submitting queries and receiving responses to such queries including extended or enhanced, associated ontological data or information similar to that described herein.
The computer system 516 may include a processor 517 to control operation of the computer system 516 and a file system 518 or memory. An operating system 520, applications 522 and other programs may be stored on the file system 518 for running or operating on the processor 517. A web or Internet browser 524 may also be stored on the file system 518 for accessing the database server 502 and sending queries to the database server 502 via the network 512. The network 512 may be the Internet, an intranet or other private or proprietary network.
The computer system 516 may also include a display 526, a speaker system 528, and one or more input devices, output devices or combination input/output devices, collectively I/O devices 530. The I/O devices 530 may include a keyboard, pointing device, such as a mouse, disk drives and any other devices to permit a user, such as user 514, to interface with and control operation of the computer system 516 and to access or receive online content. The display 526 may present the online content received by the computer system 516. The speaker 528 may present any sounds associated with the online content.
Other embodiments of the present invention are not limited to only a server and the system and features described herein may be in one of many forms. Examples may include a client, configurations that support peer-to-peer communications, a wireless solution or other arrangements.
The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable other of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.