# Patent

## Title
Content presentation and augmentation system and method

## Abstract

A computerized system and method are presented that creates implicit content on a mobile device by monitoring and recording input from sensors on the device. Metadata from the implicit content and from user-created content is then analyzed the purpose of event identification. Using the metadata and event identification, the content is created into clusters, which can be confirmed by the user as actual events. Events can then be grouped according to metadata and event information into a presentation grouping. Presentation groupings can be presenting using a map and timeline interface. The system augments content concerning an event by searching for related content. Users viewing the presentation grouping can add additional user content. The system can also add content from users that attended the same event.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation-in-part of U.S. patent application Ser. No. 13/832,177, filed Mar. 15, 2013 and entitled “Content Clustering System and Method.”


FIELD OF THE INVENTION
The present application relates to the field of computerized systems that organize and display media content.
SUMMARY
An embodiment of the present invention creates implicit content on a mobile device by monitoring and recording input from sensors on the device. This embodiment also analyzes metadata from the implicit content and metadata from explicit content created by a user for the purpose of creating content clusters, which are confirmed by the user as actual events. Events can then be grouped according to metadata and event information into a presentation grouping. Presentation groupings can be presented to a using an interface having a timeline, map, and content sections. Presentation groupings can include augmentation content, including external augmentation content taken from the Internet based on the location and time information in the displayed event. External augmentation can be stored with the event data and formatted according to user desires. Individuals viewing a presentation grouping can add additional augmentation that is stored with the event data. Furthermore, the system can automatically augment event data using data from other users of the system that participated in the same event.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram showing a mobile device and a plurality of servers communicating over a network.
FIG. 2 is a schematic diagram of showing an application accepting input to form a content cluster.
FIG. 3 is a schematic diagram showing content being clustered by a media organization app.
FIG. 4 is a schematic diagram showing content clusters being confirmed as events through a user interface.
FIG. 5 is a schematic diagram showing events being clustered into a presentation grouping by the media organization app.
FIG. 6 is a flow chart showing a method for generating implicit content.
FIG. 7 is a flow chart showing a method for content clustering.
FIG. 8 is a flow chart showing a method for the grouping of events into presentation groupings.
FIG. 9 is a schematic diagram of an example presentation grouping.
FIG. 10 is a schematic diagram of a user interface showing an event from the presentation grouping of FIG. 9.
FIG. 11 is a schematic diagram of the user interface of FIG. 10 showing a different event from the presentation grouping of FIG. 9.
FIG. 12 is a schematic diagram of a second embodiment of a user interface showing an event of a presentation grouping.
FIG. 13 a schematic diagram showing viewer augmentation of events.
FIG. 14 is a schematic diagram showing merging of content for a single event from multiple users.
FIG. 15 is a flow chart showing a method of implementing one embodiment of the present invention.
FIG. 16 is a schematic diagram showing a database used by a media organization server of the present invention.



DETAILED DESCRIPTION
System Overview
FIG. 1 shows a mobile device 100 utilizing one embodiment of the present invention. The mobile device 100 can communicate over a wide area network 170 with a plurality of computing devices. In FIG. 1, the mobile device 100 communicates with a media organization server 180, a global event database server 190, one or more cloud content servers 192, and a third-party information provider server 194.
The mobile device 100 can take the form of a smart phone or tablet computer. As such, the device 100 will include a display 110 for displaying information to a user, a processor 120 for processing instructions and data for the device 100, a memory 130 for storing processing instructions and data, and one or more user input interfaces 142 to allow the user to provide instructions and data to the mobile device 100. The display 110 can be use LCD, OLED, or similar technology to provide a color display for the user. In some embodiments, the display 110 incorporates touchscreen capabilities so as to function as a user input interface 142. The processor 120 can be a general purpose CPU, such as those provided by Intel Corporation (Mountain View, Calif.) or Advanced Micro Devices, Inc. (Sunnyvale, Calif.), or a mobile specific processor, such as those designed by ARM Holdings (Cambridge, UK). Mobile devices such as device 100 generally use specific operating systems designed for such devices, such as iOS from Apple Inc. (Cupertino, Calif.) or ANDROID OS from Google Inc. (Menlo Park, Calif.). The operating systems are stored on the memory 130 and are used by the processor 120 to provide a user interface for the display 110 and user input devices 142, handle communications for the device 100, and to manage applications (or apps) that are stored in the memory 130. The memory 130 is shown in FIG. 1 with two different types of apps, namely content creation apps 132 and a media organization app 134. The content creation apps 132 are apps that create explicit media content 136 in the memory 130, and include video creation apps, still image creation apps, and audio recording apps. The media organization app 134 creates implicit content 138. The media organization app 134 is responsible for gathering the different types of explicit media content 136 and the implicit content 138 (referred to together as content 140), analyzing the content 140, and then organizing the content 140 into clusters, events, and presentation groupings that are stored in media organization data 139 as described below.
The mobile device 100 communicates over the network 170 through one of two network interfaces, namely a Wi-Fi network interface 144 and a cellular network interface 146. The Wi-Fi network interface 144 connects the device 100 to a local wireless network that provides connection to the wide area network 170. The Wi-Fi network interface 144 preferably connects via one of the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standards. In one embodiment, the local network is based on TCP/IP, and the Wi-Fi network interface includes TCP/IP protocol stacks. The cellular network interface 146 communicates over a cellular data network. The provider of the cellular data network then provides an interface to the wide area network 170. In one embodiment, the wide area network 170 is the Internet.
The mobile device 100 uses sensors 150 for a variety of purposes on the device 100. In the present embodiment, the sensors 150 provide the means to create media content 136. The content creation apps 132 respond to signals from the user input 142 to capture media content 136 using the camera sensor 152 and the microphone 154. These types of media content 136 are known as “explicit media content” because the user has explicitly requested that the mobile device 100 capture and store this media content 136. For instance, a user might instruct a photo taking app 132 to take a still photograph using the camera 152, or to stitch together a stream of input from the camera sensor 152 into a panorama image that is stored as explicit media content 136. A movie app 132 might record input from the camera 152 and microphone 154 sensors as a video file 136. Or a voice memo app 132 might record input from the microphone sensor 154 to create an audio media content file 136. In each case, these content creation apps 132 respond to an explicit request from a user to create the media content 136. In most cases, the explicit media content 136 is stored as a file or a data record in the memory 130 of the mobile device 100. This file or data record includes both the actual content recorded by the sensors 150 and metadata associated with that recording. The metadata will include the date and time at which the media content 136 was recorded, as determined by the clock 156. Frequently, the metadata also includes a geographic location where the media content 136 was created. The geographic location can be determined from the GPS sensor 158, or by using other location identifying techniques such as identifying nearby Wi-Fi networks using the Wi-Fi Network Interface 144, or through nearby cell tower identification using the cellular network interface 146. Some content creation apps 132 will include facial recognition capabilities in order to tag the identity of individuals within a photo or video file 136. Other apps 132 will allow a user a manually tag their files 136 so as to identify the individuals (or “participants”) portrayed in those media files 136. These identity tags can then be added to the metadata stored with the media content file 136 in memory 130.
In some embodiments, the explicit media content 136 will be stored remotely on a cloud content server 192. For example, all photographs taken by the camera 152 may be stored in memory 130 as explicit media content 136 and may also be transmitted over one of the network interfaces 144, 146 to the cloud content server 192. The locally stored explicit media content 136 may be temporary in nature, with permanent storage provided on the cloud content server 192. In some circumstances, the cloud content server 192 will be provided by a third party, such as the FLICKR service provided by Yahoo! Inc. of Sunnyvale, Calif.
The media organization app 134 creates implicit content 138 by monitoring the sensors 150 on the mobile device 100 and storing related data as implicit content 138 when it monitors an interesting change in the sensors 150. For instance, the media organization app 134 might be monitoring the GPS sensor 158 and accelerometer 160 during a family driving vacation from Chicago, Ill. to Yellowstone National Park in Wyoming. The accelerometer 160 can indicate when the family car stops, and then determine the location of the mobile device 100 using the GPS sensor 158. By monitoring the accelerometer 160 and the GPS sensor 158 (at least periodically), the media organization app 134 can determine that the car was stopped during this family vacation for 3 hours, 15 minutes in Wall, S. Dak. This data could be stored as implicit content 138 in the memory 130.
When the app 134 creates this implicit content 138, it may also uses one of the network interfaces 144, 146 to obtain additional information about this implicit content 138. For example, the app 134 may contact a global event database server 190 that contains information about a great number of events (or “occurrences”). This type of database server 190, which is provided by several third parties over the Internet 170, allows users to specify a geographic location and a time, and the server 190 will respond with information about occurrences happening near that location around that time. The information returned from the global event database server will generally include a title for the occurrence, a description for that occurrence, a time period during which that occurrence takes place, and an exact physical location for that occurrence. For example, during the stop in Wall, S. Dak., the app 134 may inquire whether there are any events happening in Wall at the time the vehicle was stopped. The event database server 190 may indicate that at this time, a parade was happening in downtown Wall. The app 134 may also make inquiries from different information provider servers 194, such as a server 194 that provides weather information for a particular geographic location. By acquiring this information from external database sources 190, 194, the media organization app 134 would be able to create implicit content 138 indicating that from 12:15 to 3:30 pm on Jul. 4, 2013, the user of the mobile device 100 stopped in Wall, S. Dak. and witnessed a parade in sunny, 92 degree weather.
The media organization app 134 can take advantage of any of the sensors 150 on the mobile device 100, including the camera 152, microphone 154, clock 156, GPS sensor 158, accelerometer 160, gyroscope 162, ambient light sensor 164, and proximity sensor 166. The app 134 can define monitoring modes that determine the extent to which it monitors the various sensor 150. For instance, in one monitoring mode the app 134 could provide reverse geocoding by periodically (or continually) recording a location for the user from the GPS sensor 158. In another mode, the app 134 could monitor the accelerometer to indicate when the user is moving or has stopped moving. In a third mode, the app 134 could periodically monitor the microphone 154. If no interesting noises are detected, the app 134 would wait for the next interval before it again monitored the microphone 154. If interesting noises were detected (e.g., noises that were characteristic of human voices), the app 134 could record a small amount of the conversation and record it as implicit content 138 in memory 130, along with the time and location at which the conversation was recorded. In a fourth mode, the use of another app, such as one of the content creation apps 132, triggers the creation of an implicit content file 138. For instance, the use of a photo or movie app 132 may cause the media organization app 134 to record the GPS location, the current weather, and the current event, if any, noted by the global event database server 190. In addition, the app 132 in this fourth mode may record sounds from the microphone 154 to capture conversations between the user of the mobile device 100 and her photography subjects. These conversations would be stored as implicit content 138 in memory 130.
When requested by the user, the media organization app 134 collects the content 140 from the memory 130 (and from cloud content servers 192) and organizes the content 140 into content clusters. Content clusters are groups of content 140 that are grouped together as belonging to a particular occurrence or event. As described below, content clusters are presented to the user for modification and verification, after which the content groupings are referred to as user-verified events. Events may involve numerous elements of content 140, or may involve only a single element of content 140. In the preferred embodiment, the content clusters and events are stored in media organization data 139. In addition, the content clusters and events could be stored on a media organization server 180 accessible by the mobile device 100 over the network 170.
The media organization server 180 contains a programmable digital processor 182, such as a general purpose CPU manufactured by Intel Corporation (Mountain View, Calif.) or Advanced Micro Devices, Inc. (Sunnyvale, Calif.). The server 180 further contains a wireless or wired network interface 184 to communicate with remote computing devices, such as mobile device 100, over the network 170. The processor 182 is programmed using a set of software instructions stored on a non-volatile, non-transitory, computer readable medium 186, such as a hard drive or flash memory device. The software typically includes operating system software, such as LINUX (available from multiple companies under open source licensing terms) or WINDOWS (available from Microsoft Corporation of Redmond, Wash.).
The processor 182 performs the media organization functions of server 180 under the direction of application programming 187. Each user of the server 180 is separately defined and identified in the user data 188. The media organization app 134 can assist the user in creating an account on the media organization server 180. The account can require a username and password to access user content 189 that is stored on the server 180 on behalf of the users identified in data 188. The media organization server 180 can operate behind the media organization app 134, meaning that the user of the mobile device 100 need only access the server 180 through the user interface provided by the app 134. In addition, the media organization server 180 can provide a web-based interface to the user content 189, allowing a user to access and manipulate the user content 189 on any computing device with web access to the Internet 170. This allows users to organize their user content 189 and format presentations of that data 189 via any web browser.
Because the media organization server 180 contains information about content clusters and events created by a number of users, this server 180 can easily create its own database of past occurrences and events that could be useful to the media organization app 134 when clustering media. For instance, a first user could cluster media about a parade that they witnessed between 12:30 and 1:30 pm in Wall, S. Dak. on Jul. 4, 2013. The user could verify this cluster as a user-verified event, and could add a title and description to the event. This data would then be uploaded to the user data 188 on server 180. At a later time, a mobile device 100 of a second user could make an inquiry to the media organization server 180 about events that occurred in downtown Wall, S. Dak. at 1 pm on Jul. 4, 2013. The server 180 could identify this time and location using the event created by the previous user, and return the title and description of the event to the mobile device 100 of the second user. In effect, the media organization server 180 could become a crowd-sourced event database server providing information similar to that provided by server 190 (except likely limited to past and not future events).
Content Handling
FIG. 2 schematically illustrates the interaction of the media organization app 134 with content 140 and the other inputs that allow the media organization app 134 to create content clusters. In one embodiment, the content 140 is found in the physical memory 130 of the mobile device 100. In another embodiment, this data 140 is found on “the cloud” 200, meaning that the data is stored on remote servers 180, 192 accessible by the mobile device 100 over network 170. The dual possible locations for this content 140 is shown in FIG. 2 by locating the data 140 both within memory box 130 and the dotted cloud storage box 200.
The explicit media content 136 shown in FIG. 2 includes video content 222, photo content 232, and audio content 242. The video content 222 is created by a video app 220 running on the processor 120 of the mobile device 100. When the video content 222 is created, it is stored along with metadata 224 that describes the video content 222, including such information as when and where the video was created. Similarly a photo app 230 creates the photo content 232 and its related metadata 234, and a voice recording app 240 creates audio content 242 and metadata 244. These three apps 220, 230, 240 may be standard apps provided along with the mobile operating system when the user purchased the mobile device 100. The data 222, 232, 242 from these apps 220, 230, 240 are stored in known locations in the local memory 130 or on the cloud data system 200.
Third party or specialty apps 250, 260 can also create explicit content 136 that is accessed by the media organization app 134. The first specialty app 250 creates both photo content 232 and audio content 242, and stores this data 232, 242 and related metadata 234, 244 in the same locations in memory 130 where the standard apps 230, 240 provided with the device 100 store similar data. The second specialty app 260 also creates explicit media content 262 and related metadata 264, but this content 262 is not stored in the standard locations in memory 130. However, as long as the media organization app 134 is informed of the location of this specialty app content 262 on memory 130, such content 262 can also be organized by the app 134.
In addition to the explicit content 222-262, the media organization app 134 also organizes implicit content 138 and its metadata 274. In one embodiment, this implicit content 138 is created by the same app 134 that organizes the content 140 into content clusters. In other embodiments, the media organization app 134 is split into two separate apps, with one app monitoring the sensors 150 and creating implicit content 138, and the other app 134 being responsible for organizing content 140.
FIG. 2 also shows a calendar app 210 creating calendar data 212 on the mobile device 100. In one embodiment, this data can be used by the media organization app 134 as it arranges content 140 into content clusters. As explained below, the calendar data 212 may have explicit descriptions describing where the user was scheduled to be at a particular time. The media organization app 134 can use this data to develop a better understanding about how to organize content 140 that was acquired at that same time. The app 134 also receives additional information about occurrences and events from the global event database server 190 and the crowd-sourced event data from the media organization server 180. The data from these sources 180, 190 is also very useful to the app 134 as it organizes the content 140.
The app 134 accesses all this content 140, from the same locations in which the data was originally stored by the creating apps 210-260 and organizes it into content clusters using additional data from servers 180 and 190. In most cases, the content 140 is organized based primarily on the metadata 224, 234, 244, 254, 264, and 274 that was attached to the content 140 by the app that created the content 140. In some circumstances, the media organization app 134 can augment the metadata. For instance, the app 134 could use facial recognition (or voice recognition) data 280 available on the mobile device 100 or over the network 170 to identify participants in the content 140. Such recognition can occur using the processor 120 of the mobile device, but in most cases it is more efficient to use the processing power of a cloud content server 192 or the media organization server 180 to perform this recognition. Regardless of where it occurs, any matches to known participants will be used by the app 134 to organize the content 140.
Example Content Clusters, Events, and Presentation Grouping
FIG. 3 shows an example of one embodiment of a media organization app 300 organizing a plurality of items 310-370 into two content clusters 380, 390. In this case, there are three items of explicit content, namely content one 310, content two 320 and content three 330. Content one 310 is associated with three items of metadata 312-316, which indicate that content one 310 was acquired at time “Time 1” (312), at location “Loc. 1” (314), and that participants A and B participate in this content (metadata 316). Content one 310 could be, for example, a photograph of A & B, taken at Time 1 and Loc. 1. Similarly, the metadata 322-326 for content two 320 indicates that it was acquired at time “Time 1.2” (slightly later than time “Time 1”), location “Loc. 1.1” (close to but not the same as “Loc. 1”), and included participants A & C. The metadata for content three 330 indicates only that it occurred at time “Time 2.1”.
In addition to the three explicit content items 310, 320, 330, the media organization app 300 is also organizing one implicit content item 340, which has metadata indicating that it was taken at time “Time 2” and location “Loc. 1”. The media organization app 300 has also obtained data 350 from one of the event database servers 180, 190. This data 350 indicates (through metadata 352-356) that an event with a description of “Descr. 1” occurred at location “Loc. 1” for the duration of “Time 1-1.2”. Finally, the app 300 pulled relevant information form the calendar data 212 and discovered two relevant calendar events. The first calendar item 360 indicates that the user was to be at an event with a title of “Title 1” at time “Time 1”, while the second calendar item 370 describes an event with a title of “Title 1” at time “Time 2”.
The media organization app 300 gathers all of this information 310-370 together and attempts to organize the information 310-370 into content clusters. In this case, the app 300 identified a first cluster 380 consisting of explicit content one 310, explicit content two 320, event database information 350, and calendar item one 360. The media organization app 300 grouped these items of data 310, 320, 350, 360 primarily using time and location information. The app 300 recognized that each of these items occurred at a similar time between “Time 1” and “Time 1.2”. Furthermore, to the extent that the items 310, 320, 350, 360 identified a location, the location was either “Loc. 1 ” or close by location “Loc. 1.1”. One advantage of using calendar data 212 or data from event databases 180, 190 is that some of this data 212, 180, 190 will identify not just a single time but an actual time duration. For instance, the calendar data 212 may indicate that a party was scheduled from 6 pm to 2 am. Based on this duration information, the media organization app 300 will be more likely to cluster content from 6 pm and content at 1 am as part of the same event. Similarly, the calendar data 212 may identify a family camping trip that lasts for two days and three nights, which might cause the app 300 to group all content from that duration as a single event.
Once the media organization app 300 identifies items 310, 320, 350, 360 as being part of the cluster 380, it stores this information in media organization data 139 on the mobile device 100. This information may also be stored in the user content 189 stored for the user on the media organization server 180. The information about cluster 380 not only identifies items of data 310, 320, 350, 360, as belonging to the cluster, but also aggregates the metadata from these items into metadata 382 for the entire content cluster 380. This metadata 382 includes metadata from the explicit content 310-320, which indicated that this content within this cluster 380 occurred during the time duration of “Time 1-1.2” and at location “Loc. 1.” The metadata from content 310 and 320 also indicated that this content involved participants A, B, and C. In addition, because the media organization app 300 accessed the calendar data 212 and the data from the event database servers 180, 190, the content cluster metadata 282 can also indicate that this content relates to an event with the title “Title 1” having a description “Descr. 1”.
The second content cluster 390 grouped together explicit content 330, implicit content 340, and calendar item two 370 primarily because these items 330, 340, 370 all occurred at time “Time 2” or soon thereafter (“Time 2.1”) and indicated either that they occurred at the same location (“Loc. 1”) or did not indication a location at all. The cluster metadata 392 for this content cluster 390 indicates the time frame (“Time 2-2.1”) and location (“Loc. 1”) taken from the explicit content 330 and the implicit content 340. The metadata 392 also includes the title “Title 1” from calendar item 2, which was linked with the others items 330, 340 by the common time frame.
An important feature of this embodiment of the present invention is that the clustering of content 380, 390 is done automatically without user involvement. The user only needs to create explicit content 136 with their mobile device 100 using their normal content creation apps 132. These apps 132 save their explicit content 136 as usual. The media organization app 300 can run in the background creating implicit content 138 (pursuant to earlier user instructions or preference settings). At a later time, the media organization app 300 gathers the content 140, makes inquiries from external event databases 180, 190, examines the user calendar data 212, and then creates content clusters 280, 290 for the user. This later time can be when the media organization app 300 is opened by the user and the user requests that the content clustering step occur. Alternatively, this later time can occur periodically in the background. For instance, the user may request through preference settings that the content clustering and database inquiries take place every night between midnight and two a.m., but only when the mobile device 100 is plugged into a power source.
Because the content clustering shown in FIG. 2 takes place without user involvement, the media organization app 300 preferably gives the user the right to affirm or correct these clusters 380, 390. In FIG. 4, content cluster one 380, cluster two 390, and a third content cluster 410 are presented to a user through a user interface, represented in FIG. 4 by element 400. The user interface 400 presents these clusters 380, 390, 410 and their contents for the user to review. The user can confirm a cluster as accurate and complete, as this user did with content cluster one 380. When a cluster 380 is confirmed, the media organization app 300 will consider the cluster to be a user-confirmed event, such as event one 420 shown in FIG. 4. Note that event one 420 contains the same metadata 382 that the content cluster 380 had before it was confirmed
Sometimes the user will wish to consolidate two different clusters into a single event. In FIG. 4, the media organization app 300 created separate clusters 390, 410, with cluster Two 390 occurring at time “Time 2” and cluster three 410 occurring at time “Time 2.5.” While the app 300 viewed these time frames as different enough as to create two separate clusters 390, 410, the user in FIG. 4 chose to combine the separate clusters 390, 410 into a single user-confirmed event two 430. Note that the metadata 432 for event two 430 includes a time frame “Time 2-2.5” derived from the metadata 392, 412 of both of the original content clusters 390, 410. The event two metadata 432 also can contain user added additions, such as the user description 433 of this event 430.
Each user-defined event includes one or more content items 140 that relate to a particular event that was likely attended by the user. The event might be a wedding, a party with a friend, or a child's swim meet. By clustering the content 140 together into events 420, 430, the user can better appreciate the content 140. Furthermore, these events 420, 430 are enhanced by the addition of implicit content 138, and by the added data from calendar data 212 or one of the event databases 180, 190.
In FIG. 5, the media organization app 300 is being used to establish a presentation grouping 500. A presentation grouping 500 is a grouping of two or more events according to a common subject for presentation together. The presentation may be slide show, a video file, a web site, or some unique combination that combines the media from multiple events 420, 430 into a single presentation. Events 420, 430 are grouped together by a common theme or subject. It is possible that some events 420, 430 will be grouped into multiple presentation groupings 500, while other events will not be grouped into any presentation groupings 500.
In FIG. 5, event one 420 is shown having title “Title 1” taken from the calendar item one 360 and event two 430 also has a title of “Title 1” taken from calendar item two 370. The media organization app 300 recognizes this commonality, and then suggests that these two events 420, 430 be combined into a single presentation grouping 500. This grouping 500 contains both events 420, 430, and has metadata 502 taken from the metadata 422, 432 of the two events 420, 430. In FIG. 5, metadata 502 that was shared by all events 420, 430 in the presentation grouping 500 are bolded (namely the timeframe “Time 1-2.5”, the location “Loc. 1” and the title “Title 1”), which indicates that these elements in the metadata 502 are most likely to apply to the presentation grouping as a whole 500.
Frequently, many events will be combined into a single presentation grouping 500. For instance, a user may have ten calendar entries all labeled “Third Grade Swim Meet.” Although this parent attended all ten swim meets, the parent took pictures (i.e., created explicit media content 136) at only six of these meets. The media organization app 300 will cluster this content 136 into six content clusters, with each cluster also containing a calendar entry with the same “Third Grade Swim Meet” title. Because of this commonality, the app 300 will automatically create a presentation grouping 500 containing content 136 from all six swim meets without including intervening content that is not related to the swim meets.
It is true that, in the example shown in FIG. 5, these two events 420, 430 may not have been grouped in a single presentation grouping 500 if the user had not created calendar entries with the same title “Title 1” for each event. While they shared the same location (“Loc. 1”), this might not have been enough commonality for the app 300 to group the events 420, 430 together. However, if these events were swim meets and were sponsored by an organization that posted every meet in the global event database server 190, this presentation grouping 500 could still be created. As long as one item in a cluster identifies a location and another identifies a time, then the global event database server 190 should be able to identify any events were scheduled at the same location and time. Each event 420, 430 would then include the identification of the event received from the global event server 190, and the media organization app 300 would be able to group the same events 420, 430 as a presentation grouping 500.
Alternatively, another parent of a child in the third grade swim team may have created and labeled events using the media organization app 300. When this data was uploaded to the media organization server 180, the server 180 would now have knowledge of these swim meets. When the next user attempts to cluster content taken at the same swim meets, the media organization app 300 would query the server 180 and receive an identification of these swim meets, which would be added into their own events 420, 430.
Clustering Methods
FIG. 6 shows a method 600 that is used to create implicit content 138 on the mobile device 100. The method begins at step 610, during which a user selects a particular mode to be used to monitor the sensors 150 of the mobile device 100. The selected monitoring mode establishes which of the sensors 150 will be monitored by the method 600, and also establishes a trigger that will be use to start recording data. For example, a walking tour mode could be established in which an accelerometer is routinely (every few seconds) measured to determine whether an individual is currently walking (or running). A trigger event could be defined to detect a change in the walking status of the individual (e.g., a user who was walking is now standing still, or vice versa). Alternatively, the trigger could require that the change in status last more than two minutes. This alternative walking tour mode would be designed to record when the user starts walking or stops walking, but would not record temporary stops (for less than two minutes). So a user that is walking down a path may meet a friend and talk for ten minutes, and then continue down the path. When the user reaches a restaurant, the user stops, has lunch, and then returns home. This mode would record when the user started walking, when the user stopped to talk to a friend, when the user started again, when the user ate lunch, when the user finished lunch and stared walking home, and when the user returned home. This mode would not record when the user stopped to get a drink of water (because the user stopped for less than two minutes), or when the user got up at lunch to wash his hands (because the user walked for less than two minutes). Other modes might include a car trip mode, which would monitor an accelerometer and GPS device to record car stops that lasted longer than an hour, or a lunch conversation mode, which randomly monitors the microphone to listen for human voices and records one minute of the conversation if voices are recognized. The point of selecting a monitoring mode in step 610 is to ensure that the user approves of the monitoring of the sensors 150 that must be done to create implicit content 138, and that the user desires to create this type of content 138.
Once the mode is established, the processor 120 will monitor the sensors 150 of the mobile device 100 at step 620 looking for a triggering event. The sensors 150 to be monitored and the triggering event will be determined by the selected monitoring mode. If the processor 120 detects a trigger at step 630, the processor 120 will record data from the sensors 150 in step 640. Note that the data recorded from the sensors 150 does not have to be limited to, or even include, the sensor data that was used to detect the trigger in step 630. For instance, the triggering event may be that the user took their cellular phone 100 out of their pocket. This could be determined by monitoring the accelerometer 160 and the ambient light sensor 164. When this occurs, the processor 120 might record the location of the device 100 as indicated by the GPS sensor 158, the current time as indicated by the clock 156, and the next two minutes of conversation as received by the microphone 154.
Step 650 determines whether data from external sources are to be included as part of this implicit content 138. Such data may include, for example, the weather at the currently location of the device 100, or the presence of mobile devices 100 belonging to friends in the general proximity. If step 650 determines that external data will be included, a request for external data is made in step 652, and the results of that request are received in step 654. For example, the media organization app 134 might request local weather information from another app on the mobile device 100 or from a weather database 194 accessible over the network 170. Alternative, a “locate my friends” app that detects the presence of mobile devices belong to a user's friend could be requested to identify any friends that are nearby at this time. The data from these apps or remote servers is received at step 654, and combined with the data recorded from the sensors 150 at step 640.
At step 660, a determination is made whether to save this accumulated data. In some circumstances, a monitoring mode may establish that the data gathered after a triggering event (step 630) is always to be stored as an implicit content 138. In other circumstances, the monitoring mode may impose requirements before the data can be saved. For instance, the lunch conversation mode may not save the recorded audio as implicit content 138 if analysis of the recording indicates that the voices would be too muffled to be understood. If the condition for saving the data under the monitoring mode is met at step 660, then the data (including both sensor data recorded at step 640 and external data received at step 654) is recorded as implicit content at 670. If the step 660 determines that the condition is not met, step 270 is skipped. At step 680, the process 600 either returns to monitoring the device sensors 150 at step 620, or ends depending on whether additional monitoring is expected by the monitoring mode.
FIG. 7 shows a method 700 for clustering content 140 into content clusters. The process 700 starts at step 705 by gathering the explicit content 136 from the memory 130 on the mobile device 100, a cloud storage server 192, or both. Next the implicit content 138 is gathered at step 710, again either from memory 130 or from user content storage 189 at server 180. These steps 705, 710 may gather all information available at these data locations, or may only search for new content 140 added since the last time the app 134 organized the content 140.
At step 715, the media organization app 134 accessing facial or voice recognition data 280 in order to supplement the participant information found in the metadata for the gathered content 140. Of course, this step 715 could be skipped if participant information was already adequately found in the metadata for the content 140, or if no participant recognition data 280 were available to the app 134.
At step 720, the media organization app 134 analyses the metadata for the content 140, paying particular attention to location, time, participant, and title metadata (if available) for the content 140. Using the time information taken from the content 140, the app 134 analyzes the calendar data 212 looking for any calendar defined events that relate to the content 140 being analyzed (step 725). In addition, the app 134 uses time and location information from the content 140 to search for occurrence information from one or more third party event databases 190 (step 730). The app 134 also makes a similar query at step 735 to the crowd-sourced event definitions maintained by the media organization server 180. If the calendar data or the responses to the queries made in steps 730, 735 contain data that is relevant to the content 140 being analyzed, such data will be included with the content 140 at step 740.
At step 745, the content 140 and the relevant data from steps 725-735 are clustered together by comparing metadata from the content 140 and the added data. In one embodiment, clusters are based primarily on similarities in time metadata. In this embodiment, the app 134 attempts to group the content 140 by looking for clusters in the time metadata. In other embodiments, location metadata is also examined, whereby the app 134 ensures that no content cluster contains data from disparate locations.
At step 750, metadata is created for the content clusters by examining the metadata from the content 140 and the additional data obtained through steps 725-735. The clusters are then stored in the media organization data 139 in memory 130, in the user content 189 of the media organization server 180, or both.
At step 760, the automatically created content clusters are presented through a user interface to a user for confirmation as user-confirmed events. The user can confirm a cluster without change as an event, can split one cluster into multiple events, or combine two or more clusters into a single event. The app 134 receives the verified events from the user interface at step 765. The user can also confirm and supplement the metadata, adding descriptions and tags to the metadata as the user sees fit. Finally, the verified events are saved in step 770 with the media organization data 139 in memory 130, and/or in the user content 189 of the media organization server 180. As explained above, these data locations 139, 189 can be designed to hold only the organizational information for the content 140 while the content 140 itself remains in its original locations unaltered. Alternatively, all of the organized content 140 can be gathered and stored together as user content 189 stored at the media organization server 180. While this would involve a large amount of data transfer, the media organization app 134 can be programmed to upload this data only in certain environments, such as when connected to a power supply, with access to the Internet 170 via Wi-Fi Network Interface 144, and only between the hours of midnight and 5 am. Alternatively, this data could be uploaded continuously to the remote media organization server 180 in the background while the mobile device 100 is otherwise inactive or even while the device 100 is performing other tasks.
FIG. 8 shows a method 800 for grouping events into presentation groupings. This method 800 starts at step 805, wherein events are identified by the media organization app 134 for grouping. Step 805 might be limited to clusters that have formally become user-verified events through steps 765 and 770. Alternatively, the process 800 may include unverified content clusters stored at step 755. At step 810, the app 134 examines the metadata for each event and cluster, and then attempts to find commonalities between the events and clusters. As explained above, these commonalities can frequently be based upon event information obtained from calendar data 212 or from data obtained by outside event data 180, 190.
In one embodiment, step 810 uses commonality in the metadata that does not relate to closeness-in-time. The reason for this is that content that was collected close to the same time as other similar content would, in most cases, have already been clustered together into events. Consequently, it is likely that the separate events being grouped together into a presentation grouping would not share a common time with one another. However, it may be useful to recognize commonalities in the time metadata that are not related to closeness-in-time. For instance, the app 134 may recognize that numerous content clusters or events occur on Thursday evenings from 6 pm to 8 pm. The app 134 may recognize this as a connection between the events, and therefore propose combining all events that occur on Thursday evenings from 6 pm to 8 pm as part of a presentation grouping.
At step 815, the app 134 uses the metadata from the combined events to create metadata for the presentation groupings. The presentation groupings and metadata are then stored at step 820 in the media organization data 139 or in the user data 189 on server 180.
At step 820, the user is allowed to verify the presentation groupings created at step 810. The user is given the ability to add events or content 140 directly to a presentation grouping, or to remove events or content 140 from the presentation grouping. The user is also given the ability to modify the metadata, and to format the presentation grouping as desired by the user. As explained above, the presentation grouping may be used to create a web site, a slide show, or a video presentation of the combined content. As a result, numerous formatting options will be available to a user at step 825 to format the presentation grouping. At step 830, the user modifications to the presentation groupings are stored at locations 139 or 189, and the process 800 ends.
Presentation and Augmentation
FIG. 9 shows a sample presentation grouping 900. The metadata 910 for this presentation grouping 900 shows that the events 920 that were grouped together all related to a family's Yellowstone driving trip that took place from Jul. 2 to Jul. 14, 2012. This presentation grouping 900 includes events 920 that took place in Illinois, Wisconsin, Minnesota, South Dakota, and Wyoming.
The presentation grouping 900 could include tens or even hundreds of events 920. FIG. 9 shows details for only three events, event one 930, two 940, and three 950. It should be understood that numerous events 920 might occur in before, between, or after these particular events 930, 940, 950. Event one 930 took place on Jul. 2, 2012 and related to leaving the family home in Chicago, Ill. Event two 940 took place in the Badlands of South Dakota on the morning of Jul. 4, 2013. Event three 950 took place when the family watched the parade in Wall, S. Dak. on Jul. 4, 2013.
The events in presentation grouping 900 are used to create the user interface 1000 shown in FIG. 10. In the preferred embodiment, the user interface 1000 is created by the media organization server 180. This is true even if the presentation grouping 900 was created on the mobile device 100 using the media organization app 134. In one embodiment, when the presentation grouping 900 is created and stored in the media organization data 139, it is also uploaded via network 170 to the user content 189 stored on the media organization server 180. Alternatively, the content within the events 920 could have been uploaded to the server 180, and the server 180 could have assisted the user in creating the presentation grouping 900. One benefit to having the media organization server 180 create interface 1000 is that the interface 1000 could then be accessed by any user with access to the Internet 170. In one embodiment, the server 184 operates as a web server under the guidance of application programming 187, and the interface 1000 is a web interface provided over the Internet 170.
To create this interface 1000, the server 184 analyzes all of the events 920 in the presentation grouping 900, including the events one 930, two 940, and three 950. The earliest and latest times associated with these events 920 are identified (in this case, Jul. 2, 2013 and Jul. 14, 2013. A graphical timeline is then created that spans between these dates. In FIG. 10, this timeline 1020 shows a portion of the entire timeline of the presentation grouping 900. A user can see more of the timeline by selecting arrows 1022 and 1024. The user could also “zoom out” to see all of the timeline 1020 using user interface element 1032. The timeline 1020 includes a single time indicator, in this case a black circle 1026. The user can drag this circle 1026 along the timeline 1020 to input a desired time. In this case, the user has located the circle 1026 on Jul. 4, 2013. More specifically, Jul. 4, 2013, between 11:00 and 11:15 am, as indicated by the heading 1010 shown on the interface 1000. This time corresponds to event two 940.
In addition to the timeline 1020, the interface 1000 also includes a map 1030. Maps 1030 are particularly useful elements when displaying a presentation grouping 900 that includes a plurality of different locations. For this family trip to Yellowstone, the map 1030 will show the family's route during the vacation. In this case, the map 1030 shows the states that the family traveled in during the time shown on the timeline 1020 (namely between Jul. 3 and Jul. 9, 2013). A user can zoom into or out of the map 1030 using interface element 1032. In one embodiment, using interface element 1032 will simultaneous zoom both the timeline 1020 and the map 1030, with the map 1030 always showing locations covered by the time period shown in the displayed portion of the timeline 1020. In other embodiments, separate zoom interface elements 1032 will be provided for the timeline 1020 and the map 1030.
The map 1030 includes a path 1040 showing the path of the user along the timeline. In this case, the path 1040 shows a route through Minnesota, South Dakota, and Wyoming and into Yellowstone National Park. The path 1040 can be derived from the events 920 within the presentation grouping 900 being displayed. In most cases, the presentation grouping 900 will not have explicit information about every point on the path 1040, but instead will have multiple, discrete events 920 along the path 1040. The points along the path 1040 that are associated with actual events 920 in the presentation grouping 900 are shown in FIG. 10 with short line hash marks 1042 on the path 1040. The portions of path 1040 that exists between these locations can be filled in using an intelligent “guess.” For instance, most of the events 920 occur on U.S. Interstate 90, so the server 180 can guess that the user traveled between these events 920 following the Interstate. Alternatively, the user can manually add the correct path 1040 between the locations of the events 920. In yet another embodiment, the path 1040 is not shown, and only the discrete locations 1042 of the events 920 are displayed on the map 1030.
As the current time marker 1026 is found on the timeline 1020 at the time of event two 940, a location marker 1044 is placed on the path 1040 at the location of event two 940. This location happens to be a scenic overlook off of Interstate 90 looking over the Badlands in South Dakota. To change the event 920 being viewed, a user is allowed to drag the time market 1026 along the timeline 1020. In one embodiment, the marker 1026 will only “stick” on the timeline 1020 at time periods that define a particular event 920. In this embodiment, movement of the time marker 1026 will cause a corresponding movement of the location marker 1044. Hence, if the time marker is moved to later in the day on Jul. 4, 2013 corresponding to event three 950, the location marker 1044 on the map interface 1030 will correspondingly move to Wall, S. Dak. (as can be seen in interface 1100 shown in FIG. 11). The interface 1000 can be designed so that the user can similarly move the location marker 1044 along the path 1040 between events 920 and have the time marker 1026 move correspondingly along the timeline 1020. Note that while the hash markers 1042 identify events 920 on the path, there are no corresponding hash markers on the timeline 1020. Of course, such marks could be added to the timeline 1020. To the extent an event 920 exists over a long time period (such as two days), the mark 1026 on the timeline 1020 could be similarly long.
In the interface 1000 shown in FIG. 10, event two 940 was selected. The interface 1000 shows the content associated with this event 940 in content location 1050. In this case, event two 940 was an implicit event, which means that the user of the mobile device 100 did not explicitly direct the device 100 to take any video or still photos, to record any audio, or even make any note of the fact the car stopped at this overlook. However, process 600 detected a trigger event (such as the car stopping for more than ten minutes) and recorded the implicit content 138 that was the basis for this event 940. The implicit content included the fact that the car stopped at this overlook from 11:00 to 11:15 am, and it included the geographic location of this stop (within the Badlands of South Dakota). Furthermore, the user's monitoring mode in process 600 caused the device 100 to record any conversation that may have occurred. In this case, the device 100 captured daughter Sue exclaiming “Look at that,” followed by the mother explaining how the Badlands were formed. The audio recording 1060 is provided in the content area 1050 of interface 1000, which allows the family to relive a memory that they did not explicit record.
Because the server 180 knows the time and location of this event 940, the server 180 is able to augment this data with content from third party information provider servers 194. In one example, the server 180 inquires about whether there are any locations of interest near this location. Various third parties provide public servers capable of providing this information, including Google Inc. (Menlo Park, Calif.). As this presentation grouping 900 is concerning a family vacation, the server 180 will be paying particular attention to tourist destination information. In this case, the third party information provider server 194 would indicate that this location is in the Badlands. As a result, the server 180 can populate the content area 1050 of the interface 1000 with stock photography 1070 showing the Badlands. In addition, the server 180 may include a portion of the WIKIPEDIA article on the Badlands by requesting this information from the Wikipedia server 194 (Wikipedia is provide by the Wikimedia Foundation, Inc. of St. Petersburg, Fla.). The server 180 also knows the time (11:00 am) for this event 940, so it can inquire about the weather at this time and place, and add this information 1074 to content area 1050.
Finally, the server 180 has within the user content data 189 information from many other users that have used the system 180. By accessing this information, the server 180 may be able to identify a photograph 1076 taken by another, unrelated user of the server 180 at that very same scenic overlook and include this photograph 1076 in the presentation 1000 of event 940. The use of content from other user's can be limited to that content that has been donated for public use by other users of the server system 180.
Interface 1100 in FIG. 11 displays content 1150 associated with event 950. As was the case with interface 1000, interface 1100 identifies at 1110 the time and place of this event 950, displays the timeline marker 1122 at the appropriate location on the timeline 1120 for the event 950, and further displays the location marker 1142 on the appropriate location along the path 1140. For event 950, the user did record explicit media content 136, namely photo one 1160, audio commentary taken during the event 950 describing photo one 1160, photo two 1164, and video clip 1166. This content is displayed in the content presentation area 1150 of interface 1100.
This area 1150 also includes some audio commentary 1170 that was added to this event 950 after-the-fact. Users are allowed to add content to events 950 from a variety of sources in order to enhance the presentation 1100 of those events. This can take the form of audio commentary 1170, which helps “tell the story” of the event 950. The commentary 1170 can be recorded the next day and connected to the event using the media organization app 134 on the mobile device 100, or weeks later when viewing the event 950 through interface 1100 via a web browser.
Like interface 1000, interface 1100 also includes augmentation from external data sources acquired over the Internet 170. In this case, the server added weather information 1180 for Wall, S. Dak. on Jul. 4, 2013 at 1:00 pm, a news report 1182 from the local paper for that day, and stock photography of Wall, S. Dak. 1184. By searching for nearby locations of interest, the server 180 would have identified Wall Drug and may have elected to include a Wikipedia article 1186 on the drug store. All of this information 1180-1186 relates directly to the location identified for this event 950. Information related primarily to the identified time for the event 950 but not the location may also be included. For instance, the headline from the New York Times 1188 could be included for this date, which would note any major event that may have been occurring elsewhere in the world, while interesting trends on the Internet or on social media 1190 could also be added.
While the content 1160-1190 in content presentation area 1150 may appear cluttered in FIG. 11, the server 1180 allows a user to pick and choose among the content 1160-1190 and to format this content 1160-1190 as they desire. This formatting information will be stored with the event 950, so that later viewers of the event 950 will see the preferred format for interface 1100.
FIG. 12 shows an interface 1200 for an event from a different presentation grouping. In this case, the event 1320 is from a “Farewell Evening with Jim” presentation grouping 1300 (see FIG. 13). This event 1320 took place from 5:15 to 6:45 on Aug. 15, 2013, as indicated by marker 1222 shown on timeline 1220. This event occurred on the corner of Main Street and 1st Avenue (Jimmy's Steak House), as shown by the marker 1234 on the path 1232 added to the map 1230 as indicated in the description 1210.
The only explicit content 136 taken during this event 1320 was a group photo 1250 of the four friends at this restaurant. In addition, the mobile device 100 was allowed to record periodic conversation snippets, with at least one snippet 1260 being interesting enough to place on interface 1200. The server 180 searched for locations of interest at this location 1234 and identified the restaurant. The server 180 was able to retrieve a restaurant menu 1270 and a photograph of the dining room from the restaurant's website 1272 and use this to augment the content area 1240 in interface 1200.
This interface 1200 differs from interfaces 1000, 1100 by the inclusion of a viewer-directed button 1280. While the user of the mobile device 100 and the identified user from user data 188 is allowed to edit presentation groupings and events, and to format their presentations in the interfaces 1000, 1100, 1200, the primary purpose of these interfaces 1000, 1100, 1200 is to allow other people to view this content. These viewers are not allowed to change the content in an event or change the formatting of an interface. However, through the use of a viewer content addition button 1280, these viewers can add content to an event. In this case, viewers added photograph 1290, and provided audio notes 1292 and 1294.
As shown in FIG. 13, the presentation grouping 1300 included event one 1320 along with two other events 1322 and 1324. Each event 1320, 1322, 1324 is associated with explicit content 136 and implicit content 138 and various metadata derived from this content 140 and other items such as calendar data 212 or data from event databases 180, 190. As shown in FIG. 13, the server 180 can also allow viewers to add viewer augmentation 1330, 1332 to these events 1320. These additions 1330, 1332 can be stored along with the other event content 140. In a preferred embodiment, the content area 1240 will automatically regroup content to reflect viewer added content 1290-1294, although the user that created the presentation grouping 1300 would be allowed to change such formatting. In some cases, the viewer augmentation 1330, 1332 is related to an event 1320 only in the context of this particular presentation grouping 1300. For example, this same event 1320 could also be included in a presentation grouping around the topic of “my favorite restaurant meals.” In this context of this presentation grouping, the comments and contribution by Carol 1330 and Ted 1332 would be inappropriate.
In one embodiment, all of the events (such as events 1320-1324) in a presentation grouping 1300 are displayed automatically, one after another. In this embodiment, it may be helpful to have audio clippings associated with an event 1320 to begin playing immediately when the event 1320 is first displayed. The interface 1200 may automatically move to the next event 1322 when all of the content in the first event 1320 has been displayed or played. In this embodiment, the audio clippings can be telling the story of the presentation grouping as each event 1320-1324 is presented. The creator of the presentation grouping 1300 can effectively tell the story for that presentation grouping 1300 through the audio clippings and commentary that have been added to the interface 1200.
In this environment, audio augmentation 1330, 1332 that is provided by a viewer of the interface 1200 may not be easily integrated into the story told by the creator of the presentation grouping 1300. Nonetheless, this audio clipping may be of interest to other viewers that may want to hear the story from a different point of view. As a result, the interface 1280 will accept viewer augmentations and then allow later viewers to choose which commentary they hear as they watch the presentation of an event 1320. Users may also be able to choose different sets of visual content to see as well. For instance, FIG. 12 could present the story of saying goodbye to Jim from Jim's friends' perspective. Jim may later add his own audio commentary, photographs, and movies from that night that would tell the story from his perspective. The interface 1200 could group this content into two perspectives, letting viewers choose which experience they wish to have of the event 1320.
In addition to manually allowing viewers to add additional content 1290-1294 to events, it is also possible to allow two users of the server 180 to merge their content together. For instance, if user one created content at an event, such as a Bruce Springsteen Concert, that user could create a presentation grouping 1400 that included that event 1410. As part of that event 1410, the user created content A 1412, B 1414, C 1416, and D 1418. This content 1412-1418 is stored as part of this event 1410, in the user contents 189 on server 180. A second user may have also attended that same concert and created their own presentation grouping 1420 containing their event 1430 for that concert. The second user created content E 1432, F 1434, and G 1436 for this event 1430. The server would recognize that both events 1410, 1430 occurred at the same time in the same (or close to the same) location. Furthermore, it is likely that both events 1410, 1430 would have been associated with the concert through steps 725-740 of the content clustering method 700.
When the first user elects to display their event 1410 (or format the event for later display to third parties), the server 180 may recognize that the user content 189 of the server 180 already contains content 1432-1436 from the same event that was submitted by the second user. Assuming that it has permission from the second user, some of the content 1432-1436 submitted by the second user could be used in presentation 1440 of the first user's event 1410. In particular, content E 1432 was included without change. Content F 1434 may have been kept private by the second user, and therefore would not be made available to anyone else. Content G 1436, however, was merged by the system with the first user's content C 1416 to form merged content C+G 1450. This merged content might be a single video file 1450 containing video from content C 1416 and content G 1436. Alternatively, the merged content might be a panoramic picture merging two separate photographs. Of course, content from numerous multiple users at the same event could be made available for other users, allowing a user to select some of the best content from others to include in their presentation 1440. This might also allow dozens of separate pictures to be merged into a single panorama of the concert. The server 180 could even distinguish between content based on the content's precise location. At the Springsteen concert, for instance, the server 180 could suggest to the first user only content from users in the same approximate location within the stadium as that first user, so that the suggested photos and videos would be similar to the first user's actual view of the concert.
In addition, the first and second users may have actually attended the concert together. In this case, it may be that these users desire to merge all of their content together into a single presentation 1440 of the event. A single formatting would apply to the combined event, allowing both users to jointly create the presentation of the content for that event. Alternatively, as explained above, the presentation can include two perspectives of the event that a viewer can later select, with the content and commentary of the first user creating a first perspective and the content and commentary of the second user creating a second perspective.
Presentation Method
A method 1500 for presenting content from a presentation grouping is shown in FIG. 15. This method starts at step 1505 by creating a timeline. To do this, the method 1500 examines the event times for the events in the presentation grouping. The timeline should extend from the first event chronologically to the last, although the entire timeline need not be displayed on the user interface. At step 1510, the method creates a map based on the location information found in the events in the presentation grouping. This map may utilize third-party mapping software to place the event locations on the third-party map. As explained above, the server 180 can create a path on the map by linking the event locations together. The server 180 can intelligently create the path by noting important physical features (such as roads or rivers) that link the locations together.
In one embodiment content is displayed one event at a time. At step 1515, the timeline and map both display an indication of where the selected event occurs on the map, timeline or both. Note that if a user wished to include content from multiple events at the same time, the user could simply merge the two events into a single event. Alternatively, the server 180 could maintain the two events as separate events, but simply allow the user to display content from both events together. In this case, the timeline and map could display information for both events. Alternatively, the timeline and map could be removed from the display.
At step 1520, the user formats the content from the event for presentation. In addition to organizing the layout of content, the formatting could include special effects, distortions, animations, or color filters that could be added to particular items of content. In addition, the user could specify music for the event or the entire presentation grouping. These formatting changes can be saved with the event so that all viewers would see the same formatting. In other circumstances, formatting options would be available for viewers so that they can alter the presentation of the content. These changes would not be made available to other viewers, but could be saved along with an identifier for that viewer so that the same viewer could save their formatting preferences.
At step 1525, the timeline, map, and formatted content for an event are displayed to the viewer. The viewer can then select at step 1530 a location on the timeline or map to select a different event. At step 1535, the display is updated to the selected event by updating the map and timeline, as well as the event content.
At step 1540, the server 180 uses time and location information for the event to gather augmentation content from external servers 194. This augmentation is displayed with the original content in step 1545. At step 1550, the same time and location information allows the server 180 to look for related content in its own data 189 from events created by other users. Assuming that these other users have granted permission to share this content, any discovered content is shared at step 1555. At step 1560, the server 180 allows viewers to submit their own augmentations, such as photographs or commentaries that they wish to add to the event presentation. At 1565, these viewer-submitted augmentations are displayed for all viewers to see. Finally, at step 1570, the server 180 may determine that two users are willing to merge content from the own events with the other user. If so, the content is merged so that the two users can collectively define and format a single event.
Steps 1540-1570 can take place at different times in method 1500. For instances, these steps 1540-1570 could take place before step 1505, so that the timeline and map would reflect all the augmented data that was added to the event. Alternatively, some or all of these steps could occur before step 1520, which would allow the user to include the augmentation content in their desired format for the presentations grouping. In addition, none of steps in method 1500 should be considered mandatory, as various steps could be skipped without fundamentally changing the method 1500.
Finally, FIG. 16 shows media organization server 180 with more detail provided related to the storage of user content 189. In FIG. 16, user content 189 is stored in a user content database 1600. The database 1600 is stored in the memory of the media organization server 180 as structured data (such as separate tables in a relational database, or as database objects in an object-oriented database environment). The database programming stored on the memory of the media organization server 180 directs the processor 182 to access, manipulate, update, and report on the data in the database 1600. FIG. 16 shows the database 1600 with tables or objects for content items 1610, content clusters 1620, user confirmed events 1630, presentation groupings 1640, external augmentations 1650, friend or viewer augmentations 1660, and users 1670. Relationships between the database entities are represented in FIG. 16 using crow's foot notation. For example, FIG. 16 shows that presentation groupings 1640 are associated with a plurality of user-confirmed events 1630, which are themselves associated with one or more content clusters 1620 that contain one or more content items 1610. Associations or relationships between the database entities shown in FIG. 16 can be implemented through a variety of known database techniques, such as through the use of foreign key fields and associative tables in a relational database model. In FIG. 16, associations are shown directly between two database entities, but entities can also be associated through a third database entity. For example, a user database entity 1610 is directly associated with one or more content items 1610, and through that relationship the user entity 1670 is also associated with user confirmed events 1630 and presentation groupings 1640.
The many features and advantages of the invention are apparent from the above description. Numerous modifications and variations will readily occur to those skilled in the art. Since such modifications are possible, the invention is not to be limited to the exact construction and operation illustrated and described. Rather, the present invention should be limited only by the following claims.

## Claims

1. A computing device comprising:
a) a network interface providing data and a user interface to a remote computing device over a computerized network;
b) a processor that is controlled via programming instructions;
c) a non-transitory computer readable memory;
d) database programming stored on the non-transitory computer readable memory and performed by the processor, the database programming managing a content database that is transformed during operation by the database programming, the content database having:
i) a plurality of media content items,
ii) a plurality of events, with each event being associated in the database with a plurality of media content items, wherein each event is also associated with a location and a time indicating where the plurality of media content items were generated; and
iii) a plurality of presentation groupings, with each presentation grouping being associated in the database with a plurality of events;

e) content presentation programming stored on the memory and performed by the processor, the content presentation programming causing the processor to:
i) analyze a selected presentation grouping to identify selected events associated with the selected presentation grouping, wherein the locations and times of the selected events comprise a plurality of different locations and a plurality of different times;
ii) analyze the selected events to identify the plurality of different locations and the plurality of different times associated with the selected events;
iii) generate a single timeline for the identified plurality of different times associated with the selected events;
iv) generate a map showing the identified plurality of different locations of the selected events on the map including generating a travel line connecting the locations of the selected events;
v) receive selection of a first event as a chosen event;
vi) after step v), concurrently display the media content items associated with the first event in the user interface along with the single timeline, the map, and the travel line;
vii) receive selection of a second event as the chosen event; and
viii) after step vii), updating the user interface to display the media content items associated with the second event in the user interface.

2. The computing device of claim 1, wherein a first media content item shown on the user interface was recorded as implicit content created by a device without an explicit command on the device to record the first media content item.

3. The computing device of claim 2, wherein all of the media content items associated with the chosen event were recorded as implicit content.

4. The computing device of claim 1, further comprising:
f) external augmentation content programming stored on the memory and performed by the processor, the external augmentation content programming causing the processor to:
i) search for external augmentation content over the computerized network relating to the location for the chosen event; and
ii) display the external augmentation content on the user interface along with the timeline, map, and plurality of media content items associated with the chosen event.

5. The computing device of claim 4, wherein the external augmentation content is further related to the time of the chosen event.

6. The computing device of claim 1, further comprising:
f) augmentation content input programming stored on the memory and performed by the processor, the external augmentation content generation programming causing the processor to:
i) provide an input interface on the user interface to receive viewer augmentation content; and
ii) display the viewer augmentation content on the user interface along with the timeline, map, and plurality of media content items associated with the chosen event.

7. The computing device of claim 6, wherein the viewer augmentation content is stored in the content database and associated with the chosen event.

8. The computing device of claim 1, wherein the chosen event is associated in the content database with a first user, and wherein the computing device further comprises:
f) event merge programming stored on the memory and performed by the processor, the event merge programming causing the processor to:
i) identify a second event in the content database associated with a second user different than the first user, the second event having a similar location and time as the location and time of the chosen event;
ii) identify second event content items in the content database associated with the second event; and
iii) display the second event content items on the user interface along with the timeline, map, and plurality of media content items associated with the chosen event.

9. The computing device of claim 8, wherein the event merge programming identifies a first media content item associated with the chosen event and a second media content item associated with the second event and merges the first and second media content items into a merged content item, further wherein the processor displays the merged content item on the user interface, and further wherein the merged content item is selected from a set comprising a single merged static visual image and a single merged video file.

10. The computing device of claim 1, wherein a user associated with the chosen event may select formatting for the plurality of media content items associated with the chosen event, wherein the formatting for the media content items is stored in the content database and used when displaying the media content items on the user interface.

11. The computing device of claim 9, wherein the first and second media content items are photographs, and the merged content item is a panorama photograph created by combining the first and second media content items.

12. The computing device of claim 9, wherein the first and second media content items are video files, and the merged content item is a single video file created by merging the first and second media content items.

13. The computing device of claim 1, wherein the display of the single timeline further comprises the display of a time indicator element indicating the location of the chosen event on the timeline.

14. The computing device of claim 13, wherein the display of the map further comprises the display of a location indicator indicating the physical location of the chosen event on the map.

15. The computing device of claim 14, wherein the received selection of the first and second event comprises receiving inputs on the timeline, wherein the selection on the timeline automatically updates the location indicator to reflect the physical location of the chosen event.