Abstract:
A hypertext browser displays hypertext pages and indicates draggable elements on the page being viewed. The browser also displays drop targets and detects when a user selects a draggable element and drops the draggable element within a drop target. The browser and/or the server to which it is connected examine a class relation matrix having entries for intersections of draggable element references and drop target references in which a matrix entry at an intersection of the draggable element and drop target is identified and used for performing an action which is a function of the matrix entry.

Description:
COPYRIGHT NOTICE 
     A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the xerographic reproduction by anyone of the patent document or the patent disclosure in exactly the form it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. 
     BACKGROUND OF THE INVENTION 
     The present invention relates to the field of data navigation. More specifically, one embodiment of the invention provides a user with an improved method and apparatus for navigating through complex databases. 
     The current navigation metaphor on the World Wide Web (as well as other, less popular hypertext document &#34;webs&#34;) is that of jumping from one page to another by pointing and clicking on highlighted words or icons (anchors) which point to other locations in the hypertext document (links). Current browsers operate under the HTML (HyperText Markup Language) view of the world. In the HTML view, anchors with links are interspersed throughout a page and are more or less fixed when the page is authored, which might be some time before the page is viewed and would be the same page for each reader. In this model, a link is inherently limited to pointing towards a single location, namely the destination described by the URL (Uniform Resource Locator) pointed to by the link. A new generation of HTML employs multiple scripting extensions to HTML (such as CGI, JavaScript and others) to allow execution of code based on the anchor clicked on by the user, but still the only links a browser user can follow are those preconceived by the author, and the user has no flexibility in browsing beyond those links. 
     Since all the links must be preconceived, often the author of a page will create a page, with its fixed links, and the page will be obsolete when the &#34;linked-to&#34; pages change. Furthermore, if sites rely on a large content base which is constantly changing, site creators need to constantly keep maintaining the integrity of their information. This problem has been recognized, and solutions have been proposed, but none have been entirely satisfactory. For example, a database could be integrated with an HTTP (HyperText Transport Protocol) server, where the database is passed though a set of templates to create a static snapshot of the current state of the database. Another approach is to embed explicit code and database calls inside HTML pages creating, in effect, a distributed program embedded inside a myriad of web pages. Both approaches have proven to be very time consuming and costly solutions during day-to-day maintenance. 
     The current navigation model is also limited to simple navigation metaphors (e.g., point and click) and does not provide the ability to relate locations without creating a pointing link from one to the other. 
     From the above, it is seen that an improved hypertext navigation system for browser users is needed. 
     SUMMARY OF THE INVENTION 
     An improved hypertext navigation system is provided by virtue of the present invention. In one embodiment of a hypertext browser according to the present invention, the browser displays hypertext pages and indicates draggable elements on the page being viewed. The browser also displays drop targets and detects when a user selects a draggable element and drops the draggable element over a drop target. The browser and/or the server to which it is connected examine a class relation matrix having entries for intersections of draggable element references and drop target references in which a matrix entry at an intersection of the draggable element and drop target is identified and used for performing an action which is a function of the matrix entry. 
     In a more general model, each of the draggable elements and drop targets are &#34;atoms&#34; or objects which are describable as a unit in a protocol for conveying meta-data references. In this model, any atom that has at least one output is a draggable element and any atom that has at least one input is a drop target. Thus, some atoms can be both draggable elements and drop targets. The communication of data from an atom output to an atom input can be effected by using meta-data object references in a distributed object system. A class relation matrix is used to specify how the output of the dragged atom is to be converted, if at all, into a form acceptable to the input of the drop target atom. A server handling these communications has a class relation matrix relating some objects. Where the input atom and output atom are not both objects known and related at the server, the server refers to external object registries to relate the input atom to the output atom, either directly or indirectly through an intermediate object. 
    
    
     A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings. 
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic diagram of a network over which the present invention might be used. 
     FIG. 2 is a screen display showing elements of the present invention. 
     FIG. 3 is a screen display illustrating how a page might appear in a browser programmed according to the present invention. 
     FIG. 4 is a screen display illustrating meta-data references, draggable element atoms and drop target atoms and shows a draggable element atom being dropped over a drop target atom. 
     FIG. 5 is a screen shot of a program used to view and edit relationship types for a class relation matrix. 
     FIG. 6 is a screen shot of a program used to view and edit relationships between classes in a class relation matrix. 
     FIG. 7 is a screen display illustrating the process of clicking on an object under which meta-data is embedded. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The preferred embodiment is described herein and shown in the figures as an embodiment of a computer system running the Macintosh® operating system on a Macintosh® computer manufactured by Apple Computer, of Cupertino, Calif. and running the Netscape Navigator™ Web browser developed by Netscape Corporation of Mountain View, Calif. where the computer is coupled to the global internetwork of networks known as the &#34;Internet&#34; using a TCP/IP (Transport Control Protocol/Internet Protocol) interface. However, it should be noted that other computers, operating systems and networks are ready equivalents for those elements. 
     The example application shown in the figures is a hypertext system for browsing (or &#34;surfing&#34;) through a database of resorts and vacation clubs. Unlike a conventional browser, which presents pages as pregenerated by an author at a server site or as dictated by a database structure at the server site, a user of the browser can navigate through the data in ways only contemplated by the user. This is made possible by the extension of the concept of URL&#39;s to include references in a novel protocol referred to herein as the &#34;Know&#34; protocol, whose description is set out in Appendix B. Using this protocol, objects are described by what they represent (&#34;meta-data&#34;) rather than what they are or what their values are (data). This provides for an object-oriented navigation paradigm which provides for the greater flexibility of the system. 
     Most conventional browsers allow for modifications, in the form of &#34;plug-ins&#34;, &#34;add-ons&#34; or the like. Where a browser is modified to handle meta-data in the Know protocol, it might be described as a &#34;Mediator-enabled&#34; browser. Where a server is modified to respond correctly to Know protocol messages sent by a Mediator-enabled browser, the server is said to be a &#34;Mediator-enabled&#34; server. 
     This embodiment of the data navigation interface is shown in the figures. FIG. 1 is a schematic of a network over which the invention might operate. To access content, a reader 12 connects to a reader ISP (Internet Service Provider) 14, which in turn connects reader 12 to the Internet 16 as is well known in the art. Other network connections are also possible. Also shown connected to Internet 16 in addition to readers 12 and reader ISP&#39;s 14, are a Web server 18, which is a &#34;Mediator-enabled&#34; server as described below, and a database (DB) server 20. Readers 12 are also referred to herein as &#34;browsers&#34; because they can be used by a user to browse the Web. Of course, readers 12 could also be machines totally controlled by programs acting as users as opposed to being controlled by human users. One reader 12 is shown with a client-side program 22 loaded thereon from a magnetic media. Client-side program 22 provides the novel functionality described below. 
     Although not shown, readers 12 include graphical displays and input devices such as a mouse and/or keyboard. As is well known in the art of user interfaces, the input devices can be used to manipulate a cursor, such as a mouse cursor, on the graphical display to select screen elements. 
     Referring now to FIG. 2, a view 40 of a graphical display is there shown. View 40 results from running a Netscape Navigator browser with a plug-in to modify its behavior as described herein to be a Mediator-enabled browser. The Mediator-enabled browser display shown in FIG. 2 includes a toolbar 50 containing one or more drop target atoms 52 which are represented by object icons. The browser displays a page 54 to the left of toolbar 50. That page 54 includes draggable atoms, represented by icons 56 or anchors 58. These atoms 52, 56, 58 represent classes of objects, processes, or instances of data. Typically, toolbar 50 will change depending on what server the browser is currently connected to. Toolbars show atoms which may be located on Web server 18, other servers, or a correlation registry 24 which correlates seemingly unrelated atoms. In addition to the atoms provided by Web server 18, toolbar 50 might also include &#34;bookmark&#34; atoms from elsewhere. 
     Generally speaking, each draggable icon 56 or anchor 58 represents an instance of a certain class, or an atom. Those atoms may be marked with self descriptive meta-data. Anchors 58 are either formatted as conventional links or as links specified in the &#34;Know&#34; protocol used by the preferred embodiment. Know protocol links might be shown by a special font or color. When the user moves the mouse over the anchor, the relevant information denoted by the anchor is displayed in a status bar at the bottom of the screen (see FIG. 4). 
     A Mediator-enabled browser is capable of operating as an ordinary browser when encountering an ordinary Web site, but as the user points the browser towards Web server 18 (or any other Mediator-enabled Web server), the browser connects to Web server 18 and can communicate using Know protocol messages. The home page for the site hosted on Web server 18 (or the page referenced) will include an &#34;embed&#34; statement which points to a Mediator plug-in. For example, if Web server 18 has a host IP address of 222.22.22.25 and the browser navigates to the root directory of that host, Web server 18 will return a home page which includes the following text snippet: 
     &lt;EMBED SRC=&#34;club.atom&#34; WIDTH=40 HEIGHT=1000 TARGET=&#34;Desktop&#34; OPEN=&#34;default.htmll&#34;&gt; 
     indicating that the Mediator plug-in (from media 22 or another source) should be loaded. If not found, the browser will be pointed to a download site to automatically download a Mediator plug-in. The snippet above gives a file name of the atom to be presented, &#34;club.atom&#34;, which is then loaded. An example of the club.atom file is shown in Table 1. 
     
                                           TABLE 1__________________________________________________________________________//File: Club.atom//Description: Atom specifier for the Club site////Toolbar Name@Clubs//AtomName Server ID            Atom URL Icon  MainObj25007Country     222.22.22.25            club/Atom/25007                     Country.Pic                           MCTY25008Activity     222.22.22.25            club/Atom/25008                     Activity.Pic                           MACT25012Club 222.22.22.25            club/Atom/25012                     Club.Pic                           MCLB//Toolbar Name@AAir//AtomName Server ID            Atom URL Icon  MainObj25024Flight     134.45.22.10            amer/Atom/25024                     Flight.Pic                           AFLT25025Airport     134.45.22.10            amer/Atom/25025                     Airport.Pic                           APRT25028Price     134.45.22.10            amer/Atom/25028                     Price.Pic                           APRC__________________________________________________________________________ 
    
     The data in the atom file club.atom is loaded by the browser and used to construct toolbar 50. At this stage, the user is ready to interact with the site in any of several ways. For example, if the user double-clicks on an atom in page 54, the browser passes the double-click event to the plug-in. The plug-in identifies the clicked atom and gets the URL it points to. Using the URL retrieved from the atom, the plug-in sends the appropriate Know protocol message to the server identified in the atom file for that atom. An example of a Know protocol message is: 
     http://222.22.22.25/.MEDIATOR$*MEDIATOR*NST/club/Atom/25012 
     where the message structure is: 
     http://&lt;HostID&gt;/.MEDIATOR$*MEDIATOR*NST/&lt;Obj --  Model&gt;/Atom/&lt;Atom --  ID&gt;. 
     In response, the server 222.22.22.25 returns a &#34;Find&#34; Template for the atom. An example of a find template is shown in Appendix A.1. This template can be displayed as an HTML form in window 54, as shown in FIG. 3. The page 56 shown therein contains hidden meta-data descriptors associated with each of the search fields. These descriptors are shown in Appendix A.1. The user uses this form to create a search to an atom meeting the specified criteria. The browser sends the search parameters to the server related to the atom being searched. 
     The atom&#39;s server performs the search query by loading atom code and translating the search request into queries which are sent to DB server 20. DB server 20 performs the queries and returns a collection of records which are relevant to the queries. The atom&#39;s server then translates the resulting records into an HTML page using the template shown in Appendix A.2. That page includes a list of records with associated meta-data Know protocol descriptors, which are hidden from the user. However, as shown in FIG. 4, an individual descriptor 60 for a record such as the record 62 pointed to by cursor 64 can be viewed on a status line. 
     With the list in FIG. 4 displayed, the user can drag and drop an anchor from page 66 onto one of the atoms 52 on toolbar 50, to create a drag-and-drop event matching the anchor to the atom. In particular, the dragging of link 68 over atom 52 results in the drag-and-drop event which is described in the Know protocol by the string: ##EQU1## The general structure for a message for this event is: ##EQU2## The browser sends this message to the identified server, which is Mediator-enabled. That server performs an object class translation from the dragged atom&#39;s data to data which the drop target atom is willing to accept. The translated data is then passed to the drop target atom as input for its action. Translation is done using a matrix such as matrix 70 shown in FIG. 5. Down the left side of matrix 70 are labels 72 listing the draggable element atoms. Across the top of matrix 70 are labels 76 listing the drop target atoms. At each intersection of a draggable element and a drop target, a class relation type 74 is stored. Class relation types 74 are one of the following types: 
     74a--No relation 
     74b--Null relation 
     74c--Simple relation 
     74d--Complex relation 
     74e--Interclass relation 
     Where no relation is indicated (74a), the server will look to a correlation registry to find a relation between the dragged element and the drop target. 
     FIG. 6 shows is view of the relation between two atoms (classes), namely the dragged element atom &#34;MACT&#34; and the drop target atom &#34;MCTY&#34;. This relation is a complex relation (74d) in that there are several intermediate steps between relating these two atoms together, e.g., filtering through the &#34;MLKA&#34; and &#34;MCLB&#34; atoms. Therefore, if the user were to select a draggable element &#34;MACT&#34; (the &#34;activity&#34; icon 52; see FIG. 2) and drop it the drop target &#34;MCTY&#34; (one of the country icons 59), the server would use the relation shown in FIG. 6 to connect the atoms and generate a listing of activities for that country. If the user had dragged the country icon 52 over the activity icon instead, the result would be a listing of activities by country or countries by activity. 
     Instead of dragging and dropping a meta-data link, the user can also single-click on the meta-data link. This is shown in FIG. 7, where the user has clicked cursor 64 on link 68. The meta-data is shown in status line 98. When clicked, the browser sends this URL to the Mediator plug-in for translation. The plug-in identifies the relevant atom and sends the message: ##EQU3## to Web server 18. The Mediator plug-in follows the same steps as in the case of dragging and dropping of information into an atom. Since the object is of appropriate class for the atom, no translation is required, and the atom is served with the data clicked on. 
     Dragging is performed by holding the mouse button down, &#34;picking up&#34; the linked anchor or icon, positioning it over the preferred atom, and releasing the mouse button. After this action is performed, the browser will send a message to the client representing the logical action the user has just performed, where the action is dictated according to the embedded Know protocol meta-data. Each link under an atom includes a description of the atom&#39;s object type. 
     Registration and Correlation Services 
     The class relation matrix contains the relationships between classes created by the author. When two classes which need to be related are not created by a common author, the problem is more complicated, but is handled by the present invention. 
     The relation between two objects might be a direct one-to-one correlation or an indirect correlation between the two objects through an intermediary related object. In order to correlate object models, each author registers all or some of its objects with a registration server. Those registered objects may be registered as new object classes on this server model, or as related classes to currently registered classes. In the event a related class is registered, a correlation function is provided by the new class. This translation function may be bidirectional, providing a two-way translation between the new class and the existing class, or unidirectional. Registration servers operate under a separate protocol referred to herein as the YP (Yellow Pages) protocol which provides for registration, query, and management of registered entities. YP-based registration servers may be correlated through higher level YP servers to form a super-scalable structured web format. 
     In summary, the present invention provides for a new user-directed navigation metaphor. By allowing the user to drag and drop anchors onto a user-selected one of many drop targets, the present invention empowers a new more powerful navigation paradigm on the Web and other hypertext environments. Instead of the browser following pages based on the relationships set by the author of the page, the browser can follow pages based on the relationships indicated by the dragged object and the drop target. In a specific embodiment, an anchor includes embedded meta-data according to a description protocol referred to as the &#34;Know&#34; protocol, which is transparent to the user. The Know protocol allows web links to describe the data which contains the link, in contrast to usual protocols which describe the data to which the link is pointing. 
     The relationships between dragged elements and drop targets are stored in a matrix, a set of inter-object relation rules executed on the Web server where the dragged elements and the drop targets are objects in the model. The Web server creates new information pages on the fly for presentation to a browser modified according to the present invention. Typically, the modification is in the form of an add-on program or a plug-in. 
     To find the relationship between a dragged object and a drop target object, the Web server examines a matrix of relation rules. If the dragged object and dropped target object are not found in a common matrix, the class of those objects might be found to be registered at an object server which correlates registered classes from one server with registered classes from other servers. This allows from the relationships between objects to be maintained in a distributed manner. 
     The above description is illustrative and not restrictive. Many variations of the invention will become apparent to those of skill in the art upon review of this disclosure. The scope of the invention should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents. ##SPC1##