CREATING, SHARING, AND MONETIZING ONLINE DIGITAL CONTENT HIGHLIGHTS

In one example embodiment, a system and method is shown as including receiving a segment request including a reference to a segment of a content item. The system and method may also include retrieving an advertisement to be associated with the segment. Further, the system and method may include associating the segment and the advertisement to form a derivative content item. Additionally, the system and method may include transmitting the derivative content item. A system and method is also shown that includes receive count data including a number of times an advertisement included in a derivative content item has been accessed, the advertisement being combined with a segment of a content item to form the derivative content item. This system and method may also include calculating a payment amount based on the count data. Moreover, the system and method may include transmitting a payment instruction including the payment amount.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of an example embodiment of the present invention. It may be evident, however, to one skilled in the art that the present invention will be practiced without these specific details.

In some example embodiments, a system and method is shown that facilitates the streaming of segments of long-form audio, video, or audio/video content, where the streaming of this digital content is monetized in some manner. In one example embodiment, a metadata file is retrieved from a segment server. This metadata file may be written using an: eXtensible Markup Language (XML), Hyper Text Markup Language (HTML), ActionScript, Perl, JavaScript, VBScript, or some other suitable scripting language. The segment server may be a FLASH MEDIA SERVER™. This metadata file may be natively stored onto a device capable of using a media player application. Using the metadata file in conjunction with a media player application (e.g., a standalone player or a player plug-in to another presentation application such as a browser), the device may retrieve digital content from the segment server for playing. A scripting language may be used to implement the media player application. In some example embodiments, RTSP may be used to set up a session to stream digital content to the media player application. In other example embodiments, HTTP may be used to set up a session to retrieve the digital content.

Some example embodiments may include the monetization of a segment of long-form video through the use of advertising. In one example embodiment, the owner (e.g., a copyright owner) of a segment may license the use of one or more of their copyrights to a user of a media player application. This licensing may be in exchange for the right to provide an advertisement to the user of a media player application. The owner may select the type of advertisement to be associated with the segment. Associated may mean to be displayed and played before, during (e.g., as a banner ad) or after the segment within a GUI for a browser application. In some example embodiments, the user or owner of the media player application may receive some type of monetary compensation for the posting of the segment to a website.

In some example embodiments, the metadata file alone, or in conjunction with a scripting language file, may be used to virally distribute the segment. Virally or viral may refer to a digital content (e.g., a segment) that is distributed through the process of Internet sharing, via e-mail, IM messages, blogs, or media sharing websites. Various functionalities such as the “copy and paste” function associated with a web browser may be associated with the process of Internet sharing, via e-mail, IM messages, blogs, or media sharing websites. In one example case, a user may make the metadata file alone or in combination with a scripting language file available on a website. Third party users may be able to access (e.g., copy and paste) this metadata and/or script file into a development environment (e.g., a GUI with editing functionality associated therewith). This development environment may then be used to post the metadata and/or scripting file to a website for playing and use. Playing may include playing by a media player application embedded in a web page that is part of the website. In the case of viral distribution, the monetization of the segment may occur in the manner as illustrated above.

In some example embodiments, the segment may be a derivative content item (e.g., a derivative work) in the example form of a mashup. A mashup may be a digital media file including any combination of text, graphics, audio, video, and animation drawn from another digital media file to create a new work. In some example embodiments, live streamed digital content may be used to create a mashup. Live streamed digital content may include a concert or a dramatic play based upon which audio and video data is generated. Further, a mashup may be an integration of multi-sourced applications or content into a single offering. Additionally, a mashup may be a combination of digital content from one or more different sources into a single digital media file. A new work may be one or more segments derived from another digital media file. This digital media file may be long-form content. Additionally, this work may have advertisements associated with it. Further, this work may be a derivative work that may have certain copyrights associated with it.

Example System

FIG. 1is a diagram of an example system100used to generate a segment and advertisement associated with the segment (collectively segment and advertisement). Shown is a user101who, using one or more devices103, generates a segment request108. These one or more devices103may include a cell phone104, a computer system105, a television monitor106, a PDA107, or a smart phone (not shown). The user101may further use a GUI107that may be generated using the one or more devices103. The GUI107may be a browser application that may include a client engine such as a FLASH™ engine, ACTIVE X™ engine, or an Asynchronous JavaScript and extensible Markup Language (XML) (AJAX) engine. Through using this GUI107, the user101may generate a segment request108that that is transmitted by the one or more devices103across a network109to be received by a segment server110. The one or more devices103may be operatively coupled to the segment server via a logical or physical connection. Operatively coupled to the segment server110may be a digital content database111. This digital content database111may reside natively as part of the segment server110, or may be managed and controlled by a further database server (not shown). Further, this digital content database111may include digital content as long-form content in the form of audio-video content, audio content, or some other suitable form of content.

In some example embodiments, an ad/revenue server113is operatively coupled to the segment server110. This ad/revenue server113is operatively coupled via a Local Area Network (LAN), a Wide Area Network (WAN), or some other suitable physical or logical connection. The segment server110transmits segment information112to be received by the ad/revenue server113. Using this segment information112, the ad/revenue server113may look up a particular advertisement114to be associated with the requested segment (e.g., the segment requested via the segment request108). The advertisement114may be transmitted by the ad/revenue server113to be received by the segment server110. The segment server110may then associate the advertisement114with a segment to generate a segment and advertisement data115that is then transmitted across the network109to be received by the one or more devices103. This segment and advertisement data115may be regarded as a derivative content item (e.g., a mashup). The segment and advertisement data115may be displayed within the GUI107. The segment and advertisement data115may be viewed by the user101using the GUI107. In some example embodiments, the advertisement114may be streamed as a banner ad by the segment server110to be displayed in the GUI107(see e.g., sub-frame401below). The aforementioned RTSP may be used to stream this banner ad.

In some example embodiments, the segment request108may be an RTSP-based message or an HTTP-based message. Further, the segment and advertisement data115may be MPEG, H.261-H.264, or VP6 encoded digital content that may be retrieved using RTSP or HTTP. Additionally, the segment information112may be transmitted using a Secure Hypertext Transfer Protocol (HTTPS), and the advertisement114may be returned to the segment server using HTTPS.

In some example embodiments, a virally distributed segment116may be received by a user122using one or more devices117. These one or more devices117may include a cell phone118, a computer system119, television monitor120, a PDA121or, a smart phone (not shown). The user122may use a GUI123that is executed through using the one or more devices117. The GUI123may be a browser application that may include a client side engine such as a FLASH™ engine, ACTIVE X™ engine, or AJAX engine. The virally distributed segment116may include some type of instruction set coded in ActionScript, JavaScript, VBScript, or some other suitable scripting language. This instruction set may then be retrieved by the user122and executed using the GUI123and the functionality associated therewith. For example, the user122may copy the instructions included in the virally distributed segment116using some type of input device (e.g., a mouse, light pen, or other suitable input devices) from a webpage generated and displayed by the user101. Once copied, this instruction set may then be executed and instructions transmitted (e.g., through executing a paste command associated with the GUI123) across a network (e.g., the Internet, a LAN, a WAN or other suitable network and associated topology) to be received by the one or more devices117and ultimately executed by the one or more devices117as a script. The virally distributed segment116may include an instruction set that allows the user122to generate the previously illustrated segment request108. The user122may use the one or more devices117in combination with the GUI123to generate the segment request108. As previously shown, the segment request108may be transmitted across a network109to be received by the segment server110. In some example embodiments, the user122may generate and transmit the segment request108using the one or more devices117.

In some example embodiments, an ad/revenue server113is operatively coupled to the one or more devices103or117, and may transmit the advertisement114directly to these one or more devices103or117. This transmission may occur over the network109, and may be synchronized with the serving of a segment by the segment server110to the one or more devices103or117. Synchronization may include the providing of the advertisement114prior to the serving of the segment. In some example embodiments, the advertisement114may be streamed to the GUI107or GUI123as a banner ad (see e.g., sub-frame401below). RTSP may be used to stream this banner ad.

In some example embodiments, the segment request108may include data identifying a segment, and/or may include metadata identifying and defining a user profile. A segment may be identified via a unique identifier value. Metadata identifying and defining a user profile may include XML encoded data that describes user demographic information (e.g., a user's age, gender, or physical location, education), the number of persons to which the user is related, and other demographic information commonly found on a social networking page.

FIG. 2is a diagram of an example system200used to aggregate a number of metadata scripts, and to provide these scripts to multiple requesting users. In some example embodiments, the segment server110may serve an aggregating function so as to aggregate the metadata scripts (see e.g., metadata scripts203and212), and to serve up these aggregating scripts to one or more client devices (e.g., the one or more devices117or206). Shown is the previously illustrated user101who, using the one or more devices103, may generate a metadata script request201. This metadata script request201may be transmitted using HTTP and may be generated using an XML based message. Also shown is a user204who using one or more devices206may generate the metadata script request211. These one or more devices206may include a cell phone207, computer system208, television209, or PDA210. The user204may use a GUI205to generate the metadata script request211. The GUI205may be generated by the one or more devices206. The metadata script request211may be transmitted using HTTP and XML as illustrated above.

In some example cases, the segment server110may retrieve a metadata script203or212from a metadata script database202. This metadata script203may be transmitted by the segment server110back across network109to be received by the one or more devices103. The metadata script212may be transmitted by the segment server110back across network109to be received by the one or more devices206. This metadata script203or212may be transmitted using HTTP. Operatively coupled to the one or more devices103may be a metadata script database204, where the metadata script203may be stored for future use. Operatively coupled to the one or more devices206may be a metadata script database211, where the metadata script212may be stored for future use. This metadata script database204or211may be a native database (e.g., one that resides on the one or more devices103or206), or may be a non-native database. In cases where the metadata script database204or211is non-native, the metadata script database204or211may be managed by an intermediate database server.

FIG. 3is diagram of an example system300illustrating the generation of count data and the crediting of a user101for this count data. In some example embodiments, the user101may use the one or more computer systems103to view one or more segment and advertisements115. While viewing a segment and advertisement115, the one or more devices103may record the number of times the advertisement114, associated with the segment that is part of the segment and advertisement115, has been viewed by the user101. At certain predetermined times (e.g., periodic or event-driven times), count data301may be generated and transmitted by the one or more devices103across the network109to be received by the ad/revenue server113. This count data may be transmitted using HTTP or HTTPS and may include the number of views of the advertisement114that have occurred. Views may include the serving of a web page by a web server of the segment and advertisement115. Operatively coupled to the ad/revenue server113is an ad view database302. This ad view database302may be used to store the count data301. In some example embodiments, based on this count data301, the ad/revenue server113may generate and transmit a payment instruction303to be received by a financial institution server304. This payment instruction303may be transmitted using HTTPS. Included within this payment instruction303may be an instruction to credit a financial institution account that is owned, controlled, or otherwise used by the user101. This payment instruction303may instruct the financial institution server304to credit the account owned, controlled, or used by the user101with a particular monetary amount based on the count data301.

Example Interfaces

FIG. 4is an example GUI107used to display the segment and advertisement115. Shown is a GUI107including a sub-frame401, a sub-frame406, and a sub-frame407. With regard to the sub-frame401, a banner advertisement is shown within this sub-frame401. With regard to the sub-frame406, a number of available segment objects are displayed within the sub-frame406. For example, an Airplane mashup404is shown. As to the sub-frame407, an advertisement402is shown (e.g., is shown as playing) within the sub-frame407that may correspond to the advertisement114. Also shown within the sub-frame407is a content control toolbar405that allows the user101to various media player instructions such as pause, fast forward, play, reverse, mute, and perform other functions or operations with regard to the segment. As referenced elsewhere, the segment may be a video segment, an audio segment, or an audio/video segment. Further, shown is a mouse pointer403, and functionality associated with this mouse pointer403. For example, using a mouse pointer403, a user101may be able to click on (e.g., perform a mouse-based click operation on) the Airplane mashup404. This Airplane mashup404may be a screen object or widget graphically representing the segment and advertisement115. In some example embodiments, some other type of functionality may be associated with a mouse pointer. This functionality may be used to execute a segment and advertisement115as displayed via a screen object or widget (e.g., the Airplane mashup404). For example, a mouse over operation may be used, a left click operation may be used, a keyboard operation may be used, or some other suitable operation may be used.

FIG. 5is an example GUI107used to generate a mashup using linked screen objects or widget. Shown is the sub-frame406, wherein the sub-frame406includes a number of segments (e.g., audio/video segments). For example, a segment502is shown with a title of Cloverfield, wherein the first three minutes of Cloverfield are included within this segment. Cloverfield may be the title of a type of long-form content in the form of a movie. Using a mouse pointer503and associated functionality, the Cloverfield segment502may be dragged and dropped into the sub-frame407. Once dragged and dropped to the sub-frame407, the mouse pointer503may be used to link the Cloverfield segment502to other segments illustrated within the sub-frame407. These other segments including the ET segment505and the Airplane segment506are linked via a link504. ET and Airplane may be the respective titles of a type of long-form content in the form of movies. Using these links, as illustrated by link504, various segments may be combined to form a mashup. Sub-frame407shows screen objects or widgets representing various segments such as segments502,505, and506that are linked. These screen objects or widgets may be viewed through the execution of a further screen object or widget501that resides within the sub-field507. The screen object or widget501, when executed, allows for an object view of objects used to generate a mashup.

FIG. 6is an example GUI123that may be used to generate a derivative content item in the form of a mashup using an instruction set written as a script. Included as a part of this GUI123is a sub-frame607that includes available segment objects generated using this GUI123. Also shown as a sub-frame608that includes a screen object or widget601that allows for a user, such as user122, to have a script view of the script used to generate a mashup. Also shown is a sub-frame610that includes various screen objects or widgets that allow for the editing of the script used to generate the mashup. This editing may be represented via various screen objects or widgets in the form of editing tools (collectively referenced as603) to facilitate copying, pasting, cutting and other functionality (e.g., editing functionality) commonly associated with the editing of a script in a development environment. Also is shown is a sub-frame609that displays a script used to generate a mashup. In some example embodiments, a virally distributed segment116may be pasted into the sub-frame609using a mouse pointer604and the functionality associated therewith. This functionality may include a copy and paste function whereby the user122may copy instructions written in a scripting language that are displayed as part of a webpage controlled or used by the user101. Instructions, referenced herein as602, may be copied into the sub-frame609and stored as a segment object606. Further, these instructions602may be included as part of the virally distributed segment116. Here, the segment606is titled: “A Little Cloverfield, ET and Airplane” mashup.

In some example embodiments, the mashups may be posted to a web page using the GUI107or GUI123. Some example embodiments include posting the various linked segments (e.g., the Cloverfield segment502, ET segment505and the Airplane segment506) to a web page for viewing as a mashup. Further, in some example embodiments, instruction602may be posted to a web page as a mashup. In cases where instruction602is used to post a mashup, instruction602may be interpreted by a web browser to generate a human readable representation of the mashup. This human readable representation may be as a screen object or widget. A web page, as referenced herein, may reside on a server executing a social network application. Each view of the mashup posted to the web page may be recorded as count data301.

Example Logic

FIG. 7is an example derivative content item606and a scripting language representation thereof. Shown is a mash606represented in scripting language form. A field701is shown that denotes the characteristics of this mashup script. These characteristics may include a mashup name, a rating for a mashup, a length of the mashup, and an author of the mashup. Further, a field702is shown that illustrates a mashup name which here is: “A Little Cloverfield, ET, and Airplane.” Further, a field703is shown that illustrates a server location for a particular mashup. Here, the server location may be referenced using RTSP. Further, a field704illustrates rating information for a particular mashup, which here is a five star rating.

FIG. 8is a diagram of an example metadata script request201. Shown, for example, is a metadata script request201and the various data fields associated with this metadata script request. For example, a field801is shown as including a user identifier. Further, a field802is shown illustrating a mashup identifier. Additionally, field803is shown illustrating account data. With regard to field801, the user identifier may be some type of Globally Unique Identifier (GUID), or other identifier used to uniquely identify a particular user such as user101. Further, the field802may reference a particular mashup identifier where this mashup identifier may be a string-based identifier, a GUID identifier, or some other identifier that uniquely identify a particular mashup. Further, the field803may include count data when this count data relates to how many times a particular metadata script has been requested by a user101.

FIG. 9is a diagram of an example metadata script203. Shown is a metadata script203including a number of fields. For example, a field901is illustrated that includes the name of a particular mashup which here is: “A Little Cloverfield, ET, and Airplane.” Further, field902is shown that displays information relating to the advertisement associated with the segment. Here, for example, field902displays the advertiser name, which is: “Slusho Corporation.” Additionally, field903is shown that includes server location information for the particular advertisement for the advertiser illustrated in field902. Here, for example, the sever location is referenced as an RTSP server. Also shown is a field904that illustrates the long-form content and the segment that is to be associated with the particular advertisement.

In some example embodiments, portions or segments of long-form content may be assembled together into a mashup and then associated with an advertisement for viewing. Here, for example, a field905references a server location for particular segment with the segment may be retrieved using RSTP and, further, the segment is the Cloverfield segment (see e.g., Cloverfield segment502). Further, field906illustrates the length of the segment which here is referenced as a Temporal Reference (TR) value for an MPEG-based file. Other type of temporal reference values for other types of codecs may also be used. Additionally, field907illustrates a rating associated with the segment, which here is five stars. Moreover, a field908illustrates a permission associated with the segment where this permission is referenced as a hexadecimal value of 32434AC4. In some example embodiments, the field908and permissions associated therewith may be permissions based on copyrights wherein copyrights may include the right to publish, distribute, publicly display, the right to creative derivative works, and others rights commonly understood as copyrights.

FIG. 10is a diagram of an example segment request108. Shown is a segment request108including a number of fields. In some example embodiments, a segment request108may include information identifying the requested segment (e.g., the segment of the long-form content) alone, or in combination with demographic information relating to the profile (e.g., user profile) of the user generating the segment request108. A user may be user122or user204. Illustrated is a field1001denoting a user's profile. This field may include an online identifier such as a user handle common to many social networking website. A field1002is also shown illustrating the age of the user. Field1003illustrates the gender of the user. Field1004illustrates the physical location of the user (e.g., where the user is domiciled). The data includes in fields1001-1004may be used to determine the type of advertisement that may be provided with the segment and advertisement115. The advertisement may be based, in part, upon the data included within these fields.

In some example embodiments, the field1001may include user specific metadata. For example, a user may include metadata as part of the field1001that illustrates the user particular likes and dislikes such as colors, types of cars, travel destinations, universities, sports teams, sports, movies, songs, video, and other types of metadata describing information unique to them. This user specific metadata may then be used as the basis upon which to associate an advertisement with a segment as outlined below.

FIG. 11is a block diagram of an example computer system1100. This example computer system1100may be the one or more devices103, or segment server110. The blocks shown herein may be implemented in hardware, firmware, or software. Illustrated is a receiver1101to receive a segment request including a reference to a segment of a content item. Further, a retrieval engine1102is shown to retrieve an advertisement to be associated with the segment. An association engine1103is shown to associate the segment and the advertisement to form a derivative content item. A transmitter1104is illustrated to transmit the derivative content item. In some example embodiments, the content item comprises long-form content including at least one of a movie, full-length television program, or a song. Further, in some example embodiments, the association engine1103may associate a plurality of segments retrieved from a plurality of distinct long-form content sources, and the advertisement, to form the derivative content item. Additionally, the derivative content item includes a metadata script. Moreover, the transmitter1104may transmit the metadata script for distribution as a virally distributed segment. The receiver1101may receive a media player instruction and performing a player action responsive to the media player instruction.

FIG. 12is a block diagram of an example computer system1200. This example computer system1200may be the one or more devices103, or segment server110. The blocks shown herein may be implemented in hardware, firmware, or software. Shown is a receiver1201to receive count data including a number of times an advertisement included in a derivative content item has been accessed, the advertisement being combined with a segment of a content item to form the derivative content item. Further, a calculator1202is shown to calculate a payment amount based on the count data. A transmitter1203is shown to transmit a payment instruction including the payment amount. In some example embodiments, the term accessed includes displayed on a web page, or otherwise served up by a web server. Further, the term mashup may include a plurality of segments retrieved from a plurality of distinct long-form content sources.

FIG. 13is flow chart illustrating the execution of a method1300to transmit a mashup. This method1300, and the operations associated therewith (e.g., operations1301-1306), is executed by the segment server103, or the one or more devices103. An operation1301is shown that, when executed, receives a segment request including a reference to a segment of a content item. Further, an operation1302is shown, that when executed, retrieves an advertisement to be associated with the segment. An operation1303is illustrated, that when executed, associates the segment and the advertisement to form a derivative content item. An operation1304is shown that, when executed, transmits the derivative content item. In some example embodiments, the content item comprises long-form content including at least one of a movie, full-length television program, or a song. An operation1305, when executed, combines a plurality of segments retrieved from a plurality of distinct long-form content sources, and the advertisement, to form the derivative content item. In some example embodiments, the derivative content item includes a metadata script. An operation1306, when executed, transmits the metadata script for distribution as a virally distributed segment. An operation1307, when executed, receives a media player instruction and performs a player action responsive to the media player instruction. In some example embodiments, the derivative content item includes a plurality of segments retrieved from a plurality of distinct long-form content sources.

FIG. 14is a flow chart illustrating an example method1400used to transmit payment instructions. This method1400, and the operations associated therewith (e.g., operations1401-1403), is executed by the segment server103, or the one or more devices103. An operation1401, when executed, may receive count data including a number of times an advertisement included in a derivative content item has been accessed, the advertisement being combined with a segment of a content item to form the derivative content item. An operation1402, when executed, may calculate a payment amount based on the count data. An operation1403, when executed, may transmit a payment instruction including the payment amount. In some example embodiments, the term accessed includes displayed on a web page, other otherwise served up by a web server. In some example embodiments, the term mashup includes a plurality of segments retrieved from a plurality of distinct long-form content sources.

FIG. 15is a tri-stream flowchart illustrating a method1500, according to an example embodiment, of generating the segment and advertisement115. Shown is a first stream of the tri-stream flowchart including operations1501-1503and operations1514-1516. These various operations may reside on and be executed by the one or more devices103. Further, shown is a second stream including operations1504-1506and1511-1513. These various operations are executed by the segment server110. A third stream is shown including operations1507-1510, and operations1517-1519. These various operations are executed by the ad/revenue server113.

Starting with the one or more devices103, and the various operations associated therewith, an operation1501is executed that may receive selection input. This selection input may be a mouse-over operation, a right-click operation, or some other suitable operation that may be used to execute a screen object or widget residing as a part of the GUI107. An operation1502is executed that, when executed, may execute a metadata script used to generate a segment request108. This metadata script, as previously illustrated, may be an instruction set written using, for example, XML, HTML, ActionScript, Perl, JavaScript, VBScript, or some other suitable scripting language. An operation1503is executed that may transmit a segment request108, where the segment request108may be received through the execution of the operation1504executed by the segment server110. An operation1505is executed that may parse the segment request to retrieve segment instructions. An operation1506is executed that may request advertisement information associated with the segment referenced by the segment instructions. In some example embodiments, segment information derived from the segment instructions may be transmitted through the execution of operation1506. The operation1507residing as a part of the ad/revenue server113is executed that may receive the segment instructions. An operation1508is executed that may parse the segment instructions to obtain a segment identifier. An operation1509is executed that may retrieve an advertisement using the segment identifier, where this advertisement is retrieved from some type of advertisement database (not shown). An operation1510is executed that transmit advertisement information associated with the segment as an advertisement114. An operation1511residing as a part of, for example, segment server110(e.g., or executed by the segment server110) is executed to receive the advertisement114. An operation1512is executed that may combine the advertisement and segment with other segments as a mashup. In some example embodiments, the combination of the advertisement and one segment may form a mashup. An operation1513is executed to transmit the segment and advertisement as the segment and advertisement115to be received through the execution of an operation1514. An operation1515is executed that may associate a user ID with a segment and an operation where the user ID may uniquely identify the user101or even the user122. An operation1516is executed that may store the segment and advertisement115(e.g., store into a buffer) for playing within the previously illustrated sub-frame407.

In some example embodiments, the operation1509may use the user metadata to retrieve an advertisement. This operation1509may make a Structured Query Language (SQL) query (e.g., a “SELECT” command) of a database including advertisements uniquely identified by one or more key values. These key values may, in turn, be based upon advertisements predetermined by a long-form content owner (e.g., the copyright owner, or licensee), distributor, or other suitable person to be associated with a particular segment ID. Advertisements may then be selected/retrieved based upon this segment ID.

FIG. 16is a tri-stream flowchart illustrating a method1600, according to an example embodiment, of generating the segment and advertisement115, the advertisement based upon user profile metadata. Shown is a first stream of the tri-stream flowchart including operations1601-1603and operations1614-1616. These various operations may reside on and be executed by the one or more devices103. Further, shown is a second stream including operations1604-1606and operations1611-1613. These various operations are executed by the segment server110. A third stream is shown including operations1607-1610, and operations1617-1619. These various operations are executed by the ad/revenue server113.

Beginning with the one or more devices103, and the various operations associated therewith, an operation1601is executed that may receive selection input. This selection input may be a mouse-over operation, a right-click operation, or some other suitable operation that may be used to execute a screen object or widget residing as a part of the GUI107. An operation1602is executed that, when executed, may execute a metadata script used to generate a segment request108. This metadata script, as previously illustrated, may be an instruction set written using XML, HTML, ActionScript, Perl, JavaScript, VBScript, or some other suitable scripting language. An operation1603is executed that may transmit a segment request108, where the segment request108may include user profile metadata relating to a user's demographic. This segment request108may be received through the execution of the operation1604executed by the segment server110. An operation1605is executed that may parse the segment request to retrieve segment instructions. An operation1606is executed that may request advertisement information associated with the segment referenced by the segment instructions. These segment instructions may include user metadata such as the user profile metadata illustrated above. In some example embodiments, segment information derived from the segment instructions may be transmitted through the execution of operation1606. The operation1607residing as a part of the ad/revenue server113is executed that may receive the segment instructions. An operation1608is executed that may parse the segment instructions to obtain the user metadata. An operation1609is executed that use the user metadata to retrieve an advertisement from some type of advertisement database (not shown). An operation1610is executed is executed that transmits advertisement information based upon the user metadata associated with the segment as an advertisement114. An operation1611residing as a part of segment server110(e.g., or executed by the segment server110) is executed to receive the advertisement114. An operation1612is executed to combine the advertisement and segment with other segments as a mashup. In some example embodiments, the combination of the advertisement and one segment may form a mashup. An operation1613is executed to transmit the segment and advertisement as the segment and advertisement115to be received through the execution of an operation1614. An operation1615is executed that may associate a user ID with a segment and an operation where the user ID may uniquely identify the user101or even the user122. An operation1616is executed that may store the segment and advertisement115(e.g., store into a buffer) for playing within the previously illustrated sub-frame407.

In some example embodiments, the operation1609may use the user metadata to retrieve an advertisement. This operation1609may make a SQL query (e.g., a “SELECT” command) of a database including advertisements uniquely identified by one or more key values. These key values may, in turn, be based upon a combination of one or more of the user metadata elements (see e.g., field1001-1004) as determined by an advertiser. Advertisements may then be selected/retrieved based upon the user metadata. In some example embodiments, user metadata elements (e.g., user specific metadata) specific to the user may be used to retrieve an advertisement.

FIG. 17is a flow chart illustrating the example operation1509. Shown is an operation1701that when executed, receives a segment identifier. A decisional operation1702is executed that determines whether or not a script executable link is thought to be retrieved as the basis for displaying an advertisement such as advertisement402within the sub-frame407. In cases where decisional operation1702evaluates to “false,” an operation1703is executed. When executed, operation1703may retrieve an advertisement as encoded data based on a segment ID. In some example embodiments, encoded data may be data encoded using an MPEG, H.261-H.264, VP6, or other suitable encoding regime. In cases where decisional operation1702evaluates to “true,” an operation1704is executed that may retrieve an advertisement as a script executable link based on the segment ID. The script executable link may be a link written in HTML, XML, or some other suitable markup language. An operation1705is executed that may send the advertisement as encoded link in the form of an advertisement114.

FIG. 18is a flowchart illustrating an example execution of operation1512. Shown is an operation1801that when executed, retrieves a requested segment and buffer. This buffer may be some type of non-persistent memory store that may be used to temporarily save the segment and associated advertisement. In some example embodiments, the decisional operation1802is executed that may determine whether or not the permissions for a particular user such as user101are valid for the purposes of playing or otherwise displaying the segment and advertisement115within the sub-frame407. In cases where decisional operation1802evaluates to “false,” operation1803is executed that may transmit an error prompt. This error prompt may state that a user, such as the user101, is not entitled to view a particular segment or advertisement based on their lack of permissions to do so. In other example embodiments, these permissions may relate to other permissions associated with the aforementioned copyrights. In cases where decisional operation1802evaluates to “true,” an operation1804is executed. This operation1804, when executed, may queue up an advertisement and requested segments for playing by the GUI107and, more specifically, within the sub-frame407.

In some example embodiments, a decisional operation1805is executed that may determine whether or not a play command has been received. In some example embodiments, this play command may be a play command generated using RTSP. Further, in some example cases, other types of commands may be determined as to whether they have been executed by the user101. These other types of commands may include a pause command, forward command, a reverse command, or some other suitable command associated with the RTSP as executed by the user101. In cases where decisional operation1805evaluates to “false,” the operation1805is re-executed. In cases where decisional operation1805evaluates to “true,” an operation1806is executed. When executed, operation1806may encode and stream the segment advertisement115to be received by the user101using one or more devices103.

FIG. 19is a dual-stream flowchart illustrating the generation of a metadata script as a result of a metadata script request201. Shown is a first stream including operations1901-1902and operations1906-1908. These various operations are executed by the one or more devices103. Also shown is a second stream including operations1903-1905. These various operations are executed by the segment server110. In some example embodiments, an operation1901is executed that may receive metadata script selection input. This metadata script selection input may be in the form of some type of mouse-based operation or functionality such as a right-click operation, mouse-over operation, or some other suitable mouse-based operation. An operation1902is executed that may transmit a metadata script request command in the form of the metadata script request201. An operation1903is executed to receive the metadata script request command. An operation1904is executed that retrieves a metadata script based on the metadata script request201. An operation1905is executed to transmit the requested metadata script203. This metadata script may be retrieved from the previously illustrated metadata script database202. Upon the execution of operation1905, a metadata script203may be transmitted that includes instructions used to generate display a mashup within the sub-frame407. This mashup may be the previously shown Airplane mashup404. An operation1906is executed to receive the metadata script203. An operation1907is executed to store the metadata script into the previously illustrated metadata script database204. In some example embodiments, operations1903-1905are executed by the one or more devices103.

FIG. 20is a flowchart illustrating the example execution of operation1904. Shown is an operation2001that, when executed, may retrieve a first mashup referenced from a metadata script database2009. In some example embodiments, metadata script database2009may be akin to metadata script database202. An operation2002is executed that may retrieve a second mashup reference from the metadata script database2009. In some example embodiments, a mashup reference may be some type of scripted web link (e.g., an href-based link), or some other suitable script based reference. An operation2003is executed that may insert the first or second mashup into a metadata script. Further, an operation2004is executed that may insert user data into the metadata script, wherein this user data may be some uniquely identifying value associated with the user (e.g., the user101). An operation2005is executed that may insert a permission into a metadata script where this permission may be a permission included in the previously referenced permission field908. An operation2006is executed that may tag the first and second reference permissions as mashup characteristics as may be illustrated in the field905. An operation2007is executed that may actually generate a metadata script using some type of predefined scripting template as determined by an XML Schema Definition (XSD), Document Type Definition (DTD), or some other suitable type scripting template. As used herein, a referent is a reference such as a thing being referenced.

FIG. 21is a flow chart illustrating the example execution of operation2005. Shown is an operation2101that when executed may receive a metadata script request. An operation2102is executed to retrieve permissions (e.g. permissions associated with various copyrights) from a permissions database2103. An operation2104is executed to embed the permissions into metadata script. These permissions may be embedded into the previously illustrated field908. Also shown is an operation2105that may obscure the permissions using some type of obscuring regime such as hashing and encrypting or some other suitable combination of hashing and encrypting. Hashing may be performed using the Message-Digest algorithm 5 (MD-5), Secure Hash Algorithm-1 (SHA-1), or some other suitable hashing algorithm. In some example embodiments, encrypting may be performed using some type of symmetric or asymmetric encryption regime. This symmetric or asymmetric encryption regime may include the Advanced Encryption Standard (AES), Rivest, Shamir, and Adleman (RSA), or some other suitable symmetric or asymmetric encryption regime.

Example Database

Some embodiments may include the various databases (e.g.,111,202,204,302,2009,2103) being relational databases, or, in some cases, Online Analytic Processing (OLAP)-based databases. In the case of relational databases, various tables of data are created and data is inserted into and/or selected from these tables using SQL or some other database-query language known in the art. In the case of OLAP databases, one or more multi-dimensional cubes or hyper cubes, including multidimensional data from which data is selected from or inserted into using a Multidimensional Expression (MDX) language, may be implemented. In the case of a database using tables and SQL, a database application such as, for example, MYSQL™, MICROSOFT SQL SERVER™, ORACLE 8I™, 10G™, or some other suitable database application may be used to manage the data. In this, the case of a database using cubes and MDX, a database using Multidimensional Online Analytic Processing (MOLAP), Relational Online Analytic Processing (ROLAP), Hybrid Online Analytic Processing (HOLAP), or some other suitable database application may be used to manage the data. The tables or cubes made up of tables, in the case of, for example, ROLAP, are organized into an RDS or Object Relational Data Schema (ORDS), as is known in the art. These schemas may be normalized using certain normalization algorithms so as to avoid abnormalities such as non-additive joins and other problems. Additionally, these normalization algorithms may include Boyce-Codd Normal Form or some other normalization, or optimization algorithm known in the art.

FIG. 22is an example RDS2200. Illustrated are a number of tables that may be used to generate an RDS. For example, a table2201is shown that includes permission values where these permissions values may be integer values represented in decimal, hexadecimal, octal, or some other suitable form. These permissions values may be stored as an integer, string, Binary Large Object (BLOB), or some other suitable data type. Table2202is shown that includes digital content. This digital content may be long-form content in the form of MPEG, or VP6 encoded content stored as a BLOB data type. Also shown is a table2203that includes author identifier information. This author identifier information may be some type of unique identifier such as a GUID that may be used to uniquely identify an author of a particular mashup, or segment used to generate portion of a mashup. An integer, string, or other suitable data type may be used to store the data included within table2203. Table2204may include various metadata values and/or scripts. This metadata may include user profile metadata, metadata relating to a mashup, an advertisement, or some other suitable metadata. An XML data type, BLOB data type, or other suitable data type may be used to store this metadata values and/or script. Table2205may include unique identifiers to uniquely identify each of the data or tuple entries for each of the tables2201-2204. An integer or other suitable data type may be used to store the data included within table2205.

Component Design

Some example embodiments may include the above-illustrated operations being written as one or more software components. These components, and the functionality associated with each, may be used by client, server, or peer computer systems. These various components can be implemented into the system on an as-needed basis. These components may be written in an object-oriented computer language such that a component oriented or object-oriented programming technique can be implemented using a Visual Component Library (VCL), Component Library for Cross Platform (CLX), Java Beans (JB), Enterprise Java Beans (EJB), Component Object Model (COM), or Distributed Component Object Model (DCOM)), or other suitable technique. These components are linked to other components via various Application Programming Interfaces (APIs) and then compiled into one complete server and/or client application. The method for using components in the building of client and server applications is well known in the art. Further, these components may be linked together via various distributed programming protocols as distributed computing components.

Distributed Computing Components and Protocols

Some example embodiments may include remote procedure calls being used to implement one or more of the above-illustrated components across a distributed programming environment. For example, a logic level may reside on a first computer system that is located remotely from a second computer system including an interface level (e.g., a GUI). These first and second computer systems can be configured in a server-client, peer-to-peer, or some other configuration. The various levels can be written using the above-illustrated component design principles and can be written in the same programming language or in different programming languages. Various protocols may be implemented to enable these various levels and the components included therein to communicate regardless of the programming language used to write these components. For example, an operation written in C++ using Common Object Request Broker Architecture (CORBA) or Simple Object Access Protocol (SOAP) can communicate with another remote module written in Java™. Suitable protocols include SOAP, CORBA, and other protocols well-known in the art.

A System of Transmission between a Server and Client

Some embodiments may use the Open Systems Interconnection (OSI) model, or Transmission Control Protocol/Internet Protocol (TCP/IP) protocol stack model for defining the protocols used by a network to transmit data. In applying these models, a system of data transmission between a server and client, or between peer computer systems, is illustrated as a series of roughly five layers comprising: an application layer, a transport layer, a network layer, a data link layer, and a physical layer. In the case of software having a three tier architecture, the various tiers (e.g., the interface, logic, and storage tiers) reside on the application layer of the TCP/IP protocol stack. In an example implementation using the TCP/IP protocol stack model, data from an application residing at the application layer is loaded into the data load field of a TCP segment residing at the transport layer. This TCP segment also includes port information for a recipient software application residing remotely. This TCP segment is loaded into the data load field of an IP datagram residing at the network layer. Next, this IP datagram is loaded into a frame residing at the data link layer. This frame is then encoded at the physical layer, and the data transmitted over a network such as the Internet, LAN, WAN, or some other suitable network. In some cases, Internet refers to a network of networks. These networks may use a variety of protocols for the exchange of data, including the aforementioned TCP/IP, or some other suitable protocol. These networks may be organized within a variety of topologies (e.g., a star topology) or structures.

A Computer System

FIG. 23shows a diagrammatic representation of a machine in the example form of a computer system2300that executes a set of instructions to perform any one or more of the methodologies discussed herein. A server is a computer system. In alternative embodiments, the machine operates as a stand-alone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a PC, a tablet PC, a Set-Top Box (STB), a PDA, a cellular telephone, a Web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Example embodiments can also be practiced in distributed system environments where local and remote computer systems, which are linked (e.g., either by hardwired, wireless, or a combination of hardwired and wireless connections) through a network, both perform tasks such as those illustrated in the above description.

The example computer system2300includes a processor2302(e.g., a CPU, a Graphics Processing Unit (GPU) or both), a main memory2301, and a static memory2306, which communicate with each other via a bus2308. The computer system2300may further include a video display unit2310(e.g., a Liquid Crystal Display (LCD) or a Cathode Ray Tube (CRT)). The computer system2300also includes an alphanumeric input device2317(e.g., a keyboard), a UI cursor controller2311(e.g., a mouse), a drive unit2316, a signal generation device2318(e.g., a speaker) and a network interface device (e.g., a transmitter)2320.

The disk drive unit2316includes a machine-readable medium2322on which is stored one or more sets of instructions and data structures (e.g., software)2321embodying or used by any one or more of the methodologies or functions illustrated herein. The software instructions2321may also reside, completely or at least partially, within the main memory2301and/or within the processor2302during execution thereof by the computer system2300, the main memory2301and the processor2302also constituting machine-readable media.

The instructions2321may further be transmitted or received over a network2326via the network interface device2320using any one of a number of well-known transfer protocols (e.g., HTTP, HTTPS).

Marketplace Applications

In some example embodiments, a system and method is shown that pursuant to the grant of certain copyright permissions allows for the creation various mashup of digital content. These mashups include advertisements. Further, these mashups may be virally distributed among users for playing. These mashup may be scripts that allow for digital content to be retrieved for playing. In certain example cases, a user may be compensated monetarily for posting mashup to a web site or web page for playing.

In some example embodiments, the system and method as illustrated herein may be used to validate documents, where the authentication of the content of the document and the author of the document may be required. This document may be a university transcript, birth certificate, or other suitable document.