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.

Patents

  1. Advanced Patent Search
Publication numberWO2009079738 A1
Publication typeApplication
Application numberPCT/CA2007/002360
Publication date2 Jul 2009
Filing date21 Dec 2007
Priority date21 Dec 2007
Publication numberPCT/2007/2360, PCT/CA/2007/002360, PCT/CA/2007/02360, PCT/CA/7/002360, PCT/CA/7/02360, PCT/CA2007/002360, PCT/CA2007/02360, PCT/CA2007002360, PCT/CA200702360, PCT/CA7/002360, PCT/CA7/02360, PCT/CA7002360, PCT/CA702360, WO 2009/079738 A1, WO 2009079738 A1, WO 2009079738A1, WO-A1-2009079738, WO2009/079738A1, WO2009079738 A1, WO2009079738A1
InventorsCarlos Eduardo Seo, Rodrigo Garcia Da Silva, Aline Guedes Pinto, Breno Henrique Leitao, Lucas Gocalves Franco, Luis Gustavo Pinheiro Machado, Rodrigo Ceron Ferreira De Castro, Wainer Dos Santos Moschetta
ApplicantInternational Business Machines Corporation, Ibm Canada Ltd.
Export CitationBiBTeX, EndNote, RefMan
External Links: Patentscope, Espacenet
Transfer of user profiles between virtual worlds
WO 2009079738 A1
Abstract
A user who has a foreign profile associated with a foreign virtual world may be represented in a local virtual world that is distinct from the foreign virtual world. A request for entry into the local virtual world, which identifies the user and the foreign virtual world, is received from the user. The user's foreign profile associated with the foreign virtual world is requested from a system maintaining the foreign virtual world. The user's foreign profile, which is compatible with the foreign virtual world and incompatible with the local virtual world, is received from the system maintaining the foreign virtual world. The user's foreign profile is analyzed, and a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world is generated in a format compatible with the local virtual world. The visitor profile is then stored.
Claims  (OCR text may contain errors)
What is claimed is:
1. A method for representing in a local virtual world a user who has a foreign profile associated with a foreign virtual world that is distinct from the local virtual world, the method comprising:
receiving from the user a request for entry into the local virtual world, the request identifying the user and the foreign virtual world;
requesting from a system maintaining the foreign virtual world the user's foreign profile associated with the foreign virtual world;
receiving from the system maintaining the foreign virtual world the user's foreign profile associated with the foreign virtual world, the user's foreign profile being compatible with the foreign virtual world and being incompatible with the local virtual world;
analyzing the user's foreign profile from the foreign virtual world and generating a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world in a format compatible with the local virtual world; and
storing the visitor profile.
2. The method of claim 1 , wherein the local virtual world has associated therewith a home database for storing home profiles for members of the local virtual world and a visitor database, wherein the home database and the visitor database are distinct from one another, and wherein storing the visitor profile comprises storing the visitor profile in the visitor database.
3. The method of claim 2, further comprising:
updating the visitor profile based on the user's virtual activities in the local virtual world to generate an updated visitor profile; and
storing the updated visitor profile in the visitor database.
4. The method of claim 3, further comprising:
responsive to completion by the user of virtual activity within the local virtual world, transmitting the updated visitor profile to the system maintaining the foreign virtual world.
5. The method of claim 4, further comprising translating the updated visitor profile from a format that is compatible with the local virtual world and incompatible with the foreign virtual world to a format that is compatible with the foreign virtual world.
6. The method of claim 1 , wherein analyzing the user's foreign profile from the foreign virtual world and generating a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world in a format compatible with the local virtual world comprises:
applying an appropriate first set of conversion rules to the user's foreign profile to generate an abstract representation of data contained in the foreign profile; and
applying an appropriate second set of conversion rules to the abstract representation to generate the visitor profile.
7. A method for updating a user's profile in a home virtual world, the method comprising:
receiving from a system maintaining a foreign virtual world a request for the user's home profile associated with the home virtual world;
responsive to the request, transmitting the user's home profile to the system maintaining the foreign virtual world;
receiving an updated profile for the user from the system maintaining the foreign virtual world, the updated profile accurately representing data from the user's home profile and from virtual activities of the user in the foreign virtual world; and
storing the updated profile so that the updated profile replaces the home profile and is in a format compatible with the home virtual world.
8. The method of claim 7, further comprising:
in association with transmitting the user's home profile, suspending activity by the user in the home virtual world; and
responsive to storing the updated profile, enabling activity by the user in the home virtual world.
9. The method of claim 7, wherein storing the updated profile so that the updated profile replaces the home profile and is in a format compatible with the home virtual world comprises translating the updated profile from a format compatible with the foreign virtual world to a format compatible with the home virtual world.
10. The method of claim 9, wherein translating the updated profile from a format compatible with the foreign virtual world to a format compatible with the home virtual world comprises:
applying an appropriate first set of conversion rules to the updated profile to generate an accurate abstract representation of data contained in the updated profile; and
applying an appropriate second set of conversion rules to the abstract representation to generate an accurate translated profile in a format compatible with the home virtual world.
11. A method for converting a user profile from a first format for a first virtual world into a second format for a second virtual world, the method comprising:
receiving a first user profile in a format that is compatible with the first virtual world and incompatible with the second virtual world; and
applying an appropriate first set of conversion rules to the first user profile to generate an accurate abstract representation of data contained in the first user profile.
12. The method of claim 11 , further comprising:
applying an appropriate second set of conversion rules to the abstract representation to generate a second user profile in a format that is compatible with the second virtual world and which accurately represents the data from the first user profile that is relevant to the second virtual world.
13. The method of claim 12, further comprising:
identifying information contained in the first user profile that will be omitted from the second user profile; and
storing the identified information.
14. The method of claim 13, further comprising: receiving a first updated user profile in a format that is compatible with the second virtual world;
applying the second set of conversion rules to the first updated user profile to generate an updated abstract representation of data contained in the updated user profile;
adding data corresponding to the identified information to the updated abstract representation; and
applying the first set of conversion rules to the updated abstract representation to generate a second updated user profile that is compatible with the first virtual world and which accurately represents the data from the first updated user profile that is relevant to the first virtual world and which includes data corresponding to the identified information.
15. The method of claim 13 , further comprising:
receiving a first updated user profile in a format that is compatible with the second virtual world;
applying the second set of conversion rules to the first updated user profile to generate an accurate updated abstract representation of data contained in the first updated user profile;
applying the first set of conversion rules to the updated abstract representation to generate a second updated user profile that is compatible with the first virtual world and which accurately represents the data from the first updated user profile that is relevant to the first virtual world; and
adding data corresponding to the identified information to the second updated user profile.
16. A data processing system for maintaining user profiles for use in association with a local virtual world, the data processing system comprising a bus system; a communications unit coupled to the bus system; a memory coupled to the bus system, wherein the memory includes a set of instructions; and a processing unit coupled to the bus system, wherein the processing unit is operable to cause execution of the set of instructions to perform the following steps:
receive at the communications unit a request from a user for entry into the local virtual world, wherein the user has a foreign profile associated with a foreign virtual world that is distinct from the local virtual world;
responsive to the request for entry into the local virtual world, cause the communications unit to request from a system maintaining the foreign virtual world the user's foreign profile, the user's foreign profile being compatible with the foreign virtual world and being incompatible with the local virtual world;
receive at the communication unit the user's foreign profile; responsive to receiving the user's foreign profile, analyze the user's foreign profile from the foreign virtual world and generate a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world in a format compatible with the local virtual world; and
store the visitor profile.
17. The data processing system of claim 16, further comprising a home database for storing home profiles for members of the local virtual world and a visitor database, wherein the home database and the visitor database are distinct from one another, and wherein storing the visitor profile comprises storing the visitor profile in the visitor database.
18. The data processing system of claim 17, wherein the processing unit is operable to cause execution of the set of instructions to perform the following further steps:
update the visitor profile based on the user's virtual activities in the local virtual world to generate an updated visitor profile; and
store the updated visitor profile in the visitor database.
19. The data processing system of claim 18, wherein the processing unit is operable to cause execution of the set of instructions to perform the following further step: responsive to completion by the user of virtual activity within the local virtual world, transmit the updated visitor profile to the system maintaining the foreign virtual world.
20. The data processing system of claim 19, wherein the processing unit is operable to cause execution of the set of instructions to perform the following further step:
prior to transmitting the updated visitor profile to the system maintaining the foreign virtual world, translate the updated visitor profile from a format that is compatible with the local virtual world and incompatible with the foreign virtual world to a format that is compatible with the foreign virtual world.
21. The data processing system of claim 16, wherein the processing unit is operable to cause execution of the set of instructions to analyze the user's foreign profile from the foreign virtual world and generate a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world in a format compatible with the local virtual world by carrying out the following steps:
applying an appropriate first set of conversion rules to the user's foreign profile from the foreign virtual world to generate an accurate abstract representation of data contained in the foreign profile; and
applying an appropriate second set of conversion rules to the abstract representation to generate the visitor profile.
22. A data processing system for updating a user's profile in a home virtual world, the data processing system comprising a bus system; a communications unit coupled to the bus system; a memory coupled to the bus system, wherein the memory includes a set of instructions; and a processing unit coupled to the bus system, wherein the processing unit is operable to cause execution of the set of instructions to perform the following steps:
receive at the communications unit a request from a system maintaining a foreign virtual world for the user's home profile associated with the home virtual world;
responsive to the request, transmit the user's home profile associated with the home virtual world to the system maintaining the foreign virtual world;
receive at the communications unit an updated profile for the user from the system maintaining the foreign virtual world; and
store the updated profile so that the updated profile replaces the home profile and is in a format compatible with the home virtual world.
23. The data processing system of claim 22, wherein the processing unit is operable to cause execution of the set of instructions to perform the following further steps:
in association with transmitting the user's home profile associated with the home virtual world to the system maintaining the foreign virtual world, suspend activity by the user in the home virtual world; and responsive to storing the updated profile, enable activity by the user in the home virtual world.
24. The data processing system of claim 22, wherein the step of storing the updated profile so that the updated profile replaces the home profile and is in a format compatible with the home virtual world comprises translating the updated profile from a format compatible with the foreign virtual world to a format compatible with the home virtual world.
25. The data processing system of claim 24, wherein translating the updated profile from a format compatible with the foreign virtual world to a format compatible with the home virtual world comprises:
applying an appropriate first set of conversion rules to the updated profile to generate an accurate abstract representation of data contained in the updated profile; and
applying an appropriate second set of conversion rules to the abstract representation to generate an accurate translated profile in a format compatible with the home virtual world.
Description  (OCR text may contain errors)

TRANSFER OF USER PROFILES BETWEEN VIRTUAL WORLDS

FIELD OF THE INVENTION

[0001 ] The present invention relates to virtual worlds and more particularly to enabling the use of user profiles associated with a first virtual world in association with a second virtual world.

BACKGROUND OF THE INVENTION

[0002] Virtual worlds are computer-generated simulated environments through which users can interact (with both the simulated environment and other users). Typically, virtual worlds are a representation of a two-dimensional space or three-dimensional space, and users can navigate through these representations. One of the most popular virtual worlds is "Second Life", which is operated by Linden Labs. Other virtual worlds include "There", which is operated by Makena Technologies, Inc. and "Entropia Universe", a continuation of "Project Entropia", operated by MindArk PE AB.

[0003] Many virtual worlds are extremely rich and detailed (virtual) environments, which allow users to engage in a wide variety of virtual activities. Multiple users (often numbering in the thousands) can participate simultaneously in a single virtual world and can interact with the virtual world and with other users, and a change made to the virtual world by one user will typically be experienced by the other users. Activities that can be carried out in virtual worlds include virtual social interaction, the creation and transfer of virtual personal property, including virtual chattels and virtual money, and the acquisition and transfer of virtual real property (i.e. a "piece" of the virtual world analogous to a piece of real property in the real world) as well as the construction of virtual structures thereon. This virtual property often has a real world value, and real world money can be used to purchase virtual property; the virtual currency used in virtual worlds frequently has a recognized exchange rate into U.S. Dollars. One user of the Project Entropia virtual world (now continued as Entropia Universe) paid $100,000 in real money to acquire a virtual space station.

[0004] Within a virtual world, a user is typically represented by an "avatar", which is a visual representation of the user within the virtual world. Thus, a first user who is "viewing" (i.e. via a computer display) a second user in the same virtual world would see that second user's avatar. In some cases an avatar may be a fairly accurate representation (for example, an avatar could be adapted from a photographic image of the user); in other cases it may be entirely whimsical (for example, an avatar might be a cartoon squirrel).

[0005] Users of virtual worlds also typically have profiles which are associated with them and their activities in the virtual world. These profiles are typically stored by the entity which operates the virtual world, and can include a potentially limitless amount of information. For example, in addition to storing graphical information necessary to represent a user's avatar, a user's profile could include information about the reputation a user has acquired in that virtual world, virtual objects and virtual real estate that the user owns in the virtual world, and virtual money possessed by the user, as well as a wide array of other information. SUMMARY OF THE INVENTION

[0006] In one aspect, the present invention is directed to a method for representing in a local virtual world a user who has a foreign profile associated with a foreign virtual world that is distinct from the local virtual world. A request for entry into the local virtual world is received from a user, with the request identifying the user and the foreign virtual world. A request is made to a system maintaining the foreign virtual world for the user's foreign profile associated with the foreign virtual world, and the user's foreign profile associated with the foreign virtual world is received from the system maintaining the foreign virtual world. The user's foreign profile is compatible with the foreign virtual world and is incompatible with the local virtual world. The user's foreign profile from the foreign virtual world is analyzed, a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world is generated in a format compatible with the local virtual world, and the visitor profile is stored.

[0007] In an embodiment, the local virtual world has associated therewith a home database for storing home profiles for members of the local virtual world and a visitor database. The home database and the visitor database are distinct from one another, and storing the visitor profile comprises storing the visitor profile in the visitor database.

[0008] In an embodiment, the visitor profile is updated based on the user's virtual activities in the local virtual world to generate an updated visitor profile, and the updated visitor profile is stored in the visitor database. In a particular instance of this embodiment, in response to completion by the user of virtual activity within the local virtual world, the updated visitor profile is transmitted to the system maintaining the foreign virtual world. The updated visitor profile may be translated from a format that is compatible with the local virtual world and incompatible with the foreign virtual world to a format that is compatible with the foreign virtual world.

[0009] In an embodiment, analyzing the user's foreign profile from the foreign virtual world and generating a visitor profile accurately representing data from the user's foreign profile that is relevant to the local virtual world in a format compatible with the local virtual world comprises applying an appropriate first set of conversion rules to the user's foreign profile to generate an abstract representation of data contained in the foreign profile, and applying an appropriate second set of conversion rules to the abstract representation to generate the visitor profile.

[0010] In another aspect, the present invention is directed to a method for updating a user's profile in a home virtual world. A request for the user's home profile associated with the home virtual world is received from a system maintaining a foreign virtual world. Responsive to the request, the user's home profile is transmitted to the system maintaining the foreign virtual world. An updated profile for the user, which accurately represents data from the user's home profile and from virtual activities of the user in the foreign virtual world, is received from the system maintaining the foreign virtual world, and the updated profile is stored so that the updated profile replaces the home profile and is in a format compatible with the home virtual world.

[0011 ] In an embodiment, in association with transmitting the user's home profile, activity by the user in the home virtual world is suspended, and activity by the user in the home virtual world is enabled in response to storing the updated profile. [0012] In an embodiment, storing the updated profile so that the updated profile replaces the home profile and is in a format compatible with the home virtual world comprises translating the updated profile from a format compatible with the foreign virtual world to a format compatible with the home virtual world. Translating the updated profile from a format compatible with the foreign virtual world to a format compatible with the home virtual world may comprise applying an appropriate first set of conversion rules to the updated profile to generate an accurate abstract representation of data contained in the updated profile, and applying an appropriate second set of conversion rules to the abstract representation to generate an accurate translated profile in a format compatible with the home virtual world.

[0013] In another aspect, the present invention is directed to a method for converting a user profile from a first format for a first virtual world into a second format for a second virtual world. A first user profile in a format that is compatible with the first virtual world and incompatible with the second virtual world is received, and an appropriate first set of conversion rules is applied to the first user profile to generate an accurate abstract representation of data contained in the first user profile.

[0014] In an embodiment, an appropriate second set of conversion rules is applied to the abstract representation to generate a second user profile in a format that is compatible with the second virtual world and which accurately represents the data from the first user profile that is relevant to the second virtual world.

[0015] In an embodiment, information contained in the first user profile that will be omitted from the second user profile is identified and stored. In a particular instance of this embodiment, a first updated user profile, in a format that is compatible with the second virtual world, is received. The second set of conversion rules is applied to the first updated user profile to generate an updated abstract representation of data contained in the updated user profile, and data corresponding to the identified information is added to the updated abstract representation. The first set of conversion rules is applied to the updated abstract representation to generate a second updated user profile that is compatible with the first virtual world and which accurately represents the data from the first updated user profile that is relevant to the first virtual world and which includes data corresponding to the identified information. In another instance of this embodiment, a first updated user profile, in a format that is compatible with the second virtual world, is received. The second set of conversion rules is applied to the first updated user profile to generate an accurate updated abstract representation of data contained in the first updated user profile, and the first set of conversion rules is applied to the updated abstract representation to generate a second updated user profile that is compatible with the first virtual world and which accurately represents the data from the first updated user profile that is relevant to the first virtual world. Data corresponding to the identified information is added to the second updated user profile.

[0016] In other aspects, the present invention is directed to data processing systems and computer program products for implementing the above-described methods.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Figure 1 is an exemplary block diagram of a distributed data processing system in which aspects of the present invention may be implemented; [0018] Figure 2 is an exemplary block diagram of a server computing device in which aspects of the present invention may be implemented;

[0019] Figure 3 is an exemplary block diagram of a client computing device in which aspects of the present invention may be implemented;

[0020] Figure 4 is flow chart showing an illustrative method for representing in a local virtual world a user who has a foreign profile associated with a foreign virtual world that is distinct from the local virtual world, according to an aspect of the present invention;

[0021] Figure 5 is an illustrative schematic representation showing implementation of an aspect of the present invention in respect of an arrangement comprising a first virtual world and a second virtual world;

[0022] Figure 6 is a flow chart showing an illustrative method for converting a user profile from a first format for a first virtual world into a second format for a second virtual world in accordance with an aspect of the present invention;

[0023] Figure 7 is a flow chart showing an illustrative method for updating a user's profile in a home virtual world in accordance with an aspect of the present invention; and

[0024] Figure 8 is an illustrative schematic representation of the arrangement shown in Figure 5, showing implementation of another aspect of the present invention. DETAILED DESCRIPTION

[0025] With reference now to the figures, Figure 1 depicts a pictorial representation of a network of data processing systems in which aspects of the present invention may be implemented. Network data processing system 100 is a network of computers in which aspects of the present invention may be implemented. Network data processing system 100 contains a network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 102 may include connections, such as wire, wireless communication links, or fiber optic cables.

[0026] In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, clients 108, 110, and 112 are connected to network 102. These clients 108, 110, and 112 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to clients 108-112. Clients 108, 110, and 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN). Figure 1 is intended as an example, and not as an architectural limitation for any aspect of the present invention.

[0027] Referring to Figure 2, a block diagram of a data processing system that may be implemented as a server, such as server 104 in Figure 1, is depicted. Data processing system 200 may be a symmetric multiprocessor (SMP) system including a plurality of processors 202 and 204 coupled to system bus 206. Alternatively, a single processor system may be employed. Also coupled to system bus 206 is memory controller/cache 208, which provides an interface to local memory 209. I/O bus bridge 210 is coupled to system bus 206 and provides an interface to I/O bus 212. Memory controller/cache 208 and I/O bus bridge 210 may be integrated as depicted.

[0028] Peripheral component interconnect (PCI) bus bridge 214 coupled to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be coupled to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in Figure 1 may be provided through modem 218 and network adapter 220 connected to PCI local bus 216 through add-in boards.

[0029] Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be coupled to I/O bus 212 as depicted, either directly or indirectly. [0030] Those of ordinary skill in the art will appreciate that the hardware depicted in Figure 2 may vary. For example, other peripheral devices, such as optical disk drives and the like, also may be used in addition to or in place of the hardware depicted. The depicted example is not meant to imply architectural limitations with respect to any aspect of the present invention.

[0031 ] The data processing system depicted in Figure 2 may be, for example, an IBM® eServer™ pSeries® system, a product of International Business Machines Corporation in Armonk, N. Y., running the Advanced Interactive Executive (AIX®) operating system or LINUX® operating system. IBM, eServer, pSeries and AIX are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.

[0032] With reference now to Figure 3, a block diagram illustrating a data processing system is depicted in which aspects of the present invention may be implemented. Data processing system 300 is an example of a client computer. Data processing system 300 employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor 302 and main memory 304 are coupled to PCI local bus 306 through PCI bridge 308. PCI bridge 308 also may include an integrated memory controller and cache memory for processor 302. Additional connections to PCI local bus 306 may be made through direct component interconnection or through add-in boards. In the depicted example, local area network (LAN) adapter 310, SCSI host bus adapter 312, and expansion bus interface 314 are coupled to PCI local bus 306 by direct component connection. In contrast, audio adapter 316, graphics adapter 318, and audio/video adapter 319 are coupled to PCI local bus 306 by add-in boards inserted into expansion slots. Expansion bus interface 314 provides a connection for a keyboard and mouse adapter 320, modem 322, and additional memory 324. Small computer system interface (SCSI) host bus adapter 312 provides a connection for hard disk drive 326, tape drive 328, and CD-ROM drive 330. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.

[0033] An operating system runs on processor 302 and is used to coordinate and provide control of various components within data processing system 300 in Figure 3. The operating system may be a commercially available operating system, such as Windows XP, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provide calls to the operating system from Java programs or applications executing on data processing system 300. "Java" and all java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Instructions for the operating system, the object-oriented operating system, and applications or programs are located on storage devices, such as hard disk drive 326, and may be loaded into main memory 304 for execution by processor 302.

[0034] Those of ordinary skill in the art will appreciate that the hardware in Figure 3 may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash read-only memory (ROM), equivalent nonvolatile memory, or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in Figure 3. Also, the processes of the present invention may be applied to a multiprocessor data processing system.

[0035] As another example, data processing system 300 may be a stand-alone system configured to be bootable without relying on some type of network communication interfaces. As a further example, data processing system 300 may be a personal digital assistant (PDA) device, which is configured with ROM and/or flash ROM in order to provide non- volatile memory for storing operating system files and/or user-generated data.

[0036] The depicted example in Figure 3 and above-described examples are not meant to imply architectural limitations. For example, data processing system 300 also may be a notebook computer or hand held computer in addition to taking the form of a PDA. Data processing system 300 also may be a kiosk or a Web appliance.

[0037] The system that maintains a particular virtual world may comprise one or more servers, such as the data processing system 200 depicted in Figure 2, running specialized software to manage the implementation of the virtual world. A plurality of users may access and interact with the virtual world using data processing systems, such as data processing system 300 depicted in Figure 3, that are coupled to the system that maintains the virtual world. The data processing systems used by the users to access and interact with the virtual world may also implement specialized software to facilitate and mediate such interaction. Of course, other configurations are also possible.

[0038] There are a wide variety of different virtual worlds, and typically each virtual world is operated by a different entity. As a result, a user who wishes to participate in more than one virtual world usually must create a different user account (typically including a profile) for use with each virtual world. When a user creates a new profile for a virtual world in which he or she has not previously participated, the user must typically start "from scratch" in that virtual world. This means that a user who has engaged in considerable activity within a first virtual world cannot "carry over" the virtual "fruits" of that virtual "labor" (such as virtual property, virtual reputation or other features from his or her profile in the first virtual world) to the second virtual world.

[0039] One solution that has been proposed to remedy this situation is the use of standards. For example, the World Wide Web generally functions well because participants follow a set of standards for communication. Standards might similarly be used in respect of virtual worlds, with the operators of virtual worlds agreeing in advance to a specified, pre-determined standard format for user profiles so that they can be shared among different virtual worlds. Such an approach has been suggested by Bob Sutor in an article entitled "Standards will help users keep their virtual clothes on" at http://www.computerworlduk.com/technologv/internet/web2/news/index.cfm?newsid=3471. In the article, Mr. Sutor is quoted as saying, "You need standards for how to teleport between different virtual worlds and to bring objects with you." This article was the subject of discussion on the RCE Universe discussion board, at the Internet address httpy/rceuniverse.com/forum/lofiversion/index.php/tSgSS.html.

[0040] In addition, published Japanese Patent Application 2005234633A describes the migration of a user from a first virtual world to a second virtual world. [0041] The exemplary representative virtual worlds "FirstWorld" and "WorldTwo" are used herein for the purpose of describing illustrative embodiments because the present invention is not specific to any particular virtual worlds. FirstWorld may be any suitable presently existing virtual world, including but not limited to Second Life, There, Entropia Universe and others, as well as any suitable virtual world created after filing and after issuance hereof. Similarly, WorldTwo may be any suitable presently existing virtual world, including but not limited to Second Life, There, Entropia Universe and others, as well as any suitable virtual world created after filing and after issuance hereof, as long as it is not the same virtual world as that represented by FirstWorld. Thus, the use of exemplary virtual worlds for the purpose of describing illustrative exemplary embodiments is not to be construed as implying any limit whatsoever on the scope of any aspect of the present invention.

[0042] According to aspects of the present invention, users may in effect carry their profile with them from one virtual world to another, even in the absence of a standard format for a user profile. Thus, a first "local" virtual world could receive "foreign" visitors (users who have a profile in respect of a second, "foreign" virtual world but not in respect of the local virtual world). In addition, according to an aspect of the present invention, users who have a profile associated with a "home" virtual world (i.e. a virtual world that the user considers to be "home") can participate in a foreign virtual world, and their profile in their home virtual world can be updated based on their activities in the foreign virtual world. For example, where a user has a profile in FirstWorld but does not have a profile in WorldTwo, aspects of the present invention allow that user to participate in WorldTwo using his or her profile from FirstWorld, and to have his or her activities in WorldTwo reflected in his or her FirstWorld profile.

[0043] For example, in one embodiment of an aspect of the present invention, a user who has a FirstWorld profile could visit WorldTwo, purchase virtual clothing using virtual money from his or her FirstWorld profile, and then be able to have his or her FirstWorld avatar wear those virtual clothes while participating in FirstWorld (even though the virtual clothes were acquired from WorldTwo). Simultaneously, the amount of virtual money associated with the user's FirstWorld profile could be reduced to reflect the purchase. Numerous other embodiments and implementations are also possible, some of which will be described below. Other embodiments and implementations not explicitly described will be apparent to one skilled in the art, once informed by the herein disclosure.

[0044] Reference is now made to Figure 4, which is a flow chart showing a method 400 in accordance with an aspect of the present invention. The method 400 illustrated in Figure 4 provides for representing in a local virtual world a user who has a foreign profile associated with a foreign virtual world that is distinct from the local virtual world. Thus, a user who has a profile in FirstWorld could be represented within WorldTwo according to the method 400.

[0045] At Step 402, the system maintaining the local virtual world receives a request from the user for entry into the local virtual world. For example, a user who has a profile in FirstWorld may request entry into WorldTwo. The request will identify the user, as well as the foreign virtual world (in this case FirstWorld). In one embodiment, the request may comprise the login ID used by the user in association with the foreign virtual world, as well as the user's password used for the foreign virtual world, although other techniques for identifying the user may also be used. The use of the login ID used by the user in association with the foreign virtual world together with the user's password is advantageous because it supports verification of the user's identity and inhibits an ill- intending third party who is not authorized by the user from trying to access the local virtual world using the user's foreign profile (i.e. virtual identity theft).

[0046] At Step 404, the system maintaining the local virtual world requests the user's foreign profile associated with the foreign virtual world from the system maintaining the foreign virtual world. The system maintaining the local virtual world is able to identify the appropriate systems to which the request is to be directed because the initial request from the user identified the foreign virtual world. For example, the system maintaining the local virtual world could use a list, updated periodically, of the network addresses of the systems maintaining those foreign virtual worlds whose profiles it will accept, so as to facilitate communication therewith. Other techniques could also be used.

[0047] In one embodiment, the request transmitted to the system maintaining the foreign virtual world will include an identification of the user (typically, but not necessarily, this will be the login ID used by the user for the foreign virtual world) and the user's password (included as part of the user's request received at Step 402) to verify that the request is authorized.

[0048] Following processing by the system maintaining the foreign virtual world, which processing does not form part of the method 400, at Step 406 the system maintaining the local virtual world will receive the user's foreign profile associated with the foreign virtual world from the system maintaining that foreign virtual world. It is to be appreciated that in the circumstances in which the method 400 is applicable, the user's foreign profile is compatible with the foreign virtual world but is incompatible with the local virtual world. For example, data in the user's foreign profile may, even though representing features that are also present in the profiles used by the local virtual world, be presented in a different format. Alternatively or additionally, the user's foreign profile may include data representing features that are not used by the local virtual world, or may omit data necessary to represent features that are relevant to the local virtual world. For example, the profile used by the local virtual world may include a data field to represent the virtual height of the associated avatar, while the profile used by the foreign virtual world may not include any such data field because all avatars have identical height in that foreign virtual world, or vice versa.

[0049] At Step 408, the system maintaining the local virtual world will analyze the user's foreign profile from the foreign virtual world and generate a visitor profile for the user. The visitor profile so generated will represent the data from the user's foreign profile that is relevant to the local virtual world in a format that is compatible with the local virtual world. Typically, the format of the visitor profile will be identical or substantially similar to the format used for profiles for the local virtual world, so that the system maintaining the local virtual world can access and utilize the data from the user's foreign profile that is needed to allow the user to participate in the local virtual world. Alternatively, the format of the visitor profile may be different from the format used for profiles for the local virtual world (for example, certain activities might be prohibited to visitors), so long as the information in the visitor profile can be accessed and utilized by the system maintaining the local virtual world to enable the user's participation therein to the extent authorized. In one embodiment, at Step 408 the system maintaining the local virtual world may use a set of rules to generate a visitor profile directly from the user's profile. In another, preferred embodiment, the system maintaining the local virtual world will first generate an abstract representation from the user's foreign profile, and will then generate the visitor profile from the abstract representation. A more detailed illustration of an implementation of this preferred embodiment of Step 408 is provided by Figure 6, which is discussed in greater detail below.

[0050] At Step 410, the system maintaining the local virtual world stores the visitor profile generated at Step 408. The visitor profile may be stored in any storage media that enables the information therein to be accessed and used by the system maintaining the local virtual world so as to enable the user to participate in the local virtual world. For example, the visitor profile may be stored in RAM, on a hard drive, on a (rewritable) CD- ROM or DVD-ROM, on flash memory, or on any other suitable storage medium now in existence or hereinafter developed. Once the visitor profile has been stored at Step 410, this is generally sufficient for the system maintaining the local virtual world to enable the user to participate therein, and the method 400 may optionally end thereafter. However, in certain instances it may be desirable to permit a user's visitor profile to reflect the user's activity within the local virtual world. Accordingly, a system maintaining a local virtual world may implement optional additional Steps 412 to 420.

[0051 ] At optional Step 412, once the visitor profile has been saved (Step 410), the system maintaining the local virtual world monitors the user's activity therein to determine whether any of the user's activity requires (or supports) an update to the user's visitor profile. For example, the user may acquire virtual land or virtual personal property in the local virtual world, or may add another avatar to his or her contact list. Responsive to a determination that the visitor profile should be updated, at optional Step 414 the system maintaining the local virtual world updates the profile and then at optional Step 416 the system maintaining the local virtual world stores the updated visitor profile. After the visitor profile has been updated (optional Step 414) and the updated profile has been stored (optional Step 416), the system maintaining the local virtual world proceeds to optional Step 418 to check whether the user's activity in the local virtual world is complete. Step 418 is described further below.

[0052] In addition to updating the visitor profile based on the user's activities in the local virtual world, it may also be desirable, once the user has completed those activities and is ready to leave the local virtual world, to transmit the updated visitor profile back to the system maintaining the foreign virtual world. For example, the user may have acquired virtual clothing (information about which is stored in the user's updated visitor profile) that the user wishes to have his or her avatar wear upon returning to the foreign virtual world. Accordingly, the system maintaining the local virtual world may also implement optional additional Steps 418 and 420.

[0053] At optional Step 418, the system maintaining the local virtual world monitors the user's activity therein to determine whether the user has completed such activity. Responsive to a determination that the user is not finished in the local virtual world, the system maintaining the local virtual world returns to optional Step 412 to again check whether the user's activity requires an update of the visitor profile. If the system maintaining the local virtual world determines that the user has completed his or her activity in the local virtual world, the method 400 proceeds to optional Step 420, at which point the system that maintains the local virtual world transmits the updated visitor profile to the system that maintains the foreign virtual world, after which the method 400 ends.

[0054] In one embodiment, as will be discussed in greater detail below, transmitting the updated visitor profile at optional Step 420 may be preceded by a step (not shown) of translating the updated visitor profile from a format that is compatible with the local virtual world and incompatible with the foreign virtual world to a format that is compatible with the foreign virtual world. Alternatively, the updated visitor profile may be transmitted to the system that maintains the foreign virtual world without any translation (for example, if the system that maintains the foreign virtual world is adapted to carry out the translation).

[0055] While Figure 4 depicts the system maintaining the local virtual world as checking first for any need to update the visitor profile (optional Step 412) and checking whether the user is finished in the local virtual world (optional Step 418) only after updating the visitor profile (optional Step 416) or determining that there is no need to update the visitor profile, it will be appreciated that these steps may with appropriate modification be performed in the reverse order, and will in practice occur substantially simultaneously.

[0056] With reference now to Figure 6, a method 600 for converting a user profile from a first format for a first virtual world into a second format for a second virtual world is shown generally at 600. The method 600 is an exemplary implementation of Step 408 of the method 400 shown in Figure 4, and thus can be used to generate a visitor profile from a user's foreign profile; it should be noted that the method 400 may be applied in any context where it is desired to convert a user profile from a first format for a first virtual world into a second format for a second virtual world. The method 600 may be implemented by a profile converting tool, which is described below in respect of Figure 5.

[0057] At Step 602, the profile converting tool receives a first user profile in a first format that is compatible with the first virtual world but is incompatible with the second virtual world. At Step 604, the profile converting tool determines an appropriate first set of conversion rules and, at Step 606, applies them to the first user profile to generate an abstract representation of data contained in the first user profile. At Step 608, the profile converting tool determines an appropriate second set of conversion rules and then, at Step 610, the profile converting tool applies the second set of conversion rules to the abstract representation to generate a second user profile in a second format that is compatible with the second virtual world and which accurately represents the data from the first user profile, after which the method 600 ends.

[0058] While the particular implementation of method 600 shown in Figure 6 indicates that the profile converting tool determines the appropriate second set of conversion rules only after the abstract representation has been generated from the first user profile, determination of the appropriate second set of conversion rules may be made at any stage of the process 600 (for example, at the same time that the appropriate first set of conversion rules is determined) without departing from the scope of the present invention.

[0059] Moreover, the profile converting tool may determine the appropriate first set of conversion rules using any suitable technique, such as by analyzing the format of the first user profile or because the virtual world with which the first user profile is associated (and which thereby determines the appropriate first set of conversion rules) is specified in association with transmission of the first user profile to the profile converting tool. Analogously, the profile converting tool must receive some information enabling it to determine which second set of conversion rules to use (for example, by specifying the identity of the second virtual world). In a particular embodiment where a profile converting tool is adapted only to convert between two different formats (and therefore has only two sets of conversion rules), the profile converting tool can determine which second set of conversion rules to use simply by selecting the set of conversion rules that was not used as the first set of conversion rules.

[0060] Typically, a profile converting tool comprises part of the system maintaining a virtual world. Alternatively, a profile converting tool may form part of a separate system and may be maintained by an entity separate from those entities maintaining virtual worlds, in which case the system containing the profile converting tool may be coupled to the systems maintaining the virtual worlds by any suitable means known in the art, including a local network, the Internet, or any other suitable means.

[0061] The method 600 may in some instances be advantageously divided into two parts. In such instances, a first profile converting tool may form part of a first system and a second profile converting tool may form part of a second system that is physically remote from the first system. In such an embodiment, the first profile converting tool could carry out Steps 602 (receiving the first profile), 604 (determining the first set of conversion rules) and 606 (applying the first set of conversion rules to generate an abstract representation), and could then transmit the abstract representation to the second profile converting tool, which would then carry out Steps 608 (determining the second set of conversion rules) and 610 (applying the second set of conversion rules to generate an abstract representation). Where the first profile converting tool has only one set of conversion tools, Step 604 (determining the first set of conversion rules) may be omitted since the first set of conversion rules is predetermined. Similarly, where the second profile converting tool has only one set of conversion tools, Step 608 (determining the first set of conversion rules) may be omitted since the second set of conversion rules is predetermined.

[0062] Alternatively, the first profile converting tool could carry out Steps 602, 604 (if necessary), 606 and 608, and could then transmit the abstract representation, along with an indication of the appropriate second set of conversion rules, to the second profile converting tool, which would then carry out Step 610.

[0063] Referring now to Figure 5, an exemplary implementation of aspects of the present invention is described. In the situation depicted by Figure 5, WorldTwo 550 has received a request for entry from a user (not shown). Receipt of this request corresponds to Step 402 of the method 400 in Figure 4, so WorldTwo 550 is the local virtual world for the purposes of the method 400. As noted above, WorldTwo 550 can be any virtual world, including but not limited to Second Life, There, Entropia Universe, and others. [0064] The user who has requested entry into WorldTwo 550 does not have a profile associated with WorldTwo 550, but does have a profile 516 associated with First World 510. Thus, for the purposes of the method 400, First World 510 is a foreign virtual world (relative to WorldTwo 550) and the user's First World profile 516 may be considered a foreign profile (in the sense that FirstWorld 510 and the profiles used therein are foreign to WorldTwo 550). As noted above, FirstWorld 510 can be any virtual world that is not the same as WorldTwo 550, including Second Life, There, Entropia Universe, and others.

[0065] After receiving the entry request from the user (which corresponds to Step 402 of the method 400), the system maintaining WorldTwo 550 sends a request for the user's FirstWorld profile 516 to the system maintaining FirstWorld 510. This corresponds to Step 404 of the method 400 in Figure 4.

[0066] The user's FirstWorld profile 516 comprises a plurality of data fields 518a to 518n, and each such data field 518a to 518n is populated with corresponding data 520a to 52On. A FirstWorld profile such as the user's FirstWorld profile 516 can include any number of data fields, depending on the particular virtual world. In the exemplary illustrative embodiment depicted in Figure 5, data field 518a stores data representing an identification number, data field 518b stores data representing a first name, data field 518c stores data representing a last name, data field 518d stores data representing an amount of virtual money (in "FirstWorld Dollars"), data field 518e stores data representing virtual land holdings, and so on to data field 518n. Correspondingly, data 520a is the identification number of the user who requested entry into WorldTwo 550, data 520b is the first name of that user, data 520c is the last name of that user, data 518d represents the amount of virtual money (in "First World Dollars") possessed by that user, data 518e represents virtual land owned by that user, and so on to data 518n.

[0067] The format of the user's First World profile 516 (or any First World profile for that matter) is not the same as the format used for user profiles in WorldTwo 550 (representing the fact that different virtual worlds are unlikely to use identical formats for their profiles). For example, in the exemplary embodiment illustrated in Figure 5, First World profiles represent names using two data fields, namely data field 518b for first name (e.g. "John") and data field 518c for last name (e.g. "Doe"), while WorldTwo profiles represent names using a single data field 558b for the user's full name (e.g. "John_Doe"). Moreover, certain data fields in a First World profile may simply not be meaningful in the context of WorldTwo 550, and vice versa. For example, in the exemplary embodiment illustrated in Figure 5, while it is possible to own virtual land within FirstWorld 510, all virtual land in WorldTwo 550 is considered "public" and therefore cannot be "owned". Conversely, WorldTwo 550 provides for participants to maintain a contact list, while FirstWorld 510 does not. Thus, if the system maintaining WorldTwo 550 were to attempt to read a FirstWorld profile (such as the user's FirstWorld profile 516) directly, the FirstWorld profile would not be intelligible to that system. This is because (for example) data fields might be arranged differently from the order the system expected or be presented in unexpected formats (e.g. the "name" data fields), some expected data fields might be missing (e.g. a "contact list" data field) , and some unexpected data fields might be present (e.g. a "land" data field). Accordingly, the system maintaining WorldTwo 550 cannot simply receive a user's FirstWorld profile, read it, and then use the information therein to enable the user to participate in WorldTwo 550.

[0068] Continuing to refer to Figure 5, responsive to the request from the system maintaining WorldTwo 550 (Step 404 of the method 400 in Figure 4), the system maintaining First World 510 retrieves the user's First World profile 516 from storage. Where the system maintaining First World 510 is adapted to implement aspects of the present invention, as shown in Figure 5, that system will include both a visitor database 512 (for storing profiles of visitors to First World) and a home database 514 (for storing profiles of members of First World). In such an embodiment, because the user seeking to enter WorldTwo 550 is a member of First World 510 (and hence has a profile associated with First World 510), the user's FirstWorld profile 516 will be retrieved from the home database 514. Once the user's FirstWorld profile 516 has been retrieved, the system maintaining FirstWorld 510 sends the user's FirstWorld profile 516 to the system maintaining WorldTwo 550.

[0069] The system maintaining WorldTwo 550 receives the user's FirstWorld profile 516, which corresponds to Step 406 in the method 400 shown in Figure 4. The system maintaining WorldTwo 550 then passes the user's FirstWorld profile 516 to a profile converting tool 530. In the particular embodiment depicted in Figure 5, the profile converting tool 530 is part of the system maintaining WorldTwo 550, although other arrangements are also possible. For example, profile converting system may be provided by a third party and therefore form part of the third party's systems. [0070] The profile converting tool 530 includes a plurality of sets of conversion rules that enable conversion of profiles from formats that are specific to a particular virtual world into a single, abstract format and from the single, abstract format to a format that is specific to a particular virtual world. These conversion rules map the data fields from a profile associated with a particular virtual world to generic data fields in an abstract data representation. Thus, the abstract representation generated by applying the conversion rules to a profile will always have the same format, regardless of the format of the originating profile (which format of course depends on the particular virtual world with which the profile is associated). Typically, a profile converting tool such as profile converting tool 530 will include one set of conversion rules for each virtual world whose profiles the profile converting tool 530 is expected to handle. Accordingly, a set of conversion rules for (for example) FirstWorld would enable a FirstWorld profile to be transformed into an abstract representation of the data therein, and would also enable a suitably formatted abstract representation to be transformed into a profile compatible with FirstWorld. As long as the format of the abstract representation is consistent across all sets of conversion rules, any two sets of conversion rules can be used to convert a profile from any first format (e.g. compatible with FirstWorld) to any second format (e.g. compatible with WorldTwo) by transforming the user profile in the first format to an abstract representation and then transforming the abstract representation into a user profile in the second format. In one embodiment, the abstract representation represents the data from the user profile using generic XML (extended Markup Language), although other techniques may also be used. [0071] Continuing to refer Figure 5, the profile converting tool 530 has received the user's FirstWorld profile 516. This corresponds to the beginning of Step 408 of the method 400 shown in Figure 4, and, more particularly, corresponds to Step 602 of the method 600 shown in Figure 6. The profile converting tool 530 then determines the appropriate first set of conversion rules, which corresponds to Step 604 of the method 600 in Figure 6. In this case, the appropriate conversion rules are FirstWorld conversion rules 532. The profile converting tool 530 applies the FirstWorld conversion rules 532 to the user's FirstWorld profile 516 to generate an abstract representation 534 of the data contained in the FirstWorld profile 516, corresponding to Step 606 of the method 400 in Figure 6). For example, the user's name, which was represented in the user's FirstWorld profile 516 by data 520b ("John") and 520c ("Doe") in the two data fields 518b and 518c, respectively, is represented by abstract data 538 ("John Doe") in a single "Name" data field 540 in the abstract representation 534, which in this particular embodiment is a generic XML document. The profile converting tool 530 will convert all necessary data from the user's FirstWorld profile 516 into abstract form and include it in the abstract representation 534.

[0072] As was indicated above, the user wishes to use his or her FirstWorld profile 516 to participate in WorldTwo 550. As such, once the profile converting tool 530 has generated the abstract representation 534 of the relevant data from the user's FirstWorld profile 516, the profile converting tool 530 then determines the appropriate conversion rules for creating a WorldTwo profile, which corresponds to Step 608 of the method 600 in Figure 6. In this case, the appropriate conversion rules are WorldTwo conversion rules 536. The profile converting tool 530 then applies the WorldTwo conversion rules 536 to the abstract representation 534 to generate a visitor profile 556 in a format compatible with WorldTwo 550, corresponding to Step 610 of the method 600 in Figure 6.

[0073] The visitor profile 556, like the user's foreign profile 516, comprises a plurality of data fields 558a to 558n, with each field being populated with data 560a to 56On, respectively. As was the case for the user's First World profile 516, the visitor profile 556 may include any number of data fields, depending on the particular virtual world (represented in Figure 5 by WorldTwo 550) in which the visitor profile 556 is intended to be used. In the exemplary illustrative embodiment depicted in Figure 5, data field 558a stores data representing an alphanumeric user identifier, data field 558b stores data representing the full name of the individual whom the profile represents, data field 558c stores data representing an amount of virtual money (in "WorldTwo Dollars"), data field 518d stores data representing a contact list, and so on to data field 518n. Correspondingly, data 560a is the alphanumeric identifier of the user who requested entry into WorldTwo 550, data 560b is the full name of that user, data 560c represents the amount of virtual money (in "First World Dollars") possessed by that user, data 56Od is a list of identifiers for other avatars forming part of the user's contact list, and so on to data 56On.

[0074] As was noted above, the format of the user's FirstWorld profile 516 is not the same as the format used for user profiles in WorldTwo 550. In the particular representative exemplary embodiment illustrated in Figure 5, FirstWorld profiles represent names using two data fields, namely data field 518b for first name (e.g. "John") and data field 518c for last name (e.g. "Doe"), while WorldTwo profiles represents names using a single data field (e.g. "John_Doe"). In addition, in the particular exemplary embodiment illustrated in Figure 5, while it is possible to own virtual land within FirstWorld 510, all virtual land in WorldTwo 550 is considered "public" and so cannot be owned, and WorldTwo 550 provides for participants to maintain a contact list, while FirstWorld 510 does not. A profile converting tool in accordance with aspects of the present invention provides a mechanism for dealing with these discrepancies.

[0075] The exemplary profile converting tool 530 deals with the different ways of representing names in FirstWorld and WorldTwo as follows. The profile converting tool 530 applies the FirstWorld conversion rules 532 to abstract the data 520b and 520c from the data fields 518b and 518c representing the user's first and last name, respectively, into data 538 in the single "name" data field 540 in the abstract representation 534. More particularly, the FirstWorld conversion rules 532 specify that the data 520b found in data field 518b represents a user's first name and that the data 520c found in data field 518c represents a user's last name, enabling the profile converting tool 530 to determine the user's full name and place it, as data 538, in the "name" data field 540 in the abstract representation 534.

[0076] Additionally, because (in the particular exemplary embodiment shown in Figure 5) virtual land ownership is possible in FirstWorld 510, the user's FirstWorld profile 516 contains a data field 518e where data 520e representing virtual land owned by the user in FirstWorld 510 is stored. This land ownership information is also abstracted by the profile converting tool 530 using the FirstWorld conversion rules 532 and included (not shown) in the abstract representation 534. Because WorldTwo 550 (in the particular exemplary embodiment shown in Figure 5) does not provide for virtual land ownership, when the profile converting tool 530 applies the WorldTwo conversion rules 536 to the abstract representation 534, the virtual land ownership information in the abstract representation 534 will not be included in the visitor profile 556 because (in the particular exemplary embodiment shown in Figure 5) the format used for WorldTwo profiles does not include any data field for land ownership. In instances where the user wishes to later have his or her First World profile 516 be updated based on his or her virtual activities in WorldTwo 550, the profile converting tool 530 will retain and store the information that it does not include in the visitor profile 556 that but which the user would likely wish to retain. For example, it is unlikely that a user would wish to lose the record of his or her virtual land ownership in First World 510 merely as a result of temporarily participating in WorldTwo 550. Accordingly, this land ownership information would be retained by the profile converting tool 530 so that it can be restored when the user's FirstWorld profile is updated based on his or her activities in WorldTwo 550. Preferably, the information stored is the relevant abstract data from the abstract representation 534; alternatively, data taken directly from the user's FirstWorld profile 516 can be stored.

[0077] Furthermore, because (in the particular exemplary embodiment shown in Figure 5) WorldTwo 550 provides for participants to have a contact list but FirstWorld 510 does not, the FirstWorld profile 516 will not include any data field for data representing a contact list. The FirstWorld conversion rules 532 used by the profile converting tool 530 recognize this, and provide for generation of an empty or null entry for the data field representing the user's contact list (not shown) in the abstract representation 534. Correspondingly, the WorldTwo conversion rules 536 provide that where the abstract representation 534 contains a null or empty entry for the data field representing the user's contact list (not shown), data 56Od indicating an empty contact list will be placed in the "contact list" data field 558d in the visitor profile 556. The empty contact list could then be populated in the ordinary course during the user's activities in WorldTwo 550.

[0078] As noted above, in the particular exemplary embodiment illustrated in Figure 5, FirstWorld 510 provides for ownership of virtual land, but WorldTwo 550 does not, and WorldTwo provides for users to maintain a contact list while FirstWorld does not. These features and limitations are included within the exemplary embodiment depicted in Figure 5 solely to illustrate techniques and methods for handling conversions between dissimilar user profile formats, and are not intended to imply any limitation whatsoever on the particular virtual worlds in respect of which aspects of the present invention may be employed. Thus, FirstWorld may represent any suitable virtual world having any combination of data fields in its profiles (including a data field for storing a contact list), and WorldTwo may similarly represent any suitable virtual world having any combination of data fields in its profiles (including a data field for storing information about virtual land ownership) without departing from the scope of the present invention.

[0079] In the particular exemplary embodiment shown in Figure 5, both FirstWorld 510 and WorldTwo 550 provide for users to possess and use virtual money. The FirstWorld conversion rules 532 provide for conversion of the amount of money possessed by the user (stored as data 52Od in data field 518d) between the virtual currency used in FirstWorld 510 (in this case FirstWorld Dollars) and a common currency (in this case U.S. Dollars) used to represent a user's virtual money in the "balance" field 542 in the abstract representation 534. Analogously, the WorldTwo conversion rules 536 also provide for conversion of the amount of money possessed by the user between the virtual currency used in WorldTwo 550 (in this case WorldTwo Dollars) and the common currency (U.S. Dollars) used to represent a user's virtual money in the "balance" field 542 in the abstract representation 534. Thus, using this approach enables a user to effectively convert his or her FirstWorld Dollars into WorldTwo Dollars through intermediate conversion to a common currency, for use while he or she is participating in WorldTwo 550. It is advantageous to use as the common currency a currency for which each virtual world will be expected to have a determinable exchange rate, and it is presently believed that U.S. Dollars are most suitable for this purpose; other suitable currencies may also be used.

[0080] Because different virtual worlds are typically operated by different legal entities, the above-described method of conversion between virtual currencies may require additional arrangements. In particular, the legal entity operating WorldTwo may not wish to allow visiting users to spend WorldTwo Dollars that the user obtained by converting FirstWorld Dollars, since the operator of WorldTwo will not have received any revenue in exchange for those WorldTwo Dollars. In addition, an uncontrolled, unplanned increase in the amount of virtual currency present in a virtual world could have adverse virtual economic effects (e.g. virtual inflation). One method for addressing this issue is to use predetermined arrangements between the operators of virtual worlds, whereby those operators would agree on a procedure for the transfer of virtual funds between their respective virtual worlds, which procedure would be designed to obviate those adverse effects. Such a procedure would be associated with a communication protocol, possibly mediated by the profile converting tool 530, to facilitate the appropriate operations in respect of each virtual world. Such a protocol could be reflected in the conversion rules. Alternatively (not shown), in the absence of such an arrangement among the operators of the relevant virtual world, the profile converting tool 530 could simply set the amount of virtual money in the visitor profile 556 equal to zero, so that users could carry attributes other than virtual money from one virtual world to another, but would not be able to carry virtual money from one world to another. Virtual money to be used in the virtual world that the user is visiting could then be acquired using the ordinary procedures for acquiring virtual money in that virtual world. These techniques may include acquisition by activities within that virtual world or direct purchase of virtual money from the operator of that virtual world.

[0081 ] Continuing to refer to Figure 5, profile converting tool 530 (which, in the embodiment depicted in Figure 5 forms part of the system maintaining WorldTwo 550) passes the visitor profile 556 to the portion of the system maintaining WorldTwo 550 that is responsible for management of user profiles, which then stores the visitor profile 556.

[0082] In one embodiment, WorldTwo 550 has associated therewith two distinct databases for storing user profiles: a home database 552 and a visitor database 554. The home database 552 is used for storing home profiles for members of WorldTwo 550, that is, those who have created an account and identity for WorldTwo 550, and who are to be distinguished from those who have an account and identity for a foreign virtual world such as First World 510. The visitor database 554 is distinct from the home database 552, and may be stored on separate media from the home database 552, or may be stored on the same media. The home database 552 and the visitor database 554 may be distinct from one another even though they are part of a larger overall database (not shown). For example, a profile database could be a relational database for which entries (that is, profiles) include a field indicating whether the profile belongs to a member or to a visitor. Thus, a query of the database could easily generate a result indicating all visitor profiles, or all home profiles of members, so that there are effectively two distinct databases; one for home profiles and one for visitor profiles. It is considered preferable, however, for the visitor database and the home database to be actually distinct from one another (that is, two separate databases, even if stored on the same media) rather than merely effectively distinct as described in this paragraph. In one embodiment of an aspect of the present invention, the system maintaining WorldTwo 550 stores the visitor profile 556 in the visitor database 554 so as to distinguish the visitor profile 556 (as well as any other visitor profiles) from home profiles of members of WorldTwo 550, which home profiles are stored in home database 552.

[0083] Because the visitor profile 556 is in the same format as that used for WorldTwo profiles generally, once the visitor profile 556 has been stored, the system maintaining WorldTwo 550 can use the data 560a to 56On contained in data fields 558a to 558n to enable the user to participate in WorldTwo 550. Moreover, the system maintaining WorldTwo 550 can also update the visitor profile 556 from time to time based on the user's virtual activities in WorldTwo 550 so as to generate an updated visitor profile (not shown in Figure 5), and then store the updated visitor profile in the visitor database 554. These operations comprise optional Steps 412 to 416 of the method 400, described above in respect of Figure 4. Additionally, the updated visitor profile can be transmitted back to First World 510 once the user has completed his or her activities in WorldTwo 550 (optional Steps 418 to 420 of the method 400). [0084] As noted above, in the situation depicted by Figure 5, WorldTwo 550 received a request for entry from a user, so that WorldTwo 550 was considered to be the local virtual world for the purposes of the method 400. Because the user who requested entry into WorldTwo 550 did not have a profile associated with WorldTwo 550, but did have a profile 516 associated with First World 510, First World 510 was considered to be a foreign virtual world for the purposes of the method 400. It will be appreciated, however, that from the point of view FirstWorld 510, and from the point of view of the user, who has a profile 516 associated with FirstWorld 510 but does not have any profile associated with WorldTwo 550), FirstWorld 510 is a home virtual world and WorldTwo 550 may be considered to be a foreign virtual world. Moreover, the user will likely wish to continue his or her virtual activities in FirstWorld 510 once he or she has completed his or her virtual activities in WorldTwo 550. Accordingly, aspects of the present invention provide a method for updating a user's profile in a home virtual world based on that user's virtual activities in a foreign virtual world.

[0085] Referring now to Figure 7, a method for updating a user' s profile in a home virtual world is indicated generally at 700. At Step 702, the system maintaining the home virtual world receives a request for a particular user's home profile associated with that home virtual world from a system maintaining a foreign virtual world. Such a request may be received directly from the system maintaining the foreign virtual world, or indirectly through an intermediary (such as, for example, a third party providing the services of a profile converting tool). Preferably, Step 702 also includes a process of verification to confirm that the received request is authorized, for example by checking a password, so that the system maintaining the home virtual world will be less likely to respond to requests that were not approved by the user.

[0086] At Step 704, the system maintaining the home virtual world transmits the user's home profile associated with the home virtual world to the system maintaining the foreign virtual world. As with the request, such transmission may be direct or may be effected indirectly through an intermediary. The user's home profile can be transmitted in its original format compatible with the home virtual world or, optionally, can be transformed prior to transmission either into an abstract representation or into a format that is directly compatible with the foreign virtual world, such as by using all or part of the method 600 illustrated in Figure 6.

[0087] At optional Step 706, the system maintaining the home virtual world suspends activity by the user within the home virtual world. This optional step is desirable because the purpose of transmitting the user's profile to the foreign virtual world is to enable the user to participate in that foreign virtual world, so the user is unlikely to be simultaneously participating in his or her home virtual world as well. Moreover, because an aspect of the method 700 provides for the user's profile for the home virtual world to be updated based on the user's activities in the foreign virtual world, it is not considered desirable to permit the user to engage in simultaneous activities in both worlds because this will complicate the aforementioned update process. It should also be noted here that optional Step 706 can be performed prior to Step 704, rather than after it, without departing from the scope of the present invention. [0088] At Step 708, the system maintaining the home virtual world receives (directly or indirectly) an updated profile for the user from the system maintaining the foreign virtual world. The updated profile will have been updated based on the user's activities in the foreign virtual world, with the system maintaining the home virtual world typically having no involvement in those activities.

[0089] At Step 710, the system maintaining the home virtual world stores the updated profile that it received so that the updated profile replaces the original home profile and is in a format that is compatible with the home virtual world. If the updated profile is received in a format that is compatible with the home virtual world (for example because a profile converting tool has already transformed it), this is a simple matter of storing the updated home profile. If the updated profile is received in a format that is not compatible with the home virtual world (typically because it is in a format compatible with the foreign virtual world, although it may also be in the form of an abstract representation), then Step 710 will include translating the updated profile to a format compatible with the home virtual world. This translation may be accomplished, for example, by using a profile converting tool applying all or part of the method 600 depicted in Figure 6.

[0090] At optional Step 712, responsive to storing the updated profile, the system maintaining the home virtual world will enable activity in the home virtual world. It will of course be appreciated that if optional Step 706 (suspending activity by the user) is omitted, then optional Step 712 should also be omitted. If optional steps 706 and 712 are omitted, so that the user is permitted to engage in activities within the home virtual world while the system maintaining the home virtual world is waiting to receive the updated profile, the effect (in the embodiment described above) will be that the results of such activity within the home virtual world (even if stored in the user's home profile) will be lost when the home profile is replaced by the updated profile. In an alternative embodiment, a procedure for merging the home profile and the updated profile could be used (for example by defining rules for taking the features from each profile that are most advantageous to the user), although at a cost of increased complexity in the system.

[0091] Referring again to Figure 5 and also to Figure 8, an implementation of an embodiment of the method 700 shown in Figure 7 is described. Figure 8 may be viewed as a continuation of the process illustrated in Figure 5, and thus identical reference numerals are used to describe identical features.

[0092] As noted above, in the situation depicted by Figure 5, WorldTwo 550 received a request from a user for entry into WorldTwo 550. hi response, the system maintaining WorldTwo 550 sent a request for the user's FirstWorld profile 516 to the system maintaining FirstWorld 510. This request was received by the system maintaining FirstWorld 510 (Step 702 of the method 700 in Figure 7). Responsive to this request, the system maintaining FirstWorld 510 retrieved the user's FirstWorld profile 516 from the home database 514 and transmitted the user's FirstWorld profile 516 to the system maintaining WorldTwo 550 (Step 704 of the method 700 in Figure 7), which passed the user's FirstWorld profile 516 to the profile converting tool 530. Alternatively (not shown), the user's FirstWorld profile 516 could be passed first to a profile converting tool maintained by a third party, and then passed to the system maintaining WorldTwo 550.

[0093] As described in detail above, upon receiving the user's FirstWorld profile 516, the profile converting tool 530 applied the FirstWorld conversion rules 532 to the user's First World profile 516 to generate an abstract representation 534 of the information therein. The profile converting tool 530 then applied the WorldTwo conversion rules 536 to the abstract representation 534 to generate a visitor profile 556 for the user, and the visitor profile 556 was then stored in the visitor database 554 so as to enable the user to engage in virtual activities within WorldTwo 550. The foregoing activities having been completed, the system maintaining WorldTwo 550 can update the visitor profile 556 to generate an updated visitor profile 856 (Figure 8), which is also stored in the visitor database 554.

[0094] Referring now to Figure 8, once the user has completed his or her activities in WorldTwo 550 (which the user can indicate, for example, by signing out of WorldTwo 550), the updated visitor profile 856 is loaded from the visitor database 554 and is passed back to the profile converting tool 530. The updated visitor profile 856 comprises data fields 858a to 858n, which data fields are identical to the data fields 558a to 558n in the original visitor profile 556 (Figure 5). Each data field 858a to 858n is populated with data 860a to 860n, any of which may be different from any of the data 560a to 560n

(Figure 5), respectively, because the data may have been updated. For example, the data 860c in data field 858c may be different from the data 560c (Figure 5) because the user may have spent or acquired virtual money while participating in virtual activities in WorldTwo 550.

[0095] Once it has received the updated visitor profile 856, the profile converting tool 530 applies the method 600 described in respect of Figure 6 to convert the updated visitor profile 856, which is in a format compatible with WorldTwo 550, into a format compatible with First World 510. More particularly, the profile converting tool 530 will apply the WorldTwo conversion rules 536 to the updated visitor profile 856 to generate an abstract representation 834 of the updated visitor profile 856. The abstract representation 834 is analogous to the abstract representation 534 in Figure 5, except that the information it contains is based on the updated visitor profile 856 rather than the original First World profile 516. Accordingly, the abstract representation 534 will include a "name" field 840 (containing name data 838), a "balance" field 842, and so on.

[0096] Associated with generating the abstract representation 834, the profile converting tool 530 also checks for any information that was present in the original First World profile 516 (in Figure 5) but was omitted from the original visitor profile 556 (in Figure 5) and hence is also omitted from the updated visitor profile 856. For example, in the particular exemplary embodiment depicted in Figure 5, the original First World profile 516 included virtual land ownership data 52Oe in data field 518e, which data was omitted from the original visitor profile 556 because WorldTwo 550 did not provide for land ownership. However, this land ownership information was stored by the profile converting tool 530 for later retrieval. The profile converting tool 530 restores any stored information to the abstract representation 834. For example, the land ownership information referred to in the preceding paragraph can be restored. Alternatively, if the relevant information was stored directly from the user's original FirstWorld profile 516 (Figure 5), then the data can be restored once an updated FirstWorld profile has been generated.

[0097] Additionally, there may be information in the updated visitor profile 856, and hence in the abstract representation 834, which was relevant to participation in WorldTwo 550 but which is not relevant to participation in FirstWorld 510. For example, a user may have developed a contact list while participating in WorldTwo 550, whereas (in the particular illustrative embodiment depicted by Figures 5 and 8) FirstWorld 510 does not provide for use of a contact list. Optionally, if the updated visitor profile 856 contains information that the user may wish to preserve for subsequent participation in WorldTwo 550, such information can be stored by the profile converting tool 530 for later retrieval in association with a subsequent visit to WorldTwo 550, at which time that information can be added to the user's then visitor profile.

[0098] Once the abstract representation 834 of the updated visitor profile 856 has been generated and any additional information that was stored by the profile converting tool 530 has been added thereto, the profile converting tool 530 will apply the FirstWorld conversion rules 532 to the abstract representation 834 to generate an updated FirstWorld profile 816 (i.e. the profile is in a format usable by the system that maintains FirstWorld 510). The updated FirstWorld profile 816 comprises data fields 818a to 818n, which are identical to the data fields 518a to 518n in the original FirstWorld profile 516 (Figure 5). Each data field 818a to 818n is populated with data 820a to 82On, any of which may be different from any of the data 520a to 52On (Figure 5), respectively, because the data elements may have been updated. For example, if the user spent or acquired virtual money while participating in virtual activities in WorldTwo 550, then data 860c in data field 858c may be different from the data 560c in data field 560c (Figure 5).

[0099] Because the updated FirstWorld profile 816 was generated from an abstract representation 834 that was generated from the updated visitor profile 856, the updated FirstWorld profile 816 will include information that reflects the user's activities in WorldTwo 550. Additionally, because the updated visitor profile 856 was produced by updating an original visitor profile 556 (Figure 5) which in turn was generated from an abstract representation 534 (Figure 5) of the user's original First World profile 516 (Figure 5), the updated FirstWorld profile 816 also reflects, subject to the user's activities in WorldTwo 550, the user's original FirstWorld profile 516 (Figure 5). After receiving the updated FirstWorld profile 816 (Step 708 of the method 700 in Figure 7), the system maintaining FirstWorld 510 will store the updated FirstWorld profile 816 in the home database 514 (Step 712 of the method 700 in Figure 7). Because the updated FirstWorld profile 816 provided by the profile converting tool 530 is already in a format compatible with FirstWorld 510, the system that maintains FirstWorld 510 does not need to carry out any transformation and can simply store the updated FirstWorld profile 816. Once the updated FirstWorld profile 816 has been stored, if the user's activities in FirstWorld 510 had been suspended (optional Step 706 of the method 700), the system maintaining FirstWorld will then enable the user's activity in FirstWorld (optional Step 712 of the method 700).

[00100] While the exemplary embodiments depicted in Figure 5 and 8 showed the profile converting tool 530 as part of the system that maintains WorldTwo 550, it is to be appreciated that numerous alternative embodiments are contemplated within the scope of the present invention.

[00101 ] In one alternative embodiment, the profile converting tool 530 may be part of FirstWorld 510, in which case the method 600 (Figure 6) would be applied to the user's original FirstWorld profile 516 to generate the visitor profile 556, which visitor profile would then be transmitted to WorldTwo 550. After the user has completed his or her activities in WorldTwo 550, the updated visitor profile 856 could then be transmitted to the system maintaining First World 510, which system would then apply the method 600 to the updated visitor profile 856 to generate an updated First World profile 816.

[00102] In another alternative embodiment, each of First World 510 and WorldTwo 550 have their own profile converting tool, and the system maintaining First World 510 will use its profile converting tool to generate an abstract representation from the user's FirstWorld profile, and then transmit the abstract representation to the system maintaining WorldTwo 550. The system maintaining WorldTwo 550 will then use its profile converting tool to generate a visitor profile from the abstract representation. Once the user has completed his or her activities in WorldTwo 550, the system maintaining WorldTwo 550 can use its profile converting tool to generate an updated abstract representation from the updated visitor profile, and transmit the updated abstract representation to the system maintaining FirstWorld. The system maintaining FirstWorld can then user its profile converting tool to generate an updated FirstWorld profile from the updated abstract representation.

[00103] In a further alternative embodiment, neither FirstWorld nor WorldTwo has a profile converting tool, and a third party profile converting tool mediates the exchanges between FirstWorld and WorldTwo.

[00104] The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. [00105] Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

[00106] The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk - read only memory (CD-ROM), compact disk - read/write (CD-R/W) and DVD.

[00107] A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. [00108] Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.

[00109] Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US6009458 *9 May 199628 Dec 19993Do CompanyNetworked computer game system with persistent playing objects
US6951516 *13 Aug 20024 Oct 2005Nintendo Co., Ltd.Method and apparatus for multi-user communications using discrete video game platforms
US20020049087 *7 Sep 200125 Apr 2002Teruyuki UshiroInformation processing apparatus, information processing method, and recording medium
US20040014527 *19 Jul 200222 Jan 2004Orr Scott StewartSystem and method to integrate digital characters across multiple interactive games
US20070021213 *22 Jun 200525 Jan 2007Nokia CorporationSystem and method for providing interoperability of independently-operable electronic games
Classifications
International ClassificationG06F19/00, G06F17/00, G06F5/00
Cooperative ClassificationG06Q30/02, G06Q10/10
European ClassificationG06Q10/10, G06Q30/02
Legal Events
DateCodeEventDescription
26 Aug 2009121Ep: the epo has been informed by wipo that ep was designated in this application
Ref document number: 07855640
Country of ref document: EP
Kind code of ref document: A1
22 Jun 2010NENPNon-entry into the national phase in:
Ref country code: DE
19 Jan 2011122Ep: pct app. not ent. europ. phase
Ref document number: 07855640
Country of ref document: EP
Kind code of ref document: A1