US20170017653A1 - Crowdsourced multi-media data relationships - Google Patents
Crowdsourced multi-media data relationships Download PDFInfo
- Publication number
- US20170017653A1 US20170017653A1 US15/277,776 US201615277776A US2017017653A1 US 20170017653 A1 US20170017653 A1 US 20170017653A1 US 201615277776 A US201615277776 A US 201615277776A US 2017017653 A1 US2017017653 A1 US 2017017653A1
- Authority
- US
- United States
- Prior art keywords
- file
- resource
- retrieval
- multimedia data
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims description 80
- 238000009877 rendering Methods 0.000 claims description 36
- 238000001914 filtration Methods 0.000 claims description 32
- 230000002441 reversible effect Effects 0.000 claims description 9
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 238000005267 amalgamation Methods 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 98
- 230000001360 synchronised effect Effects 0.000 description 41
- 238000009826 distribution Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 10
- 238000013515 script Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 230000007717 exclusion Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000009313 farming Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 229910000497 Amalgam Inorganic materials 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003305 oil spill Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012358 sourcing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000016936 Dendrocalamus strictus Nutrition 0.000 description 1
- 241000612151 Dodecatheon Species 0.000 description 1
- 235000008166 Dodecatheon meadia Nutrition 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G06F17/30044—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/489—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using time information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/435—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/438—Presentation of query results
- G06F16/4387—Presentation of query results by the use of playlists
- G06F16/4393—Multimedia presentations, e.g. slide shows, multimedia albums
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/487—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
- G06F16/94—Hypermedia
-
- G06F17/30014—
-
- G06F17/30029—
-
- G06F17/30056—
-
- G06F17/30106—
-
- G06F17/3053—
Definitions
- the present disclosure relates to aggregating and correlating multi-media and improved operations on the same including, but not limited to acquisition, association, linking, annotation, commentary, rendering and search of multi-media.
- a wide range of media is available for consumption on computers, including, but not limited to, video, audio, still images and text. Such media are generally stored as computer files. Some computer file formats support a mix of different media, and accordingly result in multi-media files. Accordingly, a multi-media file is a file that supports one or more forms of media. Additionally, there are other computer file formats are specific to a particular application, including, but not limited to, office productivity applications such as document editors, spreadsheets and slide presentations.
- meta-tags are not typically rendered along with a multi-media file
- meta-tags do not add, supplement, or otherwise augment the content of the multi-media file.
- Associated data need not be limited to text. Associated data may in fact be a multi-media file itself. An example is a mashup where two multi-media files, often from different contexts, are synchronized together for aesthetic effect.
- the present disclosure describes associating arbitrary data with a multi-media file and improved retrieval of multi-media files by leveraging information that may be gleaned from the associated arbitrary data.
- Retrieval may come in many forms, including, but not limited to, searching, filtering and enumerating, by persons or by machines and for consumption either by a person or by a machine.
- the present disclosure is directed to techniques, including, but not limited to, retrieval of particular multi-media files or retrieval of data associated with the multi-media files where the retrieval criteria are at least partially based on information that may be gleaned from the associated arbitrary data.
- the present disclosure is further directed to techniques on capturing statistics on operations relating to multi-media files associated with arbitrary data and on operations on arbitrary data associated with multi-media files, for auditing, optimization and other purposes.
- the techniques disclosed herein relating to retrieval of particular multi-media files at least partially based on information that may be gleaned from the associated arbitrary data include, but are not limited to: (1) text based search on associated textual data such as annotations and commentary, (2) enabling hot spots on arbitrary objects in a video file to link to supplementary information, (3) enabling links to other files thereby enabling hyper-branch linking, (4) document search on documents with multi-media files, (5) filtering multi-media files available for consumption based at least on criteria relating to information that may be gleaned from the associated arbitrary data, (6) establishing channels or tracks where the content is based on filters based at least on criteria relating to information that may be gleaned from the associated arbitrary data, (7) continuous live programming, (8) polling, real-time or otherwise and (9) aggregating poll results and rendering in real-time.
- the techniques disclosed in the present disclosure relating to retrieval of data associated with the multi-media files where the retrieval criteria are at least partially based on information that may be gleaned from the associated arbitrary data include, but are not limited to: (1) filtering data associated with the multi-media files at least partially based on information that may be gleaned from the associated arbitrary data, (2) persisting the associated arbitrary data for distribution or consumption, (3) enabling monitors to exclude data associated or to be associated with multi-media files, (4) enabling editing of the associated data during rendering, (5) synchronizing commentary rendering, and (6) enabling selecting filtering and routing of data associated with multi-media files to various web services.
- the techniques disclosed in the present disclosure relating to capturing statistics on operations relating to multi-media files associated with arbitrary data and on operations on arbitrary data associated with multi-media files, for auditing, optimization and other purposes, include, but are not limited to capturing and reporting statistics on: (1) particular files, (2) particular attributes of associated data and (3) operations on associated data. Additionally, techniques to aggregate, and report statistics are disclosed.
- Non-limiting and non-exhaustive examples are described with reference to the following figures.
- the left-most digit(s) of a reference number identifies the FIG. in which the reference number first appears.
- the use of the same reference numbers in different figures indicates similar or identical items or features.
- FIG. 1 is a data flow diagram illustrating various potential actors, data flows, software and hardware for an exemplary web service embodiment of the data association and retrieval facility.
- FIG. 2 is a block diagram illustrating an exemplary processing embodiment of the data association and retrieval facility.
- FIG. 3 is a flow chart illustrating an exemplary processing embodiment of the data association and retrieval facility.
- FIG. 4 illustrates an exemplary hardware environment for the data association and retrieval facility.
- FIG. 5 is a flow chart illustrating an exemplary embodiment of indexing multi-media files in the data association and retrieval facility.
- FIG. 6 is a flow chart illustrating an exemplary embodiment of retrieving and filtering multi-media files in the data association and retrieval facility.
- FIG. 7 is a flow chart illustrating an exemplary embodiment of retrieving data associated with multi-media files in the data association and retrieval facility.
- FIG. 8 is a block diagram illustrating some exemplary applications of the data association and retrieval facility.
- FIG. 9 illustrates an exemplary user interface of tools to associate data with a multi-media file.
- FIG. 10 illustrates an exemplary user interface for editing and viewing external synchronized commentary.
- FIG. 11 illustrates an exemplary user interface for editing and viewing internal synchronized commentary.
- FIG. 12 illustrates an exemplary user interface for hot spots embedded in a multi-media file.
- FIG. 13 illustrates an exemplary user interface for hyper-branching multi-media files.
- FIG. 14 illustrates exemplary user interfaces for integrated web service resources and commentary.
- FIG. 15 illustrates an exemplary user interface for browsing and authoring.
- FIG. 16 is a diagram of an exemplary authoring scenario.
- FIG. 17 is a diagram of an exemplary association by inference scenario.
- FIG. 18 is a diagram of an exemplary reverse link farming scenario.
- the disclosed data association and retrieval facility provides for the end users to assembling a coherent media experience from disparate sources.
- a file may be associated with arbitrary data.
- a special case is where a multi-media file is associated with other data that may be rendered alongside the multi-media file.
- commentary and annotations associated with a multi-media file are displayed as the multi-media file is rendered.
- the commentary and annotations are likely from parties other than the author or the user who posted the multi-media file. From the perspective that posting the multi-media file is intended to elicit feedback from the public at large, the commentary, annotations or other associated data are said to be crowd-sourced.
- the disclosed data association and retrieval facility provides a platform and techniques for end-users to create, upload and link one multi-media object or file to another for a specific point in time, position, geo-location or event.
- end-users may filter and recombine sets of attached objects into a custom experience, and the platform and techniques lend themselves to creating a social platform for crowd-sourcing annotations, commentary and analysis for a multi-media object or for an event.
- the disclosed data association and retrieval facility supports capture of an ordinary event: a series of observables related in context, time, and space.
- the platform and techniques support the linking of arbitrary resources, geolocation shifting and time-shifting are both supported.
- the media files of different contexts may be related together on an arbitrary basis.
- the files may be rendered together, for example in a mashup, or the files may be related by attribute, e.g., a hyper-branched portfolio of work by the same author.
- the files and associated resources linked need not be restricted to conventional relationships; indeed the basis of the link is merely that some end-user thought the file and resource sufficiently related to link. Often, for less obvious links, end-users will author new context.
- the ability to associate arbitrary data to a file by linking the data to the file allows the disclosed data association and retrieval facility to be related. Specifically, because a particular user or process was motivated to associate data with a file, the disclosed data association and retrieval facility may presume there is some relationship between the data and the file, and therefore there is utility in retrieving the file based on the associated data.
- This relational model in fact has much utility, for example by filtering, retrieving or searching multi-media files based on the content of their linked resources; or by way of another example mining data embedded in linked resources for research or directed advertising purposes. Potentially, as a user's reliance on accuracy of linked resources increases, so does the likelihood that the quality of linked resources from crowd-sourcing correspondingly improves.
- FIG. 1 illustrates an exemplary use case 100 of the data association and retrieval facility.
- Use case 100 is comprised of: (1) use cases for media capture 110 , including, but not limited to, storing the captured media to a web site 120 , (2) authoring actions on the captured media, including, but not limited to, linking or associating data to the captured media, and editing the captured media and the associated data; (3) distributing and publishing the captured media and associated data; (4) moderating the sites where the captured media and associated data were distributed or published; and (5) consumption of the captured media and associated data by an end user or process.
- Media capture 110 is the process of recording an event and persisting the event to a file.
- An event is a well-defined set of observables, or actions by particular a particular actor or set of actors.
- an event may be defined by the observables occurring at the same time and place, such as a football game at the local high school performed by the football game participants and audience.
- an event may also subsume other observables that are by actors not necessarily in the football game, for example a shooting star passing overhead the football game by coincidence.
- the observables in an event need not be in the same time or place. For example, an author may create a multi-media file interleaving three New Years countdown parties by family members in New York City, London, and Hong Kong.
- a multi-media file interleaving the three parties are conceptually related simply being New Years Parties by members of the same family, regardless of the time or location of the observables. Accordingly, because a multi-media file may include content from different parties, times and locations, a multi-media file may indeed interleave content from different contexts solely for aesthetic effect, such as with a mashup.
- the observable may be a virtual observable, for example a computer generated animation of a virtual character.
- Media capture 110 is performed by a media capture user 112 .
- a media capture user is an end user with a digital video camera, digital still camera, or audio recorder.
- the captured media 114 is video, still and audio respectively.
- a media capture user need not be a human being, and could be a process such as a computer operated camera.
- the captured media 114 may be computer generated animation
- the media capture user 112 may be a computer graphics artist.
- the media capture user 112 upon capturing media 114 may upload the captured media 114 to web site 120 .
- the media capture user 112 may upload pre-storage metadata 116 associated with the captured media 114 .
- Pre-storage metadata 116 is any metadata or data associated with the captured media 114 prior to storage in web site 120 .
- Pre-storage metadata 116 may come in the form of attributes, which are not necessarily rendered along with a file. Attributes include, but are not limited to, an identifier of the person or process capturing the media such as a name, or identifying number. Attributes may also include, but is not limited to, the date-time stamp, the location of where the media was captured, the filename, or some other metadata tag associated with the captured media 114 .
- Pre-storage metadata 116 may also come in the form of linked or associated data that is to be rendered along with the file, including, but not limited to annotation or commentary added prior to storage.
- Web site 120 comprises a network site where captured media 114 , usually in the form of a persisted multi-media file may be uploaded such that other users may access the file for operations including, but not limited to, authoring, data association, distribution and publishing, filtering, and consumption.
- web site 120 comprises: (1) a storage 122 for storing the captured media 114 or references to the captured media 114 , (2) a resource linking facility 124 to link or associate arbitrary data with the stored captured media 114 , (3) an annotation/commentary facility 126 , which is a special case of resource linking facility 124 optimized for associating annotations and commentary, and (4) a search/filter facility by which captured media 114 stored in storage 122 may be retrieved on criteria on the captured media 114 or on resources linked to captured media 114 .
- the web site may in the form of a traditional web site where a multi-media file is simply stored in a database front ended by dynamic hyper text markup language (D/HTML).
- the web site may be a web service.
- the captured media 114 need not be uploaded to a web site 120 , and that web site 120 might be replaced by a server application front-ending a data store, where both are located on a server on a local area network (LAN).
- LAN local area network
- Storage 122 stores either the captured media 114 or references to the captured media 114 .
- the former has the advantage of having all data centralized, and the latter has the advantage or requiring less storage.
- Storage 122 may also store pre-storage metadata 116 , associated data, and references to associated data, and link information.
- storage 122 may store a reference to multi-media file myfile.mp4, but not to the file itself, but may also store pre-storage metadata 116 attributes such as the date-time stamp of when the file was captured, along with commentary data associated with the file after storage.
- storage 122 might store links to related web sites, but opt not to redundantly store any of the web site content. Since retrieval operations are likely to have criteria based on pre-storage metadata along with linked and associated data, performance may also be enhanced by having storage 122 only store data likely to be scanned and references to other data such as the file itself and the linked or associated data.
- Storage 122 may be implemented in a variety of ways, for example as a relational database management system (RDBMS). Alternatively, storage 122 may be implemented either as an object oriented database management system (OODBMS) or object-relational database management system (ORDBMS). In some scenarios, such as in cloud computing, storage 122 may be implemented as a key-value database, such as Cassandra. Furthermore, storage 122 may be implemented as multiple heterogeneous and distributed databases.
- RDBMS relational database management system
- ODDBMS object oriented database management system
- ODBMS object-relational database management system
- storage 122 may be implemented as a key-value database, such as Cassandra.
- storage 122 may be implemented as multiple heterogeneous and distributed databases.
- Resource linking facility 124 enables a resource to be linked or associated to a file.
- a resource may be an attribute or content. Attributes are generally not rendered with a file whereas content may be rendered along with a file, that is may be displayed when the file is being rendered.
- An example of an attribute resource is a metadata tag, such as a date-time stamp or a geo-tag.
- An example of a content resource is an annotation.
- another file may also be a content resource, such as a text or audio. If the content is a web page, a web page may be associated with a file by storing its uniform resource locator (URL) as a reference. Such an association is a link.
- URL uniform resource locator
- a multi-media file may be a content resource
- Content resources may be office productivity documents, or even executables such as Adobe FlashTM or Microsoft SilverlightTM scripts.
- resource linking facility 124 might operate as a set of structured query language (SQL) stored procedures or queries which store a record associating a resource reference, or some portion of the resource itself with a file in a relational table in an RDBMS.
- SQL structured query language
- the relation may simply be stored as a value pair.
- Annotation/commentary facility 126 is a special case of resource linking.
- Annotation is data associated with a particular time and location in a file. Accordingly, when the file is rendered, the annotation content appears after a predetermined amount of time has passed while playing the file and appears associated with a particular location on the screen. For example, after 5 seconds have passed in a video file, at pixel location 100 , 110 , a person appears, and annotation text of the person's name might appear at 110 , 120 with an arrow to 100 , 110 .
- Commentary is data associated with a file, but not specifically with a time or location in a file. For example, commentary may be in a scrolling edit box underneath a file being rendered, and appears at all times.
- a version of commentary call synchronized commentary may have commentary appear at predefined times. For example, after 10 seconds of playing a video file, “Comment X” may appear in the scrolling edit box. After 15 second, perhaps “Comment Y” may appear afterwards in the scrolling edit box.
- annotation/commentary facility 126 may operate similarly to resource linking facility 124 where links to the data comprising the annotation or commentary are stored separately, and references to the data are stored in storage 122 . However, to facilitate full text search of the annotation or commentary, annotation/commentary facility 126 may opt to store the data directly in storage 122 . Note that annotation/commentary content is not necessarily just text. Media objects or files may be embedded along with URLs to web sites or other resources addressable by a URL such as a file. As with the resource linking facility 124 , the annotation/commentary facility 126 may be implemented as SQL stored procedures or queries where storage 122 is a RDBMS.
- Search/filter facility 128 enables retrieval of files, associated or linked data, or references to either files or data. Retrieval subsumes filtering both filtering as well as searching according to criteria. Retrieval may be either by human users or processes. Accordingly, search/filter facility 128 might expose an application programming interface allowing a process to invoke search/filter facility 128 . Results may be returned either as an enumeration of files or references to files, or alternatively an enumeration of content of data associated or linked to files. In the latter case, the results might be rendered not merely as a list, but further filtered and organized into a composite view, as in a web site.
- Authoring use case 130 is where an authoring user 132 modifies the files and associated data for any purpose. Specifically, the authoring use case describes an authoring user 132 to edit files 134 , edit attributes or content 136 , or to combine files and content together into an amalgam 138 .
- Authoring user 132 may be either a person or a process and need not be the same as any of the other users depicted in FIG. 1 .
- File edits 134 may be submitted to web site 120 .
- authoring user may have video, still image, or audio editing software and may modify the referred to or stored in storage 122 .
- Editors will widely vary depending on the file.
- Resource edits 136 may also be submitted to web site 120 .
- Resource edits may come in the form of either associating or linking new data with a file or editing data already associated or linked to a file.
- Resource edits may come in the form of an editor, such as a text editor.
- resource edits may come in the form of a web site, for example a web site that enable annotation or commentary edits.
- property editors may be used.
- Files combinations 138 may also be submitted to web site 120 . While file edits 134 edit the single underlying file, and while resource edits 136 merely edit the associated data, a file combination enables multiple files and resources to be combined or amalgamated into a single file. In this way, two files may be amalgamated into a single file, as in a mashup. Alternatively, a single distribution file combining the underlying file and its associated attributes and content might be made. In some scenarios, it may be desirable to distribute the associated and linked data separately from the underlying file, and in that case only the associated and linked data are amalgamated into a single file.
- Distribution/publishing use case 140 allows a distributing/publishing user 142 to post files and their associated or linked data for consumption. Distributing is the actual distribution of files and data to users. Publishing is the enabling of a user to consume files and data without actually having possession of the underlying file or data. For example, if an MP3 audio file is physically transferred between two cell phones, the sending cell phone is distributing the MP3 to the receiving cell phone. However, if a web page allows a user to play an MP3 file, but does not allow download, the MP3 file is published.
- Distributing/publishing user 142 may be either a person or a process and need not be the same as any of the other users depicted in FIG. 1 .
- a channel is a filter comprised of several criteria.
- the channel criteria may be a filter embodied in a SQL query, and stored either as a query or as a stored procedure.
- a channel engine may simply store the criteria as text, and dynamically general SQL as needed.
- the query is periodically executed, and files and associated or linked data satisfying the criteria are queued into a buffer for consumption. As the queue empties, the channel query is re-executed. In the case where no more files or associated data are retrieved, previously retrieved content may be re-queued, or a message stating that the channel is exhausted may be presented to the user.
- a distributing/publishing user 142 may specify the criteria by which when that user 142 posts a file or associates or links data, that post or association/link is simultaneously posted to a particular social network. In this way, a user is saved the effort of reposting the same post to different social networks.
- Channels 144 and social network posts 146 are merely two exemplary techniques to distribute or publish comment. The above discussion of channels 144 and social network posts 146 is not intended to limit the techniques of distributing or publishing herein.
- the moderation use case 150 is the use case of a moderating user 152 , such as an administrator, filtering files and associated or linked data stored or referenced in web site 120 .
- Common filters include, but are not limited to, profanity filters, pornography filters, and bans on particular users.
- Moderating user 152 may be either a person or a process and need not be the same as any of the other users depicted in FIG. 1 .
- Moderating user 152 may implement exclusion filters 154 by specifying criteria on which files or associated or linked data is not to be provided by web site 120 .
- an exclusion filter 154 may be implemented as a SQL view from which all external queries are executed against. In this way, only the data exposed by the SQL view is ever served out of web site 120 . For example, if user “X” is banned from web site 120 via exclusion filter 154 where a SQL view “Master” only retrieves files and associated or linked data where user “X” was not the contributor. Subsequent filters such as channels are then executed against SQL view “Master”, and accordingly will never execute queries against contributions of user “X”.
- moderating user 152 may simply permanently delete all contributions by user “X”. However, this will not filter out future contributions by user “X”.
- Consumption use case 160 allows consuming user 162 to retrieve files and associated or linked data from web site 120 for rendering or other uses.
- consuming user 162 sends a request for a file 164 , such as a multi-media file, or a request for a resource 166 , and receives the corresponding media and resources 168 for consumption.
- Consuming user 162 may be either a person or a process and need not be the same as any of the other users depicted in FIG. 1 .
- Requests 164 and 166 come in the form of retrieval criteria.
- the retrieval criteria may be conditions on the file itself, on attributes on the file, or on the content of the associated or linked data to the file.
- the requests 164 and 166 are submitted to the search/filter facility 128 .
- the retrieval criteria may be in the form of a SQL query, or of text that may be dynamically converted into a SQL query.
- the query is then executed and the records corresponding to the media and resources satisfying the criteria are returned to the consuming user 162 .
- the returned data 168 may be in the form of an enumeration. However, the data may be further modified
- FIG. 1 illustrates the disclosed data association and retrieval facility as a number of asynchronous operations performed in no particular order. From the perspective of performing operations any multiple files and resources, this is certainly the case. However, from the perspective of a single file, operations are more serialized. Accordingly, FIGS. 2 and 3 illustrate an exemplary the lifecycle of a single multi-media file, and its associated or linked resources. Specifically, FIG. 2 is a block diagram and FIG. 3 is the corresponding flowchart.
- FIGS. 2 and 3 illustrate an exemplary flow 200 and 300 of a file as it progresses through the disclosed data association and retrieval facility. Specifically, it progresses through: (1) media capture 210 and 310 , (2) pre-storage processing 220 and 320 and (3) storage 230 and 330 . After storage, a user may choose from multiple operations 340 , including but not limited to: (1) filtering 240 and 350 , (2) post-storage processing 250 and 360 , (3) distribution/publishing 260 and 370 and (4) consumption 270 and 380 . These operations may be done in any order and in any number per a user's choice 390 .
- an event is a set of observables that may be related.
- a media capture event may be performed by any recording device, or in the case of a virtual event, by a computer graphics editor.
- the resulting captured data is 214 is persisted to a file.
- the captured data 214 may include all or only a portion of the event 212 .
- the captured data 214 may include some non-event data as well. For example, when video-taping an airplane show, one may also capture an extraneous bird flying by which would not be formally part of the show.
- the file may undergo processing 220 and 320 prior to upload to a web site 120 .
- metadata attributes such as a date-time stamp may be captured 222 .
- the file may be edited 224 .
- a still photo may be cropped, or its colors edited via a photo editor such as Adobe PhotoshopTM
- File editing 224 also includes editing attributes such as metadata tags and the file name.
- other editing such combinations with other files or with associated or linked resources. For example, individuals captured in one photo may be separated from the original photo and superimposed onto another, such as making a local individual appear to be located in a faraway city.
- the original captured file might be downloaded along with annotations and commentary from a web site.
- the additional of annotations and commentary, or any other resources that might be rendered along with the original file might comprise other editing 226 .
- media capture 210 and 310 and pre-storage processing 220 and 320 together provide the basis of implementing the media capture use case 110 in FIG. 1 .
- pre-storage processing 220 and 320 ends upon being stored 230 and 330 .
- the file need not be stored in storage 122 .
- a file may reside in a separate web site, or on a user's public directory.
- storage 230 and 330 does not preclude actual storage of the file in storage 122 , it may more commonly mean any combination of: (1) storage of a reference to the file, (2) storage of file attributes and pre-storage associated and linked data, or (3) storage of references to attributes and pre-storage associated and linked data.
- storage 220 and 320 provides a baseline from which further operation may be performed on the file and associated or linked data.
- a choice of operations on a file can be performed in 340 .
- Operations include, but are not limited to: (1) filtering 240 and 350 , (2) post-storage processing 250 and 360 , (3) distribution/publishing 260 and 370 , and (4) consumption.
- step 390 provides an option to perform another operation. If no other operation is chosen, then further processing may continue.
- Filtering operations 240 and 350 are operations to retrieve files and their associated or linked resources based on specified criteria.
- a filter 242 any set of criteria to limit returned files or associated or linked data according to those criteria.
- a search 244 is a special filter where a user progressively searches for a specific instance or relatively small set of instances of a file and associated or linked data. Item 246 illustrates the option where no filtering operation is performed.
- filters 242 may be made into transferrable objects.
- a text file may store values that may be dynamically generated into SQL queries or stored procedures.
- criteria may be added to the WHERE clause of a SQL view.
- the criteria may be transformed into a SQL query or a SQL stored procedure.
- SQL views, queries, and stored procedures are generally exportable by an RDBMS and may be recreated either from binary form or via a SQL script stored in text. These operations are generally performed in the search/filter facility 128 .
- search operations 244 may be in the form of entering keywords into a buffer, where search/filter facility 128 convert the keywords into a SQL query. Specifically, the search/filter facility 128 adds additional WHERE clauses to a root SQL query based on the keyword.
- the search/filter facility retrieves records corresponding to the SQL statements either entered or generated by the search/filter facility 128 .
- search/filter facility 128 requires additional functionality beyond a traditional RDBMS. Specifically, the search/filter facility searches through attributes and associated or linked content. Since attributes and resources are not necessarily stored in the storage 122 , search/filter facility 128 may require three steps of operations. The first operation is a SQL operation to retrieve all data matching criteria on fields actually in the database. The second operation is to expand out references in associated or linked data. For example, where storage 122 only contains a reference to associated data, the data is retrieved, converted to a common text format, such as ASCII, and placed into a buffer associated with the file.
- a common text format such as ASCII
- a resource such as a web site or file is linked via an embedded URL
- the resource is traced, expanded, and converted to a common text format.
- some or all of the expansion may be indexed in an index server.
- the third operation is then to perform full text search on the data expanded in the buffer.
- search/filter facility 128 may limit recursion based on the amount of buffer memory available.
- the expanded resources are generally expanded dynamically on request, but in some performance scenarios, may be pre-expanded, parsed, and flags or fields populated in the storage 122 .
- the filters 242 and search 244 techniques in filtering operation 240 and 350 provide the low level operations necessary to support exclusion filters 154 in the moderation use case 150 in FIG. 1 , and the channels 144 and social network posts 146 in the distribution/publishing use case in FIG. 1 .
- a file may be further edited during post-storage processing 250 and 360 or may be distributed/published 260 and 370 .
- Post-storage processing 250 and 360 allow for the editing of files and associated or linked data.
- the files themselves may be edited 252 in operations as discussed with respect to item 134 in FIG. 1 .
- the associated or linked data may be edited 254 as discussed with respect to item 136 in FIG. 1 .
- resource editing 254 includes the association or disassociation of content with a file, the content being rendered along with the file.
- Commentary and annotation editing 256 are an example of editing content to be associated with a file.
- the text may be associated with a particular time and location in the file. This operation stores the at least the text, time offset, location in a data store, not necessarily the same as storage 122 .
- Other annotation attributes stored may include, but are not limited to the identity of the author and date-time stamp of entry.
- a notification potentially implemented as a SQL trigger, to store a reference to the annotation data in storage 122 .
- a copy of the annotation data may be stored in storage 122 as well. Similar operations may be performed with commentary except that the time offset and location data are not stored, and with synchronized commentary, except that the location data is not stored.
- the underlying file and the associated or linked resources may be combined 258 as discussed with respect to item 138 in FIG. 1 . Because it may be desirable to preserve the underlying files, where two files are combined, or where resources are combined, or where files and resources are combined, the disclosed data association and retrieval facility may create separate copies and store corresponding references in storage 122 . In this way, the original underlying files may be used again. For example, if a file F1 is combined with another file F2 into mashup M, M may be stored as a separate file from F1 and F2, thus allowing other users to create additional mashups from files F1 and F2, and for users to associate or link additional data to files F1 and F2. As for mashup M, users may further edit the file, and separately associate or link additional data.
- post-storage processing operation 250 and 360 provide the low level operations necessary to support authoring use case 130 in FIG. 1 .
- Distribution/publishing operation 260 and 370 allow for files and their associated or linked data to be made available either by allowing the underlying file and associated or linked data to be copied (distribution) or to be rendered without copy (publishing).
- channels 262 and social network posts 264 are offered as examples. Channels 262 correspond to operations as discussed with respect to item 144 in FIG. 1 , and social network posts 264 correspond to operations as discussed with respect to item 146 in FIG. 1 .
- Both channels 262 and social networks posts 264 are built upon filters 242 .
- criteria are specified as to files and associated or linked data to be distributed/published.
- filters 242 only provide an enumeration of files and associated or linked data that match the criteria in the filter 242 .
- Facilities implementing channels 262 and social networks posts 264 include logic in the form of scripts, executables and notifications to perform the distribution/publishing of the files and associated or linked data enumerated by filter 242 .
- a channel 262 might be implemented as a web page.
- a user will access the web page, and open a channel.
- the web page will run a server side script that accesses a queue. If the queue contains files and associated or linked data, it will render the first available item on the web site. If the queue is empty, it will invoke the appropriate filter, and will populate the queue accordingly. If there are no matching records, a notification is sent by the search/filter facility 128 to the server script, which in turn may display an error message or perform other error handling.
- a social network post might also be implemented as a web page.
- a user will access the web page.
- the web page will contain a search facility and a commentary editor.
- the user will execute a search 244 and will retrieve a number of matching files.
- the user will select a file to render and will proceed to enter commentary into the editor.
- a record containing a reference to the commentary, or perhaps the commentary itself is posted to the storage 122 .
- a SQL trigger is executed.
- the SQL trigger will then extract the posted commentary or commentary reference, expand as necessary, and then will post the commentary to the corresponding social network.
- MS-SQLTM stored procedures are capable of calling common object model (COM) methods, which in turn might invoke API calls in the social network.
- COM common object model
- One example is that upon receiving a notification from a trigger, the MS-SQLTM stored procedure uses SQL to extract out the recently posted comment, and calls a pre-coded COM object that stores text to a TwitterTM account.
- Other analogues exist with the OracleTM RDBMS using JavaTM language invocations.
- an embodiment may comprise and executable or client side script that directly invokes an API accessible in the social network site, web service provider, or similar analogue.
- Channels 262 and social network posts 264 are only two examples of distribution and publication. There are a number of other operations 266 supported. Yet another operation is a standard search facility. Specifically, a user enters keywords, the keywords are converted to SQL via search 244 , and a number of files and associated or linked data that match criteria generated from the keywords is retrieved, and displayed via a server script in a web page.
- SQL operations, notifications, scripts, and executables of the distribution/publishing operation 260 and 370 may provide the infrastructure to support the distribution/publishing use cases described in FIG. 1 .
- Consumption operation 270 and 380 is where the end user or consuming process receive the copy of the final file and associated or linked data, or a rendering thereof.
- the consumption operation is typically within the context of an application, web or otherwise. Various consumption operations will be discussed with respect to FIGS. 8, 9, 10, 11 and 12 below.
- consumption operation 270 and 380 provides the infrastructure to support the consumption use case, as described with respect to item 160 in FIG. 1 .
- FIG. 4 illustrates an exemplary hardware environment 400 for the disclosed data association and retrieval facility.
- the disclosed data association and retrieval facility is capable of being hosted on a wide range of client devices 410 .
- the client device may be any web-aware client, including but not limited to a web aware cell phone or personal device assistant (PDA) 412 , personal computer (PC) 414 , netbook 416 , or web aware set top box (STB) 418 .
- PDA personal device assistant
- PC personal computer
- STB web aware set top box
- the client devices are not limited to those illustrated in 410 , and for example may include, but are not limited to, network aware televisions, native smart phone applications, and the like.
- PC 414 may include any device of the standard PC architecture, or may include alternative personal computers such as the MaclntoshTM from Apple ComputerTM, or workstations including but not limited to UNIX workstations.
- the client portion of the disclosed data association and retrieval facility on a client device 410 may then access the server portion of the disclosed data association and retrieval facility hosted on an enterprise server 420 or a server hosted on the general internet 430 .
- the client device 410 may connect via any number of LAN connectivity configurations 430 .
- this may include EthernetTM or Wi-FiTM.
- this may include connectivity via the Transmission Control Protocol/Internet Protocol (TCP/IP) or other protocol.
- TCP/IP Transmission Control Protocol/Internet Protocol
- HTTP Hypertext Transfer Protocol
- client device 410 In the case where the client device 410 is accessing the general internet 440 , typically a browser is used for access. Accordingly, if a browser such as Microsoft Internet ExplorerTM that supports plug-ins, is used on client device 410 , then a portion of the disclosed data association and retrieval facility might be implemented in the form a plug in. For example, annotation and commentary tools or search result caching may be implemented via plug in.
- a browser such as Microsoft Internet ExplorerTM that supports plug-ins
- Enterprise server 420 may be based on a standard PC architecture, or alternatively on a mainframe.
- a web server 442 may be a standard enterprise server based on a standard PC architecture that hosts an application server.
- Exemplary application server software includes Internet Information ServerTM (IIS) from Microsoft CorporationTM or Apache Web Server, an open source application server.
- Web server 442 may access a database server also potentially on a standard PC architecture hosting a database.
- Exemplary databases include, Microsoft SQL ServerTM and OracleTM. In this way a color layout image search engine may run on 2-tier or 3-tier platforms.
- the server portion of the disclosed data association and retrieval facility may be hosted on a cloud computing service 444 .
- Cloud computing service 444 contains a large number of servers and other computing assets potentially in geographically disparate locations. These computing assets may be disaggregated into their constituent CPUs, memory, long term storage, and other component computing assets. Accordingly, the server portion of the disclosed data association and retrieval facility, when hosted on cloud computing service 444 , would have both centralized and distributed data storage on the cloud, accessible via a data access API such as Open Database Connectivity (ODBC) or ADO.NetTM from Microsoft CorporationTM.
- ODBC Open Database Connectivity
- ADO.NetTM ADO.NetTM from Microsoft CorporationTM.
- the application portions of the disclosed data association and retrieval facility color layout image search engine could also be hosted on computing assets in the cloud computing service 444 corresponding to an application server.
- FIGS. 5, 6 and 7 are flow charts exemplary facility operations by the disclosed data association and retrieval facility. Specifically, FIG. 5 illustrates an exemplary indexing method 500 ; FIG. 6 illustrates an exemplary multi-media file retrieval and filtering method 600 , and FIG. 7 illustrates an exemplary associated or linked resource retrieval and filtering method 700 .
- the exemplary indexing operation is performed by associating or linking resources to a file.
- resource may be an attribute which is not necessarily rendered along with the associated file, or content which is rendered along with the associated file.
- the associated or linked resource contains data which when retrieval criteria are specified that match that data, the associated file is retrieved. The portion of the associated or linked data that is compared to retrieval criteria is called retrieval indicia.
- the disclosed data association and retrieval facility has a reference to a file to be indexed.
- a user specifies a resource to associate with the file.
- the resource may be an attribute such as a metadata tag.
- the resource may be content such as annotations or commentary. Alternatively, the resource may be a link to another file.
- the received resource may alternatively be an edit to an existing attribute or content resource as well.
- the received resource is associated with the file.
- storage 122 is an RDBMS
- this may be performed by storing a reference to the resource in storage 122 and adding an entry to a table that cross references a reference to the file to the reference to the resource.
- no new table entries are necessary, and the resource itself is edited in place. Since in this embodiment, storage 122 , does not store the resource itself, not changes to the storage 122 are necessary. However, if the resource is stored, then an UPDATE SQL statement may update the resource entry in storage 122 .
- retrieval indicia are extracted from the new or edited resource. If the associated or linked resource may be simply stored as a reference, the associated or linked resource in full is treated as retrieval indicia may be expanded and subjected to text search. Alternatively, the associated or linked resource may be scanned or parsed, specific fields and flags extracted and stored in storage 122 , whereupon these fields are retrieval indicia. In the case of editing, the edited resource must be reparsed to extract the specific extracted fields and flags.
- the retrieval indicia are associated with the data file.
- the text search for particular values in the resource constitutes the association.
- these fields in flags may be added either by a SQL UPDATE or SQL INSERT statement submitted to storage 122 .
- An example of storing and associating an attribute resource would be a file where a metadata tag containing the phrase “memristor” is to be associated with a video file.
- a table in storage 122 might contain a table of metadata tags and a cross reference table between the metatag and a list of file references. Accordingly, the disclosed data association and retrieval facility would submit SQL INSERT statements to add the metadata tag to the metadata tag table or determine if a record already existed, extract out an identifier for the record, and then enter a cross reference record for the file reference and the metatag identifier.
- An example of storing and associating a content resource would be to scan commentary entered against a video file.
- the database would store a lookup table with a list of metadata tags of interest.
- the existing metadata tag table could be used for this purpose. If in scanning the text in the commentary, the word “memristor” was parsed and detected, the disclosed data association and retrieval facility would enter a record into the cross reference table to associate the metatag with the file reference.
- An example of associating a content resource dynamically would be to have a table of metadata tags to text scan against commentary. When a search or filtering operation was triggered, the system would expand out the commentary dynamically, perform the text scan, and if any of the stored metadata tags, for example “memristor” was detected, it would mark the file and its associated or linked data for retrieval.
- FIG. 6 describes an exemplary retrieval operation 600 where a file filtering specification comprising file filtering terms is applied to attributes of the file itself
- the disclosed data association and retrieval facility receives a file retrieval request comprising one or more retrieval terms.
- a term is a string of characters comprising keywords or key expressions.
- a keyword might be the word “chemistry” and a key expression might be the expression “quantum mechanics” comprising the terms “quantum” and “mechanics.”
- Boolean operators such as AND, OR and NOT may be qualified the received retrieval term.
- the request is parsed for operators, terms and expressions, and each qualified term or qualified expression stored in a buffer. The stored qualified terms and qualified expressions constitute the search intent of the user.
- the disclosed data association and retrieval facility also receives a filter specification comprising file filtering terms.
- the filter specification may be parsed into separate qualified terms and qualified expressions and subsequently buffered as described above.
- the qualified terms and qualified expressions of the filter specification constitute global terms that apply to all searches. For example, an exclusion filter set by a moderator may add these terms to a master SQL view which all public queries are executed. Another example is a SQL view where only some data access that has been paid for by the user is visible to that user.
- the file retrieval is executed.
- the filter criteria are applied to the storage 122 via a SQL UPDATE VIEW statement.
- a SQL query is dynamically generated by adding WHERE clauses to a retrieval query to be applied against the SQL view.
- the result is a series of file references matching the criteria.
- An example query might search for all files authored by “John Smith” between Jan. 1, 1990 and Jan. 1, 1991. Accordingly queries against the file attributes stored in storage 122 would include a where clause similar to as follows:
- the action in 640 is not necessary if SQL views are implemented as described above.
- the resulting series of file references may be scanned in a SQL stored procedure cursor to eliminate records to be filtered.
- a SQL stored procedure cursor iterates over the resulting series of file references, compares filter criteria to the current record in the cursor, and if a match is found, marks the record as not to be presented to the user.
- the remaining files are presented to the user.
- This may be in the form of an ODBC, ADOTM, or ADO.NETTM recordset.
- the recordset may also include references to associated or linked data.
- the final resulting series of file references may be presented according to any number of well-known data access technologies, whereupon a server script may dynamically generate HTML for viewing on a browser, or to some well-known third party format such as synchronized multi-media integration language (SMIL) or eXtensible markup language (XML).
- SMIL synchronized multi-media integration language
- XML eXtensible markup language
- a non-browsing executable may consume the resulting recordset.
- FIG. 7 describes an exemplary retrieval operation 700 where a resource request comprising retrieval terms is applied to the data associated or linked to a file, rather than to the file itself.
- the disclosed data association and retrieval facility receives a resource retrieval request comprising one or more resource retrieval terms.
- Resource retrieval terms are similar to the file retrieval terms except that they are to be applied to resources, rather than to the files themselves. Accordingly, 710 results in a series of buffered qualified terms and qualified expressions in the same fashion as discussed with respect to the action in 610 of FIG. 6 .
- the retrieval operation 700 may be performed in conjunction with a retrieval operation setting criteria against file attributes. Accordingly, in 720 , a retrieval request comprising file retrieval terms may be received. Again, in 710 a series of qualified terms and qualified expressions is parsed and buffered in the same fashion as discussed with respect to item 610 of FIG. 6 .
- an operation is performed to retrieve all files referenced in storage 122 where the qualified file retrieval terms match. This operation is similar to step 630 as described with respect to FIG. 6 .
- an operation is performed to retrieve the associated or linked resources associated with the files retrieved in 730 whose attributes or context match the resource filter terms. This operation is may be done against stored fields and flags or against the associated or linked content itself as described above with respect to FIG. 5 .
- Step 740 need only be separated from 730 , if the associated or linked resources must be parsed independent of a SQL SELECT operation.
- the result is a series of files and their associated or linked resources.
- this resulting series may be presented to the user or calling application in the form of a recordset as described in 650 with respect to FIG. 6 .
- FIG. 8 characterizes these use cases and flows in terms of the following facilities: (1) storage 810 , (2) file filters 830 , (3) resource filters 840 , (4) statistics requests 850 , (5) an amalgamation facility and (6) a user interface 870 .
- Storage 810 corresponds to storage 122 . It may comprise a single monolithic data store or several distributed data stores.
- the data stores may be a database or potentially a file directory. It may store files 812 , or references to the files 812 . Similarly, it may store resources 814 or references to the resources 814 .
- the resources are stored directly whole, or may be parsed into indicia 816 . While resources need not be stored directly in storage 810 , indicia 816 are generally stored in storage 810 .
- request statistics 818 may be stored in the storage 810 . An example would be running counts on the most popular search terms. Such statistics would be useful in auditing the usage of the facility, or potentially in advertising.
- Storage 810 may serve any combination of: (1) files, (2) resources, (3) their respective references, or (4) statistics reports.
- the search/filter facility 128 queries storage 810 .
- Retrieval request 820 may embody criteria from any one of a file filter 830 , a resource filter 840 , or a statistics request 850 ,
- File filters 830 may provide the implementation basis for a number of applications. Specifically, file filters 830 provide a feed of files meeting criteria as specified by the file filter which may operate either on the file or on associated or linked resources. Operations may be then performed on the files in support of the application. The following are some exemplary applications.
- Multi-media channel 832 provides a stream of multi-media files according to a set of criteria. For example, a user may desire a stream of multi-media files of Star Trek Original SeriesTM episodes.
- Multi-media channel 832 may be implemented by receiving a file filter comprising of at least one file filtering term.
- the file filter may be persisted in the form of a text file which contains the filtering terms.
- a SQL statement to CREATE a stored procedure may be dynamically generated from the filtering terms.
- the text file could contain the necessary SQL CREATE stored procedure statement. Once the stored procedure was created, it could be used multiple times.
- the stored procedure would contain a SQL SELECT statement with a WHERE clause containing filtering criteria per the filtering terms.
- the distribution/publish facility 260 would queue and publish the retrieved episodes to via user interface 870 .
- the user would send a channel subscription request comprising a channel subscription request identifier, a notification point specifying a user network address, such as a TCP/IP address, to subscribe to the channel, and a file filter.
- Storage 810 would store the channel subscription request information and associate the file filter with the user's notification point.
- the user would send a channel refresh request comprising the channel subscription request identifier and a date-time stamp of the last refresh performed. From the channel subscription request identifier, the multi-media channel 832 would be able to identify the user's notification point.
- the file filter would then retrieve all files matching the file filter criteria in the file filter associated with the channel subscription request, limited only to files posted after the date-time stamp of the last refresh performed. Accordingly, the retrieved files would be all files not yet served that match the criteria of the channel subscription request.
- Continuous live programming 834 is a variation on multi-media channel 832 .
- a channel which continually plays media is subscribed to by multiple users.
- the users vote on the next media file to be played.
- the votes are tallied, the next file retrieved and rendered, and then the process repeats again.
- votes may be implemented either as attribute, i.e., a metadata tag, or via commentary, i.e., a comment stating “I want episode 23 next.”
- the attribute or the content should contain an identifier of the next multi-media file to be played.
- the identifier is “episode 23.”
- the identifier could be a word vector that could identify the episode e.g., “the one where Bob crashes his car.”
- the file filter is able to query storage 810 for all multi-media files satisfying criteria for the channel as well as sorting on the vote counts based on attributes or resources associated in the time frame of the file last rendered.
- the votes are for opinions on the present content rather than for opinions on content to follow.
- the users may vote on the best singer. They may enter commentary such as, “I like the first one” or “I like Bob best.” The commentary may be parsed and processing to create a numerical ranking of the singer.
- the polling application 836 could run queries tallying the votes converted to numerical rankings, and subsequently display the winning singer to the users.
- the polling application 836 would have multiple algorithms on how to parse the content of resources, such as commentary to the video, and to assign numerical rankings and to perform statistical aggregation.
- One example would be to simply assign a 1 to the specified choice and 0 to the rest.
- Resource filters 840 may provide the implementation basis for a number of applications. Specifically, resource filters 840 provide a feed of resources associated or linked to files that meet criteria as specified by the resource filter which may operate either on the file or on associated or linked resources. Operations may be then performed on the resources in support of the application. The following are some exemplary applications.
- Commentary channel 842 is similar to multi-media channel 832 except that the feed is of commentary. For example, a number of users watching a video of the U.S. Open may want to filter commentary coming from user “Bob the Tennis Expert.” As Bob entered commentary, users subscribing to the commentary channel would see Bob, and only Bob's commentary appear. The effect would be that of a live commentator except where the commentary appeared in a text commentary box in the web, or a live audio stream in an audio renderer. Commentary channel 842 may be implemented via storing a channel request for a user comprising a user notification point and a resource filter.
- the resource filter would have a resource term that specified “Bob the Tennis Expert.” Accordingly, as the video played, whenever Bob entered a comment, the comment would be stored in storage 810 in a table, which in turn would trigger a stored procedure. The triggered stored procedure could query all commentary channel subscribers and their notification points and could then post Bob's recent comment to all of the retrieved notification points. Alternatively, the comment could be pushed via a persistent TCP/IP connection, such as over HTTP polling, thereby obviating the need for SQL.
- Monitor 844 is an exclusion filter on commentary.
- An exclusion filter could prevent comments posted by a particularly misbehaving user from being retrieved by the users at large. For example, if “Bad Bob” had a reputation for being particular profane, a monitoring administrator might set a resource filter where all comments posted by “Bad Bob” would not be retrieved.
- One implementation would be to receive a resource filter specifying a WHERE clause of resource.author not equal to “Bad Bob.” In an exemplary implementation, the clause would be added to a master SQL view which all file and resource requests were executed against. As a result, users would not see content where “Bad Bob” was the author, in effect excluding his commentary globally across all applications.
- Social network posting 846 operates as described with respect to item 146 and item 264 in FIGS. 1 and 2 respectively.
- a social network posting rule comprises a user identifier, a resource filter, and a social network identifier.
- the resource filter is set to identify what commentary should be posted to a particular social network.
- the comment is stored in storage 810 .
- the added comment triggers a stored procedure.
- the stored procedure queries the newly added comment plus the added resource filter. If the comment satisfies the resource filter, the social network corresponding to the social network identifier in the social network posting rule receives a post.
- the rules are processed sequentially in the trigger.
- an executable or client side script directly invoking an API exposed by the social network or web provider may be used, thus obviating the need for SQL.
- Statistics request 850 may provide the implementation basis for a number of applications. Specifically, statistics requests 850 provide auditing data on operations on storage 810 . The data may be used for auditing, research or advertising purposes. The following are some exemplary applications.
- Per file statistics 852 may be collected via triggers.
- a table in storage 810 may contain one or more file touch counts as part of statistics 818 .
- a trigger may run a stored procedure to increment a particular file touch count, or might store a touch record along with a date-time stamp. Alternatively, by implementing different types of retrievals in different stored procedures respectively, the stored procedures may increment different file touch counts.
- a query may be performed on the file touch counts to perform statistic analysis. For example, the most accessed files over a time period may be calculated.
- Per resource 854 and per indicia 856 touch counts may also be performed in a similar fashion. Specifically, a statistic table tracking frequency and time of certain operations may be set up as part of statistics 818 . Stored procedures corresponding to the operations to be tracked would increment counts in the corresponding statistical tables. Statistical analysis could be performed by querying the statistical tables.
- statistics table 818 might potentially support frequency of access by certain users, time of access by certain users, frequency of certain types of actions and the like.
- Amalgamating persistence facility 860 performs the combinations as described with respect to item 138 and item 258 in FIG. 1 and FIG. 2 respectively.
- any subset of file or resource may be stored in a single multi-media file for redistribution.
- a user may search or filter for a file. If the search or filter yields multiple files, the user may select a single file.
- user will query for all resources associated or linked with the selected file. The query for example would use a file identifier for the selected file as a filter. The user will then specify which resources were of interest, for example by specifying a resource identifier. The user could also potentially specify the file itself.
- the resources could then be copied and then stored in a single multi-media file for redistribution.
- the amalgamating persistence facility 860 thus allows a user to store, distribute, and publish an aggregate or amalgam of associated resources, as a single file.
- User interface 870 comprises the client side rendering components and associated tools to manipulate files being rendered.
- Tools may include, but are not limited to, search, filtering, rendering, annotating, and commentary tools.
- the user interface will vary depending on the application and is described in further detail in the following section.
- FIGS. 9, 10, 11, 12, 13, 14, and 15 describe some exemplary embodiments.
- FIG. 9 illustrates exemplary annotation tools 900
- FIG. 10 illustrates an exemplary user interface for editing and viewing external synchronized commentary 1000
- FIG. 11 illustrates an exemplary user interface for editing and viewing internal synchronized commentary 1100
- FIG. 12 illustrates an exemplary user interface for embedded hot spots 1200
- FIG. 13 illustrates an exemplary user interface for multi-media hyper-branching 1300
- FIG. 14 illustrates exemplary user interfaces 1400 for integrated web service resources 1410 and commentary 1420
- FIG. 15 illustrates an exemplary user interface for browsing and authoring 1500 .
- FIG. 9 illustrates an exemplary user interface of tools for annotation 900 .
- Annotation tools allow a user to select a particular location at a particular time offset from the beginning of the file, and to associate text and other data with that location and time offset.
- annotations appear as text bubbles.
- the text bubbles may potentially contain links to web sites or other URL addressable resources.
- a user may access a multi-media file in a browser from a web site at a particular URL 910 .
- annotation toolset 920 appears containing a bounding box tool, here represented by a square icon, and a text tool, here represented by a “T” icon. Clicking on the bounding box tool allows a user to select a particular location. Clicking on the text tool allows a user to enter text.
- an editor appears over that location.
- an annotation text box 930 an URL box 940 , and a metadata tag text box 950 appear.
- annotation text box 930 arbitrary text may be entered.
- URL box 940 one or more URL links to web sites or to other URL addressable resources may be entered.
- an annotation may provide for links in addition to static text.
- metadata tag text box 950 the user may enter keywords or other text tags to associate with the annotation. Among other applications, these metadata tags may be used as part of a resource filter.
- the user may save or cancel the entered annotation by clicking on buttons 960 . If the save button is clicked, the annotation is committed to a data store. Otherwise, the entry is simply removed. In either option, controls 930 , 940 , 950 , and 960 disappear.
- Time scroll bar 970 may be used to move the video backwards and forwards in rendering to facilitate specifying the time offset to add an annotation.
- FIG. 10 illustrates an exemplary user interface for editing and viewing external synchronized commentary 1000 .
- FIG. 11 illustrates an exemplary user interface for editing and viewing internal synchronized commentary 1100 .
- Synchronized commentary is where commentary is associated with a time offset from the beginning of the file. This time offset, called a synchronized timestamp, represents an insertion point of a comment into a file.
- a synchronized timestamp represents an insertion point of a comment into a file.
- comments may be displayed to the viewer at the specific moment in time during the video in which the comment was authored.
- Synchronized commentary may be external, where the commentary is displayed outside of the rendered multi-media file, usually in a separate scroll box, and is only associated with a particular time offset with respect to the multi-media file.
- Internal synchronized commentary appears in the rendered multi-media file and is associated with a particular time offset and a location with respect to the multi-media file. Accordingly, internal synchronized commentary may be considered a generalized annotation.
- FIG. 10 provides an exemplary user interface for editing and viewing external synchronized commentary.
- video 1010 is rendered, synchronized comments are to appear in comment box 1020 .
- Time scroll bar 1030 shows the progress of the video as it renders.
- the corresponding comment 1040 appears sequentially in the comment box 1020 .
- comments corresponding to the synchronized are bolded or otherwise highlighted.
- the comment box 1020 may scroll through the comments such that the comments corresponding to the current synchronized timestamps are visible in the comment box 1020 .
- a user may also enter external synchronized commentary in comment box 1020 .
- the file pause in rendering, and the user may enter a comment in the comment box 1020 .
- the comment need not be limited to text.
- Valid entries include, but are not limited to, URL addressable resources, tags, pictures, audio, and other multi-media files.
- the file resumes rendering at the point that it paused.
- the time of the synchronized timestamp 1050 is also displayed. Clicking on the synchronized timestamp 1050 will reset the time of the rendered video to that of the synchronized timestamp 1050 . For example, if the current time on the time scroll bar is 1:10, and one clicks on a comment with a synchronized timestamp of 0:52, the video will move to time 0:52. If the time of the synchronized timestamp 1050 is present, entering a comment in comment box 1020 will automatically display the timestamp of the file when the comment was entered.
- FIG. 11 illustrates an exemplary user interface to edit internal synchronized commentary.
- a toolset comprising a text box 1120 and a toolbar 1130 may be activated to allow for the entering of commentary.
- the text box 1120 and the toolbar 1130 may be activated by clicking on the file being rendered at the location the internal synchronized content is to be entered. At that point, rendering the file is paused.
- Text box 1120 is used to enter text such as captions and commentary.
- Toolbar 1130 comprise several icons 1140 to allow for the editing and modification of the commentary. Clicking on the “x” icon closes the text box 1120 and toolbar 1130 .
- the pencil icon represents the ability to enter text.
- the interlocking rings icon represents the ability to enter a URL or a link to a URL addressable resource.
- Comments may be rated and filtered based on the “thumbs-up” and “thumbs-down” icons. Specifically, the comment rating, here in this video shown as “+6”, may be increased or decreased by clicking on the “thumbs-up” and “thumbs-down” icons respectively. Clicking on the flag icon enables a user to flag the comment as of particular interest. In some implementations, flagging is used specifically to indicate potentially offensive content. At the end of the entry, the file resumes rendering at the point that it paused.
- external synchronized commentary is not limited to text. Rather, external synchronized commentary includes, but is not limited to, URL addressable resources, tags, pictures, audio, and other multi-media files.
- FIG. 12 illustrates an exemplary user interface for embedded hot spots 1200 .
- Hot spots are areas of a video that are hyper-linked to other content. Hot spots may be used to obtain more information about items in a video, or potentially to provide advertising opportunities. For example, while watching a video, a user may become interested in a person's suit. One option would be to embed an annotation 1210 which encourages a viewer to “Buy xyz suits” along with a URL. Clicking on the URL will send the user to the “xyz suits” web site.
- a less intrusive alternative to an explicit annotation is to specify a series of points in the video at a particular time offset from the beginning of the video, which if clicked, will send a user to a specified URL.
- the pixel locations roughly corresponding to those of the suit 1220 for a range of time such as 40 seconds to 50 seconds, are associated with a URL.
- the URL and associations to the pixels are stored in a data store. Note that in FIG. 12 , the playing clock is at 48 seconds, which is between 40 and 50 seconds. Accordingly, by clicking on any of the pixel locations roughly corresponding to the suit, will navigate the user to a relevant web site.
- FIG. 13 illustrates an exemplary user interface for multi-media hyper-branching 1300 .
- Hyper-branching is the hyper-linking of files with each other.
- the disclosed data association and retrieval facility provides for the embedding of links, including URLs that point to other files, which in turn may have embedded links to other files.
- hyper-links may also reference parts of a file such as a particular time or time location in a video or an HTML anchor tag within the same HTML document.
- the user interface in 1300 illustrates video files being mutually hyper-linked together to implement multi-media hyper-branching.
- the file is a video file.
- toolset 1320 contains a scrolling bar or multi-media file thumbnails 1330 .
- Each thumbnail 1330 comprises a hyper-link to the video represented by the thumbnail 1330 .
- Clicking on the thumbnail will close the multi-media file 1310 currently being rendered and begin rendering the corresponding video.
- At each end is an arrow 1340 that enables scrolling if the linked thumbnails cannot be accommodated by the viewable space available on the scroll bar. Hovering the mouse pointer over a thumbnail 1330 expands it to a larger preview 1350 of the hyper-linked video.
- Tooltip 1360 provides an optional caption to describe or title the hyper-linked video.
- the navigation control 1370 allows a user to move forwards and backwards in navigation.
- the user will create a chain of videos viewed.
- the video viewed previously in the chain is displayed, and may be set to return to the point of time during rendering that the video was navigated away from. If there is no previously viewed video, functionality is disabled.
- the forward arrow of navigation control 1370 is clicked, the video that had been viewed next in the navigation chain will be viewed, and may be set to return to the point of time during rendering that the video was navigated away from. If there are no subsequent videos in the chain, the forward arrow functionality is disabled.
- Toolset 1320 and navigation control 1370 are to appear in the same locations regardless of the media player used to render the hyper-linked files. This is important since the hyper-linked files may come from many different repositories. For example, some videos may be from YouTubeTM and others from a locally stored. Different sites may have different renderers.
- a first site renders a video with a YouTubeTM viewer, which is hyper-linked to a second video on a second site which renders with an Apple QuickTimeTM viewer.
- the hosting site first renders the first video with the YouTubeTM viewer.
- the user the hosting site switches the rendering viewer to the Apple QuickTimeTM viewer and renders the second video.
- the second viewer will be the same size and in the same location as where the first viewer previously appeared.
- Toolset 1320 and navigation control 1370 also appear in the same relative locations and with the same sizes within the second viewer as they did in the first viewer. In this way, the user hyper-linking experience remains consistent despite the change in viewers.
- the video may start at the beginning of the file.
- the hyper-linked videos are synchronized. For example, synchronization times are identified within the hyper-linked videos that correspond to each other, such as when a batter steps up to the plate at a baseball game. An offset from the synchronization time is tracked by the web site. Accordingly, if a video of the batter is rendering, clicking on another video not only starts playing the hyper-linked video, it starts playing at the same offset from the synchronization time as the previous video. In this way, a user may see the event of the batter batting from different vantage points without discontinuity.
- One video showing the batter from the dugout can be switched to a hyper-linked video by a viewer in the stands picking up at the same time the first video left off.
- a variation of having video start times for hyper-linked videos is to have user specified or machine specified start times. For example, a video with a point of interest at time 0:52 could have a user specify that time offset. When the video is accessed, the video would begin at 0:52 rather the beginning.
- Synchronization times may be stored in the videos themselves as metadata. Synchronization times may be added after the video is acquired. Alternatively, if the video is acquired from a networked device, the device may poll a web service with a global time, such as keyed from a public atomic clock, and automatically stored in the media file. For non-networked devices, the date-time stamp of the time of capture with respect to the device's local clock may be used.
- FIG. 14 illustrates exemplary user interfaces 1400 for integrated web service resources 1410 and commentary 1420 .
- the data association and retrieval facility provides the option of not only selectively displaying a given file's associated or linked resources according to a filter, but also affirmatively retrieving resources that a user may opt to associate or link from third-party sources.
- third-party sources may include, but are not limited to, social networks, such as TwitterTM and FacebookTM, or searchable repositories of videos, such as YouTubeTM.
- Service bar 1430 provides a list of potential sources of resources to filter on. For example, in exemplary web service view 1410 , “Web Service 1” is selected in service bar 1430 . Accordingly, the retrieval indicia of the currently rendering video is used to query “Web Service 1”. At least some of retrieved results from “Web Service 1” are displayed comment scroll box 1440 .
- exemplary comment view 1420 “Comments” is selected in web service bar 1430 . Accordingly, the retrieval indicia of the currently rendering video is used to query the data association and retrieval facility storage 122 , for all associated or linked comments. The retrieved comments that are associated or linked to the currently rendering video is displayed in comment scroll box 1440 . Resource filters may be optionally utilized to further narrow the resources retrieved prior to display in comment scroll box 1440 .
- a ticker bar 1450 may be superimposed over the currently rendering video. As posts are made to a pre-selected web service, the posts are displayed in the scrolling ticker bar 1450 . Additional information, such as author or time posted may also be displayed. In exemplary comment view 1420 , the ticker bar 1450 is displaying a comment posted by “John Snow (seconds ago)”.
- FIG. 15 illustrates an exemplary user interface for browsing authoring 1500 .
- the disclosed data association and retrieval facility is designed to allow any number of resources, multi-media or otherwise to be hyper-linked to a file.
- the resources themselves may by hyper-linked to other resources, other locations within the same resource, or backlinked back to the original file.
- the hyper-linking is to be done at time of consumption.
- a user may dynamically add a link at the time of consumption.
- a user may associate or link, a video, or a still picture, a text, or an arbitrary resource may be linked to a video, while they are watching that video.
- exemplary user interface 1500 shows a hyper-branching video pane 1510 , a video/still browser 1520 and a synchronized comment scroll box 1530 as integrated into the same user interface 1510 .
- Hyper-branching video pane 1510 operates as described with respect to FIG. 13 .
- Synchronized comment box operates as described with respect to FIG. 10 and FIG. 11 , except that hyper-branching video pane 1510 replaces 1010 and 1110 is where the video is rendered and synchronized against.
- Internal commentary tools 1120 and 1130 also appear in hyper-branching video pane 1510 .
- Video/still browser 1520 allows a user to select a video or still image to hyper-link to the currently rendering video in hyper-branching video pane 1510 .
- Video/still browser 1520 displays thumbnails of videos or still images 1540 . Thumbnails 1540 may be browsed via scrolling controls 1550 . Clicking on a thumbnail selects the corresponding video or image for hyper-linking to the presently rendering video. The user may drag and drop the video to hyper-branching video pane 1510 where the video or image is added to the list of hyper-linked videos.
- the hyper-linked video may be synchronized with the playing video to enable rendering to occur against the same synchronizing time offsets as described with respect to FIG. 13 .
- the selected thumbnail 1540 may also be dragged and dropped to the commentary scroll box 1530 and added as an external comment. If the external comment is to be synchronized, the video in hyper-branching video pane 1510 pauses, allowing additional text to be entered in the commentary scroll box 1530 . Playing resumes when the editing is complete.
- the internal synchronized commentary tools 1120 and 1130 are not shown in FIG. 15 , if activated, videos or images may be dragged and dropped into the commentary tool 1120 . The effect is to embed a link to the video or image corresponding to the dragged and dropped thumbnail 1540 in to the internal synchronized comment.
- FIG. 16 is a diagram of an exemplary authoring scenario 1600 .
- FIG. 17 is a diagram of an exemplary association by inference scenario 1700 .
- FIG. 18 is a diagram of an exemplary reverse link farming scenario 1800 .
- FIG. 16 is a diagram of an exemplary authoring scenario 1600 .
- a user consuming file 1610 may dynamically add links to other resources at the time of consumption. For example, a person watching a video of a baseball game, may pause the video, and add text commentary about the size of attendance at the game and then resume. Afterwards, the user may again pause the video and add a link to a picture of one of the players to video, and then resume. Thereafter, the user may yet again pause the video and add a link to a different video of the same game and then resume. Other users watching the same video, or thereafter accessing the video would enjoy the benefit of the links. Alternatively, the final set of links may be persisted, as a query against the data association and retrieval facility storage 122 and forwarded to other users.
- Authoring scenario 16 begins with file 1610 .
- the user may add link 1612 to resource 1620 .
- the user may add link 1614 to resource 1630 .
- a resource such as illustrated by resource 1620 , may have links embedded.
- a resource such as illustrated by resource 1630 , may be empty of links.
- a resource need not necessarily have the capability of embedding links.
- a resource might be navigated to, and links subsequently added by the user or by other users in the same or in subsequent session.
- Links may come in the form of references such as URLs or by file paths.
- a resource may be an URL linkable object.
- a resource may be an index to an entry in the data association and retrieval facility storage 122 .
- Links, such as illustrated by link 1622 to resource 1640 and link 1624 to resource 1650 may be to yet other resources.
- a link, such as illustrated by link 1626 may be a self-referential link.
- a self-referential link to a video or audio may point to the same file, but to a different location or time offset in the video or audio respectively.
- Other links, such as illustrated by link 1628 may be backlinks to the original file 1610 . Backlinks may simply link back to the original file, or in the case of video, may link to a different location or time offset in the video or audio respectively.
- Link 1652 illustrates such an eventuality, where 1652 provides a link back to the original file 1610 .
- FIG. 17 is a diagram of an exemplary association by inference scenario 1700 .
- a user may provide an explicit association by creating a link between a file and a resource, it is possible for the data association and retrieval facility to infer a link between a file and a resource. Such linking is called association by inference.
- the video 1720 has retrieval indicia in the form of attributes and content. Some subset of this content may be used to query either the disclosed data association and retrieval facility storage 122 , or third-party resource providers for content.
- Example third-party resource providers may include, but are not limited to, social networks, such as TwitterTM and FacebookTM, or searchable repositories of videos, such as YouTubeTM.
- Some of the retrieval indicia of video 1720 may be specific to a particular time offset within video 1720 .
- the disclosed data association and retrieval facility queries data association and retrieval facility storage 122 and third-party resource providers for content.
- the content may then be streamed simultaneously to the consumer 1710 , in many possible locations, including, but not limited to, in a separate pane, in the same window, in a different window, as a picture in picture window superimposed over video 1720 , or on another device altogether.
- An example of content inferred to be associated with the Wimbledon match may be a live audio commentary stream 1730 on that very same match 1720 . Commentary stream 1730 could be synchronized to align the comments of 1730 to be displayed as the corresponding events are rendered in video 1720 .
- advertisement video 1740 may be triggered when video 1720 has a portion the zooms in on a particular tennis racket. Advertisement 1740 may stream either in the same window or in a different window and terminate before the original video 1710 completes.
- inferred association need not be on retrieval indicia of the file 1720 being watched, but also on attributes of the consumer 1710 himself. For example, if consumer 1710 happens to be at the corner of Haight and Ashbury in San Francisco, a web aware cell phone with GPS might retrieve resources inferred to be of interest by showing a web site on the history of the location.
- Inferred association need not be on attributes on the real world such as geolocation, time and place.
- attributes of that experience such as game name, location in game, event in the game, may also trigger the rendering of inferred resources.
- FIG. 18 is a diagram of an exemplary reverse link farming scenario 1800 .
- Reverse link farming is a variation on crowdsourced news collection.
- Crowdsourced news collection is the notion that content, usually relating to news, may be aggregated by specifying a submission point.
- a submission point may be a web page configured to receive posts of URLs, files, file references, and/or content or content references.
- the submission point may relate to a news topic.
- a submission point may be static. Specifically, the submission point is a dedicated site to receive all news content submissions relating to a news topic. Alternatively, a submission point may be dynamically created. Specifically, a web site may receive a notification about a news item.
- a human moderator may create a submission point, or alternatively the web site may automatically generate a submission point. The address of the submission point may then be broadcast to users to solicit news content and news content references.
- References may be transmitted via SMS or via email.
- users may submit content and/or content references by entering fields in the web site submission point.
- the submission point may then be accessed by a consuming user, and may be presented with an amalgamation of the recent posted submissions.
- software may review submission point postings and may automatically determine the quality of submissions from various metrics including, but not limited to author history, author reputation, date-time, and submission location.
- Software may collate submissions for duplication. Software may then select and display submissions onto a single web page.
- the amalgamated display may provide a search facility to filter results.
- One search possibility may be news topic.
- a submission point may receive submissions relating to multiple news topics, or alternatively may subdivide a news topic into subtopics.
- a news topic relating to an oil spill may be subdivided into a subtopic about oil platform safety and a subtopic about environmental impact.
- the amalgamated display may support user commentary and annotations using, for example, the facilities described in earlier sections.
- submission points and associated content may be packaged as widgets. At various points in time, and administrator, or a user may have the submission point persist all submissions including, but not limited to content references, commentary and annotations.
- the widget could be redistributed to other users.
- an embeddable embodiment of a widget may store ten URL links relating to an oil spill and one URL to an annotated video, or other multi-media resource.
- the widget may then be sent to second user who embeds the widget in his/her browser. Upon accessing the widget, the second user may browse the URLs and the annotated video. The user may see new annotations in the video that were added by other users since the video reference was persisted in the widget.
- the widget could encapsulate viewing tools and commentary and annotation tools while viewing the persisted content.
- an embeddable widget is but one embodiment. URLs and content references may be persisted on a server, in an XML file, to name a few alternative techniques.
- reverse link farming or reverse link aggregation is where the user generated content resources 1830 that are associated with a file 1810 are inferred to be related to the linked resources 1840 and in turn to third-party resource 1850 , and accordingly are aggregated.
- reverse link aggregator 1860 collects all user generated content 1830 , optionally filters the user generated content on retrieval indicia on the linked resources 1840 , and repackages or edits the aggregated content back to the owner of the third party resource 1850 owning the linked video. Repackaging may be done at an arbitrary level of granularity, including, but not limited to a specific link reference, a resource, a file, and the like. Proceeds of the sale may be shared with user 1820 via payment 1870 .
- MobNews.com has a video of news story 1810 .
- Some users 1820 view the story 1810 and post commentary, annotations, and other original content, multi-media or otherwise.
- Other users 1820 post links to related videos 1840 .
- One of those videos 1840 is a video from third party resource provider CNN.com 1850 .
- the aggregator facility of MobDub.com/news 1860 here shown in a box separate from 1810 , queries the data association and retrieval facility storage 122 , for all user generated content 1830 and links 1840 relating to the news story.
- Aggregator 1860 creates and executes resource filters to extract out user generated content 1830 and links 1840 that best relate to the news story. The materials are potentially edited.
- the final edited materials are sold back to the third party resource provider CNN.com 1850 for redistribution or publishing, again at an arbitrary level of granularity as described above.
- aggregator 1860 may opt to provide micropayments or other payments 1870 to those users 1820 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- This patent application is a divisional of U.S. patent application Ser. No. 13/004,828, titled “Crowdsourced Multi-Media Data Relationships,” filed on Jan. 11, 2011, and claims the benefit and priority to Provisional U.S. Patent Application No. 61/295,146, titled, “Crowdsourced Multi-Media Data Relationships,” filed on Jan. 14, 2010, to the same inventor herein, the entire disclosure of which is incorporated by reference herein.
- The present disclosure relates to aggregating and correlating multi-media and improved operations on the same including, but not limited to acquisition, association, linking, annotation, commentary, rendering and search of multi-media.
- A wide range of media is available for consumption on computers, including, but not limited to, video, audio, still images and text. Such media are generally stored as computer files. Some computer file formats support a mix of different media, and accordingly result in multi-media files. Accordingly, a multi-media file is a file that supports one or more forms of media. Additionally, there are other computer file formats are specific to a particular application, including, but not limited to, office productivity applications such as document editors, spreadsheets and slide presentations.
- Presently, the ubiquity of media capture devices, including, but not limited to, video cameras, digital still cameras, and recorders as well as the proliferation computers and multi-media editors, has resulted in an explosion of media and multi-media files. Furthermore, internet facilities, including, but not limited to, media sharing sites and email has facilitated wide distribution of media and multi-media files.
- Typically, a user must open and render a file in order to ascertain the contents of the file. However, doing so renders searching or sorting large numbers of files cumbersome and time-intensive. Efforts to associate non-rendered text strings with the files, called meta-tags, have enabled using text search techniques on non-text multi-media files such as video or audio.
- However, because meta-tags are not typically rendered along with a multi-media file, meta-tags do not add, supplement, or otherwise augment the content of the multi-media file. In cases, including, but not limited to, commentary and annotations, it may be desirable to associate data with a multi-media file, wherein the associated data is to be rendered along with the multi-media file.
- Associated data need not be limited to text. Associated data may in fact be a multi-media file itself. An example is a mashup where two multi-media files, often from different contexts, are synchronized together for aesthetic effect.
- Presently, there is no generalized system to associate arbitrary data with a multi-media file. Furthermore, there is no generalized system to synchronize associated arbitrary data, or to distribute the associated arbitrary data. Moreover, there is no generalized system to augment search and filter operations on multi-media files from the information that may be gleaned from the associated arbitrary data.
- The present disclosure describes associating arbitrary data with a multi-media file and improved retrieval of multi-media files by leveraging information that may be gleaned from the associated arbitrary data. Retrieval may come in many forms, including, but not limited to, searching, filtering and enumerating, by persons or by machines and for consumption either by a person or by a machine.
- The present disclosure is directed to techniques, including, but not limited to, retrieval of particular multi-media files or retrieval of data associated with the multi-media files where the retrieval criteria are at least partially based on information that may be gleaned from the associated arbitrary data. The present disclosure is further directed to techniques on capturing statistics on operations relating to multi-media files associated with arbitrary data and on operations on arbitrary data associated with multi-media files, for auditing, optimization and other purposes.
- The techniques disclosed herein relating to retrieval of particular multi-media files at least partially based on information that may be gleaned from the associated arbitrary data, include, but are not limited to: (1) text based search on associated textual data such as annotations and commentary, (2) enabling hot spots on arbitrary objects in a video file to link to supplementary information, (3) enabling links to other files thereby enabling hyper-branch linking, (4) document search on documents with multi-media files, (5) filtering multi-media files available for consumption based at least on criteria relating to information that may be gleaned from the associated arbitrary data, (6) establishing channels or tracks where the content is based on filters based at least on criteria relating to information that may be gleaned from the associated arbitrary data, (7) continuous live programming, (8) polling, real-time or otherwise and (9) aggregating poll results and rendering in real-time.
- The techniques disclosed in the present disclosure relating to retrieval of data associated with the multi-media files where the retrieval criteria are at least partially based on information that may be gleaned from the associated arbitrary data, include, but are not limited to: (1) filtering data associated with the multi-media files at least partially based on information that may be gleaned from the associated arbitrary data, (2) persisting the associated arbitrary data for distribution or consumption, (3) enabling monitors to exclude data associated or to be associated with multi-media files, (4) enabling editing of the associated data during rendering, (5) synchronizing commentary rendering, and (6) enabling selecting filtering and routing of data associated with multi-media files to various web services.
- The techniques disclosed in the present disclosure relating to capturing statistics on operations relating to multi-media files associated with arbitrary data and on operations on arbitrary data associated with multi-media files, for auditing, optimization and other purposes, include, but are not limited to capturing and reporting statistics on: (1) particular files, (2) particular attributes of associated data and (3) operations on associated data. Additionally, techniques to aggregate, and report statistics are disclosed.
- Various hardware and software architectures to enable the aforementioned are also disclosed.
- Non-limiting and non-exhaustive examples are described with reference to the following figures. In the figures, the left-most digit(s) of a reference number identifies the FIG. in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
-
FIG. 1 is a data flow diagram illustrating various potential actors, data flows, software and hardware for an exemplary web service embodiment of the data association and retrieval facility. -
FIG. 2 is a block diagram illustrating an exemplary processing embodiment of the data association and retrieval facility. -
FIG. 3 is a flow chart illustrating an exemplary processing embodiment of the data association and retrieval facility. -
FIG. 4 illustrates an exemplary hardware environment for the data association and retrieval facility. -
FIG. 5 is a flow chart illustrating an exemplary embodiment of indexing multi-media files in the data association and retrieval facility. -
FIG. 6 is a flow chart illustrating an exemplary embodiment of retrieving and filtering multi-media files in the data association and retrieval facility. -
FIG. 7 is a flow chart illustrating an exemplary embodiment of retrieving data associated with multi-media files in the data association and retrieval facility. -
FIG. 8 is a block diagram illustrating some exemplary applications of the data association and retrieval facility. -
FIG. 9 illustrates an exemplary user interface of tools to associate data with a multi-media file. -
FIG. 10 illustrates an exemplary user interface for editing and viewing external synchronized commentary. -
FIG. 11 illustrates an exemplary user interface for editing and viewing internal synchronized commentary. -
FIG. 12 illustrates an exemplary user interface for hot spots embedded in a multi-media file. -
FIG. 13 illustrates an exemplary user interface for hyper-branching multi-media files. -
FIG. 14 illustrates exemplary user interfaces for integrated web service resources and commentary. -
FIG. 15 illustrates an exemplary user interface for browsing and authoring. -
FIG. 16 is a diagram of an exemplary authoring scenario. -
FIG. 17 is a diagram of an exemplary association by inference scenario. -
FIG. 18 is a diagram of an exemplary reverse link farming scenario. - The disclosed data association and retrieval facility provides for the end users to assembling a coherent media experience from disparate sources. Specifically, a file may be associated with arbitrary data. A special case is where a multi-media file is associated with other data that may be rendered alongside the multi-media file. For example, commentary and annotations associated with a multi-media file are displayed as the multi-media file is rendered. The commentary and annotations are likely from parties other than the author or the user who posted the multi-media file. From the perspective that posting the multi-media file is intended to elicit feedback from the public at large, the commentary, annotations or other associated data are said to be crowd-sourced.
- Accordingly, the disclosed data association and retrieval facility provides a platform and techniques for end-users to create, upload and link one multi-media object or file to another for a specific point in time, position, geo-location or event. Thereupon, end-users may filter and recombine sets of attached objects into a custom experience, and the platform and techniques lend themselves to creating a social platform for crowd-sourcing annotations, commentary and analysis for a multi-media object or for an event.
- The disclosed data association and retrieval facility supports capture of an ordinary event: a series of observables related in context, time, and space. However, because the platform and techniques support the linking of arbitrary resources, geolocation shifting and time-shifting are both supported. In fact, the media files of different contexts may be related together on an arbitrary basis. The files may be rendered together, for example in a mashup, or the files may be related by attribute, e.g., a hyper-branched portfolio of work by the same author. Similarly, the files and associated resources linked need not be restricted to conventional relationships; indeed the basis of the link is merely that some end-user thought the file and resource sufficiently related to link. Often, for less obvious links, end-users will author new context.
- The ability to associate arbitrary data to a file by linking the data to the file allows the disclosed data association and retrieval facility to be related. Specifically, because a particular user or process was motivated to associate data with a file, the disclosed data association and retrieval facility may presume there is some relationship between the data and the file, and therefore there is utility in retrieving the file based on the associated data.
- This relational model in fact has much utility, for example by filtering, retrieving or searching multi-media files based on the content of their linked resources; or by way of another example mining data embedded in linked resources for research or directed advertising purposes. Potentially, as a user's reliance on accuracy of linked resources increases, so does the likelihood that the quality of linked resources from crowd-sourcing correspondingly improves.
- Exemplary Use Cases
-
FIG. 1 illustrates anexemplary use case 100 of the data association and retrieval facility. Usecase 100 is comprised of: (1) use cases formedia capture 110, including, but not limited to, storing the captured media to aweb site 120, (2) authoring actions on the captured media, including, but not limited to, linking or associating data to the captured media, and editing the captured media and the associated data; (3) distributing and publishing the captured media and associated data; (4) moderating the sites where the captured media and associated data were distributed or published; and (5) consumption of the captured media and associated data by an end user or process. -
Media capture 110 is the process of recording an event and persisting the event to a file. An event is a well-defined set of observables, or actions by particular a particular actor or set of actors. Typically, an event may be defined by the observables occurring at the same time and place, such as a football game at the local high school performed by the football game participants and audience. However, an event may also subsume other observables that are by actors not necessarily in the football game, for example a shooting star passing overhead the football game by coincidence. Furthermore, the observables in an event need not be in the same time or place. For example, an author may create a multi-media file interleaving three New Years countdown parties by family members in New York City, London, and Hong Kong. Not only are the observables geo-location shifted, because the observables are in different time zones, the observables are also time shifted. Specifically, a multi-media file interleaving the three parties are conceptually related simply being New Years Parties by members of the same family, regardless of the time or location of the observables. Accordingly, because a multi-media file may include content from different parties, times and locations, a multi-media file may indeed interleave content from different contexts solely for aesthetic effect, such as with a mashup. In fact, the observable may be a virtual observable, for example a computer generated animation of a virtual character. -
Media capture 110 is performed by amedia capture user 112. Typically, a media capture user is an end user with a digital video camera, digital still camera, or audio recorder. In this case, the capturedmedia 114 is video, still and audio respectively. However, a media capture user need not be a human being, and could be a process such as a computer operated camera. Furthermore, because the capturedmedia 114 may be computer generated animation, themedia capture user 112 may be a computer graphics artist. - The
media capture user 112, upon capturingmedia 114 may upload the capturedmedia 114 toweb site 120. Optionally, themedia capture user 112 may uploadpre-storage metadata 116 associated with the capturedmedia 114.Pre-storage metadata 116 is any metadata or data associated with the capturedmedia 114 prior to storage inweb site 120.Pre-storage metadata 116 may come in the form of attributes, which are not necessarily rendered along with a file. Attributes include, but are not limited to, an identifier of the person or process capturing the media such as a name, or identifying number. Attributes may also include, but is not limited to, the date-time stamp, the location of where the media was captured, the filename, or some other metadata tag associated with the capturedmedia 114.Pre-storage metadata 116 may also come in the form of linked or associated data that is to be rendered along with the file, including, but not limited to annotation or commentary added prior to storage. -
Web site 120 comprises a network site where capturedmedia 114, usually in the form of a persisted multi-media file may be uploaded such that other users may access the file for operations including, but not limited to, authoring, data association, distribution and publishing, filtering, and consumption. Accordingly,web site 120 comprises: (1) astorage 122 for storing the capturedmedia 114 or references to the capturedmedia 114, (2) aresource linking facility 124 to link or associate arbitrary data with the stored capturedmedia 114, (3) an annotation/commentary facility 126, which is a special case ofresource linking facility 124 optimized for associating annotations and commentary, and (4) a search/filter facility by which capturedmedia 114 stored instorage 122 may be retrieved on criteria on the capturedmedia 114 or on resources linked to capturedmedia 114. - The web site may in the form of a traditional web site where a multi-media file is simply stored in a database front ended by dynamic hyper text markup language (D/HTML). Alternatively, the web site may be a web service. Note that the captured
media 114 need not be uploaded to aweb site 120, and thatweb site 120 might be replaced by a server application front-ending a data store, where both are located on a server on a local area network (LAN). -
Storage 122 stores either the capturedmedia 114 or references to the capturedmedia 114. The former has the advantage of having all data centralized, and the latter has the advantage or requiring less storage.Storage 122 may also storepre-storage metadata 116, associated data, and references to associated data, and link information. For example,storage 122 may store a reference to multi-media file myfile.mp4, but not to the file itself, but may also storepre-storage metadata 116 attributes such as the date-time stamp of when the file was captured, along with commentary data associated with the file after storage. Additionally,storage 122 might store links to related web sites, but opt not to redundantly store any of the web site content. Since retrieval operations are likely to have criteria based on pre-storage metadata along with linked and associated data, performance may also be enhanced by havingstorage 122 only store data likely to be scanned and references to other data such as the file itself and the linked or associated data. -
Storage 122 may be implemented in a variety of ways, for example as a relational database management system (RDBMS). Alternatively,storage 122 may be implemented either as an object oriented database management system (OODBMS) or object-relational database management system (ORDBMS). In some scenarios, such as in cloud computing,storage 122 may be implemented as a key-value database, such as Cassandra. Furthermore,storage 122 may be implemented as multiple heterogeneous and distributed databases. -
Resource linking facility 124 enables a resource to be linked or associated to a file. A resource may be an attribute or content. Attributes are generally not rendered with a file whereas content may be rendered along with a file, that is may be displayed when the file is being rendered. An example of an attribute resource is a metadata tag, such as a date-time stamp or a geo-tag. An example of a content resource is an annotation. Note that another file may also be a content resource, such as a text or audio. If the content is a web page, a web page may be associated with a file by storing its uniform resource locator (URL) as a reference. Such an association is a link. Furthermore, because a multi-media file may be a content resource, it is possible for the multi-media file to itself store URL links, i.e., hyper-links back to the original file thus enabling hyper-branched files, or files that store link references to each other. Content resources may be office productivity documents, or even executables such as Adobe Flash™ or Microsoft Silverlight™ scripts. - If
storage 122 is a relational database,resource linking facility 124 might operate as a set of structured query language (SQL) stored procedures or queries which store a record associating a resource reference, or some portion of the resource itself with a file in a relational table in an RDBMS. Alternatively, ifstorage 122 is a key-value database, the relation may simply be stored as a value pair. - Annotation/
commentary facility 126 is a special case of resource linking. Annotation is data associated with a particular time and location in a file. Accordingly, when the file is rendered, the annotation content appears after a predetermined amount of time has passed while playing the file and appears associated with a particular location on the screen. For example, after 5 seconds have passed in a video file, atpixel location - The annotation/
commentary facility 126 may operate similarly toresource linking facility 124 where links to the data comprising the annotation or commentary are stored separately, and references to the data are stored instorage 122. However, to facilitate full text search of the annotation or commentary, annotation/commentary facility 126 may opt to store the data directly instorage 122. Note that annotation/commentary content is not necessarily just text. Media objects or files may be embedded along with URLs to web sites or other resources addressable by a URL such as a file. As with theresource linking facility 124, the annotation/commentary facility 126 may be implemented as SQL stored procedures or queries wherestorage 122 is a RDBMS. - Search/
filter facility 128 enables retrieval of files, associated or linked data, or references to either files or data. Retrieval subsumes filtering both filtering as well as searching according to criteria. Retrieval may be either by human users or processes. Accordingly, search/filter facility 128 might expose an application programming interface allowing a process to invoke search/filter facility 128. Results may be returned either as an enumeration of files or references to files, or alternatively an enumeration of content of data associated or linked to files. In the latter case, the results might be rendered not merely as a list, but further filtered and organized into a composite view, as in a web site. -
Authoring use case 130 is where anauthoring user 132 modifies the files and associated data for any purpose. Specifically, the authoring use case describes anauthoring user 132 to editfiles 134, edit attributes orcontent 136, or to combine files and content together into anamalgam 138. -
Authoring user 132 may be either a person or a process and need not be the same as any of the other users depicted inFIG. 1 . -
File edits 134 may be submitted toweb site 120. Specifically, authoring user may have video, still image, or audio editing software and may modify the referred to or stored instorage 122. Editors will widely vary depending on the file. -
Resource edits 136 may also be submitted toweb site 120. Resource edits may come in the form of either associating or linking new data with a file or editing data already associated or linked to a file. Resource edits may come in the form of an editor, such as a text editor. Alternatively, resource edits may come in the form of a web site, for example a web site that enable annotation or commentary edits. For the case where the resource to be edited is an attribute, property editors may be used. -
Files combinations 138 may also be submitted toweb site 120. Whilefile edits 134 edit the single underlying file, and whileresource edits 136 merely edit the associated data, a file combination enables multiple files and resources to be combined or amalgamated into a single file. In this way, two files may be amalgamated into a single file, as in a mashup. Alternatively, a single distribution file combining the underlying file and its associated attributes and content might be made. In some scenarios, it may be desirable to distribute the associated and linked data separately from the underlying file, and in that case only the associated and linked data are amalgamated into a single file. - Distribution/
publishing use case 140 allows a distributing/publishing user 142 to post files and their associated or linked data for consumption. Distributing is the actual distribution of files and data to users. Publishing is the enabling of a user to consume files and data without actually having possession of the underlying file or data. For example, if an MP3 audio file is physically transferred between two cell phones, the sending cell phone is distributing the MP3 to the receiving cell phone. However, if a web page allows a user to play an MP3 file, but does not allow download, the MP3 file is published. - Distributing/
publishing user 142 may be either a person or a process and need not be the same as any of the other users depicted inFIG. 1 . - One possible way for files and associated or linked data to be distributed/published is to create a
channel 144. A channel is a filter comprised of several criteria. In the case wherestorage 122 and search/filter facility 128 are implemented as an RDBMS, the channel criteria may be a filter embodied in a SQL query, and stored either as a query or as a stored procedure. Alternatively, a channel engine may simply store the criteria as text, and dynamically general SQL as needed. The query is periodically executed, and files and associated or linked data satisfying the criteria are queued into a buffer for consumption. As the queue empties, the channel query is re-executed. In the case where no more files or associated data are retrieved, previously retrieved content may be re-queued, or a message stating that the channel is exhausted may be presented to the user. - Another possible way for files and associated or linked data to be distributed/published is via posting to a
social network 146. As user might participate in multiple social networking web sites, for example Facebook™, Twitter™, and Linkedln™. Because different social networks serve different purposes, it may be desirable for a user to post different files and associated or linked data to different social networks based on particular criteria or event. A distributing/publishing user 142 may specify the criteria by which when thatuser 142 posts a file or associates or links data, that post or association/link is simultaneously posted to a particular social network. In this way, a user is saved the effort of reposting the same post to different social networks. -
Channels 144 and social network posts 146 are merely two exemplary techniques to distribute or publish comment. The above discussion ofchannels 144 and social network posts 146 is not intended to limit the techniques of distributing or publishing herein. - The
moderation use case 150 is the use case of a moderatinguser 152, such as an administrator, filtering files and associated or linked data stored or referenced inweb site 120. Common filters include, but are not limited to, profanity filters, pornography filters, and bans on particular users. - Moderating
user 152 may be either a person or a process and need not be the same as any of the other users depicted inFIG. 1 . - Moderating
user 152 may implement exclusion filters 154 by specifying criteria on which files or associated or linked data is not to be provided byweb site 120. Specifically, wherestorage 122 and search/filter facility 128 are implemented as an RDBMS, an exclusion filter 154 may be implemented as a SQL view from which all external queries are executed against. In this way, only the data exposed by the SQL view is ever served out ofweb site 120. For example, if user “X” is banned fromweb site 120 via exclusion filter 154 where a SQL view “Master” only retrieves files and associated or linked data where user “X” was not the contributor. Subsequent filters such as channels are then executed against SQL view “Master”, and accordingly will never execute queries against contributions of user “X”. - Alternatively, if a SQL view is not desirable, moderating
user 152 may simply permanently delete all contributions by user “X”. However, this will not filter out future contributions by user “X”. -
Consumption use case 160 allows consuminguser 162 to retrieve files and associated or linked data fromweb site 120 for rendering or other uses. Typically, consuminguser 162 sends a request for afile 164, such as a multi-media file, or a request for aresource 166, and receives the corresponding media andresources 168 for consumption. - Consuming
user 162 may be either a person or a process and need not be the same as any of the other users depicted inFIG. 1 . -
Requests requests filter facility 128. Wherestorage 122 and search/filter facility 128 are implemented as an RDBMS, the retrieval criteria may be in the form of a SQL query, or of text that may be dynamically converted into a SQL query. The query is then executed and the records corresponding to the media and resources satisfying the criteria are returned to the consuminguser 162. - The returned
data 168 may be in the form of an enumeration. However, the data may be further modified -
FIG. 1 illustrates the disclosed data association and retrieval facility as a number of asynchronous operations performed in no particular order. From the perspective of performing operations any multiple files and resources, this is certainly the case. However, from the perspective of a single file, operations are more serialized. Accordingly,FIGS. 2 and 3 illustrate an exemplary the lifecycle of a single multi-media file, and its associated or linked resources. Specifically,FIG. 2 is a block diagram andFIG. 3 is the corresponding flowchart. -
FIGS. 2 and 3 illustrate anexemplary flow media capture pre-storage processing storage multiple operations 340, including but not limited to: (1) filtering 240 and 350, (2)post-storage processing publishing consumption choice 390. - During
media capture event 212 is captured. As stated above, an event is a set of observables that may be related. A media capture event may be performed by any recording device, or in the case of a virtual event, by a computer graphics editor. The resulting captured data is 214 is persisted to a file. The captureddata 214 may include all or only a portion of theevent 212. The captureddata 214 may include some non-event data as well. For example, when video-taping an airplane show, one may also capture an extraneous bird flying by which would not be formally part of the show. - The file may undergo processing 220 and 320 prior to upload to a
web site 120. Prior to the file being persisted, metadata attributes such as a date-time stamp may be captured 222. After the file is persisted, the file may be edited 224. Specifically, a still photo may be cropped, or its colors edited via a photo editor such as Adobe Photoshop™ File editing 224 also includes editing attributes such as metadata tags and the file name. It is also possible that the file undergoes other editing such combinations with other files or with associated or linked resources. For example, individuals captured in one photo may be separated from the original photo and superimposed onto another, such as making a local individual appear to be located in a faraway city. The original captured file might be downloaded along with annotations and commentary from a web site. The additional of annotations and commentary, or any other resources that might be rendered along with the original file might compriseother editing 226. - Accordingly,
media capture pre-storage processing capture use case 110 inFIG. 1 . - By definition,
pre-storage processing storage 122. For example, a file may reside in a separate web site, or on a user's public directory. While,storage storage 122, it may more commonly mean any combination of: (1) storage of a reference to the file, (2) storage of file attributes and pre-storage associated and linked data, or (3) storage of references to attributes and pre-storage associated and linked data. Accordingly,storage - In
FIG. 3 , a choice of operations on a file can be performed in 340. Operations include, but are not limited to: (1) filtering 240 and 350, (2)post-storage processing publishing step 390 provides an option to perform another operation. If no other operation is chosen, then further processing may continue. - Turning back to
FIG. 2 , once a file or its reference has been committed tostorage filter operations filter 242 any set of criteria to limit returned files or associated or linked data according to those criteria. Asearch 244 is a special filter where a user progressively searches for a specific instance or relatively small set of instances of a file and associated or linked data.Item 246 illustrates the option where no filtering operation is performed. - If the
underlying storage 122 ofstorage operation filter facility 128. - Similarly, if the
underlying storage 122 ofstorage operation search operations 244 may be in the form of entering keywords into a buffer, where search/filter facility 128 convert the keywords into a SQL query. Specifically, the search/filter facility 128 adds additional WHERE clauses to a root SQL query based on the keyword. - In both the cases of
filtering 242 and searching 244, the search/filter facility retrieves records corresponding to the SQL statements either entered or generated by the search/filter facility 128. - It is to be noted that the search/
filter facility 128 requires additional functionality beyond a traditional RDBMS. Specifically, the search/filter facility searches through attributes and associated or linked content. Since attributes and resources are not necessarily stored in thestorage 122, search/filter facility 128 may require three steps of operations. The first operation is a SQL operation to retrieve all data matching criteria on fields actually in the database. The second operation is to expand out references in associated or linked data. For example, wherestorage 122 only contains a reference to associated data, the data is retrieved, converted to a common text format, such as ASCII, and placed into a buffer associated with the file. By way of further example, where a resource, such as a web site or file is linked via an embedded URL, again the resource is traced, expanded, and converted to a common text format. Optionally, some or all of the expansion may be indexed in an index server. The third operation is then to perform full text search on the data expanded in the buffer. - In the case of web sites or other content resources that also potentially contain linked resources, search/
filter facility 128 may limit recursion based on the amount of buffer memory available. The expanded resources are generally expanded dynamically on request, but in some performance scenarios, may be pre-expanded, parsed, and flags or fields populated in thestorage 122. - Accordingly, the
filters 242 and search 244 techniques infiltering operation moderation use case 150 inFIG. 1 , and thechannels 144 and social network posts 146 in the distribution/publishing use case inFIG. 1 . - Upon retrieval, via
filtering operation post-storage processing -
Post-storage processing item 134 inFIG. 1 . The associated or linked data may be edited 254 as discussed with respect toitem 136 inFIG. 1 . - Note that
resource editing 254 includes the association or disassociation of content with a file, the content being rendered along with the file. Commentary andannotation editing 256 are an example of editing content to be associated with a file. By entering content into an annotation editor, the text may be associated with a particular time and location in the file. This operation stores the at least the text, time offset, location in a data store, not necessarily the same asstorage 122. Other annotation attributes stored may include, but are not limited to the identity of the author and date-time stamp of entry. When the annotation is performed in the editor, a notification, potentially implemented as a SQL trigger, to store a reference to the annotation data instorage 122. Alternatively, a copy of the annotation data may be stored instorage 122 as well. Similar operations may be performed with commentary except that the time offset and location data are not stored, and with synchronized commentary, except that the location data is not stored. - The underlying file and the associated or linked resources may be combined 258 as discussed with respect to
item 138 inFIG. 1 . Because it may be desirable to preserve the underlying files, where two files are combined, or where resources are combined, or where files and resources are combined, the disclosed data association and retrieval facility may create separate copies and store corresponding references instorage 122. In this way, the original underlying files may be used again. For example, if a file F1 is combined with another file F2 into mashup M, M may be stored as a separate file from F1 and F2, thus allowing other users to create additional mashups from files F1 and F2, and for users to associate or link additional data to files F1 and F2. As for mashup M, users may further edit the file, and separately associate or link additional data. - Accordingly,
post-storage processing operation authoring use case 130 inFIG. 1 . - Distribution/
publishing operation channels 262 and social network posts 264 are offered as examples.Channels 262 correspond to operations as discussed with respect toitem 144 inFIG. 1 , and social network posts 264 correspond to operations as discussed with respect toitem 146 inFIG. 1 . - Both
channels 262 andsocial networks posts 264 are built uponfilters 242. Specifically, criteria are specified as to files and associated or linked data to be distributed/published. However, filters 242 only provide an enumeration of files and associated or linked data that match the criteria in thefilter 242.Facilities implementing channels 262 andsocial networks posts 264 include logic in the form of scripts, executables and notifications to perform the distribution/publishing of the files and associated or linked data enumerated byfilter 242. - For example, a
channel 262 might be implemented as a web page. A user will access the web page, and open a channel. The web page will run a server side script that accesses a queue. If the queue contains files and associated or linked data, it will render the first available item on the web site. If the queue is empty, it will invoke the appropriate filter, and will populate the queue accordingly. If there are no matching records, a notification is sent by the search/filter facility 128 to the server script, which in turn may display an error message or perform other error handling. - By way of another example, a social network post might also be implemented as a web page. A user will access the web page. The web page will contain a search facility and a commentary editor. The user will execute a
search 244 and will retrieve a number of matching files. The user will select a file to render and will proceed to enter commentary into the editor. Upon committing the commentary, a record containing a reference to the commentary, or perhaps the commentary itself is posted to thestorage 122. Upon posting, if certain prespecified criteria corresponding to a social network are satisfied, a SQL trigger is executed. The SQL trigger will then extract the posted commentary or commentary reference, expand as necessary, and then will post the commentary to the corresponding social network. One way to implement this would be via a MS-SQL™ stored procedure on a Microsoft SQL Server database. MS-SQL™ stored procedures are capable of calling common object model (COM) methods, which in turn might invoke API calls in the social network. One example is that upon receiving a notification from a trigger, the MS-SQL™ stored procedure uses SQL to extract out the recently posted comment, and calls a pre-coded COM object that stores text to a Twitter™ account. Other analogues exist with the Oracle™ RDBMS using Java™ language invocations. Alternatively, an embodiment may comprise and executable or client side script that directly invokes an API accessible in the social network site, web service provider, or similar analogue. -
Channels 262 and social network posts 264 are only two examples of distribution and publication. There are a number ofother operations 266 supported. Yet another operation is a standard search facility. Specifically, a user enters keywords, the keywords are converted to SQL viasearch 244, and a number of files and associated or linked data that match criteria generated from the keywords is retrieved, and displayed via a server script in a web page. - Accordingly, SQL operations, notifications, scripts, and executables of the distribution/
publishing operation FIG. 1 . -
Consumption operation FIGS. 8, 9, 10, 11 and 12 below. - Accordingly,
consumption operation item 160 inFIG. 1 . -
FIG. 4 illustrates anexemplary hardware environment 400 for the disclosed data association and retrieval facility. - The disclosed data association and retrieval facility is capable of being hosted on a wide range of
client devices 410. If the client portion of the disclosed data association and retrieval facility is embodied in a web page, the client device may be any web-aware client, including but not limited to a web aware cell phone or personal device assistant (PDA) 412, personal computer (PC) 414,netbook 416, or web aware set top box (STB) 418. The client devices are not limited to those illustrated in 410, and for example may include, but are not limited to, network aware televisions, native smart phone applications, and the like. If the client portion of the disclosed data association and retrieval facility color layout UI is embodied in a windowed application, it may be hosted on aPC 414 ornetbook 416.PC 414 may include any device of the standard PC architecture, or may include alternative personal computers such as the Maclntosh™ from Apple Computer™, or workstations including but not limited to UNIX workstations. - The client portion of the disclosed data association and retrieval facility on a
client device 410 may then access the server portion of the disclosed data association and retrieval facility hosted on anenterprise server 420 or a server hosted on thegeneral internet 430. - If the
client device 410 is accessing anenterprise server 420 on a local area network (LAN), it may connect via any number ofLAN connectivity configurations 430. At the physical layer this may include Ethernet™ or Wi-Fi™. At the network/session/transport layer this may include connectivity via the Transmission Control Protocol/Internet Protocol (TCP/IP) or other protocol. If theclient device 410 is accessing the internet, it may connect viastandard internet protocols 450 including TCP/IP for the network/session/transport layer and Hypertext Transfer Protocol (HTTP) at the application layer. - In the case where the
client device 410 is accessing thegeneral internet 440, typically a browser is used for access. Accordingly, if a browser such as Microsoft Internet Explorer™ that supports plug-ins, is used onclient device 410, then a portion of the disclosed data association and retrieval facility might be implemented in the form a plug in. For example, annotation and commentary tools or search result caching may be implemented via plug in. -
Enterprise server 420 may be based on a standard PC architecture, or alternatively on a mainframe. - If accessing the
general internet 440, an independently hostedweb server 442 may be accessed. Aweb server 442 may be a standard enterprise server based on a standard PC architecture that hosts an application server. Exemplary application server software includes Internet Information Server™ (IIS) from Microsoft Corporation™ or Apache Web Server, an open source application server.Web server 442 may access a database server also potentially on a standard PC architecture hosting a database. Exemplary databases include, Microsoft SQL Server™ and Oracle™. In this way a color layout image search engine may run on 2-tier or 3-tier platforms. - Alternatively, the server portion of the disclosed data association and retrieval facility may be hosted on a
cloud computing service 444.Cloud computing service 444 contains a large number of servers and other computing assets potentially in geographically disparate locations. These computing assets may be disaggregated into their constituent CPUs, memory, long term storage, and other component computing assets. Accordingly, the server portion of the disclosed data association and retrieval facility, when hosted oncloud computing service 444, would have both centralized and distributed data storage on the cloud, accessible via a data access API such as Open Database Connectivity (ODBC) or ADO.Net™ from Microsoft Corporation™. The application portions of the disclosed data association and retrieval facility color layout image search engine could also be hosted on computing assets in thecloud computing service 444 corresponding to an application server. -
FIGS. 5, 6 and 7 are flow charts exemplary facility operations by the disclosed data association and retrieval facility. Specifically,FIG. 5 illustrates anexemplary indexing method 500;FIG. 6 illustrates an exemplary multi-media file retrieval andfiltering method 600, andFIG. 7 illustrates an exemplary associated or linked resource retrieval andfiltering method 700. - In
FIG. 5 , and the exemplary indexing operation is performed by associating or linking resources to a file. As resource may be an attribute which is not necessarily rendered along with the associated file, or content which is rendered along with the associated file. The associated or linked resource contains data which when retrieval criteria are specified that match that data, the associated file is retrieved. The portion of the associated or linked data that is compared to retrieval criteria is called retrieval indicia. - In 510, the disclosed data association and retrieval facility has a reference to a file to be indexed. A user specifies a resource to associate with the file. The resource may be an attribute such as a metadata tag. The resource may be content such as annotations or commentary. Alternatively, the resource may be a link to another file. The received resource may alternatively be an edit to an existing attribute or content resource as well.
- In 520 the received resource is associated with the file. In the case where
storage 122 is an RDBMS, this may be performed by storing a reference to the resource instorage 122 and adding an entry to a table that cross references a reference to the file to the reference to the resource. In the case where an existing resource is being edited, no new table entries are necessary, and the resource itself is edited in place. Since in this embodiment,storage 122, does not store the resource itself, not changes to thestorage 122 are necessary. However, if the resource is stored, then an UPDATE SQL statement may update the resource entry instorage 122. - In 530, retrieval indicia are extracted from the new or edited resource. If the associated or linked resource may be simply stored as a reference, the associated or linked resource in full is treated as retrieval indicia may be expanded and subjected to text search. Alternatively, the associated or linked resource may be scanned or parsed, specific fields and flags extracted and stored in
storage 122, whereupon these fields are retrieval indicia. In the case of editing, the edited resource must be reparsed to extract the specific extracted fields and flags. - In 540, the retrieval indicia are associated with the data file. In the case where the resource is dynamically expanded, the text search for particular values in the resource constitutes the association. In the case where the data file is associated with fields and flags in the
storage 122 itself, these fields in flags may be added either by a SQL UPDATE or SQL INSERT statement submitted tostorage 122. - An example of storing and associating an attribute resource would be a file where a metadata tag containing the phrase “memristor” is to be associated with a video file. A table in
storage 122 might contain a table of metadata tags and a cross reference table between the metatag and a list of file references. Accordingly, the disclosed data association and retrieval facility would submit SQL INSERT statements to add the metadata tag to the metadata tag table or determine if a record already existed, extract out an identifier for the record, and then enter a cross reference record for the file reference and the metatag identifier. - An example of storing and associating a content resource would be to scan commentary entered against a video file. The database would store a lookup table with a list of metadata tags of interest. The existing metadata tag table could be used for this purpose. If in scanning the text in the commentary, the word “memristor” was parsed and detected, the disclosed data association and retrieval facility would enter a record into the cross reference table to associate the metatag with the file reference.
- An example of associating a content resource dynamically would be to have a table of metadata tags to text scan against commentary. When a search or filtering operation was triggered, the system would expand out the commentary dynamically, perform the text scan, and if any of the stored metadata tags, for example “memristor” was detected, it would mark the file and its associated or linked data for retrieval.
-
FIG. 6 describes anexemplary retrieval operation 600 where a file filtering specification comprising file filtering terms is applied to attributes of the file itself - In 610, the disclosed data association and retrieval facility receives a file retrieval request comprising one or more retrieval terms. Typically, a term is a string of characters comprising keywords or key expressions. For example, a keyword might be the word “chemistry” and a key expression might be the expression “quantum mechanics” comprising the terms “quantum” and “mechanics.” Additionally, Boolean operators such as AND, OR and NOT may be qualified the received retrieval term. Upon receiving the file retrieval request, the request is parsed for operators, terms and expressions, and each qualified term or qualified expression stored in a buffer. The stored qualified terms and qualified expressions constitute the search intent of the user.
- In 620, the disclosed data association and retrieval facility also receives a filter specification comprising file filtering terms. The filter specification may be parsed into separate qualified terms and qualified expressions and subsequently buffered as described above. The qualified terms and qualified expressions of the filter specification constitute global terms that apply to all searches. For example, an exclusion filter set by a moderator may add these terms to a master SQL view which all public queries are executed. Another example is a SQL view where only some data access that has been paid for by the user is visible to that user.
- In 630 the file retrieval is executed. In an exemplary embodiment, the filter criteria are applied to the
storage 122 via a SQL UPDATE VIEW statement. Then a SQL query is dynamically generated by adding WHERE clauses to a retrieval query to be applied against the SQL view. The result is a series of file references matching the criteria. An example query might search for all files authored by “John Smith” between Jan. 1, 1990 and Jan. 1, 1991. Accordingly queries against the file attributes stored instorage 122 would include a where clause similar to as follows: -
- WHERE file.author_first_name=“John”
- and file.author_last_name=“Smith”
- and file.date_time_stamp>=“Jan. 1, 1990”
- and file.date_time_stamp<=“Jan. 1, 1991”.
- The action in 640 is not necessary if SQL views are implemented as described above. However, in an embodiment where SQL views do not pre-emptively remove records with matching filtering terms, the resulting series of file references may be scanned in a SQL stored procedure cursor to eliminate records to be filtered. Specifically, a SQL stored procedure cursor iterates over the resulting series of file references, compares filter criteria to the current record in the cursor, and if a match is found, marks the record as not to be presented to the user.
- In 650, the remaining files are presented to the user. This may be in the form of an ODBC, ADO™, or ADO.NET™ recordset. The recordset may also include references to associated or linked data. The final resulting series of file references may be presented according to any number of well-known data access technologies, whereupon a server script may dynamically generate HTML for viewing on a browser, or to some well-known third party format such as synchronized multi-media integration language (SMIL) or eXtensible markup language (XML). Alternatively, a non-browsing executable may consume the resulting recordset.
-
FIG. 7 describes anexemplary retrieval operation 700 where a resource request comprising retrieval terms is applied to the data associated or linked to a file, rather than to the file itself. - In 710, the disclosed data association and retrieval facility receives a resource retrieval request comprising one or more resource retrieval terms. Resource retrieval terms are similar to the file retrieval terms except that they are to be applied to resources, rather than to the files themselves. Accordingly, 710 results in a series of buffered qualified terms and qualified expressions in the same fashion as discussed with respect to the action in 610 of
FIG. 6 . - The
retrieval operation 700 may be performed in conjunction with a retrieval operation setting criteria against file attributes. Accordingly, in 720, a retrieval request comprising file retrieval terms may be received. Again, in 710 a series of qualified terms and qualified expressions is parsed and buffered in the same fashion as discussed with respect toitem 610 ofFIG. 6 . - In 730, an operation is performed to retrieve all files referenced in
storage 122 where the qualified file retrieval terms match. This operation is similar to step 630 as described with respect toFIG. 6 . - In 740, an operation is performed to retrieve the associated or linked resources associated with the files retrieved in 730 whose attributes or context match the resource filter terms. This operation is may be done against stored fields and flags or against the associated or linked content itself as described above with respect to
FIG. 5 . - The actions in 730 and 740 need not be performed separately. If the
storage 122 contains parsed values from the associated or linked resources, then 730 and 740 may be combined into a single query. Step 740 need only be separated from 730, if the associated or linked resources must be parsed independent of a SQL SELECT operation. - Regardless if the actions in 730 and 740 are performed serially or in a single step, the result is a series of files and their associated or linked resources. In 750, this resulting series may be presented to the user or calling application in the form of a recordset as described in 650 with respect to
FIG. 6 . - Where
FIG. 1 illustrated exemplary use cases andFIGS. 2 and 3 illustrated exemplary flow of a file through the disclosed data association and retrieval facility,FIG. 8 characterizes these use cases and flows in terms of the following facilities: (1)storage 810, (2) file filters 830, (3) resource filters 840, (4) statistics requests 850, (5) an amalgamation facility and (6) a user interface 870. -
Storage 810 corresponds tostorage 122. It may comprise a single monolithic data store or several distributed data stores. The data stores may be a database or potentially a file directory. It may storefiles 812, or references to thefiles 812. Similarly, it may storeresources 814 or references to theresources 814. The resources are stored directly whole, or may be parsed intoindicia 816. While resources need not be stored directly instorage 810,indicia 816 are generally stored instorage 810. Finally,request statistics 818 may be stored in thestorage 810. An example would be running counts on the most popular search terms. Such statistics would be useful in auditing the usage of the facility, or potentially in advertising. -
Storage 810 may serve any combination of: (1) files, (2) resources, (3) their respective references, or (4) statistics reports. Upon receiving aretrieval request 820, the search/filter facility 128queries storage 810.Retrieval request 820 may embody criteria from any one of afile filter 830, aresource filter 840, or astatistics request 850, - File filters 830 may provide the implementation basis for a number of applications. Specifically, file filters 830 provide a feed of files meeting criteria as specified by the file filter which may operate either on the file or on associated or linked resources. Operations may be then performed on the files in support of the application. The following are some exemplary applications.
-
Multi-media channel 832 provides a stream of multi-media files according to a set of criteria. For example, a user may desire a stream of multi-media files of Star Trek Original Series™ episodes.Multi-media channel 832 may be implemented by receiving a file filter comprising of at least one file filtering term. The file filter may be persisted in the form of a text file which contains the filtering terms. A SQL statement to CREATE a stored procedure may be dynamically generated from the filtering terms. Alternatively, the text file could contain the necessary SQL CREATE stored procedure statement. Once the stored procedure was created, it could be used multiple times. The stored procedure would contain a SQL SELECT statement with a WHERE clause containing filtering criteria per the filtering terms. - The distribution/publish
facility 260 would queue and publish the retrieved episodes to via user interface 870. Specifically, the user would send a channel subscription request comprising a channel subscription request identifier, a notification point specifying a user network address, such as a TCP/IP address, to subscribe to the channel, and a file filter.Storage 810 would store the channel subscription request information and associate the file filter with the user's notification point. Later, the user would send a channel refresh request comprising the channel subscription request identifier and a date-time stamp of the last refresh performed. From the channel subscription request identifier, themulti-media channel 832 would be able to identify the user's notification point. The file filter would then retrieve all files matching the file filter criteria in the file filter associated with the channel subscription request, limited only to files posted after the date-time stamp of the last refresh performed. Accordingly, the retrieved files would be all files not yet served that match the criteria of the channel subscription request. - Continuous live programming 834 is a variation on
multi-media channel 832. Here, a channel which continually plays media is subscribed to by multiple users. As the current media is rendered, the users vote on the next media file to be played. As the current media completes, the votes are tallied, the next file retrieved and rendered, and then the process repeats again. Here, votes may be implemented either as attribute, i.e., a metadata tag, or via commentary, i.e., a comment stating “I want episode 23 next.” The attribute or the content should contain an identifier of the next multi-media file to be played. In the case of the comment above, the identifier is “episode 23.” However, the identifier could be a word vector that could identify the episode e.g., “the one where Bob crashes his car.” The file filter is able to querystorage 810 for all multi-media files satisfying criteria for the channel as well as sorting on the vote counts based on attributes or resources associated in the time frame of the file last rendered. - In
polling 836, the votes are for opinions on the present content rather than for opinions on content to follow. For example, in a video of a singing contest being played to multiple users, the users may vote on the best singer. They may enter commentary such as, “I like the first one” or “I like Bob best.” The commentary may be parsed and processing to create a numerical ranking of the singer. After the completion of the singing contest video, thepolling application 836 could run queries tallying the votes converted to numerical rankings, and subsequently display the winning singer to the users. Thepolling application 836 would have multiple algorithms on how to parse the content of resources, such as commentary to the video, and to assign numerical rankings and to perform statistical aggregation. One example would be to simply assign a 1 to the specified choice and 0 to the rest. Another would be to parse of key words such as “good”, “great”, or “best” or common words of accolade, and to create a numerical scale based on the frequency of the words, or on the number of exclamation points in the comment. - Resource filters 840 may provide the implementation basis for a number of applications. Specifically, resource filters 840 provide a feed of resources associated or linked to files that meet criteria as specified by the resource filter which may operate either on the file or on associated or linked resources. Operations may be then performed on the resources in support of the application. The following are some exemplary applications.
-
Commentary channel 842 is similar tomulti-media channel 832 except that the feed is of commentary. For example, a number of users watching a video of the U.S. Open may want to filter commentary coming from user “Bob the Tennis Expert.” As Bob entered commentary, users subscribing to the commentary channel would see Bob, and only Bob's commentary appear. The effect would be that of a live commentator except where the commentary appeared in a text commentary box in the web, or a live audio stream in an audio renderer.Commentary channel 842 may be implemented via storing a channel request for a user comprising a user notification point and a resource filter. The resource filter would have a resource term that specified “Bob the Tennis Expert.” Accordingly, as the video played, whenever Bob entered a comment, the comment would be stored instorage 810 in a table, which in turn would trigger a stored procedure. The triggered stored procedure could query all commentary channel subscribers and their notification points and could then post Bob's recent comment to all of the retrieved notification points. Alternatively, the comment could be pushed via a persistent TCP/IP connection, such as over HTTP polling, thereby obviating the need for SQL. -
Monitor 844 is an exclusion filter on commentary. An exclusion filter could prevent comments posted by a particularly misbehaving user from being retrieved by the users at large. For example, if “Bad Bob” had a reputation for being particular profane, a monitoring administrator might set a resource filter where all comments posted by “Bad Bob” would not be retrieved. One implementation would be to receive a resource filter specifying a WHERE clause of resource.author not equal to “Bad Bob.” In an exemplary implementation, the clause would be added to a master SQL view which all file and resource requests were executed against. As a result, users would not see content where “Bad Bob” was the author, in effect excluding his commentary globally across all applications. - Social network posting 846 operates as described with respect to
item 146 anditem 264 inFIGS. 1 and 2 respectively. Specifically, a social network posting rule comprises a user identifier, a resource filter, and a social network identifier. The resource filter is set to identify what commentary should be posted to a particular social network. When the user specified in the social network posting rule posts a comment, the comment is stored instorage 810. The added comment triggers a stored procedure. The stored procedure queries the newly added comment plus the added resource filter. If the comment satisfies the resource filter, the social network corresponding to the social network identifier in the social network posting rule receives a post. If the user has multiple social network rules, the rules are processed sequentially in the trigger. Alternatively, an executable or client side script directly invoking an API exposed by the social network or web provider may be used, thus obviating the need for SQL. - Statistics request 850 may provide the implementation basis for a number of applications. Specifically,
statistics requests 850 provide auditing data on operations onstorage 810. The data may be used for auditing, research or advertising purposes. The following are some exemplary applications. - Per
file statistics 852 may be collected via triggers. A table instorage 810 may contain one or more file touch counts as part ofstatistics 818. Whenever a file or file reference is retrieved, a trigger may run a stored procedure to increment a particular file touch count, or might store a touch record along with a date-time stamp. Alternatively, by implementing different types of retrievals in different stored procedures respectively, the stored procedures may increment different file touch counts. Upon receiving a retrieval request forstatistics 820, a query may be performed on the file touch counts to perform statistic analysis. For example, the most accessed files over a time period may be calculated. - Per
resource 854 and perindicia 856 touch counts may also be performed in a similar fashion. Specifically, a statistic table tracking frequency and time of certain operations may be set up as part ofstatistics 818. Stored procedures corresponding to the operations to be tracked would increment counts in the corresponding statistical tables. Statistical analysis could be performed by querying the statistical tables. - In general, as long as there is a stored procedure that performs an action, or a trigger that may be set on a table, the event may be counted. Accordingly, statistics table 818 might potentially support frequency of access by certain users, time of access by certain users, frequency of certain types of actions and the like.
-
Amalgamating persistence facility 860 performs the combinations as described with respect toitem 138 anditem 258 inFIG. 1 andFIG. 2 respectively. Specifically, any subset of file or resource may be stored in a single multi-media file for redistribution. Specifically, a user may search or filter for a file. If the search or filter yields multiple files, the user may select a single file. Upon selection, user will query for all resources associated or linked with the selected file. The query for example would use a file identifier for the selected file as a filter. The user will then specify which resources were of interest, for example by specifying a resource identifier. The user could also potentially specify the file itself. Depending on the file identifiers and resource identifiers specified, the resources could then be copied and then stored in a single multi-media file for redistribution. - The amalgamating
persistence facility 860 thus allows a user to store, distribute, and publish an aggregate or amalgam of associated resources, as a single file. - User interface 870 comprises the client side rendering components and associated tools to manipulate files being rendered. Tools may include, but are not limited to, search, filtering, rendering, annotating, and commentary tools. The user interface will vary depending on the application and is described in further detail in the following section.
-
FIGS. 9, 10, 11, 12, 13, 14, and 15 describe some exemplary embodiments. Specifically,FIG. 9 illustratesexemplary annotation tools 900,FIG. 10 illustrates an exemplary user interface for editing and viewing externalsynchronized commentary 1000;FIG. 11 illustrates an exemplary user interface for editing and viewing internalsynchronized commentary 1100;FIG. 12 illustrates an exemplary user interface for embeddedhot spots 1200; andFIG. 13 illustrates an exemplary user interface for multi-media hyper-branching 1300.FIG. 14 illustratesexemplary user interfaces 1400 for integratedweb service resources 1410 andcommentary 1420.FIG. 15 illustrates an exemplary user interface for browsing andauthoring 1500. -
FIG. 9 illustrates an exemplary user interface of tools forannotation 900. Annotation tools allow a user to select a particular location at a particular time offset from the beginning of the file, and to associate text and other data with that location and time offset. Typically, during rendering, annotations appear as text bubbles. The text bubbles may potentially contain links to web sites or other URL addressable resources. - In
user interface 900, a user may access a multi-media file in a browser from a web site at aparticular URL 910. As the multi-media file renders,annotation toolset 920 appears containing a bounding box tool, here represented by a square icon, and a text tool, here represented by a “T” icon. Clicking on the bounding box tool allows a user to select a particular location. Clicking on the text tool allows a user to enter text. Upon selecting the location with the bounding box tool, an editor appears over that location. Specifically, anannotation text box 930, anURL box 940, and a metadatatag text box 950 appear. Inannotation text box 930, arbitrary text may be entered. InURL box 940, one or more URL links to web sites or to other URL addressable resources may be entered. In this way, an annotation may provide for links in addition to static text. In metadatatag text box 950, the user may enter keywords or other text tags to associate with the annotation. Among other applications, these metadata tags may be used as part of a resource filter. The user may save or cancel the entered annotation by clicking onbuttons 960. If the save button is clicked, the annotation is committed to a data store. Otherwise, the entry is simply removed. In either option, controls 930, 940, 950, and 960 disappear.Time scroll bar 970 may be used to move the video backwards and forwards in rendering to facilitate specifying the time offset to add an annotation. -
FIG. 10 illustrates an exemplary user interface for editing and viewing externalsynchronized commentary 1000.FIG. 11 illustrates an exemplary user interface for editing and viewing internalsynchronized commentary 1100. - Synchronized commentary is where commentary is associated with a time offset from the beginning of the file. This time offset, called a synchronized timestamp, represents an insertion point of a comment into a file. When viewing comments, comments may be displayed to the viewer at the specific moment in time during the video in which the comment was authored. Synchronized commentary may be external, where the commentary is displayed outside of the rendered multi-media file, usually in a separate scroll box, and is only associated with a particular time offset with respect to the multi-media file. Internal synchronized commentary appears in the rendered multi-media file and is associated with a particular time offset and a location with respect to the multi-media file. Accordingly, internal synchronized commentary may be considered a generalized annotation.
- For example, when a user chooses to author and submit a comment at the 3:42 point within the video, all subsequent viewers may see this comment at the 3:42 point within the video during video playback.
-
FIG. 10 provides an exemplary user interface for editing and viewing external synchronized commentary. Asvideo 1010 is rendered, synchronized comments are to appear incomment box 1020.Time scroll bar 1030 shows the progress of the video as it renders. - When a comment's synchronized timestamp passes, the
corresponding comment 1040 appears sequentially in thecomment box 1020. Alternatively, comments corresponding to the synchronized are bolded or otherwise highlighted. Furthermore, thecomment box 1020 may scroll through the comments such that the comments corresponding to the current synchronized timestamps are visible in thecomment box 1020. - A user may also enter external synchronized commentary in
comment box 1020. When the user clicks on the interior ofcomment box 1020, the file pause in rendering, and the user may enter a comment in thecomment box 1020. The comment need not be limited to text. Valid entries include, but are not limited to, URL addressable resources, tags, pictures, audio, and other multi-media files. At the end of the entry, the file resumes rendering at the point that it paused. - Optionally, the time of the
synchronized timestamp 1050 is also displayed. Clicking on thesynchronized timestamp 1050 will reset the time of the rendered video to that of thesynchronized timestamp 1050. For example, if the current time on the time scroll bar is 1:10, and one clicks on a comment with a synchronized timestamp of 0:52, the video will move to time 0:52. If the time of thesynchronized timestamp 1050 is present, entering a comment incomment box 1020 will automatically display the timestamp of the file when the comment was entered. -
FIG. 11 illustrates an exemplary user interface to edit internal synchronized commentary. - As
video 1110 renders, a toolset comprising atext box 1120 and atoolbar 1130 may be activated to allow for the entering of commentary. Thetext box 1120 and thetoolbar 1130 may be activated by clicking on the file being rendered at the location the internal synchronized content is to be entered. At that point, rendering the file is paused.Text box 1120 is used to enter text such as captions and commentary.Toolbar 1130 compriseseveral icons 1140 to allow for the editing and modification of the commentary. Clicking on the “x” icon closes thetext box 1120 andtoolbar 1130. The pencil icon represents the ability to enter text. The interlocking rings icon represents the ability to enter a URL or a link to a URL addressable resource. Comments may be rated and filtered based on the “thumbs-up” and “thumbs-down” icons. Specifically, the comment rating, here in this video shown as “+6”, may be increased or decreased by clicking on the “thumbs-up” and “thumbs-down” icons respectively. Clicking on the flag icon enables a user to flag the comment as of particular interest. In some implementations, flagging is used specifically to indicate potentially offensive content. At the end of the entry, the file resumes rendering at the point that it paused. - As with internal synchronized commentary, external synchronized commentary is not limited to text. Rather, external synchronized commentary includes, but is not limited to, URL addressable resources, tags, pictures, audio, and other multi-media files.
- Once internal synchronized commentary has been entered, the rendered the file will display the internal commentary at the times and locations specified during editing.
-
FIG. 12 illustrates an exemplary user interface for embeddedhot spots 1200. Hot spots are areas of a video that are hyper-linked to other content. Hot spots may be used to obtain more information about items in a video, or potentially to provide advertising opportunities. For example, while watching a video, a user may become interested in a person's suit. One option would be to embed anannotation 1210 which encourages a viewer to “Buy xyz suits” along with a URL. Clicking on the URL will send the user to the “xyz suits” web site. - A less intrusive alternative to an explicit annotation is to specify a series of points in the video at a particular time offset from the beginning of the video, which if clicked, will send a user to a specified URL. For example, the pixel locations roughly corresponding to those of the
suit 1220, for a range of time such as 40 seconds to 50 seconds, are associated with a URL. The URL and associations to the pixels are stored in a data store. Note that inFIG. 12 , the playing clock is at 48 seconds, which is between 40 and 50 seconds. Accordingly, by clicking on any of the pixel locations roughly corresponding to the suit, will navigate the user to a relevant web site. This contrasts with theannotation 1210 embodiment described above in that no annotation intrudes on the user experience, the embedded hot spots are on the item of interest itself, and the user clicks on the link on his or her own volition rather than being prompted by an annotation. -
FIG. 13 illustrates an exemplary user interface for multi-media hyper-branching 1300. Hyper-branching is the hyper-linking of files with each other. The disclosed data association and retrieval facility provides for the embedding of links, including URLs that point to other files, which in turn may have embedded links to other files. Note also that hyper-links may also reference parts of a file such as a particular time or time location in a video or an HTML anchor tag within the same HTML document. The user interface in 1300 illustrates video files being mutually hyper-linked together to implement multi-media hyper-branching. - 1310 shows a multi-media file being rendered. In this case, the file is a video file.
- On the margin of the screen,
toolset 1320 contains a scrolling bar ormulti-media file thumbnails 1330. Eachthumbnail 1330 comprises a hyper-link to the video represented by thethumbnail 1330. Clicking on the thumbnail will close themulti-media file 1310 currently being rendered and begin rendering the corresponding video. At each end is anarrow 1340 that enables scrolling if the linked thumbnails cannot be accommodated by the viewable space available on the scroll bar. Hovering the mouse pointer over athumbnail 1330 expands it to alarger preview 1350 of the hyper-linked video.Tooltip 1360 provides an optional caption to describe or title the hyper-linked video. Thenavigation control 1370, allows a user to move forwards and backwards in navigation. Specifically, as a user clicks on hyper-linked video, the user will create a chain of videos viewed. When the back arrow ofnavigation control 1370 is clicked, the video viewed previously in the chain is displayed, and may be set to return to the point of time during rendering that the video was navigated away from. If there is no previously viewed video, functionality is disabled. However, as the user moves backwards in the chain of videos viewed, there will be videos that had been viewed later in the chain. Accordingly, when the forward arrow ofnavigation control 1370 is clicked, the video that had been viewed next in the navigation chain will be viewed, and may be set to return to the point of time during rendering that the video was navigated away from. If there are no subsequent videos in the chain, the forward arrow functionality is disabled. -
Toolset 1320 andnavigation control 1370 are to appear in the same locations regardless of the media player used to render the hyper-linked files. This is important since the hyper-linked files may come from many different repositories. For example, some videos may be from YouTube™ and others from a locally stored. Different sites may have different renderers. Consider a first site renders a video with a YouTube™ viewer, which is hyper-linked to a second video on a second site which renders with an Apple QuickTime™ viewer. The hosting site first renders the first video with the YouTube™ viewer. Upon the viewer clicking on the hyper-linked second video, the user the hosting site then switches the rendering viewer to the Apple QuickTime™ viewer and renders the second video. The second viewer will be the same size and in the same location as where the first viewer previously appeared.Toolset 1320 andnavigation control 1370 also appear in the same relative locations and with the same sizes within the second viewer as they did in the first viewer. In this way, the user hyper-linking experience remains consistent despite the change in viewers. - Upon clicking on a hyper-linked video, the video may start at the beginning of the file. However, in an alternative embodiment, the hyper-linked videos are synchronized. For example, synchronization times are identified within the hyper-linked videos that correspond to each other, such as when a batter steps up to the plate at a baseball game. An offset from the synchronization time is tracked by the web site. Accordingly, if a video of the batter is rendering, clicking on another video not only starts playing the hyper-linked video, it starts playing at the same offset from the synchronization time as the previous video. In this way, a user may see the event of the batter batting from different vantage points without discontinuity. One video showing the batter from the dugout, can be switched to a hyper-linked video by a viewer in the stands picking up at the same time the first video left off.
- A variation of having video start times for hyper-linked videos is to have user specified or machine specified start times. For example, a video with a point of interest at time 0:52 could have a user specify that time offset. When the video is accessed, the video would begin at 0:52 rather the beginning.
- Synchronization times may be stored in the videos themselves as metadata. Synchronization times may be added after the video is acquired. Alternatively, if the video is acquired from a networked device, the device may poll a web service with a global time, such as keyed from a public atomic clock, and automatically stored in the media file. For non-networked devices, the date-time stamp of the time of capture with respect to the device's local clock may be used.
-
FIG. 14 illustratesexemplary user interfaces 1400 for integratedweb service resources 1410 andcommentary 1420. In one embodiment, the data association and retrieval facility provides the option of not only selectively displaying a given file's associated or linked resources according to a filter, but also affirmatively retrieving resources that a user may opt to associate or link from third-party sources. Examples of third-party sources may include, but are not limited to, social networks, such as Twitter™ and Facebook™, or searchable repositories of videos, such as YouTube™. -
Service bar 1430 provides a list of potential sources of resources to filter on. For example, in exemplaryweb service view 1410, “Web Service 1” is selected inservice bar 1430. Accordingly, the retrieval indicia of the currently rendering video is used to query “Web Service 1”. At least some of retrieved results from “Web Service 1” are displayedcomment scroll box 1440. - Similarly, in
exemplary comment view 1420, “Comments” is selected inweb service bar 1430. Accordingly, the retrieval indicia of the currently rendering video is used to query the data association andretrieval facility storage 122, for all associated or linked comments. The retrieved comments that are associated or linked to the currently rendering video is displayed incomment scroll box 1440. Resource filters may be optionally utilized to further narrow the resources retrieved prior to display incomment scroll box 1440. - As an alternative to displaying commentary in
comment scroll box 1440, aticker bar 1450 may be superimposed over the currently rendering video. As posts are made to a pre-selected web service, the posts are displayed in the scrollingticker bar 1450. Additional information, such as author or time posted may also be displayed. Inexemplary comment view 1420, theticker bar 1450 is displaying a comment posted by “John Snow (seconds ago)”. -
FIG. 15 illustrates an exemplary user interface forbrowsing authoring 1500. The disclosed data association and retrieval facility is designed to allow any number of resources, multi-media or otherwise to be hyper-linked to a file. The resources themselves may by hyper-linked to other resources, other locations within the same resource, or backlinked back to the original file. In this way, a custom user experience that aggregates arbitrary resources, from arbitrary sources, third-party or otherwise, may be developed. Furthermore, the hyper-linking is to be done at time of consumption. Unlike present authored hyper-linked media which pre-defines hyper-linked resources before consumption, a user may dynamically add a link at the time of consumption. Thus, as a user may associate or link, a video, or a still picture, a text, or an arbitrary resource may be linked to a video, while they are watching that video. - To this end,
exemplary user interface 1500 shows a hyper-branchingvideo pane 1510, a video/stillbrowser 1520 and a synchronizedcomment scroll box 1530 as integrated into thesame user interface 1510. Hyper-branchingvideo pane 1510 operates as described with respect toFIG. 13 . Synchronized comment box operates as described with respect toFIG. 10 andFIG. 11 , except that hyper-branchingvideo pane 1510 replaces 1010 and 1110 is where the video is rendered and synchronized against.Internal commentary tools video pane 1510. - Video/still
browser 1520 allows a user to select a video or still image to hyper-link to the currently rendering video in hyper-branchingvideo pane 1510. Video/stillbrowser 1520 displays thumbnails of videos or stillimages 1540. Thumbnails 1540 may be browsed via scrolling controls 1550. Clicking on a thumbnail selects the corresponding video or image for hyper-linking to the presently rendering video. The user may drag and drop the video to hyper-branchingvideo pane 1510 where the video or image is added to the list of hyper-linked videos. In some embodiments, the hyper-linked video may be synchronized with the playing video to enable rendering to occur against the same synchronizing time offsets as described with respect toFIG. 13 . The selectedthumbnail 1540 may also be dragged and dropped to thecommentary scroll box 1530 and added as an external comment. If the external comment is to be synchronized, the video in hyper-branchingvideo pane 1510 pauses, allowing additional text to be entered in thecommentary scroll box 1530. Playing resumes when the editing is complete. Although the internalsynchronized commentary tools FIG. 15 , if activated, videos or images may be dragged and dropped into thecommentary tool 1120. The effect is to embed a link to the video or image corresponding to the dragged and droppedthumbnail 1540 in to the internal synchronized comment. - While there are many applications of the disclosed data association and retrieval facility, the following section describes some exemplary end-to-end scenarios.
FIG. 16 is a diagram of anexemplary authoring scenario 1600.FIG. 17 is a diagram of an exemplary association byinference scenario 1700.FIG. 18 is a diagram of an exemplary reverselink farming scenario 1800. -
FIG. 16 is a diagram of anexemplary authoring scenario 1600. Specifically, auser consuming file 1610, may dynamically add links to other resources at the time of consumption. For example, a person watching a video of a baseball game, may pause the video, and add text commentary about the size of attendance at the game and then resume. Afterwards, the user may again pause the video and add a link to a picture of one of the players to video, and then resume. Thereafter, the user may yet again pause the video and add a link to a different video of the same game and then resume. Other users watching the same video, or thereafter accessing the video would enjoy the benefit of the links. Alternatively, the final set of links may be persisted, as a query against the data association andretrieval facility storage 122 and forwarded to other users. - Authoring scenario 16 begins with
file 1610. As the user consumes the file, for example by rendering the file in a web site, the user may addlink 1612 toresource 1620. Later, the user may addlink 1614 toresource 1630. A resource, such as illustrated byresource 1620, may have links embedded. Or a resource, such as illustrated byresource 1630, may be empty of links. In fact, a resource need not necessarily have the capability of embedding links. Alternatively, a resource might be navigated to, and links subsequently added by the user or by other users in the same or in subsequent session. - Links may come in the form of references such as URLs or by file paths. In general, a resource may be an URL linkable object. In some circumstances, a resource may be an index to an entry in the data association and
retrieval facility storage 122. - Links, such as illustrated by
link 1622 toresource 1640 and link 1624 toresource 1650 may be to yet other resources. Alternatively, a link, such as illustrated bylink 1626, may be a self-referential link. A self-referential link to a video or audio may point to the same file, but to a different location or time offset in the video or audio respectively. Other links, such as illustrated bylink 1628 may be backlinks to theoriginal file 1610. Backlinks may simply link back to the original file, or in the case of video, may link to a different location or time offset in the video or audio respectively. - Because of backlinking, cycles in the link graph may occur.
Link 1652 illustrates such an eventuality, where 1652 provides a link back to theoriginal file 1610. -
FIG. 17 is a diagram of an exemplary association byinference scenario 1700. Where a user may provide an explicit association by creating a link between a file and a resource, it is possible for the data association and retrieval facility to infer a link between a file and a resource. Such linking is called association by inference. - Consider a
consumer 1710 watching avideo 1720 of the Wimbledon tennis match. Thevideo 1720 has retrieval indicia in the form of attributes and content. Some subset of this content may be used to query either the disclosed data association andretrieval facility storage 122, or third-party resource providers for content. Example third-party resource providers may include, but are not limited to, social networks, such as Twitter™ and Facebook™, or searchable repositories of videos, such as YouTube™. Some of the retrieval indicia ofvideo 1720 may be specific to a particular time offset withinvideo 1720. - As the
consumer 1710 watchesvideo 1720, in parallel, and potentially independent of the watching, the disclosed data association and retrieval facility queries data association andretrieval facility storage 122 and third-party resource providers for content. The content may then be streamed simultaneously to theconsumer 1710, in many possible locations, including, but not limited to, in a separate pane, in the same window, in a different window, as a picture in picture window superimposed overvideo 1720, or on another device altogether. An example of content inferred to be associated with the Wimbledon match may be a liveaudio commentary stream 1730 on that verysame match 1720.Commentary stream 1730 could be synchronized to align the comments of 1730 to be displayed as the corresponding events are rendered invideo 1720. Other resources may be triggered by time offsets invideo 1720. For example,advertisement video 1740 may be triggered whenvideo 1720 has a portion the zooms in on a particular tennis racket.Advertisement 1740 may stream either in the same window or in a different window and terminate before theoriginal video 1710 completes. - It is to be noted that inferred association need not be on retrieval indicia of the
file 1720 being watched, but also on attributes of theconsumer 1710 himself. For example, ifconsumer 1710 happens to be at the corner of Haight and Ashbury in San Francisco, a web aware cell phone with GPS might retrieve resources inferred to be of interest by showing a web site on the history of the location. - Inferred association need not be on attributes on the real world such as geolocation, time and place. For example, if the
consumer 1710 is consuming a virtual experience, such as playing a video game, in particular a massively multiple-player role playing game (MMORPG), attributes of that experience, such as game name, location in game, event in the game, may also trigger the rendering of inferred resources. -
FIG. 18 is a diagram of an exemplary reverselink farming scenario 1800. Reverse link farming is a variation on crowdsourced news collection. - Crowdsourced news collection is the notion that content, usually relating to news, may be aggregated by specifying a submission point. A submission point may be a web page configured to receive posts of URLs, files, file references, and/or content or content references. The submission point may relate to a news topic. A submission point may be static. Specifically, the submission point is a dedicated site to receive all news content submissions relating to a news topic. Alternatively, a submission point may be dynamically created. Specifically, a web site may receive a notification about a news item. A human moderator may create a submission point, or alternatively the web site may automatically generate a submission point. The address of the submission point may then be broadcast to users to solicit news content and news content references.
- Users may then submit content and/or content references. References may be transmitted via SMS or via email. Alternatively, users may submit content and/or content references by entering fields in the web site submission point.
- The submission point may then be accessed by a consuming user, and may be presented with an amalgamation of the recent posted submissions. Specifically, software may review submission point postings and may automatically determine the quality of submissions from various metrics including, but not limited to author history, author reputation, date-time, and submission location. Software may collate submissions for duplication. Software may then select and display submissions onto a single web page.
- The amalgamated display may provide a search facility to filter results. One search possibility may be news topic. In this way, a submission point may receive submissions relating to multiple news topics, or alternatively may subdivide a news topic into subtopics. For example, a news topic relating to an oil spill may be subdivided into a subtopic about oil platform safety and a subtopic about environmental impact.
- The amalgamated display may support user commentary and annotations using, for example, the facilities described in earlier sections.
- Submission points and associated content may be packaged as widgets. At various points in time, and administrator, or a user may have the submission point persist all submissions including, but not limited to content references, commentary and annotations. The widget could be redistributed to other users. For example, an embeddable embodiment of a widget may store ten URL links relating to an oil spill and one URL to an annotated video, or other multi-media resource. The widget may then be sent to second user who embeds the widget in his/her browser. Upon accessing the widget, the second user may browse the URLs and the annotated video. The user may see new annotations in the video that were added by other users since the video reference was persisted in the widget. Alternatively, the widget could encapsulate viewing tools and commentary and annotation tools while viewing the persisted content. Note that an embeddable widget is but one embodiment. URLs and content references may be persisted on a server, in an XML file, to name a few alternative techniques.
- Turning to the specific case of reverse linked farming, in 1800, consider the situation where a
file 1810 may haveusers 1820 associating user generatedcontent 1830 and links toresources 1840 that belong to a thirdparty resource provider 1850. Reverse link farming, or reverse link aggregation is where the user generatedcontent resources 1830 that are associated with afile 1810 are inferred to be related to the linkedresources 1840 and in turn to third-party resource 1850, and accordingly are aggregated. Specifically,reverse link aggregator 1860 collects all user generatedcontent 1830, optionally filters the user generated content on retrieval indicia on the linkedresources 1840, and repackages or edits the aggregated content back to the owner of thethird party resource 1850 owning the linked video. Repackaging may be done at an arbitrary level of granularity, including, but not limited to a specific link reference, a resource, a file, and the like. Proceeds of the sale may be shared withuser 1820 viapayment 1870. - An example is where MobNews.com, has a video of
news story 1810. Someusers 1820 view thestory 1810 and post commentary, annotations, and other original content, multi-media or otherwise.Other users 1820 post links torelated videos 1840. One of thosevideos 1840 is a video from third party resource provider CNN.com 1850. The aggregator facility of MobDub.com/news 1860, here shown in a box separate from 1810, queries the data association andretrieval facility storage 122, for all user generatedcontent 1830 andlinks 1840 relating to the news story.Aggregator 1860 creates and executes resource filters to extract out user generatedcontent 1830 andlinks 1840 that best relate to the news story. The materials are potentially edited. The final edited materials are sold back to the third party resource provider CNN.com 1850 for redistribution or publishing, again at an arbitrary level of granularity as described above. To motivateusers 1820 to continue to link,aggregator 1860 may opt to provide micropayments orother payments 1870 to thoseusers 1820. - In compliance with the statute, the subject matter of this application has been described in a language more or less specific as to structure and method features. It is to be understood, however, that the embodiments are not limited to the specific features described, since the disclosure herein comprise exemplary forms of putting the present embodiments into effect. The present embodiments are, therefore, claimed in any of its forms or modifications within the proper scope of the appended claims appropriately interpreted in accordance with the doctrine of equivalents and other applicable judicial doctrines.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/277,776 US20170017653A1 (en) | 2010-01-14 | 2016-09-27 | Crowdsourced multi-media data relationships |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29514610P | 2010-01-14 | 2010-01-14 | |
US13/004,828 US9477667B2 (en) | 2010-01-14 | 2011-01-11 | Crowdsourced multi-media data relationships |
US15/277,776 US20170017653A1 (en) | 2010-01-14 | 2016-09-27 | Crowdsourced multi-media data relationships |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/004,828 Division US9477667B2 (en) | 2010-01-14 | 2011-01-11 | Crowdsourced multi-media data relationships |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170017653A1 true US20170017653A1 (en) | 2017-01-19 |
Family
ID=44259328
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/004,828 Active 2032-12-26 US9477667B2 (en) | 2010-01-14 | 2011-01-11 | Crowdsourced multi-media data relationships |
US15/277,776 Abandoned US20170017653A1 (en) | 2010-01-14 | 2016-09-27 | Crowdsourced multi-media data relationships |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/004,828 Active 2032-12-26 US9477667B2 (en) | 2010-01-14 | 2011-01-11 | Crowdsourced multi-media data relationships |
Country Status (2)
Country | Link |
---|---|
US (2) | US9477667B2 (en) |
WO (1) | WO2011088080A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140279976A1 (en) * | 2013-03-15 | 2014-09-18 | Sony Pictures Technologies Inc. | Method and system for recording information about rendered assets |
US11449548B2 (en) * | 2019-11-27 | 2022-09-20 | Elasticsearch B.V. | Systems and methods for enriching documents for indexing |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US10296561B2 (en) | 2006-11-16 | 2019-05-21 | James Andrews | Apparatus, method and graphical user interface for providing a sound link for combining, publishing and accessing websites and audio files on the internet |
US20110258545A1 (en) * | 2010-04-20 | 2011-10-20 | Witstreams | Service for Sharing User Created Comments that Overlay and are Synchronized with Video |
US8359361B2 (en) | 2010-05-06 | 2013-01-22 | Microsoft Corporation | Techniques to share media files through messaging |
US8385593B2 (en) | 2010-06-18 | 2013-02-26 | Google Inc. | Selecting representative images for establishments |
US8590014B1 (en) * | 2010-09-13 | 2013-11-19 | Zynga Inc. | Network application security utilizing network-provided identities |
KR101740059B1 (en) * | 2011-04-01 | 2017-05-26 | 한국전자통신연구원 | Method and apparatus for providing time machine service based on social network service |
US10270831B2 (en) * | 2011-04-04 | 2019-04-23 | Soundlink, Inc. | Automated system for combining and publishing network-based audio programming |
US20120278322A1 (en) * | 2011-04-26 | 2012-11-01 | International Business Machines Corporation | Method, Apparatus and Program Product for Personalized Video Selection |
US10402485B2 (en) | 2011-05-06 | 2019-09-03 | David H. Sitrick | Systems and methodologies providing controlled collaboration among a plurality of users |
US11611595B2 (en) | 2011-05-06 | 2023-03-21 | David H. Sitrick | Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input |
WO2013003945A1 (en) * | 2011-07-07 | 2013-01-10 | Locationary, Inc. | System and method for providing a content distribution network |
US9058565B2 (en) | 2011-08-17 | 2015-06-16 | At&T Intellectual Property I, L.P. | Opportunistic crowd-based service platform |
US8543582B1 (en) | 2011-08-26 | 2013-09-24 | Google Inc. | Updateable metadata for media content |
BR112014008453A2 (en) * | 2011-10-11 | 2017-04-11 | Intel Corp | automatic code generation for automatic collection of collaborative data |
US8335833B1 (en) * | 2011-10-12 | 2012-12-18 | Google Inc. | Systems and methods for timeshifting messages |
US9875448B2 (en) | 2011-11-30 | 2018-01-23 | At&T Intellectual Property I, L.P. | Mobile service platform |
US9286414B2 (en) * | 2011-12-02 | 2016-03-15 | Microsoft Technology Licensing, Llc | Data discovery and description service |
US9292094B2 (en) | 2011-12-16 | 2016-03-22 | Microsoft Technology Licensing, Llc | Gesture inferred vocabulary bindings |
US20150074397A1 (en) | 2012-03-13 | 2015-03-12 | Cognilore Inc. | Method of distributing digital publications incorporating user generated and encrypted content with unique fingerprints |
WO2013134854A1 (en) * | 2012-03-13 | 2013-09-19 | Cognilore Inc. | Method of navigating through digital content |
US9754585B2 (en) | 2012-04-03 | 2017-09-05 | Microsoft Technology Licensing, Llc | Crowdsourced, grounded language for intent modeling in conversational interfaces |
US9092749B2 (en) * | 2012-04-13 | 2015-07-28 | International Business Machines Corporation | Information governance crowd sourcing |
US9436738B2 (en) * | 2012-04-19 | 2016-09-06 | Nant Holdings Ip, Llc | Mechanical Turk integrated IDE, systems and method |
US9075760B2 (en) | 2012-05-07 | 2015-07-07 | Audible, Inc. | Narration settings distribution for content customization |
JP2015517684A (en) * | 2012-05-07 | 2015-06-22 | オーディブル・インコーポレイテッドAudible, Inc. | Content customization |
US9798457B2 (en) * | 2012-06-01 | 2017-10-24 | Microsoft Technology Licensing, Llc | Synchronization of media interactions using context |
US9381427B2 (en) | 2012-06-01 | 2016-07-05 | Microsoft Technology Licensing, Llc | Generic companion-messaging between media platforms |
US10649613B2 (en) | 2012-06-07 | 2020-05-12 | Wormhole Labs, Inc. | Remote experience interfaces, systems and methods |
US10489389B2 (en) | 2012-06-07 | 2019-11-26 | Wormhole Labs, Inc. | Experience analytic objects, systems and methods |
US10700944B2 (en) | 2012-06-07 | 2020-06-30 | Wormhole Labs, Inc. | Sensor data aggregation system |
CN104395896B (en) * | 2012-06-19 | 2018-01-02 | 英派尔科技开发有限公司 | Automated content to communication network forwards |
US20140015749A1 (en) * | 2012-07-10 | 2014-01-16 | University Of Rochester, Office Of Technology Transfer | Closed-loop crowd control of existing interface |
US9372833B2 (en) * | 2012-09-14 | 2016-06-21 | David H. Sitrick | Systems and methodologies for document processing and interacting with a user, providing storing of events representative of document edits relative to a document; selection of a selected set of document edits; generating presentation data responsive to said selected set of documents edits and the stored events; and providing a display presentation responsive to the presentation data |
WO2014047425A1 (en) * | 2012-09-21 | 2014-03-27 | Comment Bubble, Inc. | Timestamped commentary system for video content |
US20140106837A1 (en) * | 2012-10-12 | 2014-04-17 | Microsoft Corporation | Crowdsourcing to identify guaranteed solvable scenarios |
US10971191B2 (en) * | 2012-12-12 | 2021-04-06 | Smule, Inc. | Coordinated audiovisual montage from selected crowd-sourced content with alignment to audio baseline |
US10387525B2 (en) * | 2012-12-19 | 2019-08-20 | Iqvia Inc. | Method and system for increasing data reliability through crowd sourcing |
US9183261B2 (en) | 2012-12-28 | 2015-11-10 | Shutterstock, Inc. | Lexicon based systems and methods for intelligent media search |
US9183215B2 (en) | 2012-12-29 | 2015-11-10 | Shutterstock, Inc. | Mosaic display systems and methods for intelligent media search |
US9472113B1 (en) | 2013-02-05 | 2016-10-18 | Audible, Inc. | Synchronizing playback of digital content with physical content |
US20140229488A1 (en) * | 2013-02-11 | 2014-08-14 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus, Method, and Computer Program Product For Ranking Data Objects |
US9032000B2 (en) * | 2013-02-19 | 2015-05-12 | Digital Globe Inc. | System and method for geolocation of social media posts |
US10162893B2 (en) * | 2013-02-20 | 2018-12-25 | The Marlin Company | Configurable electronic media distribution system |
US9092498B2 (en) | 2013-02-21 | 2015-07-28 | International Business Machines Corporation | Data distribution system, method and program product |
CN104009965A (en) * | 2013-02-27 | 2014-08-27 | 腾讯科技(深圳)有限公司 | Method, apparatus and system for displaying mobile media information |
EP2973066A4 (en) | 2013-03-11 | 2016-11-23 | Creopoint Inc | Customizable, real time intelligence channel |
US10747837B2 (en) | 2013-03-11 | 2020-08-18 | Creopoint, Inc. | Containing disinformation spread using customizable intelligence channels |
US8782140B1 (en) | 2013-03-13 | 2014-07-15 | Greenfly Digital, LLC | Methods and system for distributing information via multiple forms of delivery services |
US9461958B1 (en) | 2013-03-13 | 2016-10-04 | Greenfly, Inc. | Methods and system for distributing information via multiple forms of delivery services |
US20140282781A1 (en) * | 2013-03-14 | 2014-09-18 | Wipro Limited | Methods for processing and for end user management of interactive content and devices thereof |
US9313284B2 (en) | 2013-03-14 | 2016-04-12 | International Business Machines Corporation | Smart posting with data analytics and semantic analysis to improve a message posted to a social media service |
US9564175B2 (en) | 2013-04-02 | 2017-02-07 | International Business Machines Corporation | Clustering crowdsourced videos by line-of-sight |
US9348821B2 (en) * | 2013-04-05 | 2016-05-24 | Batzu Media, Inc. | Method and system for content management |
US20140351329A1 (en) * | 2013-05-23 | 2014-11-27 | François Colon | Method and system for automatically reporting an event from files received on a computer server |
US9317486B1 (en) | 2013-06-07 | 2016-04-19 | Audible, Inc. | Synchronizing playback of digital content with captured physical content |
US9575621B2 (en) * | 2013-08-26 | 2017-02-21 | Venuenext, Inc. | Game event display with scroll bar and play event icons |
US10500479B1 (en) | 2013-08-26 | 2019-12-10 | Venuenext, Inc. | Game state-sensitive selection of media sources for media coverage of a sporting event |
US10282068B2 (en) | 2013-08-26 | 2019-05-07 | Venuenext, Inc. | Game event display with a scrollable graphical game play feed |
US9916289B2 (en) * | 2013-09-10 | 2018-03-13 | Embarcadero Technologies, Inc. | Syndication of associations relating data and metadata |
US9779098B2 (en) | 2013-11-13 | 2017-10-03 | Upthere, Inc. | Navigating through media object collection |
US9403482B2 (en) | 2013-11-22 | 2016-08-02 | At&T Intellectual Property I, L.P. | Enhanced view for connected cars |
US9578377B1 (en) | 2013-12-03 | 2017-02-21 | Venuenext, Inc. | Displaying a graphical game play feed based on automatically detecting bounds of plays or drives using game related data sources |
WO2015134835A1 (en) * | 2014-03-07 | 2015-09-11 | Remote Media, Llc | Virtual file system and method with bi-directional media file synchronization |
US9996623B1 (en) | 2014-06-27 | 2018-06-12 | Pubsonic, Inc. | Computer-implemented method of carrying out a search for information available over a network |
US20160019707A1 (en) * | 2014-07-18 | 2016-01-21 | Roovy, Inc. | Mixed media file system |
US11250369B2 (en) | 2015-01-23 | 2022-02-15 | Sponsorhouse, Inc. | Computerized system for detecting the exposure and impact of an entity within virtual networking platforms |
US10447626B2 (en) | 2015-07-07 | 2019-10-15 | International Business Machines Corporation | Control of messages in publish/subscribe system |
US11308264B2 (en) | 2015-07-07 | 2022-04-19 | International Business Machines Corporation | Managing document annotations in a publish/subscribe system |
US9578351B1 (en) * | 2015-08-28 | 2017-02-21 | Accenture Global Services Limited | Generating visualizations for display along with video content |
US9679497B2 (en) | 2015-10-09 | 2017-06-13 | Microsoft Technology Licensing, Llc | Proxies for speech generating devices |
US10262555B2 (en) | 2015-10-09 | 2019-04-16 | Microsoft Technology Licensing, Llc | Facilitating awareness and conversation throughput in an augmentative and alternative communication system |
US10148808B2 (en) * | 2015-10-09 | 2018-12-04 | Microsoft Technology Licensing, Llc | Directed personal communication for speech generating devices |
EP3446219B1 (en) * | 2016-04-22 | 2022-11-09 | Vertigo Media, Inc. | System and method for enhancing data handling in a network environment |
WO2017192132A1 (en) * | 2016-05-04 | 2017-11-09 | Vidangel, Inc. | Seamless streaming and filtering |
US10601816B1 (en) * | 2016-06-09 | 2020-03-24 | Amazon Technologies, Inc. | Account recovery |
US10417022B2 (en) | 2016-06-16 | 2019-09-17 | International Business Machines Corporation | Online video playback analysis and assistance |
US10872486B2 (en) * | 2016-10-31 | 2020-12-22 | Microsoft Technology Licensing, Llc | Enriched polling user experience |
US11392632B1 (en) * | 2016-12-12 | 2022-07-19 | SimpleC, LLC | Systems and methods for locating media using a tag-based query |
EP3349394B1 (en) * | 2017-01-16 | 2021-11-10 | Vertigo Media, Inc. | System, method, and application for exchanging content in a social network environment |
US20180248977A1 (en) * | 2017-02-24 | 2018-08-30 | Satori Worldwide, Llc | Selective distribution of messages in a publish-subscribe system |
WO2018237311A1 (en) * | 2017-06-22 | 2018-12-27 | Walmart Apollo, Llc | Systems and methods for an information storage and retrieval system for an electronic document interchange (edi) environment |
US11741364B2 (en) | 2018-04-10 | 2023-08-29 | Hookit, Llc | Deep neural networks modeling |
CN115187701A (en) * | 2018-10-16 | 2022-10-14 | 华为技术有限公司 | Content editing method and terminal |
WO2020142172A1 (en) * | 2019-01-03 | 2020-07-09 | Sponsorhouse, Inc. DBA Hookit | Data prioritization through relationship analysis mapping |
US10693956B1 (en) | 2019-04-19 | 2020-06-23 | Greenfly, Inc. | Methods and systems for secure information storage and delivery |
CN111541949B (en) * | 2020-04-30 | 2021-09-14 | 上海哔哩哔哩科技有限公司 | Interaction method and system for barrage colored eggs |
US11126682B1 (en) * | 2020-07-06 | 2021-09-21 | International Business Machines Corporation | Hyperlink based multimedia processing |
US20220377413A1 (en) * | 2021-05-21 | 2022-11-24 | Rovi Guides, Inc. | Methods and systems for personalized content based on captured gestures |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088729A1 (en) * | 2002-10-30 | 2004-05-06 | Imagic Tv Inc. | Ratings based television guide |
US20050144305A1 (en) * | 2003-10-21 | 2005-06-30 | The Board Of Trustees Operating Michigan State University | Systems and methods for identifying, segmenting, collecting, annotating, and publishing multimedia materials |
US20050188406A1 (en) * | 2004-02-23 | 2005-08-25 | Gielow Christopher C. | System and method for managing applications and media content of a wireless communication device |
US20070077921A1 (en) * | 2005-09-30 | 2007-04-05 | Yahoo! Inc. | Pushing podcasts to mobile devices |
US20070100699A1 (en) * | 2003-04-24 | 2007-05-03 | Amir Ajizadeh | Interactive System and Methods to Obtain Media Product Ratings |
US20080306943A1 (en) * | 2004-07-26 | 2008-12-11 | Anna Lynn Patterson | Phrase-based detection of duplicate documents in an information retrieval system |
US20090222115A1 (en) * | 2008-02-29 | 2009-09-03 | David Malcolm | Systems and methods for album playback in a random mode |
US20090249185A1 (en) * | 2006-12-22 | 2009-10-01 | Google Inc. | Annotation Framework For Video |
US20090297118A1 (en) * | 2008-06-03 | 2009-12-03 | Google Inc. | Web-based system for generation of interactive games based on digital videos |
US20090307185A1 (en) * | 2008-06-10 | 2009-12-10 | Sunplus Technology Co., Ltd. | Method for seamless playback of multiple multimedia files |
US20100011282A1 (en) * | 2008-07-11 | 2010-01-14 | iCyte Pty Ltd. | Annotation system and method |
US20100023506A1 (en) * | 2008-07-22 | 2010-01-28 | Yahoo! Inc. | Augmenting online content with additional content relevant to user interests |
US20100235623A1 (en) * | 2009-03-11 | 2010-09-16 | Wic Cdn Inc. | Methods and systems for identity verification |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447754B2 (en) | 2000-12-06 | 2008-11-04 | Microsoft Corporation | Methods and systems for processing multi-media editing projects |
US7536713B1 (en) * | 2002-12-11 | 2009-05-19 | Alan Bartholomew | Knowledge broadcasting and classification system |
US20070260697A1 (en) | 2006-01-25 | 2007-11-08 | Shapiro Peter D | Method and System for Wireless Transmission of Multi-Media Data from a Portable Multi-Media Device |
US7945848B2 (en) | 2006-06-21 | 2011-05-17 | Microsoft Corporation | Dynamically modifying a theme-based media presentation |
US20080155230A1 (en) | 2006-12-21 | 2008-06-26 | General Instrument Corporation | Method and System for Providing Simultaneous Transcoding of Multi-Media Data |
US20100169906A1 (en) * | 2008-12-30 | 2010-07-01 | Microsoft Corporation | User-Annotated Video Markup |
US20110047163A1 (en) * | 2009-08-24 | 2011-02-24 | Google Inc. | Relevance-Based Image Selection |
-
2011
- 2011-01-11 US US13/004,828 patent/US9477667B2/en active Active
- 2011-01-12 WO PCT/US2011/020938 patent/WO2011088080A2/en active Application Filing
-
2016
- 2016-09-27 US US15/277,776 patent/US20170017653A1/en not_active Abandoned
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088729A1 (en) * | 2002-10-30 | 2004-05-06 | Imagic Tv Inc. | Ratings based television guide |
US20070100699A1 (en) * | 2003-04-24 | 2007-05-03 | Amir Ajizadeh | Interactive System and Methods to Obtain Media Product Ratings |
US20050144305A1 (en) * | 2003-10-21 | 2005-06-30 | The Board Of Trustees Operating Michigan State University | Systems and methods for identifying, segmenting, collecting, annotating, and publishing multimedia materials |
US20050188406A1 (en) * | 2004-02-23 | 2005-08-25 | Gielow Christopher C. | System and method for managing applications and media content of a wireless communication device |
US20080306943A1 (en) * | 2004-07-26 | 2008-12-11 | Anna Lynn Patterson | Phrase-based detection of duplicate documents in an information retrieval system |
US20070077921A1 (en) * | 2005-09-30 | 2007-04-05 | Yahoo! Inc. | Pushing podcasts to mobile devices |
US20090249185A1 (en) * | 2006-12-22 | 2009-10-01 | Google Inc. | Annotation Framework For Video |
US20090222115A1 (en) * | 2008-02-29 | 2009-09-03 | David Malcolm | Systems and methods for album playback in a random mode |
US20090297118A1 (en) * | 2008-06-03 | 2009-12-03 | Google Inc. | Web-based system for generation of interactive games based on digital videos |
US20090307185A1 (en) * | 2008-06-10 | 2009-12-10 | Sunplus Technology Co., Ltd. | Method for seamless playback of multiple multimedia files |
US20100011282A1 (en) * | 2008-07-11 | 2010-01-14 | iCyte Pty Ltd. | Annotation system and method |
US20100023506A1 (en) * | 2008-07-22 | 2010-01-28 | Yahoo! Inc. | Augmenting online content with additional content relevant to user interests |
US20100235623A1 (en) * | 2009-03-11 | 2010-09-16 | Wic Cdn Inc. | Methods and systems for identity verification |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140279976A1 (en) * | 2013-03-15 | 2014-09-18 | Sony Pictures Technologies Inc. | Method and system for recording information about rendered assets |
US10339120B2 (en) * | 2013-03-15 | 2019-07-02 | Sony Corporation | Method and system for recording information about rendered assets |
US11449548B2 (en) * | 2019-11-27 | 2022-09-20 | Elasticsearch B.V. | Systems and methods for enriching documents for indexing |
Also Published As
Publication number | Publication date |
---|---|
US9477667B2 (en) | 2016-10-25 |
WO2011088080A2 (en) | 2011-07-21 |
WO2011088080A3 (en) | 2011-10-27 |
US20110173214A1 (en) | 2011-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477667B2 (en) | Crowdsourced multi-media data relationships | |
US12086177B2 (en) | System and method for labeling objects for use in vehicle movement | |
US10102284B2 (en) | System and method for generating media bookmarks | |
KR101557494B1 (en) | Annotating video intervals | |
JP5981024B2 (en) | Sharing TV and video programs via social networking | |
USRE42728E1 (en) | Network distribution and management of interactive video and multi-media containers | |
US8244707B2 (en) | Method and apparatus for providing supplemental video content for third party websites | |
US8826117B1 (en) | Web-based system for video editing | |
US6573907B1 (en) | Network distribution and management of interactive video and multi-media containers | |
US8176058B2 (en) | Method and systems for managing playlists | |
US20150331856A1 (en) | Time-based content aggregator | |
US8688679B2 (en) | Computer-implemented system and method for providing searchable online media content | |
US11188603B2 (en) | Annotation of videos using aggregated user session data | |
US20100082653A1 (en) | Event media search | |
US8046436B2 (en) | System and method of providing context information for client application data stored on the web | |
US20070300258A1 (en) | Methods and systems for providing media assets over a network | |
US20080228837A1 (en) | System and method of restoring data and context of client applications stored on the web | |
US7996779B2 (en) | System and method of providing a user interface for client applications to store data and context information on the web | |
US8775321B1 (en) | Systems and methods for providing notification of and access to information associated with media content | |
US8046437B2 (en) | System and method of storing data and context of client application on the web | |
Wang et al. | Eventory--An event based media repository | |
Craggs et al. | ThumbReels: query sensitive web video previews based on temporal, crowdsourced, semantic tagging | |
JP2024533842A (en) | Matching video content with podcast episodes | |
US20090319571A1 (en) | Video indexing | |
JP5780898B2 (en) | Information providing apparatus, information providing method, and information providing program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MOBDUB, LLC, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KARIM, OMAR;REEL/FRAME:039870/0659 Effective date: 20160927 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |