Method for describing objects in a virtual space
A method for describing objects in a virtual space. In one embodiment, each object is a URL, which has been assigned to a system of hierarchical categories. The objects have been mapped to a map region, each object having been given a location within the map region. Each category within the map region is defined as a polygon area covering all of the category's objects as well as all of the category's subcategories. A client computer can request a portion of the map to be visualized. A host computer receives the request and retrieves the appropriate objects and categories from a database. The host computer forms the response to the request using a protocol which describes facts, location, and metadata about the objects and categories. The encoded response is delivered to the client. The client decodes the response and renders the objects and categories for the user. Different types of clients can concurrently request object descriptions from the server.
This application is a continuation of U.S. patent application Ser. No. 09/712,544, filed Nov. 14, 2000, the entirety of which is hereby incorporated by reference. U.S. patent application Ser. No. 09/712,544 claims the benefit of: U.S. Provisional Application No. 60/232,284, filed Sep. 13, 2000, entitled “System and Method for Network Information Visualization”; and U.S. Provisional Application No. 60/232,213 filed Sep. 13, 2000, entitled “System and Method for Describing Objects in a Virtual Space.” The contents of both provisional applications are incorporated herein by reference.
BACKGROUND OF THE INVENTIONThe present invention relates to virtual spaces and particularly to using a protocol to describe a series of objects onto such a virtual space.
A virtual space consists of a surface with rectangular bounds and the area above the surface. This is very much like a landscape or topography in the real world. Virtual spaces can contain data objects spread across the surface, much in the same way that buildings, roads, and other real-world objects are arrayed on the surface of our world. Just as buildings in the real world can be grouped hierarchically into neighborhoods, cities, or nations, objects in a virtual space can be grouped into hierarchical categories.
Many types of hierarchical objects can be placed in a virtual space. In some systems, URL objects are placed in the virtual space according to categories, such as MUSIC, COMPUTERS, POLITICS, etc. In these types of systems, which includes a database, a web server, and a browser, a user connected to the Internet can view and navigate through a 2D map or a 3D map of the virtual space to locate desired URLs. Other categorized virtual spaces could contain a manufacturers' product catalog or a library's card catalog. Or, the virtual space could be used within a geographic information system or a multi-user computer game, for example.
Although applications running on a single computer have not needed a visualization protocol, client/server applications requires the use of some type of visualization protocol. In such a system, a server stores information about the objects in the virtual space on a database and transmits a description of the virtual space over a network (such as the Internet) to client computers. In the past, such client/server computer applications have had disadvantages. The protocols have not been compact and have not made efficient use of network bandwidth.
Usually, protocols have consisted of large messages to the client describing all of the details of how to draw a current map portion of the virtual space. One such example of this is VRML (virtual reality markup language). Although such protocols do well in describing the landscape, they use far too much bandwidth. In addition, protocols that enforce a particular visualization severely limit the client application. Such a client cannot alter the presentation of the information to suit the need of different types of user groups. In order to present the information in a different way, both the client and the server must be modified.
Some protocols have had the disadvantage of being closed, proprietary protocols. Although some manufacturers claim that such a closed system best protects their market interests, open source applications, such as Linux, have recently shown that open source applications help to encourage further enhancements and industry adoption of standards.
As with many elements of the Internet, past protocols have acted as though everyone on the Internet speaks English. Non-English speakers have had troubles working with other protocols that do not support other languages. And even English speakers have not been able to easily use past protocols because the protocols have not readily described the categories or other hierarchical principles of the objects and the metadata associated with the objects.
What is needed is an easy-to-use protocol for describing objects in a virtual space. Such a protocol should be extensible, well suited to web-enabled client/server systems, and capable of supporting multiple languages.
SUMMARY OF THE INVENTIONThis invention can be regarded as a method and protocol for describing a series of objects mapped onto a virtual space. The method includes the steps of listing metadata for each of the objects and expressing a position within a virtual world for each of the objects to be visualized. The position with the virtual world may be described with an <x,z> coordinate set. For a system which visualizes website information, metadata can include the title of the object, a description, a count of the number of pages within the website object, a count of the number of links pointing either from or to the object, a rating for the website object, etc. The metadata is of course different for other types of hierarchical objects. In addition to describing the objects to be visualized, the method may include describing the locations of one or more categories to with the objects have been assigned.
The present invention differs in many crucial respects from prior work in this field, and the cumulative effect of these innovations is a dramatically improvement in the transfer of visualization data over a network. Some of the advantageous characteristics of the present invention are:
- 1. The protocol is a compact variable-size textual format that is designed for easy parsing.
- 2. The protocol is a stable, open, highly interoperable Internet standard.
- 3. The protocol supports the use of all international character sets.
- 4. The protocol responses contain only facts, labels, and metadata, no particular graphical rendition on the client software is described.
- 5. The protocol has built-in support for object location, metadata delivery, and category information.
- 6. The protocol is well suited for Web deployment since it is built on a base consisting of HTTP, XML, and URLs.
- 7. The protocol's use of XML Namespaces, it is extensible and so can be used by many different applications.
For a more complete understanding of the present invention and its features and advantages, reference is made to the following description taken in conjunction with accompanying drawings, in which:
The Figures are not numbered sequentially in this patent application because the Figures are duplicates of Figures in an abandoned application Ser. No. 09/712,107, filed on Nov. 14, 2000, entitled “System and Method for Network Information Visualization.”
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS The present invention is a method for describing objects in a virtual space. Throughout the drawings, an attempt has been made to label corresponding elements with the same reference numbers. The reference numbers include:
In one embodiment of the present invention, objects in a virtual space are described using XML, a data format for structured document interchange over the web. Unlike HTML, XML is designed to organize information, rather than merely to display it. This structured information contains both content and some indication of what the content means. Basically while HTML is a predefined markup language whose purpose is displaying information, XML is a customized meta-language whose purpose is describing the content of data objects.
In one embodiment of the present invention, a computer system having several modules is configured to use the protocol to provide a visualization of an information network made up of categories and sites. For example, the system can visualize web sites on the Internet by category. Such a visualization provides a map to the user in which each web site is a location within a category, which itself may be a subcategory of another category. In one embodiment, the websites and categories are from the Open Directory (ODP) database of web sites organized by categories (see <dmoz.org>). Another example of an information network ripe for visualization is a computer file system that is organized into Directories and Files. A Directory/File grouping is analogous to a Category/Site grouping. Throughout this explanation, the category/site visualization will be described. One skilled in the art will understand that such a system can be configured to visualize directory/file and many other types of hierarchical information spaces.
I. Mapping Terminology
Three formats are used to describe a point or a region within the 2D map or the 3D virtual world: XZ-coordinate sets, XYZ-coordinate sets, and XZWD-coordinate sets. An XZ-coordinate set describes a unique location on a two-dimensional map, where the units are in meters. The X-axis of the map increases from left to right while the Z-axis of the map increases from back to front. For example, the coordinate set (50, 1200) describes a location that is 50 meters from the left edge of the world and 1200 meters from the back edge of the world. An XYZ-coordinate set describes a unique location in a three-dimensional space, where the Y-axis of the space increases from bottom to top. Thus, the coordinate set (50, 1200, 300) describes a location that is 50 meters from the left edge of the space, 1200 meters above the surface of the space and 300 meters from the bottom of the space.
An XZWD-coordinate set describes a rectangular polygon region on the surface of the space where W represents the width of the rectangle and D represents its depth. For example, the (1200, 1400, 300, 130) coordinate set represents a rectangle whose back left corner is at 1200 meters from the left of the landscape, 1400 meters from the back of the landscape, and which is 300 meters in width and 130 meters in depth.
II. Overview of the Visualization System
In one embodiment of the present invention, the Internet is visualized for users of the system as either a 2D map or as a 3D virtual world. Web sites on the Internet are assigned to categories. The categories are hierarchical, so each category can be a parent category having zero or more child subcategories. For example, an ART category can have subcategories of MUSIC and MOVIES. The MUSIC category can have the further subcategories of LYRICS and STYLES.
The computer system maps these categories and web sites to a map region. Each web site is assigned a (x,z) coordinate set which places it at an exact location within the map region. Each category is assigned an area, which is a polygon region within the map region. In one embodiment, the polygon regions are rectangles along the surface of the map region. The rectangles are defined by a (x,z,w,d) coordinate set (where x and z are points along the x-axis and the z-axis, w is a width measurement, and d is a depth measurement).
A segment of the categorized directory of the Internet is presented to the user by displaying each of the categories' polygon regions on the map region. In one embodiment, each polygon region is displayed as a different color to assist the user in differentiating among the categories. In one embodiment, a real region on the Earth is used as the basis for the map region. For example, in one embodiment, the continent of Antarctica is used as the map region and a directory of websites is visualized as locations in Antarctica.
A graphic is displayed for each of the web sites within each of the categories. In a 3D visualization, the graphic may be shown as a type of a building. The graphic that is displayed can be dependent upon a value of one or more metadata items associated with the web site. For example, the better of a review that a web site receives from an editor perhaps the bigger the building is displayed. To further differentiate web sites' graphics on the map region, in one embodiment of the system, the web sites within a category are assigned a visibility rank, where, based on some criteria, the “best” web sites are the most visible. Other metadata for the web sites can also be displayed, either as a permanent part of the visualization, or only upon a specific action (such as the user mousing over the web site's graphic).
In the 3D visualization, a metaphor of a world or city can be used. As already explained, in some embodiments, a real area of the world can be used as the map region, to which the hierarchical objects can be mapped. Each category area can be seen as a neighborhood within a city, and each web site's graphic can seem to be a building within a city. To aid in navigation among the categories, virtual roads can be presented between the category areas.
III. Runtime Database 110
One embodiment of a system utilizing the present invention is shown in
Categories are organized into a hierarchy, i.e., each category has a single parent category and can have zero or more subcategories or child categories. Categories at the top of a hierarchy are special cases in that they do not have a parent. These are called top-level categories. The system can handle an arbitrary number of categories, top-level categories, subcategories, and hierarchy depth.
As well as subcategories, each category can contain zero or more sites (i.e., website). In
The second key class of site attributes is metadata. Examples of metadata are: size, in-link count, and out-link count. Site metadata is collected and calculated. Metadata is communicated to a user through the visualization. For example, the size of the graphic can very based on the website's visibility rating.
IV. Runtime Subsystem 115
The runtime subsystem 115, which provides visualization services to users, shown in
1. The Host Computer 175
A. Web Server 155
One embodiment of the system uses the Apache web server software. This is a robust, commercial-grade, feature-rich, and freely available source code implementation of an http web server. Information on the Apache web server is available at <www.apache.org>.
B. Map Serving Software 150
In one embodiment of the system, the map serving software 150 is an Apache module that responds to queries from the visualization clients 180. The queries are formed using the protocol of the present invention. The server satisfies the queries by extracting the requested data from the runtime database 110. The map serving software 150 has been configured in one embodiment to support the following interfaces, among others:
If the request is for a category, then the map server 150 sets x, z, w, and d to the category's coordinates. If 3D output is supported, XML is output for all of the categories (and subcategories) within <x, z, w, d> and then outputs all of the sites within this space (steps 1121 and 1122). Otherwise, if 2D output is required, the x,z,w,d location is centered in the display window (step 1176 of
If the /xzwd handler is invoked, the map server 150 determines which parent category is the best to display (step 1124) and then outputs the proper information in either 3D or 2D. A /chat request causes the map server to launch a chat client for the respective category (step 1116). With a /teleport request, an HTML listing is produced listing the hyperlinks for each top-level Category (step 1164) or for each subcategory within a specific category (steps 1168-1174). The hyperlinks listing for allowing teleport navigation is then output (step 1166) to allow the user to jump (i.e., teleport) to any of the listed categories.
If a /search request is made to the map server software 150, the search string is first parsed into the string's component words (step 1132). The category word index is searched to determine whether any direct matches exist (step 1134). Then the site word index is searched to determine whether any direct matches exist for sites (step 1136). If direct matches were found, they are output to the user (step 1140 or step 1148), otherwise partial matches are returned (steps 1154-1160, 1150, 1152, 1142, 1144).
2. The Client Computer 180
The host computer 175 serves information that is requested by various client computers 180 via a computer network 160 such as the Internet's IP network. To access the information from the host computer 175, users with client computers 180 connected to the Internet must have a web browser 165. To process requests and responses that using the protocol of the present invention, the client computer 180 must also have a 3D plug-in 170.
A. Web browser 165
The system is compatible with current web browsers such as Microsoft's Internet Explorer and Netscape's Communicator. Such web browsers provide the user with a two-dimensional visualization of the information space. If the optional 3D plug-in 170 is present, the browser 165 can provide a 3D image.
B. 3D Browser Plug-In 170
The 3d browser plug-in software 170 provides a three-dimensional visualization of the runtime database 110. In such a 3D configuration, a virtual world comprising ground and sky, and in which the websites are represented as buildings can be rendered.
The graphical elements are used to convey metadata information to the user creating a semantically rich landscape. Examples of such graphical elements include: building architecture, size, color, and adornments. Text is used as well to convey information. For example, a text window can be displayed when a user mouses-over a building.
The 3d browser plug-in 170 enables a user to move explore the information landscape by moving around and changing the viewpoint. Integration of the plug-in 170 with html in the browser 165 enables the user to control the visualization with functions such as zoom and teleport.
V. The XYZ Protocol for Describing Objects
The present invention, which can be called the “XYZ Protocol” is used as a protocol for describing the objects to be visualized. Although the method of the present invention could be implemented in various ways, one method of implementation is to create a series of XML tags. In such an embodiment, the XYZ Protocol is based on top of HTTP and URL. Thus the XYZ Protocol is well suited for Internet-based applications.
The XYZ Protocol is very appropriate for traversing virtual spaces because rather than delivering to the client lengthy instructions on how to render the objects, the Protocol instead delivers only the coordinates for the object and metadata about the object. The client is free to be configured to render the objects as desired. Thus, a single server using the XYZ Protocol to deliver responses describing a set of objects in a virtual space can be simultaneously leveraged by different types of clients. For example, some clients could be configured to depict the objects for school-age users. In such a system, perhaps the web-site objects are shown as different cartoon characters. Other clients could be configured to depict the objects for adults. In this system, the web-site objects can be shown as a city made up of different types and sizes of buildings. New clients with new rendering approaches can be developed without needing to change the server.
The XYZ Protocol is very flexible because by the very nature of XML, new tags can be created and added to the Protocol as necessary. The Protocol is also desirable because it is compact and conserves bandwidth during transmission over protocols (such as VRML) that transmit physical details of the objects to be visualized rather than allowing the client to off-load the rendering process. Since the client undertakes the rendering, the server can handle a large number of users concurrently, sending only facts, labels and metadata in response to the various requests.
The network information visualization system depicted in
- http://map.net/xzwd?x=120000;z=140000;w=30;d=130;maxS=22
Alternatively, the request might be coded as:
- http://map.net/xyz?x=120000;y=3800;z=140000
to request a view from the position at 120,000 meters from the left of the landscape, 3800 meters above the surface of the landscape, and 140,000 meters from the bottom of the landscape.
The request can be transmitted over the network 165 and received by the host computer 175 web server 155, and passed to the map serving software 150 for a response. As described in
The set of XYZ Protocol tags and attributes used in the responses are in a reserved XML Namespace. The Namespace includes markup for packaging the whole transmission and for describing the X,Z,W,D region. The Namespace also includes markup for describing each object's URL, Title, Description, and coordinate position, among other things.
1. Elements of the XYZ Protocol
In one embodiment, the XYZ Protocol is made up of the following XML elements:
Of course, one skilled in the art could readily construct the protocol with a different selection of tags.
Each of the elements listed above will now be described:
2. The XML Element
3. The XYZ Tag
4. The Copyright Tag
5. The Site Tag
6. The U Tag for URLs
7. The T tag for Titles
8. The D tag for Descriptions
9. The AT Tag for Locations
10. The CAT Tag for Categories
11. The AD Tag for Advertisements
12. Document Structure of the Tags
As with HTML, there is a hierarchical structure to the markup used in the XYZ Protocol. The following table shows the relationship of the tags:
13. A Sample Response
As explained above, once all of the objects and associated metadata are retrieved from the runtime database 110 for a request from a client 180, the map serving software 150 constructs the response with the above described XYZ Protocol and the response is sent through the network 160 to the client 180 via HTTP (Step C of
For example, the response might be:
Such a response indicates that the subcategory to be visualized is the “Authoring Systems” subcategory. The subcategory is positioned according to the x,z,w,d coordinates of (2901100, 355000, 1300, 800). (In one embodiment, category is rendered by the client as a rectangle plot of virtual land.) Within this category, two web sites are to be displayed: (1) The REXX Adventure Page at coordinates (2901105, 355005), and (2) The Adventure Builder at coordinates (2901165, 355035). The 3D Browser Plug-In 170 parses the XYZ response and renders the objects in a 3D map (Step D of
From the foregoing detailed description, it will be evident that there are a number of changes, adaptations and modifications of the present invention which come within the province of those skilled in the art. However, it is intended that all such variations not departing from the spirit of the invention be considered as within the scope thereof.
Claims
1. A method for describing a plurality of objects in a map of a virtual space, the method comprising:
- expressing an world position for each of the plurality of objects, where the object position defines the location of the object within the virtual space;
- listing object metadata for each of the plurality of objects, where the object metadata characterizes detail information about each of the plurality of objects.
2. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of expressing a world position comprises expressing an x-coordinate and a z-coordinate of the object on the map.
3. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing how much graphical material each of the plurality of objects contains.
4. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a title for each of the plurality of objects.
5. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a description for each of the plurality of objects.
6. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a page count of the number of pages contained within each of the plurality of objects.
7. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a out-links count of the number of links pointing away from each of the plurality of objects.
8. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a in-links count of the number of links pointing to each of the plurality of objects.
9. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a rating for each of the plurality of objects.
10. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a logo for a company associated to each of the plurality of objects.
11. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing contact information for a company associated to each of the plurality of objects.
12. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing an industry SIC code for a company associated to each of the plurality of objects.
13. The method for describing a plurality of objects in a map of a virtual space from claim 1, wherein the step of listing object metadata comprises listing a trading symbol for a company associated to each of the plurality of objects.
14. The method for describing a plurality of objects in a map of a virtual space from claim 1, further comprising:
- designating at least one category for the map, where the step of designating comprises: listing category metadata for each of the categories, where the category metadata discloses detail information about each of the categories; and defining a category bounds on the map for each of the categories.
15. The method for describing a plurality of objects in a map of a virtual space from claim 14, wherein the step of defining a category bounds comprises defining an x-coordinate, a z-coordinate, a width-coordinate, and a height-coordinate for the category.
16. The method for describing a plurality of objects in a map of a virtual space from claim 14, wherein the step of listing a category metadata comprises listing a category identifier.
17. The method for describing a plurality of objects in a map of a virtual space from claim 14, wherein the step of listing a category metadata comprises listing a depth identifier for describing a hierarchical depth of the category.
18. The method for describing a plurality of objects in a map of a virtual space from claim 1, further comprising:
- defining a map bounds, for describing what portion of the virtual space is shown by the map; and
- listing map metadata, for describing detail characteristics of the map.
19. The method for describing a plurality of objects in a map of a virtual space from claim 18, wherein the step of expressing a map bounds comprises defining an x-coordinate, a z-coordinate, a width-coordinate, and a height-coordinate for the map.
20. The method for describing a plurality of objects in a map of a virtual space from claim 18, wherein the step of listing a category metadata comprises listing a maximum page count corresponding to the highest number of pages for any of the objects.
21. The method for describing a plurality of objects in a map of a virtual space from claim 18, wherein the step of listing a category metadata comprises listing a maximum out-links corresponding to the highest number of links pointing away from any of the objects.
22. The method for describing a plurality of objects in a map of a virtual space from claim 18, wherein the step of listing a category metadata comprises listing a maximum in-links corresponding to the highest number of links pointing to any of the objects.
23. The method for describing a plurality of objects in a map of a virtual space from claim 18, wherein the step of listing a category metadata comprises listing a maximum rating for any of the objects.
24. The method for describing a plurality of objects in a map of a virtual space from claim 18, wherein the step of listing a category metadata comprises listing a metadata range, where the metadata range is the minimum value of the metadata or the maximum value of the metadata for any of the objects.
25. The method for describing a plurality of objects in a map of a virtual space from any one of the previous claims, wherein the plurality of objects are URLs.
26. The method for describing a plurality of objects in a map of a virtual space from any one of the previous claims, wherein XML protocol is used to describe the plurality of objects in the map of the virtual space.
27. The method for describing a plurality of objects in a map of a virtual space from claim 26, wherein XML namespaces are used to enable extension of XML protocol.
Type: Application
Filed: Apr 14, 2005
Publication Date: Sep 29, 2005
Applicant: Antarti.ca Systems, Inc. (Vancouver)
Inventors: Tim Bray (Vancouver), David Ashworth (North Vancouver)
Application Number: 11/105,789