U.S. patent application number 12/973068 was filed with the patent office on 2011-04-21 for heuristic event clustering of media using metadata.
This patent application is currently assigned to MICROSOFT CORPORATION. Invention is credited to Andrew S. Ivory, Michael Han-Young Kim, Ignatius Setiadi.
Application Number | 20110093466 12/973068 |
Document ID | / |
Family ID | 41118670 |
Filed Date | 2011-04-21 |
United States Patent
Application |
20110093466 |
Kind Code |
A1 |
Kim; Michael Han-Young ; et
al. |
April 21, 2011 |
HEURISTIC EVENT CLUSTERING OF MEDIA USING METADATA
Abstract
Event clusters are create based on a first metadata and second
metadata of the electronic document. The event clusters are
associated with an event id and each electronic document is
associated with the event identifier of its corresponding event
cluster. A user may then browse or otherwise access the electronic
documents based on the event identifier.
Inventors: |
Kim; Michael Han-Young;
(Issaquah, WA) ; Ivory; Andrew S.; (Woodinville,
WA) ; Setiadi; Ignatius; (Redmond, WA) |
Assignee: |
MICROSOFT CORPORATION
Redmond
WA
|
Family ID: |
41118670 |
Appl. No.: |
12/973068 |
Filed: |
December 20, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12056027 |
Mar 26, 2008 |
7860866 |
|
|
12973068 |
|
|
|
|
Current U.S.
Class: |
707/737 ;
707/E17.089 |
Current CPC
Class: |
G06F 16/489 20190101;
G06F 16/487 20190101 |
Class at
Publication: |
707/737 ;
707/E17.089 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A method for clustering digital media files, comprising: sorting
a plurality of digital media files, said digital media files each
including time metadata and location metadata associated therewith,
said digital media files being sorted into chronological order
based on the time metadata; determining a time difference between
consecutive digital media files in the chronological order based on
the time metadata; determining a location difference between
consecutive digital media files in the chronological order based on
the location metadata; grouping the sorted digital media files into
event clusters based on the determined time difference and the
determined location difference, wherein each event cluster contains
one or more digital media files in chronological order; wherein at
least one of following conditions is true (1) the time difference
between two consecutive digital media files within each event
cluster is less than a time threshold and (2) the location
difference between two consecutive digital media files within each
event cluster is less than a location threshold; and wherein the
chronological order of the digital media files is maintained across
the event clusters such that subsequent event clusters do not
contain digital media files earlier in time than the digital media
files of previous event clusters.
2. The method of claim 1, wherein the time metadata is the time and
date the digital media file was captured and is generated by an
electronic device capturing the digital media file; and wherein the
location metadata is GPS (global positioning satellite) data from
the place the digital media file was captured and is generated by
an electronic device capturing the digital media file.
3. The method of claim 1, wherein the time and location thresholds
each include one or more of the following: a fixed threshold, a
relative threshold, a predefined threshold, a user specified
threshold, and an algorithmically determined threshold.
4. The method of claim 1, further comprising: associating each of
the digital media files with an event identifier associated with
its corresponding event cluster; and storing the digital media
files and associated event identifiers in a library of digital
media files, wherein the digital media files of the library are
browsable by a user based on the event identifiers.
5. The method of claim 4, wherein the digital media files are
stored in folders based on their associated event identifiers.
6. The method of claim 1, wherein the location difference includes
one of more of the following: a straight-line difference between
location coordinates of the location metadata and a road difference
based on the distance traveled by road between location coordinates
of the location metadata.
7. The method of claim 1, wherein the digital media files each
include one or more of the following: a digital photograph, a
digital sound recording, a digital video recording, and a digital
image.
8. A method for clustering electronic documents, comprising:
sorting a plurality of electronic documents, said electronic
documents each including first metadata and second metadata
associated therewith, said electronic documents being sorted into
an order based on the first metadata; determining a first
difference between consecutive digital media files in the order
based on the first metadata; determining a second difference
between consecutive digital media files in the order based on the
second metadata; grouping the sorted electronic documents into
event clusters based on the determined first difference and the
determined second difference, wherein each event cluster contains
one or more electronic documents in order with respect to the first
metadata; wherein at least one of following conditions is true (1)
the first difference between the first metadata associated with two
consecutive electronic documents within the event cluster is less
than a first threshold and (2) the second difference between the
second metadata associated with two consecutive electronic
documents within the event cluster is less than a second threshold;
and wherein the order of the electronic documents is maintained
across the event clusters such that subsequent event clusters do
not contain electronic documents earlier in the order with respect
to the first metadata than the electronic documents of previous
event clusters.
9. The method of claim 8, wherein the electronic documents each
include one or more of the following: a digital photograph, a
digital sound recording, a digital video recording, a digital
image, computer file, and an electronic document.
10. The method of claim 8, wherein the first metadata is time
metadata and the second metadata is location metadata.
11. The method of claim 8, wherein the first metadata is location
metadata and the second metadata is time metadata.
12. The method of claim 11, wherein the time metadata is the time
and date the electronic document was captured and is generated by
an electronic device capturing the electronic document; and wherein
the location metadata is GPS (global positioning satellite) data
from the place the electronic document was captured and generated
by an electronic device capturing the electronic document.
13. The method of claim 8, wherein the first and second metadata
are created when the electronic document is created.
14. The method of claim 8, wherein the first and second thresholds
each include one or more of the following: a fixed threshold, a
relative threshold, a predefined threshold, a user specified
threshold, and an algorithmically determined threshold.
15. The method of claim 8, further comprising: associating each of
the electronic documents with an event identifier associated with
its corresponding event cluster; and storing each of the electronic
documents and its associated event identifier in a library of
electronic documents, wherein the electronic documents of the
library are browsable by a user based on the event identifier.
16. The method of claim 15, wherein the electronic documents are
stored in folders based on their associated event identifiers.
17. A method for creating event clusters within a library of
digital media files, comprising: sorting a plurality of digital
media files, said digital media files each including time metadata
and location metadata associated therewith, said digital media
files being sorted into chronological order based on the time
metadata, wherein the time metadata is related to the time and date
the digital media file was captured and is generated by an
electronic device capturing the digital file, and wherein the
location metadata is GPS (global positioning satellite) data from
the place the digital media file was captured and is generated by
an electronic device capturing the digital media file; grouping the
sorted digital media files into event clusters based on the time
metadata and the location metadata, wherein each event cluster
contains one or more digital media files in order with respect to
the time metadata, wherein at least one of following conditions is
true (1) a time difference between consecutive digital media files
within each event cluster is less than a time threshold based on
the time metadata and (2) a location difference between consecutive
digital media files within each event cluster is less than a
location threshold based on the location metadata; and wherein the
chronological order of the digital media files is maintained across
the event clusters such that subsequent event clusters do not
contain digital media files earlier in time than the digital media
files of previous event clusters; associating each of the digital
media files with an event identifier associated with its
corresponding event cluster; and storing the digital media files
and associated event identifiers in the library of digital media
files, wherein the digital media files of the library are browsable
by a user based on the event identifiers.
18. The method of claim 17, wherein the time and location
thresholds each include one or more of the following: a fixed
threshold, a relative threshold, a predefined threshold, a user
specified threshold, and an algorithmically determined
threshold.
19. The method of claim 17, wherein the location difference
includes one of more of the following: a straight-line difference
between location coordinates of the location metadata and a road
difference based on the distance traveled by road between location
coordinates of the location metadata.
20. The method of claim 17, wherein the digital media files are
stored in folders based on their associated event identifiers.
Description
BACKGROUND
[0001] Automatic clustering of media items (e.g., digital
photographs, video) is useful for organizing and finding items in a
library of many media items, whether a local collection of a single
user's media or a global collection of many users' media.
Currently, there are a number of algorithmic solutions using time
differences alone to cluster items. But clustering media files by
time does provide adequate clustering by events.
SUMMARY
[0002] Aspects of the invention overcome one or more
vulnerabilities associated with event clustering of electronic
documents by creating event clusters based on a first metadata and
second metadata of the electronic documents. The event clusters are
each associated with an event identifier and each electronic
document is associated with the event identifier of its
corresponding event cluster. A user may then browse or otherwise
access the electronic documents based on the event identifier.
[0003] This summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This Summary is not intended to identify
key features or essential features of the claimed subject matter,
nor is it intended to be used as an aid in determining the scope of
the claimed subject matter.
[0004] Other features will be in part apparent and in part pointed
out hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a block diagram illustrating one example of a
suitable computing system environment in which the invention may be
implemented.
[0006] FIG. 2 is an exemplary block diagram illustrating a document
library.
[0007] FIG. 3 is an exemplary flow diagram for clustering digital
media files.
[0008] FIG. 4 is an exemplary flow diagram for method for
clustering electronic documents.
[0009] FIG. 5 is an exemplary flow diagram for method for
clustering electronic documents.
[0010] Corresponding reference characters indicate corresponding
parts throughout the drawings. cl DETAILED DESCRIPTION
[0011] FIG. 1 is a block diagram illustrating one example of a
suitable computing system environment in which the invention may be
implemented. A computer 102 receives a plurality of electronic
documents (e.g., electronic document 104, electronic document 106,
electronic document 108). In an embodiment, the electronic document
(e.g., electronic document 104, electronic document 106, electronic
document 108) includes one or more of the following: a digital
photograph, a digital sound recording, a digital video recording, a
digital image, computer file, and an electronic document.
[0012] The electronic documents (e.g., electronic document 104,
electronic document 106, electronic document 108) include first
metadata (e.g., first metadata 110, first metadata 112, first
metadata 114) and second metadata (e.g., second metadata 116,
second metadata 118, second metadata 120). The first and second
metadata may be created when the electronic document is created or
the first and second metadata may be associated with the electronic
document after the electronic document is created. Additionally,
the first and second metadata may stored with the electronic
document as shown in FIG. 1 or the metadata may be stored in a
memory location associated with the electronic document. In an
embodiment, the first metadata is time metadata and the second
metadata is location metadata. Alternatively, the first metadata is
location metadata and the second metadata is time metadata.
[0013] The computer 102 sorts a plurality of electronic documents
(e.g., electronic document 104, electronic document 106, electronic
document 108) into order based on the first metadata (e.g., first
metadata 110, first metadata 112, first metadata 114). Next, the
computer 102 groups the sorted electronic documents into event
clusters based on the first metadata (e.g., first metadata 110,
first metadata 112, first metadata 114) and the second metadata
(e.g., second metadata 116, second metadata 118, second metadata
120). Each event cluster contains one or more electronic documents
in order with respect to the first metadata (e.g., first metadata
110, first metadata 112, first metadata 114).
[0014] Within each cluster, at least one of the following condition
is true (1) a first difference between the first metadata (e.g.,
first metadata 110, first metadata 112, first metadata 114)
associated with consecutive electronic documents within the event
cluster is less than a determined first threshold and (2) a second
difference between the second metadata (e.g., second metadata 116,
second metadata 118, second metadata 120) associated with
consecutive electronic documents is less than a determined second
threshold. In an embodiment, the first and second thresholds each
include one or more of the following: a fixed threshold, a relative
threshold, a predefined threshold, a user specified threshold, and
an algorithmically determined threshold. The order of the
electronic documents is maintained across the event clusters such
that the subsequent event clusters do not contain electronic
documents with an order less with respect to the first metadata
(e.g., first metadata 110, first metadata 112, first metadata 114)
than the electronic documents of previous event clusters.
[0015] In an embodiment, the computer 102 associates each
electronic document with an event identifier associated with its
corresponding event cluster. The computer 102 stores the electronic
documents and its associated event identifier in a library of
electronic documents 122. A user may browse or otherwise access the
electronic documents of the library based on the event
identifiers.
[0016] FIG. 2 is an exemplary block diagram illustrating a document
library 122. The document library 122 includes three event clusters
222, 224, 226. The first event cluster 222 includes four electronic
documents 202, 204, 206, 208. Each of the electronic documents 202,
204, 206, 208 in the first event cluster 222 is associated with the
same event identifier 210. The second event cluster 224 includes a
single electronic document 212. The electronic document 212 in the
second event cluster 224 is associated with the event identifier
214. And, the third event cluster 226 includes two electronic
documents 216, 218. Each of the electronic documents 216, 218 in
the third event cluster 226 is associated with the same event
identifier 220.
[0017] Each event cluster 222, 224, 226 contains one or more
electronic documents in order with respect to the first metadata.
Within each cluster, at least one of the following conditions is
true (1) a first difference between the first metadata associated
with consecutive electronic documents within the event cluster is
less than a determined first threshold and (2) a second difference
between the second metadata associated with electronic document 204
and electronic document 206 within the first event cluster 222 is
less than a determined second threshold. For example, a first
difference between the first metadata associated with electronic
document 204 and electronic document 206 within the first event
cluster 222 is less than the determined first threshold.
[0018] The order of the electronic documents is maintained across
the event clusters 222, 224, 226 such that the subsequent event
clusters do not contain electronic documents with an order less
with respect to the first metadata than the electronic documents of
previous event clusters. For example, event cluster 226 does not
contain electronic documents with an order less with respect to the
first metadata than the electronic documents of previous event
clusters 222, 224.
[0019] For example, suppose Joe has dinner with family in the
suburbs, then goes to a party directly afterwards in the city 20
miles away. Photos are taken at the end of family dinner, the
beginning of a party, and then a group photos are taken at the end
of a party three hours after the beginning of the party. Ideally,
two event clusters would be created: dinner with family and party
with friends. However, using time alone with a short threshold
would incorrectly create the following two clusters. The first
cluster would include the photos taken at dinner with the family
and the early party photos while the second cluster would include
the late party photos. However, if the time threshold is four hours
combined with a location threshold of 10 miles, the photos will be
clustered correctly where the first cluster would include the
photos taken at dinner with the family and the second cluster would
include the early party photos and the late party photos.
Advantageously, by selecting one type of metadata (e.g., time,
location) as the primary differentiator and then using a second
type of metadata as a secondary differentiator, the clustering will
correctly present the photos as separate events and lower the rate
of false positives while doing so.
[0020] FIG. 3 is a flow diagram for method for clustering digital
media files (e.g., electronic document 104, electronic document
106, electronic document 108). At 302, the computer 102 sorts a
plurality of digital media files. In an embodiment, the digital
media file each include one or more of the following: a digital
photograph, a digital sound recording, a digital video recording,
and a digital image. Each of the digital media files is associated
with time metadata (e.g., first metadata 110, first metadata 112,
first metadata 114) and location metadata (e.g., second metadata
116, second metadata 118, second metadata 120). The computer 102
sorts the digital media files into chronological order based on the
time metadata.
[0021] In an embodiment, the time metadata is the time and date the
digital media file was captured and is generated by an electronic
device (e.g., digital camera, digital video camera, cell phone)
capturing the digital media file. In another embodiment, the
location metadata is GPS (global positioning satellite) data from
the place the digital media file was captured and generated by an
electronic device (e.g., digital camera, digital video camera, cell
phone) capturing the digital media file.
[0022] At 304, the computer 102 determines a time difference
between consecutive digital media files in the chronological order
based on the time metadata. And, at 306, the computer 102
determines a location difference between consecutive digital media
files in the chronological order based on the location
metadata.
[0023] At 308, the computer 102 groups the sorted digital media
files into event clusters (e.g., event cluster 222, 224, 226) based
on the determined time difference and the determined location
distance. Each event cluster contains one or more digital media
files in chronological order. Within each cluster, at least one of
the following conditions is true (1) the time difference between
two consecutive digital media files within each event cluster is
less than a time threshold and (2) the location difference between
two consecutive digital media files within each event cluster is
less than a location threshold. In other words, the time difference
between two consecutive digital media files within each event
cluster is less than a time threshold and/or the location
difference between two consecutive digital media files within each
event cluster is less than a location threshold. By using "AND" we
will end up with more restrictive clustering (e.g., having more
number of events assuming other parameters are fixed), and using
"OR" we end up with less restrictive clustering (e.g., having less
number of events).
[0024] In an embodiment, the location difference is a straight-line
difference between location coordinates of the location metadata.
Alternatively, the location difference is a difference based on the
distance traveled by road between location coordinates of the
location metadata. Additionally, the chronological order of the
digital media files is maintained across the event clusters such
that subsequent event clusters do not contain digital media files
earlier in time than the digital media files of previous event
clusters. In an embodiment, the time and location thresholds each
includes one or more of the following: a fixed threshold, a
relative threshold, a predefined threshold, a user specified
threshold, and an algorithmically determined threshold. For
example, an algorithmically determined threshold includes the
difference of the log of the difference from the average log of
differences between adjacent digital media files.
[0025] In an embodiment, the computer 102 associates each digital
media files with an event identifier (e.g., event identifier 210,
214, 220) associated with its corresponding event cluster. The
computer 102 stores the digital media files and its associated
event identifier in a library of digital media files (e.g.,
document library 122). A user may browse otherwise access the
digital media files of the library based on the event identifiers.
In an embodiment, the digital media files are stored in folders
based on their associated event identifiers.
[0026] It is to be understood that steps 304, 306 and 308 may be
combined without deviating from aspects of the invention. In an
embodiment, comparing two subsequent media as shown by the
following exemplary pseudocode performs these operations: [0027]
Set PreviousMedia=NULL
[0028] For each media file do the following: [0029] If
PreviousMedia is NULL [0030] Set new eventID for CurrentMedia
[0031] Else [0032] If difference between CurrentMedia's time
metadata and PreviousMedia's time metadata within the time
threshold *or/and* the difference between CurrentMedia's location
metadata and PreviousMedia's time metadata within the location
timethreshold [0033] Set eventID for CurrentMedia=eventID for
PreviousMedia [0034] Else [0035] Set new eventID for CurrentMedia
[0036] PreviousMedia=CurrentMedia
[0037] FIG. 4 is an exemplary flow diagram for method for
clustering electronic documents (e.g., electronic document 104,
electronic document 106, electronic document 108). At 402, the
computer 102 sorts a plurality of electronic documents (e.g.,
electronic document 104, electronic document 106, electronic
document 108). In an embodiment, the electronic documents each
include one or more of the following: a digital photograph, a
digital sound recording, a digital video recording, a digital
image, computer file, and an electronic document.
[0038] Each electronic document is associated with first metadata
(e.g., first metadata 110, first metadata 112, first metadata 114)
and second metadata (e.g., second metadata 116, second metadata
118, second metadata 120). In an embodiment, the first and second
metadata are created when the electronic document is created. The
electronic documents being sorted into order based on the first
metadata (e.g., first metadata 110, first metadata 112, first
metadata 114).
[0039] At 404, the computer 102 a first difference between
consecutive digital media files in the order based on the first
metadata (e.g., first metadata 110, first metadata 112, first
metadata 114). And, at 406, the computer 102 a second difference
between consecutive digital media files in the order based on the
second metadata (e.g., second metadata 116, second metadata 118,
second metadata 120).
[0040] At 408, the computer groups the sorted electronic documents
into event clusters (e.g., event cluster 222, 224, 226) based on
the determined first difference and the determined second
difference. Each event cluster contains one or more electronic
documents in order with respect to the first metadata. Within each
cluster, at least one of following conditions is true (1) the first
difference between the first metadata associated with two
consecutive electronic documents within the event cluster is less
than a first threshold and (2) the second difference between the
second metadata associated with two consecutive electronic
documents within the event cluster is less than a second threshold.
In other words, the first metadata between two electronic documents
within each event cluster is less than a first threshold and/or the
second metadata difference between two consecutive electronic
documents within each event cluster is less than a second
threshold. By using "AND" we will end up with more restrictive
clustering (e.g., having more number of events assuming other
parameters are fixed), and using "OR" we end up with less
restrictive clustering (e.g., having less number of events).
[0041] In an embodiment, the first and second thresholds each
include one or more of the following: a fixed threshold, a relative
threshold, a predefined threshold, a user specified threshold, and
an algorithmically determined threshold. For example, an
algorithmically determined threshold includes the difference of the
log of the difference from the average log of differences between
adjacent electronic media file.
[0042] The order of the electronic documents is maintained across
the event clusters such that subsequent event clusters do not
contain electronic documents earlier in the order with respect to
the first metadata than the electronic documents of previous event
clusters.
[0043] In another embodiment, the computer 102 associates each
electronic document with an event identifier (e.g., event
identifier 210, 214, 220) associated with its corresponding event
cluster (e.g., event cluster 222, 224, 226). And, the computer 102
stores each of the electronic documents and their associated event
identifier in a library of electronic documents (e.g., document
library 122) wherein a user may browse or otherwise access the
electronic documents of the library based the event identifiers. In
an embodiment, the electronic documents are stored in folders based
on their associated event identifiers.
[0044] In another embodiment, the first metadata is time metadata
and the second metadata is location metadata. Alternatively, the
first metadata is location metadata and the second metadata is time
metadata. The time metadata is the time and date the electronic
document was captured and is generated by an electronic device
capturing the electronic document. And, the location metadata is
GPS (global positioning satellite) data from the place the
electronic document was captured and generated by an electronic
device capturing the electronic document.
[0045] FIG. 5 is an exemplary flow diagram for creating event
clusters (e.g., event cluster 222, 224, 226) within a library of
digital media files (e.g., document library 122). At 502, the
computer 102 sorts a plurality of digital media files (e.g.,
electronic document 104, electronic document 106, electronic
document 108). Each of the digital media files is associated with
time metadata and location metadata. The computer 102 sorts the
digital media files into chronological order based on the time
metadata. The time metadata is related to the time and date the
digital media file was captured and is generated by an electronic
device capturing the digital file and the location metadata is GPS
(global positioning satellite) data from the place the digital
media file was captured and generated by an electronic device
capturing the digital media file.
[0046] At 504, the computer 102 groups the sorted digital media
files into event clusters based on the time metadata and the
location metadata wherein each event cluster (e.g., event cluster
222, 224, 226) contains one or more digital media files in order
with respect to the time metadata. A time difference between
consecutive digital media files within each event cluster is less
than a determined time threshold based on the time metadata. A
location difference between consecutive digital media files within
each event cluster is less than a location threshold. And, the
chronological order of the digital media files is maintained across
the event clusters such that the subsequent event clusters do not
contain digital media files earlier in time than the digital media
files of previous event clusters.
[0047] At 506, the computer 102 associates each of digital media
files with an event identifier (e.g., event identifier 210, 214,
220) associated with its corresponding event cluster (e.g., event
cluster 222, 224, 226). At 508, the computer 102 stores the digital
media files and associated event identifiers in the library of
digital media files (e.g., document library 122). The digital media
files of the library are browseable by a user or otherwise
accessible based on the event identifiers.
[0048] Referring again to FIG. 1, FIG. 1 shows one example of a
general purpose computing device in the form of a computer 102. In
one embodiment, a computer such as the computer 102 is suitable for
use in the other figures illustrated and described herein. Computer
102 has one or more processors or processing units and a system
memory.
[0049] The computer 102 typically has at least some form of
computer readable media. Computer readable media, which include
both volatile and nonvolatile media, removable and non-removable
media, may be any available medium that may be accessed by computer
102. By way of example and not limitation, computer readable media
comprise computer storage media and communication media. Computer
storage media include volatile and nonvolatile, removable and
non-removable media implemented in any method or technology for
storage of information such as computer readable instructions, data
structures, program modules or other data. For example, computer
storage media include RAM, ROM, EEPROM, flash memory or other
memory technology, CD-ROM, digital versatile disks (DVD) or other
optical disk storage, magnetic cassettes, magnetic tape, magnetic
disk storage or other magnetic storage devices, or any other medium
that may be used to store the desired information and that may be
accessed by computer 102.
[0050] Communication media typically embody 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 include any information delivery media. Those skilled
in the art are familiar with the modulated data signal, which has
one or more of its characteristics set or changed in such a manner
as to encode information in the signal. Wired media, such as a
wired network or direct-wired connection, and wireless media, such
as acoustic, RF, infrared, and other wireless media, are examples
of communication media. Combinations of any of the above are also
included within the scope of computer readable media.
[0051] The system memory includes computer storage media in the
form of removable and/or non-removable, volatile and/or nonvolatile
memory. The computer 102 may also include other
removable/non-removable, volatile/nonvolatile computer storage
media. Removable/non-removable, volatile/nonvolatile computer
storage media that may be used in the exemplary operating
environment include, but are not limited to, magnetic tape
cassettes, flash memory cards, digital versatile disks, digital
video tape, solid state RAM, solid state ROM, and the like.
[0052] The drives or other mass storage devices and their
associated computer storage media discussed above, provide storage
of computer readable instructions, data structures, program modules
and other data for the computer 102.
[0053] The computer 102 may operate in a networked environment
using logical connections to one or more remote computers. The
logical connections depicted in FIG. 1 include a local area network
(LAN) and a wide area network (WAN), but may also include other
networks. LAN and/or WAN may be a wired network, a wireless
network, a combination thereof, and so on. Such networking
environments are commonplace in offices, enterprise-wide computer
networks, intranets, and global computer networks (e.g., the
Internet).
[0054] Generally, the data processors of computer 102 are
programmed by means of instructions stored at different times in
the various computer-readable storage media of the computer.
Programs and operating systems are typically distributed, for
example, on floppy disks or CD-ROMs. From there, they are installed
or loaded into the secondary memory of a computer. At execution,
they are loaded at least partially into the computer's primary
electronic memory. Aspects of the invention described herein
includes these and other various types of computer-readable storage
media when such media contain instructions or programs for
implementing the steps described below in conjunction with a
microprocessor or other data processor. Further, aspects of the
invention include the computer itself when programmed according to
the methods and techniques described herein.
[0055] For purposes of illustration, programs and other executable
program components, such as the operating system, are illustrated
herein as discrete blocks. It is recognized, however, that such
programs and components reside at various times in different
storage components of the computer, and are executed by the data
processor(s) of the computer.
[0056] Although described in connection with an exemplary computing
system environment, including computer 102, embodiments are
operational with numerous other general purpose or special purpose
computing system environments or configurations. The computing
system environment is not intended to suggest any limitation as to
the scope of use or functionality of any aspect of the invention.
Moreover, the computing system environment should not be
interpreted as having any dependency or requirement relating to any
one or combination of components illustrated in the exemplary
operating environment. Examples of well known computing systems,
environments, and/or configurations that may be suitable for use
with aspects of the invention include, but are not limited to,
personal computers, server computers, hand-held or laptop devices,
multiprocessor systems, microprocessor-based systems, set top
boxes, programmable consumer electronics, mobile telephones,
network PCs, minicomputers, mainframe computers, distributed
computing environments that include any of the above systems or
devices, and the like.
[0057] Embodiments may be described in the general context of
computer-executable instructions, such as program modules, executed
by one or more computers or other devices. Generally, program
modules include, but are not limited to, routines, programs,
objects, components, and data structures that perform particular
tasks or implement particular abstract data types. Aspects of 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. In a distributed
computing environment, program modules may be located in both local
and remote computer storage media including memory storage
devices.
[0058] In operation, computer 102 executes computer-executable
instructions such as those illustrated in the figures to implement
aspects of the invention.
[0059] The order of execution or performance of the operations in
embodiments illustrated and described herein is not essential,
unless otherwise specified. That is, the operations may be
performed in any order, unless otherwise specified, and embodiments
may include additional or fewer operations than those disclosed
herein. For example, it is contemplated that executing or
performing a particular operation before, contemporaneously with,
or after another operation is within the scope of aspects of the
invention.
[0060] Embodiments may be implemented with computer-executable
instructions. The computer-executable instructions may be organized
into one or more computer-executable components or modules. Aspects
of the invention may be implemented with any number and
organization of such components or modules. For example, aspects of
the invention are not limited to the specific computer-executable
instructions or the specific components or modules illustrated in
the figures and described herein. Other embodiments may include
different computer-executable instructions or components having
more or less functionality than illustrated and described
herein.
[0061] When introducing elements of aspects of the invention or the
embodiments thereof, the articles "a," "an," "the," and "said" are
intended to mean that there are one or more of the elements. The
terms "comprising," "including," and "having" are intended to be
inclusive and mean that there may be additional elements other than
the listed elements.
[0062] Having described aspects of the invention in detail, it will
be apparent that modifications and variations are possible without
departing from the scope of aspects of the invention as defined in
the appended claims. As various changes could be made in the above
constructions, products, and methods without departing from the
scope of aspects of the invention, it is intended that all matter
contained in the above description and shown in the accompanying
drawings shall be interpreted as illustrative and not in a limiting
sense.
* * * * *