The present invention is described in detail below with reference to the attached drawing figures, wherein:
The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described. Further, the present invention is described in detail below with reference to the attached drawing figures, which are incorporated in their entirety by reference herein.
Embodiments of the present invention provide systems and methods for associating metadata with an identifier for the author thereof. Embodiments of the present invention further provide systems and methods for communicating metadata to one or more users having shared copies of the associated file, such communication being independent of communicating the associated file. Utilizing the systems and methods described herein, context is provided for each metadata value associated with a shared file as each metadata value is associated with an identifier for the author thereof. Additionally, each user of a shared file may be privy to metadata associated with a file that was not associated with the file at the time it was shared.
Accordingly, one embodiment of the present invention is directed to one or more computer-readable media having computer-executable instructions embodied thereon for performing a method for associating metadata with a file on a per-user basis. The method includes receiving metadata authored by a first user, the metadata being associated with a first copy of the file, receiving an identifier for the first user, associating the metadata with the identifier for the first user, and storing the metadata and the associated identifier for the first user in association with the first copy of the file. If desired, the method may further include communicating a second copy of the file and the metadata with the associated identifier for the first user to a second user and presenting the metadata and the associated identifier for the first user on a computing device associated with the second user.
In another embodiment, the present invention is directed to a computer-implemented method for communicating metadata associated with a file. The method includes receiving metadata associated with the file authored by a first user, each of the first user and a second user having a copy of the file, communicating the metadata to the second user, and storing the metadata in association with the second user's copy of the file. If desired, the method may further include receiving an identifier for the first user and associating the identifier for the first user with the metadata.
Embodiments of the present invention are further directed to systems and computer-readable media having computer-executable instructions for performing the methods disclosed herein.
Still further, an embodiment of the present invention is directed to one or more computer-readable media having stored thereon a data structure for associating metadata with a file on a per-user basis. The data structure includes a metadata identification field populated with metadata associated with the file and an author identification field populated with an identifier associated with the author of the metadata.
Having briefly described an overview of embodiments of the present invention, an exemplary operating environment is described below.
Referring to the drawings in general and initially to
The invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, etc., refer to code that perform particular tasks or implement particular abstract data types. The invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, specialty computing devices (e.g., cameras and printers), etc. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
With reference to
Computing device 100 typically includes a variety of computer-readable media. By way of example, and not limitation, computer-readable media may comprise Random Access Memory (RAM); Read Only Memory (ROM); Electronically Erasable Programmable Read Only Memory (EEPROM); flash memory or other memory technologies; CDROM, digital versatile disks (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, carrier wave or any other medium that can be used to encode desired information and be accessed by computing device 100.
Memory 112 includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, nonremovable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, etc. Computing device 100 includes one or more processors that read data from various entities such as memory 112 or I/O components 120. Presentation component(s) 116 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, etc. I/O ports 118 allow computing device 100 to be logically coupled to other devices including I/O components 120, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.
Turning to
System 200 includes a plurality of user devices 210, 212, 214, 216 in communication with one another through a network 218. In the illustrated embodiment, four user devices 210, 212, 214, and 216 are shown. It will be understood by those of ordinary skill in the art that such is merely exemplary and that the system 200 may include any number of user devices in communication with one another through a network 218. Each of the user devices 210, 212, 214, and 216 shown in
In one embodiment, user devices 210, 212, 214, and 216 may be in communication with one another through a peer-to-peer relationship. In another embodiment, user devices 210, 212, 214, and 216 may be in communication with one another through a community sharing service. As such, system 200 additionally includes a general purpose computing device in the form of a server 220 in communication with each of the user devices 210, 212, 214, and 216 via network 218. Components of the server 220 may include, without limitation, a processing unit, internal system memory, and a suitable system bus for coupling various system components, including one or more databases 222 for storing information (e.g., files and metadata associated therewith), with the server 220. The server 220 typically includes, or has access to, a variety of computer readable media, for instance, databases 222. By way of example, and not limitation, computer readable media may include computer storage media and communication media. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. As used herein, the term “modulated data signal” refers to a signal that has one or more of its attributes set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above also may be included within the scope of computer readable media.
The computer storage media, including databases 222, provide storage of computer readable instructions, data structures, program modules, and other data which may be accessed by the server 220.
The server 220 may operate in a computer network 218 using logical connections to each of the user devices 210, 212, 214, and 216. Exemplary computer networks 218 may include, without limitation, local area networks (LANs) and/or wide area networks (WANs). Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. When utilized in a WAN networking environment, the server 220 may include a modem or other means for establishing communications over the WAN, such as the Internet. In a networked environment, program modules or portions thereof may be stored in the server 220, in the databases 222, or on any of the user devices 210, 212, 214, and 216. For example, and not by way of limitation, various application programs may reside on the memory associated with any one or more of the user devices 210, 212, 214, and/or 216. It will be appreciated by those of ordinary skill in the art that the network connections shown are exemplary and other means of establishing a communications link between the computing devices (e.g., server 220 and user devices 210, 212, 214, and 216) may be utilized.
Turning to
Next, as indicated at 314, the metadata and the identifier for the first user are associated with one another. In one embodiment, such association is provided by way of a data structure. Such a data structure 400 in accordance with an embodiment of the present invention is illustrated in
Referring back to
Turning now to
If it is determined at block 514 that there is not more than one version identifier associated with the metadata, the metadata and the associated identifier for the author/user is communicated to at least a second user having a shared copy of the file, as indicated at block 516. If, however, it is determined at block 514 that there is more than one version identifier associated with the metadata, only that portion of the metadata that is associated with the version identifier indicative of the most recent point in time is communicated to the second user. This is indicated at block 518. In either event, communication of the metadata may occur via a push model or a pull model in accordance with embodiments of the present invention. For instance, if the file sharing occurred through a peer-to-peer relationship, any changes to a shared file may be automatically communicated to all shared file recipients, without the need for additional user intervention. However, if the file sharing occurred through a community file sharing service, a server may periodically query each of the computing devices associated therewith to determine if any metadata changes have occurred to any of the files stored in association therewith. If it is determined that metadata changes have occurred, the server may then determine the identity of all users who were recipients of the shared file and communicate the metadata change to each of them. Any and all such variations are contemplated to be within the scope of embodiments of the present invention.
It should be noted that in accordance with method 500, the metadata and associated user/author identifier are communicated to all shared file recipients independent of the file itself. That is, a copy of the file need not simultaneously be communicated with the metadata and user/author identification information. As such, once received by the second user, the communicated metadata and the associated identifier for the author/user thereof is stored in association with the second user's copy of the file, that is, the copy of the file the second user received upon the original file sharing. This is indicated at 520.
If desired, the metadata and associated user/author identifier may subsequently be presented to the second user, as indicated at block 522. Typically, such presentation comprises displaying the metadata and associated author/user identifier on a display device associated with the second user's computing device. However, other types of presentation, such as an audible presentation, may also be provided within the scope of embodiments of the present invention.
Next suppose that the second user desires to add his or her own metadata to the shared file. In this instance, the additional metadata to be associated with the file is received from the second user, as indicated at 524. Subsequently, an identifier for the second user, as author of the additional metadata, is received, as indicated at 526. As with the identifier for the first user, the identifier for the second user as author of the additional metadata is some indicia that uniquely identifies the second user, e.g., an email address, screen name, or the like. Next, the additional metadata and the identifier for the second user are associated with one another, e.g., using a data structure such as the data structure 400 shown in
As the file with which the additional metadata has been associated has been determined to be a shared file (at 510), it is next determined whether there is more than one version identifier associated with the additional metadata, as indicated at 532. If it is determined that there is not more than one version identifier associated with the additional metadata, the additional metadata and the associated identifier for the second user (as author thereof) is subsequently communicated to the first user, as indicated at 528. If, however, it is determined that there is more than one version identifier associated with the additional metadata, only that portion of the additional metadata that is associated with the version identifier indicative of the most recent point in time is communicated to the first user. This is indicated at 536. Again, the metadata is communicated independent of the associated file and may be communicated by virtue of a push model, a pull model, or any combination thereof. Subsequently, the communicated additional metadata and the associated identifier for the second user (as author thereof) is stored in association with the first user's copy of the file. This is indicated at 538. If desired, the metadata and associated identifier for the first user (as author thereof) and the additional metadata and associated identifier for the second user (as author thereof) may be presented to the first user, as indicated at block 540. An exemplary screen display for displaying metadata associated with a shared file on a per-user basis is illustrated in
The screen display 600 includes a file presentation area 610 and a metadata presentation area 612. The file presentation area 610 is configured to display the content of the file, e.g., the photograph or text. The metadata presentation area 612 includes a file originator/author presentation area 614 and a per-user metadata presentation area 616. Note that the per-user metadata presentation area 616 includes the author identifier for two users with the metadata each user has authored being displayed respectively in association therewith. It will be understood and appreciated by those of ordinary skill in the art that the screen display 600 shown in
Referring now to
Alternative embodiments and implementations of the present invention will become apparent to those skilled in the art to which it pertains upon review of the specification, including the drawing figures. Accordingly, the scope of the present invention is defined by the appended claims rather than the foregoing description.