System and method for reducing acknowledgement requests in a broadcast transmission network

文档序号:1958167 发布日期:2021-12-10 浏览:14次 中文

阅读说明:本技术 用于减少广播传输网络中的应答请求的系统和方法 (System and method for reducing acknowledgement requests in a broadcast transmission network ) 是由 查尔斯·亚历山大·索拉尔斯基 戴维·安德鲁·布朗 斯泰拉·洛 阿克沙伊·拉尔 蒂龙·希德卡祖 于 2020-04-08 设计创作,主要内容包括:本公开的至少一个方面涉及选择并且应答要广播的内容的系统和方法。系统能够在第一时间接收识别内容发布者的对要广播的内容的请求。系统能够获得与第一时间相对应的内容发布者的集群数据,该集群数据基于与第一时间相对应的集群的预测特性来识别内容选择度量。系统能够确定具有满足内容选择度量的集群过滤准则的内容项的子集。系统能够基于内容选择度量来对内容项的子集进行排名以创建内容项的排序列表。系统能够向内容发布者传送识别内容项的次序的数据。内容发布者能够以由系统识别的次序将内容插入到广播中。(At least one aspect of the present disclosure relates to systems and methods for selecting and responding to content to be broadcast. The system can receive a request for content to be broadcast at a first time identifying a content publisher. The system can obtain cluster data of the content publisher corresponding to the first time, the cluster data identifying a content selection metric based on a predicted characteristic of the cluster corresponding to the first time. The system can determine a subset of content items having cluster filter criteria that satisfy a content selection metric. The system can rank a subset of the content items based on the content selection metric to create an ordered list of content items. The system can transmit data identifying the order of the content items to the content publisher. The content publisher can insert the content into the broadcast in an order recognized by the system.)

1. A method, comprising:

receiving, by a data processing system, a request for content to be broadcast at a first time, the request identifying a content publisher;

obtaining, by the data processing system, cluster data for the content publisher corresponding to the first time, the cluster data identifying a content selection metric based on a predicted characteristic of a cluster of the content publisher corresponding to the first time and usable to select the content to broadcast;

determining, by the data processing system, a subset of content items from a plurality of content items, each content item in the subset of content items having cluster filtering criteria that satisfies the content selection metric;

ranking, by the data processing system, the subset of content items based on the content selection metrics and the cluster filtering criteria for each of the subset of content items to create an order of the content items included in the subset of content items; and

transmitting, by the data processing system, data identifying an order of the content items to the content publisher, the content publisher broadcasting each content item included in the subset of content items using the order.

2. The method of claim 1, wherein receiving the request for content further comprises:

receiving, by the data processing system, candidate cluster information; and

updating, by the data processing system, the cluster data using the candidate cluster information.

3. The method of any of claims 1 or 2, wherein determining the subset of content items further comprises:

receiving, by the data processing system, content information from the content publisher;

accessing, by the data processing system, each of the plurality of content items to determine the respective cluster filter criteria;

comparing, by the data processing system, each of the respective cluster filter criteria to the cluster data to determine that the cluster filter criteria satisfies the content selection metric; and

selecting, by the data processing system, the respective content item to include in the subset of content items in response to the determination that the cluster filtering criteria satisfies the content selection metric.

4. The method of claim 3, wherein each of the plurality of content items is associated with a respective duration value, and determining the subset of content items further comprises:

comparing, by the data processing system, the respective duration value associated with each of the plurality of content items to a duration threshold to create a filtered set of content items; and

determining, by the data processing system, a subset of the content items from the filtered set of content items, each content item in the subset of content items having a cluster filter criterion that satisfies the content selection metric.

5. The method of any preceding claim, wherein ranking the subset of content items is further based on at least one of: a corresponding content item expiration value, a corresponding content item duration value, or a corresponding content item access count value.

6. The method of any preceding claim, wherein transmitting the data identifying the order of the content items to the content publisher further comprises: transmitting, by the data processing system, a subset of the content items to be broadcast in a broadcast stream by the content publisher.

7. The method of any preceding claim, wherein obtaining the cluster data of the content publisher further comprises: accessing, by the data processing system, a data record associated with the publisher from a database to obtain the cluster data for the content publisher.

8. The method of any preceding claim, further comprising:

receiving, by the data processing system, a response request from the content publisher that includes characteristics of the cluster of the content publisher;

updating, by the data processing system, a data structure associated with the content publisher and the subset of content items based on the characteristics of the cluster of content publishers included in the reply request.

9. A system, comprising:

one or more processors coupled to a memory, the one or more processors configured to:

receiving a request for content to be broadcast at a first time, the request identifying a content publisher;

obtaining cluster data for the content publisher corresponding to the first time, the cluster data identifying a content selection metric based on a predicted characteristic of the cluster of content publishers corresponding to the first time and usable to select the content to be broadcast;

determining a subset of content items from a plurality of content items, each content item in the subset of content items having a cluster filter criterion that satisfies the content selection metric;

ranking the subset of content items based on the content selection metrics and the cluster filtering criteria for each of the subset of content items to create an order of the content items included in the subset of content items; and

transmitting data identifying an order of the content items to the content publisher, the content publisher broadcasting each content item included in the subset of content items using the order.

10. The system of claim 9, wherein the one or more processors are further configured to:

receiving candidate cluster information; and

updating the cluster data using the candidate cluster information.

11. The system of any one of claims 9 or 10, wherein the one or more processors are further configured to:

receiving content information from the content publisher;

accessing each of the plurality of content items to determine the respective cluster filter criteria;

comparing each of the respective cluster filter criteria to the cluster data to determine that the cluster filter criteria satisfies the content selection metric; and

selecting the respective content item to be included in the subset of content items in response to the determination that the cluster filtering criteria satisfies the content selection metric.

12. The system of claim 11, wherein each of the plurality of content items is associated with a respective duration value, and in determining the subset of content items, the one or more processors are further configured to:

comparing the respective duration value associated with each of the plurality of content items to a duration threshold to create a filtered set of content items; and

determining a subset of the content items from the filtered set of content items, each content item in the subset of content items having a cluster filter criterion that satisfies the content selection metric.

13. The system of any of claims 9 to 12, wherein, in ranking the subset of content items, the one or more processors further rank the subset of content items based on at least one of: a corresponding content item expiration value, a corresponding content item duration value, or a corresponding content item access count value.

14. The system of any of claims 9 to 13, wherein, in transmitting the data identifying the order of the content items to the content publisher, the one or more processors are further configured to transmit a subset of the content items to be broadcast by the content publisher in a broadcast stream.

15. The system of any of claims 9 to 14, wherein, in obtaining the cluster data for the content publisher, the one or more processors are further configured to access a data record associated with the publisher from a database to obtain the cluster data for the content publisher.

16. The system of any of claims 9 to 15, wherein the one or more processors are further configured to:

receiving a response request from the content publisher that includes characteristics of the cluster of the content publisher;

updating a data structure associated with the content publisher and the subset of content items based on the characteristics of the cluster of content publishers included in the response request.

17. A non-transitory computer storage medium encoded with instructions that, when executed by one or more processors, cause the one or more processors to:

receiving a request for content to be broadcast at a first time, the request identifying a content publisher;

obtaining cluster data for the content publisher corresponding to the first time, the cluster data identifying a content selection metric based on a predicted characteristic of the cluster of content publishers corresponding to the first time and usable to select the content to be broadcast;

determining a subset of content items from a plurality of content items, each content item in the subset of content items having a cluster filter criterion that satisfies the content selection metric;

ranking the subset of content items based on the content selection metrics and the cluster filtering criteria for each of the subset of content items to create an order of the content items included in the subset of content items; and

transmitting data identifying an order of the content items to the content publisher, the content publisher broadcasting each content item included in the subset of content items using the order.

18. The non-transitory computer-readable medium of claim 17, wherein the instructions are further configured to cause the one or more processors to:

receiving candidate cluster information; and

updating the cluster data using the candidate cluster information.

19. The non-transitory computer-readable medium of any one of claims 17 or 18, wherein the instructions are further configured to cause the one or more processors to:

receiving content information from the content publisher;

accessing each of the plurality of content items to determine the respective cluster filter criteria;

comparing each of the respective cluster filter criteria to the cluster data to determine that the cluster filter criteria satisfies the content selection metric; and

selecting the respective content item to be included in the subset of content items in response to the determination that the cluster filtering criteria satisfies the content selection metric.

20. The non-transitory computer-readable medium of claim 18, wherein each of the plurality of content items is associated with a respective duration value, and the instructions are further configured to cause the one or more processors to:

comparing the respective duration value associated with each of the plurality of content items to a duration threshold to create a filtered set of content items; and

determining a subset of the content items from the filtered set of content items, each content item in the subset of content items having a cluster filter criterion that satisfies the content selection metric.

21. The non-transitory computer-readable medium of any of claims 17-20, wherein the instructions are further configured to cause the one or more processors to rank the subset of content items further based on at least one of: a corresponding content item expiration value, a corresponding content item duration value, or a corresponding content item access count value.

22. The non-transitory computer-readable medium of any of claims 17-21, wherein the instructions are further configured to cause the one or more processors to transmit, to the content publisher, a subset of the content items to be broadcast by the content publisher in a broadcast stream.

23. The non-transitory computer-readable medium of any of claims 17 to 22, wherein the instructions are further configured to cause the one or more processors to access a data record associated with the publisher from a database to obtain the cluster data of the content publisher.

24. The non-transitory computer-readable medium of any of claims 17 to 23, wherein the instructions are further configured to cause the one or more processors to:

receiving a response request from the content publisher that includes characteristics of the cluster of the content publisher;

updating a data structure associated with the content publisher and the subset of content items based on the characteristics of the cluster of content publishers included in the response request.

Background

In a broadcast environment, a content provider can broadcast content according to a one-to-many transmission scheme for presentation by a receiver device. A broadcast content provider can choose content to be broadcast in a regional capacity such that the same content is broadcast to many receiver devices in a geographic broadcast region. Due to the one-to-many configuration of broadcast transmissions, it may be difficult to determine how many receiver devices access the broadcast content.

Disclosure of Invention

At least one aspect of the present disclosure generally relates to a method of reducing acknowledgement requests in a broadcast transmission network. The method can be performed, for example, by a data processing system that includes one or more processors and memory. The method can include receiving a request for content to be broadcast at a first time. The request can identify the content publisher. The method can include obtaining cluster data of a content publisher corresponding to a first time. The cluster data can identify a content selection metric based on a predicted characteristic of the cluster of content publishers corresponding to the first time. The cluster data can be used and used to select content to be broadcast. The method can include determining a subset of content items from the plurality of content items. Each content item in the subset of content items can have cluster filtering criteria that satisfy a content selection metric. The method can include ranking the subset of content items based on the content selection metric and the cluster filter criteria for each of the subset of content items to create an order of content items included in the subset of content items. The method can include transmitting data identifying an order of content items to a content publisher. The content publisher can broadcast each content item included in the subset using the order.

In some implementations, the method can include receiving candidate cluster information. In such implementations, the method can further include updating the cluster data using the candidate cluster information. In some implementations, the method can include receiving content information from a content publisher. In such implementations, the method can further include accessing each of the plurality of content items to determine a respective cluster filter criterion. In such implementations, the method can further include comparing each of the respective cluster filter criteria to the cluster data to determine that the cluster filter criteria satisfies the content selection metric. In such implementations, the method can further include selecting the respective content item to include in the subset in response to a determination that the cluster filtering criteria satisfies the content selection metric.

In some implementations, each of the plurality of content items can be associated with a respective duration value. In such implementations, the method can further include comparing the respective duration value associated with each of the plurality of content items to a duration threshold to create a filtered set of content items. In such implementations, the method can further include determining a subset of the content items from the filtered set of content items. Each content item in the subset of content items has a cluster filter criterion that satisfies a content selection metric. In some implementations, ranking the subset of content items is further based on at least one of a respective content item expiration value, a respective content item duration value, or a respective content item access count value. In some implementations, the method can also include transmitting a subset of the content items to be broadcast in the broadcast stream by the content publisher. In some implementations, the method can also include accessing, by the data processing system, from a database, a data record associated with the publisher to obtain cluster data for the content publisher. In some implementations, the method can also include receiving a response request from the content publisher that includes characteristics of the cluster of content publishers. In some implementations, the method can further include updating the data structures associated with the content publishers and the subset of content items based on characteristics of the cluster of content publishers included in the reply request.

At least one other aspect of this technical solution relates to a system for reducing acknowledgement requests in a broadcast transmission network. The system can include one or more processors coupled to a memory. The system is capable of receiving a request for content to be broadcast at a first time. The request can identify the content publisher. The system can obtain cluster data of a content publisher corresponding to a first time. The cluster data can identify a content selection metric based on a predicted characteristic of the cluster of content publishers corresponding to the first time. The cluster data can be used to select content to be broadcast. The system is capable of determining a subset of content items from the plurality of content items. Each content item in the subset of content items has a cluster filter criterion that satisfies a content selection metric. The system can rank the subset of content items based on the content selection metric and the cluster filter criteria for each of the subset of content items to create an order of content items included in the subset of content items. The system is capable of transmitting data identifying an order of content items to a content publisher. The content publisher can broadcast each content item included in the subset using the order.

In some implementations, the system can receive candidate cluster information. In such implementations, the system can update the cluster data using the candidate cluster information. In some implementations, the system can receive content information from a content publisher. In such implementations, the system can access each of the plurality of content items to determine a respective cluster filter criterion. In such implementations, the system can compare each of the respective cluster filter criteria to the cluster data to determine that the cluster filter criteria satisfies the content selection metric. In some implementations, the system can select a respective content item to include in the subset in response to a determination that the cluster filtering criteria satisfies the content selection metric.

In some implementations, the system can associate each of the plurality of content items with a respective duration value, and the system can compare the respective duration value associated with each of the plurality of content items to a duration threshold to create a filtered set of content items. In such implementations, the system can determine a subset of content items from a filtered set of content items. Each content item in the subset of content items can have cluster filtering criteria that satisfy a content selection metric. In some implementations, the system can rank the subset of content items based on at least one of a respective content item expiration value, a respective content item duration value, or a respective content item access count value. In some implementations, the system can transmit a subset of content items to be broadcast in a broadcast stream by a content publisher. In some implementations, the system can access data records associated with the publisher from a database to obtain cluster data for the content publisher. In some implementations, the system can receive a response request from the content publisher that includes characteristics of the cluster of content publishers. In some implementations, the system can update the subset of content items and the data structure associated with the content publisher based on characteristics of the cluster of content publishers included in the response request.

At least one other aspect of this technology relates to a non-transitory computer storage medium encoded with instructions executable by one or more processors. The instructions can cause the one or more processors to receive a request for content to be broadcast at a first time. The request can identify the content publisher. The instructions can cause the one or more processors to obtain cluster data of the content publisher corresponding to the first time. The cluster data can identify a content selection metric based on a predicted characteristic of the cluster of content publishers corresponding to the first time. The cluster data can be used to select content to be broadcast. The instructions can cause the one or more processors to determine a subset of content items from the plurality of content items. Each content item of the subset of content items can have cluster filtering criteria that satisfy a content selection metric. The instructions can cause the one or more processors to rank the subset of content items based on the content selection metric and the cluster filter criteria for each content item of the subset of content items to create an order of content items included in the subset of content items. The instructions can cause the one or more processors to transmit data identifying an order of the content items to a content publisher, the content publisher broadcasting each content item included in the subset using the order.

In some implementations, the instructions are also capable of causing the one or more processors to receive candidate cluster information. In such implementations, the instructions are further capable of causing the one or more processors to update the cluster data using the candidate cluster information. In some implementations, the instructions can also cause the one or more processors to receive content information from a content publisher. In such implementations, the instructions are further capable of causing the one or more processors to access each of the plurality of content items to determine the respective cluster filter criteria. In such implementations, the instructions are further capable of causing the one or more processors to compare each of the respective cluster filter criteria to the cluster data to determine that the cluster filter criteria satisfies the content selection metric. In such implementations, the instructions can further cause the one or more processors to select the respective content items to be included in the subset in response to a determination that the cluster filtering criteria satisfies the content selection metric.

In some implementations, each of the plurality of content items is associated with a respective duration value, and the instructions are further capable of causing the one or more processors to compare the respective duration value associated with each of the plurality of content items to a duration threshold to create a filtered set of content items. In such implementations, the instructions can further cause the one or more processors to determine a subset of content items from a filtered set of content items, each content item in the subset of content items having a cluster filter criterion that satisfies the content selection metric. In some implementations, the instructions are further capable of causing the one or more processors to rank the subset of content items based on at least one of a respective content item expiration value, a respective content item duration value, or a respective content item access count value. In some implementations, the instructions can also cause the one or more processors to transmit, to the content publisher, a subset of the content items to be broadcast by the content publisher in the broadcast stream. In some implementations, the instructions can further cause the one or more processors to access a data record associated with the publisher from a database to obtain cluster data for the content publisher. In some implementations, the instructions can further cause the one or more processors to receive a response request from the content publisher that includes characteristics of the cluster of content publishers. In some implementations, the instructions are further capable of causing the one or more processors to update data structures associated with the content publishers and the subset of content items based on characteristics of the clusters of content publishers included in the reply request.

These and other aspects and implementations are discussed in detail below. The foregoing information and the following detailed description include illustrative examples of various aspects and implementations, and provide a summary or framework for understanding the nature and character of the claimed aspects and implementations. The accompanying drawings are included to provide an illustration and a further understanding of the various aspects and implementations, and are incorporated in and constitute a part of this specification. Aspects can be combined, and it should be readily appreciated that features described in the context of one aspect of the invention can be combined with other aspects. Aspects can be implemented in any convenient form. For example, a suitable computer program may be carried on a suitable carrier medium (computer readable medium), which may be a tangible carrier medium (e.g., a diskette) or an intangible carrier medium (e.g., a communications signal), by way of the suitable computer program. Aspects may also be implemented using suitable apparatus, which may take the form of a programmable computer running a computer program arranged to implement the aspects.

Drawings

The drawings are not intended to be drawn to scale. Like reference numbers and designations in the various drawings indicate like elements. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:

FIG. 1 shows a block diagram depicting an example system flow diagram for reducing answer requests in a broadcast network;

FIG. 2 shows a block diagram depicting an example system for predicting and selecting content in a broadcast network;

FIG. 3 shows an illustrative system flow diagram of various requests and transmissions by at least some of the devices of the system described herein;

FIG. 4 shows a flow diagram of a method of reducing answer requests in a broadcast network;

FIG. 5 shows a general architecture of an illustrative computer system that may be employed to implement any of the computers discussed herein.

Detailed Description

The following is a detailed description of various concepts related to methods, apparatus, and systems for privacy-preserving determination of intersections of sets of user identifiers, and implementations thereof. The various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, as the described concepts are not limited to any particular manner of implementation.

A content publisher providing broadcast transmissions is able to broadcast content to many receiver nodes simultaneously. A receiver node (e.g., cable box, radio, etc.) can receive content broadcast by a content publisher and render the content, e.g., via a display or speakers. The receiver nodes are accessible by many different users in the audience, each of which has different preferences, backgrounds, demographic information, and other characteristics. Content publishers typically provide broadcast content in regional capacity and can customize their content to different regions on a macroscopic level based on the predicted characteristics of the audience at the time of the broadcast. Predictive audience data (e.g., predictive audience characteristics, other information related to the audience or broadcast content, etc.) can refer to an expected number of receiver nodes that access content broadcast by a content publisher, expected characteristics of users of the receiver nodes, and other expected information about the content or content network.

However, selecting content to broadcast based on predicted audience data is challenging because the best selection of content must be tailored to the actual characteristics of the entire audience at the time of broadcast. This problem arises in a broadcast content environment, because content broadcast networks are not typically configured to provide content to each receiver node on a one-to-one basis. Alternatively, the content provider can broadcast the same or similar content to all receiver nodes in a particular area. Thus, content publishers need to make informed decisions about what content to select, which can be provided weeks in advance, based on the predicted audience data. Because the content stream is decided well in advance, the predicted audience data may not accurately reflect the number or characteristics of the audience actually accessing the broadcast content stream. Varying audience preferences, characteristics, and other factors can cause differences between the predicted audience data and the actual characteristics of the audience at the time of the broadcast.

To solve the foregoing problems, the system and method of this technical solution enables selection, ranking and response of ratings or access of broadcast content of content publishers dynamically in real time. When a content publisher wants to modify its content stream to reflect expected access information from the receiver node, the content publisher can submit a request from the system for ranked and ordered content. Based on the information in the request, the system can determine a subset of the content to add or incorporate in the content publisher's broadcast stream. The system can transmit the subset of the content back to the content publisher for further analysis. The content publisher can provide receiver node information reflecting access to the content publisher's broadcast stream based on information accessed from receiver nodes in communication with the content publisher.

Using receiver node information and metadata associated with the broadcast content stream of the content publisher, the system can rank subsets of content items to determine the order in which content is to be broadcast. The system can transmit the order to the content publisher along with the content identifier, content duration information, and other information. The content publisher can then accept the ordered broadcast content and insert it into the content stream for presentation via the receiver node. After broadcasting the updated content stream to the receiver nodes, the content publisher can provide a single reply that includes updated receiver node information reflecting the actual access to the content stream by the receiver nodes. This is an improvement over one-to-one content provider systems using a reply for each device accessing the content, as this solution is able to provide a single reply representing a reply for a large group of receiver nodes accessing the broadcast stream. The system can then confirm the actual access to the content stream by the receiver node by parsing the single reply and record the access event in a database associated with the content publisher.

Thus, the technical solution described herein can thus provide increased computational performance and reduce overall network utilization when compared to other content selection systems. Rather than confirming access to the broadcast stream on a one-to-one basis to each receiver node, the system is able to confirm access events for all receiver nodes in communication with the content publisher by confirming a single request. This reduces the computational load on the broadcast content selection and modification system and reduces the overall network traffic between the receiver node and the broadcast content system. Furthermore, by only transmitting receiver node information that answers access to the content stream, this technical solution increases the overall security of the broadcast content system, since protected or private information does not leave the secure communication channel between the receiver node and the content publisher. Thus, information associated with the receiver node is less susceptible to data corruption or man-in-the-middle attacks, which is an improvement over other broadcast content systems.

Broadcast networks (e.g., television, radio, internet live streaming, etc.) have high access between receiver devices in cross-world regions. The broadcast content can be distributed using any number of standards (e.g., the Digital Video Broadcasting (DVB) standard, the Advanced Television Systems Committee (ATSC) standard, the Integrated Services Digital Broadcasting (ISDB) standard, the Digital Terrestrial Multimedia Broadcasting (DTMB) standard, the Digital Multimedia Broadcasting (DMB) standard, Frequency Modulation (FM) broadcasting, Amplitude Modulation (AM) broadcasting, the Digital Audio Broadcasting (DAB) standard, the hypertext markup language 5.0(HTML5), etc.) and received by a receiver device configured to receive the broadcast signal. Some receiver devices, such as smart televisions, smart radios, and other computing devices, can include a built-in tuner to receive broadcast signals, as well as an internet connection that can enable the device to download HTML 5-enabled applications per broadcaster (e.g., or per channel, etc.). These applications can allow broadcaster driven behaviors such as dynamic overlays, supplemental content, and video overlays.

Broadcast access by the receiver device can be tracked by an audience predictor computing device (e.g., audience predictor 120, etc.) that is capable of communicating with an application executing on the receiver device. The application can transmit the heartbeat signal to a data center associated with the audience predictor computing device or to the audience predictor computing device itself. The audience predictor computing device can aggregate these heartbeat signals and their associated information to accurately estimate access to broadcast content by receiver devices in a particular area. The broadcast content provider can utilize this estimated measurement information to select and include relevant content in the regional broadcast stream.

The system and method of this technical solution enables the identification, selection, ranking and provision of a list of content for a one-to-many broadcast environment. The identification and selection can be based on estimated audience profile information as well as information provided by the broadcast content provider. The systems and methods described herein can maintain an estimated audience data pipeline that can include predictions about access to broadcast content by receiver devices at various times. The identified and selected content can be further ranked by comparing the different audience data with the metadata information available for each content item. After recommending content to the content provider, the system and method of this technical solution is able to reply to access to the selected content by multiple receiver devices in a single reply message. The reply message can identify a total number of receiver devices that accessed the content, and the systems and methods can record the reply message in one or more data structures in association with an identifier of the broadcast content provider.

Referring now to fig. 1, depicted is an example system 100 for reducing answer requests in a broadcast network. The system 100 can include at least one data processing system 105, at least one asset store 115, at least one audience predictor 120, and at least one content broadcaster 125. The data processing system 105 can include at least one request receiver 130, at least one cluster data obtainer 135, at least one subset selection engine 140, at least one content ranking engine 145, at least one content listing communicator 150, and at least one response receiver 155. Audience predictor 120 can include at least one broadcast measurement 165, at least one audience prediction 170, and at least one broadcast content insertion controller 175. The content broadcaster 125 can include at least one playout manager 180, at least one content scheduler 185, at least one content manager 190, and at least one content broadcast 195.

Each of the components of the system 100 (e.g., the data processing system 105, the asset store 115, the audience predictor 120, the content broadcaster 125, the request receiver 130, the cluster data obtainer 135, the subset selection engine 140, the content ranking engine 145, the content listing communicator 150, the response receiver 155, the broadcast measurements 165, the audience predictions 170, the broadcast content insertion controller 175, the playout manager 180, the content scheduler 185, the content manager 190, the content broadcasts 195, etc.) can be implemented using hardware components or a combination of software and hardware components of the computer system 500 detailed herein in connection with fig. 5. For example, the data processing system 105 can include a server or other computing device. Audience predictor 120 can include a server or other computing device. Content broadcaster 125 can include a server or other computing device. Each of the components of the data processing system 105 is capable of performing the functionality detailed herein.

The data processing system 105 can include at least one processor and memory, i.e., processing circuitry. The memory stores processor-executable instructions that, when executed by the processor, cause the processor to perform one or more of the operations described herein. The processor may comprise a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), the like, or a combination thereof. The memory may include, but is not limited to, an electronic, optical, magnetic, or any other storage or transmission device capable of providing a processor with program instructions. The memory may also include a floppy disk, a CD-ROM, a DVD, a magnetic disk, a memory chip, an ASIC, an FPGA, a Read Only Memory (ROM), a Random Access Memory (RAM), an Electrically Erasable Programmable ROM (EEPROM), an Erasable Programmable ROM (EPROM), a flash memory, an optical medium, or any other suitable memory from which a processor can read instructions. The instructions may include code from any suitable computer programming language. The data processing system 105 can include one or more computing devices or servers capable of performing various functions including, for example, the functionality or methods described herein.

Asset store 115 may be a database configured to store and/or maintain any of the information described herein. The asset store 115 can maintain one or more data structures that can contain or index each of the values, complex numbers, sets, data structures, or thresholds described herein. The asset store 115 can be accessed using one or more memory addresses or index values. Asset store 115 can be accessed by components of data processing system 105 or content broadcaster 125 via a network (e.g., network 210 described herein in connection with fig. 2, etc.). In some implementations, the asset store 115 may be internal to the data processing system 105. In some implementations, the asset store 115 can reside external to the data processing system 105 and can be accessed via a computer network.

Asset storage 115 can be distributed across many different computer systems or storage elements and can be accessed via a computer network or suitable computer bus interface. The data processing system 105 can store the results of any or all of the calculations, determinations, selections, identifications, generation, construction, or accounting, as well as content items, video items, pictures, text assets, asset metadata, content item metadata, audience data (e.g., predicted, actual, real-time, forecasted, etc.), message data (e.g., any data associated with any of the communications described herein in connection with fig. 1-4, etc.), in the asset store 115 in one or more data structures indexed by appropriate values, each of which may be accessed by the data processing system 105, audience predictor 120, or content broadcaster 125 to perform any of the functionalities or functions described herein. The data processing system 105 can store pre-encoded (e.g., configured to be inserted into a broadcast) content that can be accessed by any computing device in the system 100.

The request receiver 130 can receive one or more requests for content to be broadcast from the audience predictor 120 or the content broadcaster 125. The request can reflect the first time period, or be associated with a timestamp value reflecting a time of day, year, and can include date information. The request can identify a content broadcaster (e.g., audience predictor 120 or content broadcaster 125, etc.). The identification of the content broadcaster can include an identifier code or value associated with the corresponding content broadcaster. In some implementations, the identification can include a uniform resource identifier that includes a path to one or more resources, configuration settings, or an identifier associated with a corresponding content broadcaster. The request can also include information about the broadcast stream and other broadcaster receiver criteria that can be used to select content to be broadcast. For example, the request can include an identifier of a broadcast channel associated with a content broadcaster. The request can include one or more key values corresponding to cluster selection metrics (e.g., broadcast receiver characteristics, etc.). The cluster selection metrics can include information about the audience of the content broadcaster, for example, information about users of broadcast receiver devices (e.g., broadcast receiver 220, etc.) that access the content broadcasts provided by the content broadcaster. This information can include, for example, total ratings information, category identifiers (e.g., categories corresponding to various potential interests or topics, etc.), potential user interests, demographic information (e.g., age, gender, etc.), and other information regarding the characteristics of the content broadcaster's audience.

The cluster data obtainer 135 can obtain cluster data about content publishers from the audience predictor 120 or the content broadcaster 125. To identify content items related to an audience of a content publisher (e.g., the content broadcaster 125) to be included in the content publisher's broadcast stream, the cluster data obtainer can obtain audience data (e.g., cluster data, receiver device information, etc.). In some implementations, the cluster data obtainer 135 can access one or more database entries in the memory of the data processing system 105 to identify cluster data, which may include particular data regarding audience ratings characteristics of associated content publishers during particular time periods. A cluster may refer to an audience of a content publisher. For example, a cluster may include one or more receiver devices configured to receive broadcasts from a content publisher, which may be a content broadcaster. The cluster data may be considered a predictive characteristic of a particular cluster of content publishers corresponding to a particular time. The cluster data may include receiver node access data. The cluster data obtainer 135 can identify a category group associated with each of the content items in the asset store and access a database entry of content publisher audience information based on the content groups. The content group can include at least one category identifier identified in a request for content to be broadcast received by the request receiver 130. In some implementations, the cluster data obtainer 135 can update the cluster data based on information received from the audience predictor 120. For example, the audience predictor 120 can periodically provide updated cluster data (e.g., candidate cluster information) to the cluster data obtainer 135. Cluster data obtainer 135 is capable of receiving the updated cluster data and updating and storing the cluster data in one or more data structures in data processing system 105.

In some implementations, the cluster data obtainer 135 can transmit one or more requests to the audience predictor 120 or the content broadcaster 125 to obtain cluster data. The request can include one or more proposed content selection metrics or categories. The content selection metrics or categories can be identified by the cluster data obtainer by identifying one or more content items corresponding to key values received by the request receiver 130 in a request for content to be broadcast. For example, the request for content to be broadcast can include an identifier of a category or demographic associated with the corresponding content publisher. The cluster data obtainer 135 can access a database (e.g., the asset store 115) to identify one or more content items associated with at least one of those category identifiers. To determine which of those content items are recommended for broadcast, the cluster data obtainer 135 can transmit one or more requests for audience information associated with each category identifier associated with one or more content items. Each of the content groups can be organized in a computer-readable format, such as a JavaScript object notation (JSON) format. The request may be a list of category groups, each of which includes one or more categories or demographic identifiers. These groups of categories may also be referred to as line items. Each category group can correspond to at least one content item in the asset store 115.

After providing the request for audience data to the audience predictor 120 or the content broadcaster 125, the cluster data obtainer 135 can receive one or more messages from the audience predictor 120 or the content broadcaster 125. The messages can include audience information corresponding to each of the groups of content provided in the respective requests. For example, if the request includes a content group (e.g., or a line item, etc.), the following categories can be included: women, 18-49 years old, and interest in soccer. The corresponding response messages from the audience predictor 120 or the content broadcaster 125 can include information about the audience of the content publisher that corresponds to each of those categories at a particular time. This information may be a forecast or estimate of the rating or access to the broadcast stream at the time indicated by the request. In some implementations, the cluster data (e.g., audience information) can reflect the audience's real-time ratings or access to the broadcast stream at the time of the request. Each category group included in the request for cluster data can be associated with a different rating or number of visits. Thus, the response messages received from the audience predictor 120 or the content broadcaster 125 can include ratings information for each group of content categories in the request. The response message can also include details about the broadcast slot into which the selected content is to be inserted. This information can include, among other things, a start timestamp, a stop timestamp, a minimum content duration value, a maximum content duration value, and a total slot duration value. The response message can also identify additional information about the content broadcaster 125, such as additional channel metadata. The metadata can include information about what the content publisher is broadcasting, including broadcast content, content schedules (e.g., when particular content is broadcast, etc.), broadcast media (e.g., internet live streams, television broadcasts, cable television broadcasts, radio broadcasts, etc.), and other information about the content broadcaster 125.

Subset selection engine 140 can select a subset of content items stored in the asset store to insert into the broadcast content of content broadcaster 125. Selecting the subset can include accessing the asset store 115 to identify content items associated with each of the content groups identified by the cluster data obtainer 135. Each of the content items in the asset store 115 can be associated with a respective cluster filter criterion. For example, certain content items may include category identifiers, keywords, metadata, or other information related to audience characteristics as described herein. Thus, content items may be associated cluster filter criteria that can be compared to predicted audience characteristics, and some content items can be more closely associated with those characteristics than other content items. The subset selection engine 140 can determine a weight value for each of the content items that indicates how similar the cluster filter criteria for the content item are to the predicted audience characteristics. To identify whether the subset selection engine 140 should select a content item for inclusion in the subset, the subset selection engine 140 can compare the weight value to a subset threshold. The subset threshold can be maintained in a memory of the data processing system. If the weight value is greater than or equal to the subset threshold, the subset selection engine 140 can include the corresponding content item in the subset. Otherwise, the content item can be excluded from the subset.

The subset selection engine 140 can further narrow the content items based on the duration of each of the one or more content items. The subset selection engine 140 can receive content period duration information from the audience predictor 120 in a request. To determine whether the content items selected in the subset meet the duration requirement (e.g., the content items are not too long, not too short, etc.), the subset selection engine 140 can compare the duration value associated with each content item to the content slot duration information to create a filtered set of content items. The subset selection engine 140 can then select a subset from the filtered set of content items as described herein (e.g., based on content filtering criteria, a content selection model, etc.). The subset selection engine 140 can select content items to be included in the subset based on the expiration value. For example, if a content item is associated with a value indicating that the content item will soon expire, the subset selection engine 140 may include the content item in a subset. Each content item can be associated with a total access value indicating a total number of presentations to the receiver device. The data processing system 105 can update the total number of presentations using the number of receiver nodes indicated in the reply message received from the audience predictor 120. In some implementations, the subset selection engine 140 can select a content item for inclusion in the subset if the content item is associated with a total access value that is less than a predetermined threshold.

The subset selection engine 140 can select content items to include in the subset based on the output of a content selection model (e.g., linear regression, bayesian optimization, neural networks, deep neural networks, etc.). The content selection model can use cluster filtering criteria for each content item and audience data received from the audience predictor 120 as inputs to the model. The model can output a value indicating, for example, whether the content item should be included in the subset. In some implementations, based on the input to the model, the model can output one or more pointers or identifiers of content items to be included in the subset.

The content ranking engine 145 can rank each of the selected content items using the content metrics associated with each of the content items and the information included in the messages received by the cluster data obtainer 135. To rank each content item in the subset of content items, the content ranking engine 145 can compare various characteristics of the content items to characteristics of the broadcast stream, audience data, and other content items of the subset, among others, as described herein. For example, the ranking order of the subset of content items can be determined based on the viewership rating of the category group associated with the content items. Ranking the content items can also be based on the duration of the content items. For example, content items associated with larger duration values can be placed near the bottom of the order and content items associated with shorter duration values can be placed at the top of the order, or vice versa. In some implementations, the content ranking engine 145 can include further ranking the content items based on additional values, such as a conversion likelihood value, an engagement value, and other metrics of viewership or impact of the content items.

The content list communicator 150 can communicate, provide, or otherwise communicate the ranked ordered list of content items to the audience predictor 120. The list of content items can include a list of identifiers of content items, such as a list of uniform resource identifiers pointing to content in the asset store 115. In some implementations, the content list communicator 150 can access the asset store 115 and can retrieve content items identified in the list of content items. Then, instead of transmitting the list of content identifiers, the content list communicator 150 can transmit, provide, or otherwise communicate the content items themselves to at least one of the audience predictor 120 or the content broadcaster 125. If received by the audience predictor 120, the audience predictor can forward the content items to the content broadcaster 125 for insertion in the content broadcast 195. If the content broadcaster 125 receives a content item, it does not need to retrieve the content from the asset store 115 and can encode and insert the content or simply insert it according to the markers indicated in the broadcast stream.

The response receiver 155 can receive response data messages associated with each of the ranked content items from the audience predictor 120 or the content broadcaster 125. The response message can respond to the access or rating of the content item provided by the data processing system 105 after it has been broadcast by the content broadcaster 125. To collect ratings or access data for broadcast streams, the content broadcaster 125 or audience predictor 120 can maintain a record of the number of viewers accessing the content stream. The response receiver 155 can compare the actual ratings or access data of the broadcast stream to the predicted audience data received from the audience predictor 120 to determine feedback data to send to the audience predictor 120. In some implementations, the subset selection engine 140 can also use the feedback data determined by the reply receiver 155 to train the model used to select the subset. The response receiver 155 can store the total actual audience share information, the order of the subsets of content items provided to the audience predictor 120 or the content broadcaster 125, and the content item metadata in association with the content publishers in one or more data structures in a memory accessible by the data processing system 105.

Audience predictor 120 can include at least one processor and memory, i.e., processing circuitry. The memory stores processor-executable instructions that, when executed by the processor, cause the processor to perform one or more of the operations described herein. The processor may comprise a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), the like, or a combination thereof. The memory may include, but is not limited to, an electronic, optical, magnetic, or any other storage or transmission device capable of providing a processor with program instructions. The memory may also include a floppy disk, a CD-ROM, a DVD, a magnetic disk, a memory chip, an ASIC, an FPGA, a Read Only Memory (ROM), a Random Access Memory (RAM), an Electrically Erasable Programmable ROM (EEPROM), an Erasable Programmable ROM (EPROM), a flash memory, an optical medium, or any other suitable memory from which a processor can read instructions. The instructions may include code from any suitable computer programming language. The data processing system 105 can include one or more computing devices or servers capable of performing various functions including, for example, the functionality or methods described herein.

Content broadcaster 125 may include at least one processor and memory, i.e., processing circuitry. The memory stores processor-executable instructions that, when executed by the processor, cause the processor to perform one or more of the operations described herein. The processor may comprise a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), the like, or a combination thereof. The memory may include, but is not limited to, an electronic, optical, magnetic, or any other storage or transmission device capable of providing a processor with program instructions. The memory may also include a floppy disk, a CD-ROM, a DVD, a magnetic disk, a memory chip, an ASIC, an FPGA, a Read Only Memory (ROM), a Random Access Memory (RAM), an Electrically Erasable Programmable ROM (EEPROM), an Erasable Programmable ROM (EPROM), a flash memory, an optical medium, or any other suitable memory from which a processor can read instructions. The instructions may include code from any suitable computer programming language. The data processing system 105 can include one or more computing devices or servers capable of performing various functions including, for example, the functionality or methods described herein.

The content scheduler 185 can schedule or pre-code broadcast content to be transmitted to receiver devices (e.g., the broadcast receivers 220A-N described herein in connection with fig. 2). The content scheduler 185 can access one or more databases to retrieve content to be broadcast and create a schedule or order in which the content is to be broadcast to other devices. The broadcast content can include one or more markers (e.g., time-related data, etc.) that can indicate that the content should be inserted in a particular location in the content stream. When scheduling broadcast content, the content scheduler 185 can determine a scheduling period (e.g., a timestamp, etc.) during which content should be inserted from the asset store 115. The content scheduler 185 can generate one or more markers to be inserted into the scheduled content stream (e.g., metadata, timestamps, and duration information inserted into a broadcast stream accessible by other components of the content broadcaster 125, etc.). The content scheduler 185 can create a broadcast content schedule at a time prior to broadcasting the content to the receiver devices. The marker inserted by the content scheduler 185 can indicate the duration of the content stream in which the content should be inserted just prior to the broadcast of the portion of the content. The content scheduler 185 can provide the content schedule to other modules in the content broadcaster 125 (e.g., playout manager 180, content manager 190, etc.).

The playout manager 180 can monitor playout of the broadcasted content broadcast 195 based on the content broadcast schedule generated by the content scheduler 185. Monitoring content broadcast 195 can include portions of the access content broadcast schedule that have not been broadcast in content broadcast 195. By accessing portions of the content schedule that have not yet been broadcast, the playout manager 180 can determine whether there are any markers (e.g., SCTE-35 markers, alert tone markers, etc.) that are close in time to the broadcast time (e.g., a marker indicating that 30 seconds of content should be inserted in the broadcast at a certain time, etc.). If a marker is detected in the content schedule for a certain period of time to insert content into the broadcast stream (e.g., insert 40 seconds of content to be broadcast within 30 seconds, 45 seconds, 2 minutes, etc.), the playout manager 180 can generate and transmit a request for content to the audience predictor 120. The request can include, for example, an identifier of the content broadcaster 125, a duration of the content to be inserted (e.g., a content slot duration, etc.), a content identifier and a timestamp (e.g., time, date, etc.) identifying the content broadcast by the content broadcaster 125, and other information.

The audience predictor 120 can receive a request for content and begin collecting audience data (e.g., metadata about the receiver device, etc.) in response to the request. The broadcast measurement 165 may be a most recent (e.g., last minute, last five minutes, last hour, real time, etc.) estimate of the number of receiver nodes accessing the broadcast. This information can be updated by the audience predictor 120 based on heartbeat signals received by the receiver device (e.g., in real-time, on a periodic basis, etc.). The broadcast measurements 165 can include information parsed and aggregated from the heartbeat signals received from the receiver devices, and can include profile information, demographic information, access information (e.g., access time, access duration, type of broadcast content accessed, broadcast content identifier, etc.), other information about the receiver devices, such as identifiers and metadata. The audience predictor 120 can store, update, and otherwise access the data in the broadcast predictions 165 in one or more data structures in a memory of the audience predictor 120.

Audience prediction 170 may be the most recent prediction of audience receiving device characteristics. Audience prediction 170 can include predictions about audience characteristics of particular broadcasts during particular time periods. Audience prediction 170 can be based on previous data, or data collected and included in broadcast measurements 165. Audience prediction 170 can, for example, include information about user profiles associated with receiver devices accessing content broadcast 195, including demographic information, access duration information, access time information, interest categories associated with the receiver devices, and other information. The audience predictor 120 can update the audience prediction, for example, on a real-time basis, a periodic basis, or in response to one or more messages received from at least one computing device of the system 100. For example, audience prediction 170 can indicate a predicted demographic or characteristic associated with receiver devices accessing the content broadcast during a given time period. The audience predictor 120, in response to a request, can aggregate the heartbeat signal and information associated with the receiver device transmitting the heartbeat signal to determine demographics and characteristics associated with the receiver node. Based on current and historical access information, as well as other information in the heartbeat signal as described herein, the audience predictor 120 can update or maintain the audience prediction 170 in one or more data structures in a memory of the audience predictor 120.

The broadcast content insertion controller 175 can transmit or forward requests for content to the data processing system 105 along with audience data based on broadcast measurements 165 and audience predictions 170. For example, the request transmitted to the data processing system 105 can include information about audience or receiver device cluster characteristics derived from the broadcast measurements 165 or data included in the audience prediction 170. In some implementations, the broadcast content insertion controller can transmit the entirety of the broadcast measurements 165 and audience predictions 170 over a period of time associated with a request for content to be broadcast. The receiver device characteristics or cluster data can indicate different characteristics about the receiver node, such as demographic information, access duration information, access time information, interest categories associated with the receiver device, and other information about the user of the receiver device.

In some implementations, the response to the request for content can be one or more category groups or row items that indicate a relevant group of content categories that may correspond to potential content to be broadcast. In response to receiving the set of content, the broadcast content insertion controller 175 can access the broadcast measurement 165 data and audience prediction 170 data to determine refined audience characteristics (e.g., audience ratings or access information, user profile information, etc.) corresponding to the set of content categories. For example, for a particular content category, the broadcast content insertion controller 175 can determine the number of receiver nodes associated with a category in the set of content categories. The broadcast content insertion controller 175 can transmit the refined audience characteristic data to the data processing system 105 along with the additional content slot information. The additional content slot information can include metadata about the requested content, such as a maximum content duration, a minimum content duration, and a total content slot duration, etc.

The broadcast content insertion controller 175 can receive a list of content, such as an ordered list of content, from the data processing system in response to a request for the content. The list of content can correspond to a request for content to be broadcast and can reflect or satisfy the audience characteristics and content slot information provided to the data processing system 105. The list of content may be an ordered list of content identifiers, such as an ordered list of Uniform Resource Identifiers (URIs) that point to content in the asset store 115. The list of content can include content metadata such as a category associated with the content, an order in which the content should be broadcast, and a duration of each content item in the list of content. Broadcast content insertion controller 175 can convert the list of content into a format that can be used by content broadcaster 125. For example, broadcast content insertion controller 175 can remove information from the list or format the list of content to conform to a format specified by content broadcaster 125. This can include, for example, parsing the list of content to extract content identifiers, generating the list in a format specified by content broadcaster 125, and inserting each of the extracted content identifiers in the list of content for content broadcaster 125. Broadcast content insertion controller 175 can then communicate the list of formatted or otherwise content to content broadcaster 125 for insertion into content broadcast 195.

The content manager 190 can receive a list of content to be broadcast from the audience predictor 120 and can parse the list to extract one or more content identifiers. Each of the content identifiers can point to one or more content items stored in the asset store 115. The content broadcaster 125 can access the asset store 115 using the content identifier (e.g., as a key in a database, etc.) to identify and retrieve content items identified in the list. Retrieving the content item can include identifying a format of the content broadcast 195 (e.g., radio, television, standard definition, high definition, 4K, 8K, etc.). In some implementations, after identifying the format of the content broadcast, the content manager 190 can use the format to access the content items in the asset store 115 that correspond to both the format and the content identifier. For example, the asset store 115 can maintain a different format for each content item associated with a content identifier. To select content items that can correspond to the format of content broadcast 195, content manager 190 can access the asset store to select content items having the same format as the format of content broadcast 195. In some implementations, content manager 190 can encode the content retrieved from asset store 115 as the same as the content of content broadcast 195.

The content manager 190 can use the information received from the playout manager 180 to insert content into the content broadcast 195. This information can include an alert tone request, or a marker indicating where to insert the content items identified in the list in the content broadcast 195. For example, the playout manager 180 can indicate that there are upcoming content slots in the content broadcast 195 in which content can be inserted. The content manager 190 can use the marker or indicator to splice, stitch, or otherwise insert the content items retrieved from the asset store 115 into the content broadcast 195. Inserting content into a content broadcast can include, for example, splicing MPEG-TS content items into a stream to create a complete content stream. After one or more content items have been inserted into content broadcast 195, content broadcaster 125 can broadcast the content to one or more receiver devices.

Content broadcast 195 may be, for example, MPEG-TS video broadcast over a broadcast network to one or more video receiver devices as described herein. The content broadcast can also include an audio stream such as radio or an internet live stream such as an HTML5 compatible live stream. As illustrated in fig. 2, content broadcaster 125 can broadcast content broadcasts 195 over one or more broadcast networks coupled to the content broadcaster. After or while the inserted content is being broadcast to the receiver devices, the audience predictor 120 can monitor and determine the number of receiver nodes that accessed the broadcast during the presentation of the inserted content. The audience predictor can then send a response message to the data processing system 105 that includes the number of receiver nodes that accessed the broadcast during the presentation of the inserted content.

Referring now to fig. 2, depicted is an example high-level system 200 for predicting device access and selection of content in a broadcast network. The system 200 may be, include, or otherwise incorporate any or all of the devices, systems, methods, or components present in the system 100. The system 200 can include at least one data processing system 105, at least one audience predictor 120, at least one content broadcaster 125, at least one network 210, at least one broadcast network 215, and at least one or more broadcast receivers 220A-N (sometimes referred to generally as broadcast receivers 220 or broadcast receivers 220).

The network 210 can include a computer network such as the internet, a local area network, a wide area network, a metropolitan area network, or other area network, an intranet, a satellite network, other computer networks such as voice or data mobile telephone communication networks, and combinations thereof. The data processing system 105 of the system 200 (or the system 100) is capable of communicating with, for example, at least one content broadcaster 125 and at least one audience predictor 120 via a network 210. Network 210 may be any form of computer network that relays information between content broadcaster 125, data processing system 105, audience predictor 120, and one or more content sources, such as web servers. In some implementations, the network 210 may include the internet and/or other types of data networks, such as a Local Area Network (LAN), a Wide Area Network (WAN), a cellular network, a satellite network, or other types of data networks. Network 210 may also include any number of computing devices (e.g., computers, servers, routers, network switches, etc.) configured to receive and/or transmit data within network 210. Network 210 may also include any number of hardwired and/or wireless connections. Any of the data processing system 105, audience predictor 120, or content broadcaster 125 may communicate wirelessly (e.g., via WiFi, cellular, radio, etc.) with a transceiver that is hardwired (e.g., via fiber optic cable, CAT5 cable, etc.) to other computing devices in the network 210. Each of the broadcast receivers 220A-N may be capable of communicating with the audience predictor 120 via the network 210 to send messages (e.g., heartbeat signals, etc.).

Broadcast receiver 220 may be a computing device configured to communicate via network 210 to provide a heartbeat signal as described herein above to audience predictor 120. The broadcast receiver 220 may be a desktop computer, laptop computer, tablet computer, smart phone, personal digital assistant, mobile device, consumer computing device, server, client, digital video recorder, television set-top box, video game console, radio, or any other computing device configured to communicate via the network 210 and the broadcast network 215, and so on. Broadcast receiver 220 is capable of receiving one or more broadcast transmissions from one or more content broadcasters via broadcast network 215. The broadcast receiver 220 is capable of receiving broadcast television, video, music, internet live streaming information, and other content and information via the broadcast network 215. Each of the broadcast receivers 220 is capable of presenting content received via the broadcast network 215 according to a broadcast type. For example, if the broadcast type is an audio broadcast (e.g., radio, etc.), the broadcast receiver 220 can play the audio using one or more speakers or audio rendering devices. If the broadcast type is video (e.g., television, satellite video, internet live stream, etc.), the broadcast receiver 220 can display the video (any playing any associated sound) using one or more displays or audio devices.

The broadcast receivers 220 can each include a processor and a memory, i.e., processing circuitry. The memory stores machine instructions that, when executed by the processor, cause the processor to perform one or more of the operations described herein. The processor may comprise a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), the like, or a combination thereof. The memory may include, but is not limited to, an electronic, optical, magnetic, or any other storage or transmission device capable of providing a processor with program instructions. The memory may also include a floppy disk, a CD-ROM, a DVD, a magnetic disk, a memory chip, an ASIC, an FPGA, a Read Only Memory (ROM), a Random Access Memory (RAM), an Electrically Erasable Programmable ROM (EEPROM), an Erasable Programmable ROM (EPROM), a flash memory, an optical medium, or any other suitable memory from which a processor can read instructions. The instructions may include code from any suitable computer programming language.

The broadcast receivers 220 can each include one or more user interface devices. In general, a user interface device refers to any electronic device (e.g., a keyboard, a mouse, a pointing device, a touch screen display, a microphone, etc.) that communicates data to a user by generating sensory information (e.g., a visualization on a display, one or more sounds, etc.) and/or converts sensory information received from a user into electronic signals. The one or more user interface devices may be internal to the housing of each broadcast receiver 220 (e.g., a built-in display, microphone, etc.) or external to the housing of each broadcast receiver 220 (e.g., a monitor connected to each broadcast receiver 220, a speaker connected to each broadcast receiver 220, etc.). In some implementations, each broadcast receiver 220 can include an electronic display that visually displays an interface using interface data provided by an operating system executing on the broadcast receiver 220.

The broadcast network 215 is capable of transmitting information in a one-to-many broadcast configuration. One or more content broadcasters 125 can use broadcast network 215 to deliver content to broadcast receiver 220 in a broadcast configuration. The broadcast network 215 may be any kind of broadcast network and may include a satellite television network, a television signal transmission, a digital television transmission, a radio transmission, a digital radio transmission, a cellular tower, a cable distribution network, the internet, or any other type of one-to-many broadcast network. Although not shown in fig. 2, it should be understood that the broadcast network 215 may be part of the network 210. The broadcast network 215 is accessible by each broadcast receiver 220 to present one or more content broadcasts. Broadcast network 215 is capable of facilitating the broadcast of content from many content broadcasters 125 simultaneously. Each broadcast receiver 220 is capable of tuning to a different content broadcast from one or more content broadcasters 125 using configuration settings. Thus, different groups or subsets of broadcast receivers 220 may simultaneously present different content broadcasts.

Referring now to fig. 3, depicted is an example high-level system flow diagram 300 illustrating various example communications between at least some of the devices of the system described herein. As illustrated in the system flow 300, the audience predictor 120 can communicate several requests and responses to the data processing system 105, which communicates various content selection responses. From the top, the audience predictor can provide content requests to the data processing system 105. The request can reflect a first time period, such as a time period in which content is to be inserted into the broadcast stream, or be associated with a timestamp value reflecting a time of day, year, and can include date information. The request can identify a content broadcaster (e.g., content broadcaster 125, etc.). The identification of the content broadcaster can include an identifier code or value associated with the content broadcaster. In some implementations, the identification can include a uniform resource identifier that includes a path to one or more resources, configuration settings, or an identifier associated with a corresponding content broadcaster. The request can also include information about the broadcast stream, as well as other criteria for selecting content to be broadcast. Although the criteria depicted herein are gender, age, type of sport, and various categories of interest, it should be understood that any number or type of criteria can be used to indicate audience or broadcast receiver device characteristics.

In a second step, the data processing system can provide a response including one or more content category groups or row items. Although the content category groups are described herein as having a JSON format, it should be understood that the content category groups may have any computer-readable format. As depicted, each of the content category groups includes a category corresponding to the category included in the request. For example, a first content category group is associated with males 12-39 years of age, a second category group is associated with females 18-49 years of age and having an interest in soccer, and so on. Although illustrated herein as there being only four content category groups in the response, it should be understood that the data processing system can provide any number of content category groups.

In a third step, the audience predictor 120 can provide an alert tone request to the data processing system. The alert tone request can include information about audience characteristics associated with each of the category groups returned by the data processing system in the second step. For example, the audience predictor can provide a number of predictors for the broadcast receiver associated with each content category group accessing the corresponding broadcast. Here, a first group of content categories (e.g., L1) is predicted to be associated with 20000 broadcast receivers, a second group of content categories (e.g., L2) is predicted to be associated with 10000 broadcast receivers, and so on. These values are purely exemplary and should not be construed as limiting the scope of any of the implementations described herein. The alert tone request can also include information about the content slots into which the content items are to be inserted, such as a minimum duration and a maximum duration for each content item. Here, the minimum duration of the content item is indicated as 30 seconds, while the maximum duration is indicated as 120 seconds.

In a fourth step, the data processing system 105 can provide an alert tone response in response to the alert tone request. The data processing system 105 can select content items corresponding to audience characteristics as described herein and can provide content identifiers in alert tone responses. The alert tone response may be an ordered list of content identifiers, such as URIs or key values of a content database (e.g., asset store 115, etc.). The alert tone response can also include additional metadata such as content duration and the group of content to which each content item corresponds. The audience predictor 120 can forward the content identifier to a content broadcaster (e.g., content broadcaster 125) for retrieval.

In steps five, six, and seven, the audience predictor 120 can provide three separate response messages to the data processing system 105. The reply message can indicate the number of broadcast receiver devices corresponding to the content category group that actually accessed the content provided by the data processing system. As indicated, the actual number of broadcast receiver nodes that both correspond to respective category groups of content items and present the content items in the broadcast stream can be different from the predicted number provided by the audience predictor 120. Here, the predicted number of presentations by the relevant broadcast receiver for L4 is 30000, but the actual number is slightly less, at 29900 actual accesses. In addition, the predicted number for L8 was 6000, but the actual number was 4205. Finally, L1 was predicted to be at 20000 accesses, but instead received only 14789. Although it is indicated that the actual access is less than the predicted access, it should be understood that the actual number of accesses by the relevant broadcast receiver (e.g., associated with the user associated with the category group) may be greater than, less than, or equal to the predicted number of accesses.

Referring now to fig. 4, depicted is an illustrative flow diagram of an example method 400 of reducing answer requests in a broadcast network. The method can be performed, for example, by data processing system 105 described herein in conjunction with FIG. 1 or computer system 500 described herein in conjunction with FIG. 5. A data processing system (e.g., data processing system 105, etc.) can receive a request for content to be broadcast (act 402). The data processing system can obtain cluster data for the content broadcaster (act 404). The data processing system can select the kth content item (act 406). The data processing system can determine whether the content item satisfies a selection metric (act 408). The data processing system can include the content item in a subset (act 410). The data processing system can determine whether the counter register k is equal to the number of content items n (act 412). The data processing system can increment counter register k (act 414). The data processing system can rank the subsets to create an ordered subset (act 416). The data processing system can transmit the ordered list of content items (act 418). The data processing system can receive one or more reply messages (act 420).

A data processing system (e.g., data processing system 105, etc.) can receive a request for content to be broadcast (act 402). The request can reflect the first time period, or be associated with a timestamp value reflecting a time of day, year, and can include date information. The request can identify the content broadcaster, which may also be referred to as the content publisher (e.g., audience predictor 120 or content broadcaster 125, etc.). The identification of the content broadcaster can include an identifier code or value associated with the corresponding content broadcaster. In some implementations, the identification can include a uniform resource identifier that includes a path to one or more resources, configuration settings, or an identifier associated with a corresponding content broadcaster. The request can also include information about the broadcast stream, as well as other broadcaster receiver criteria that can be used to select content to be broadcast. For example, the request can include an identifier of a broadcast channel associated with a content broadcaster. The request can include one or more key values corresponding to cluster selection metrics (e.g., broadcast receiver characteristics, etc.). The cluster selection metrics can include information about the audience of the content broadcaster, for example, information about users of broadcast receiver devices (e.g., broadcast receiver 220, etc.) that access the content broadcasts provided by the content broadcaster. This information can include, for example, total ratings information, category identifiers (e.g., categories corresponding to various potential interests or topics, etc.), potential user interests, demographic information (e.g., age, gender, etc.), and other information regarding the characteristics of the content broadcaster's audience.

The data processing system can obtain cluster data for the content broadcaster (act 404). To identify content items related to the audience of a content publisher to be included in the broadcast stream of the content publisher (e.g., content broadcaster 125, etc.), the data processing system can obtain audience data (e.g., cluster data, receiver device information, etc.). In some implementations, the data processing system accesses one or more database entries in computer memory to identify cluster data or particular data about audience characteristics of content publishers during a specified time period. The data processing system can identify a category group associated with each of the content items in the asset store (e.g., asset store 115, etc.) and access a database entry of content publisher audience information based on the content groups. The content group can include at least one category identifier identified in a request for content to be broadcast received by the request receiver 130. In some implementations, the data processing system can update the cluster data based on information received from an audience predictor (e.g., audience predictor 120, etc.). For example, the audience predictor can periodically provide updated cluster data (e.g., candidate cluster information, etc.) to the data processing system. The data processing system is capable of receiving updated cluster data and updating and storing the cluster data in one or more data structures in the computer memory.

In some implementations, the data processing system can transmit one or more requests to an audience predictor or content broadcaster (e.g., content broadcaster 125, etc.) to obtain the cluster data. The request can include one or more proposed content selection metrics or categories. The content selection metrics or categories can be identified by the data processing system by identifying one or more content items corresponding to key values in a request for content to be broadcast. For example, the request for content to be broadcast can include an identifier of a category or demographic associated with the corresponding content publisher. The data processing system can access a database (e.g., asset store 115) to identify one or more content items associated with at least one of those category identifiers. To determine which content items to recommend for broadcast, the data processing system can transmit one or more requests for audience information associated with each category identifier associated with one or more content items. Each of the content groups can be organized in a computer readable format, such as a JSON format. The request may be a list of category groups, each of which includes one or more categories or demographic identifiers. These groups of categories may also be referred to as line items. Each category group can correspond to at least one content item in the asset store.

After providing the request for audience data to the audience predictor or the content broadcaster, the data processing system can receive one or more messages from the audience predictor or the content broadcaster. The message can include audience information corresponding to each of the groups of content provided in the respective request. For example, if the request includes a content group (e.g., a line item, etc.), the following categories can be included: women, 18-49 years old, and interest in soccer. The corresponding response messages from the audience predictor or content broadcaster can include information about the audience of the content publisher that corresponds to each of those categories at a particular time. This information may be a forecast or estimate of the rating or access to the broadcast stream at the time indicated by the request. In some implementations, the cluster data (e.g., audience information) can reflect the audience's real-time ratings or access to the broadcast stream at the time of the request. Each category group included in the request for cluster data can be associated with a different rating or number of visits. Thus, the response message received from the audience predictor or content broadcaster can include ratings information for each group of content categories in the request. The response message can also include details about the broadcast slot into which the selected content is to be inserted. This information can include, among other things, a start timestamp, a stop timestamp, a minimum content duration value, a maximum content duration value, and a total slot duration value. The response message can also identify additional information about the content broadcaster, such as additional channel metadata. The metadata can include information about what the content publisher is broadcasting, including broadcast content, content schedules (e.g., when particular content is broadcast, etc.), broadcast media (e.g., internet live streams, television broadcasts, cable television broadcasts, radio broadcasts, etc.), and other information about the content broadcaster 125.

The data processing system can select the kth content item (act 406). To select the content items to be included in the subset, the data processing system can traverse each of the content items maintained in the asset store. The data processing system can iteratively loop through each of the content items based on the counter register k. Each of the content items in the asset store can be indexed in the data structure by an index value (e.g., index 0, index 1, index 2, etc.). To process a content item, the data processing system can select a content item that includes or is associated with an index value that is equal or approximately equal to the counter register k. If it is the first iteration of the loop, the counter register k can be initialized to an initialization value (e.g., k 0, k 1, etc.) before the kth content item in the asset store is selected. Selecting the content item can include copying data associated with the content item, such as metadata or content selection metrics, to a different area of computer memory in the data processing system, e.g., a working area of memory.

The data processing system can determine whether the content item satisfies a selection metric (act 408). The selected content items can include category identifiers, keywords, metadata, or other information related to audience characteristics as described herein. Thus, content items can be associated with cluster filtering criteria associated with particular audience characteristics, and some content items can be more closely associated with those characteristics than other content items. For example, each of the data processing systems can determine a weight value for a selected content item that indicates a level of relevance of the content filtering characteristics of the content item to the respective predicted audience characteristics. To identify whether the data processing system should include the selected content item in the subset, the data processing system can compare the weight value to a subset threshold. If the weight value is greater than or equal to the subset threshold, then the data processing system is able to perform act 410. If the weight value is not greater than or equal to the subset threshold, then the data processing system can perform act 412.

The data processing system can include the content item in a subset (act 410). Including the content items in the subset can include copying one or more content item identifiers to a data structure in a memory of the data processing system. If a subset data structure has not been generated (e.g., the first iteration of the loop, etc.), the data processing system can allocate an area of memory in the data processing system to contain the subset of content items. In some implementations, the subset of content items is a list of content item identifiers and associated metadata. The data processing system can copy the associated metadata from the asset store to a data structure containing a subset of the content items. The metadata can include information about the length of the content, as well as information about one or more content group or row items associated with the content item.

The data processing system can determine whether the counter register k is equal to the number of content items n (act 412). To determine whether the data processing system has traversed each content item, the data processing system can compare the counter register used to select each content item to the total number n of content items in the asset store. If the counter register k is not equal to (e.g., less than) the total number of content items n, then the data processing system is able to perform act 414. If the counter register k is equal to (e.g., equal to or greater than) the total number of content items n, then the data processing system is able to perform act 416.

The data processing system can increment counter register k (act 414). In some implementations, the data processing system can add a one to register k to indicate the next unselected content item in the asset store. In some implementations, the data processing system can set the counter register k to the memory address value (e.g., a location in computer memory) of the next unselected content item. In some implementations, the memory address value of the next unselected content item can be included in a data structure at the location of the current (e.g., selected) content item. After incrementing the value of counter register k, the data processing system is able to perform act 406.

The data processing system can rank the subsets to create an ordered subset (act 416). To rank each content item in the subset of content items, the data processing system can compare various characteristics of the content items to characteristics of the broadcast stream, characteristics of the audience data and other content items in the subset, and others, as described herein. The ranked order of the subset of content items can be determined based on a rating of a category group associated with the content items. Ranking the content items can also be based on the duration of the content items. For example, content items associated with larger duration values can be placed near the bottom of the order and content items associated with shorter duration values can be placed at the top of the order, or vice versa. In some implementations, the data processing system can also rank the content items based on additional values, such as a conversion likelihood value, an engagement value, and other metrics associated with presentation or impact of the content items.

The data processing system can transmit the ordered list of content items (act 418). The data processing system can communicate the ordered list of content items to an audience predictor or content broadcaster. The list of content items can include a list of identifiers of the ordered subset content items, such as a list of uniform resource identifiers pointing to respective content items in the asset store. In some implementations, the data processing system can access the asset store and retrieve content items identified in the list of content items. Then, instead of transmitting the list of content identifiers, the data processing system can transmit, provide, or otherwise communicate the content items themselves to at least one of the audience predictor or the content broadcaster. If received by the audience predictor, the audience predictor can forward the content items to a content broadcaster for insertion in the corresponding content broadcast. If the content broadcaster receives a content item, it does not need to retrieve the content item from the asset store, and can encode and insert the content or simply insert it as described herein, according to the markers indicated in the broadcast stream.

The data processing system can receive one or more reply messages (act 420). The data processing system can receive response data messages associated with each of the ranked content items from the audience predictor or the content broadcaster. The response message can be capable of responding to an access, rating, or presentation of a content item provided by the data processing system after the content item has been broadcast by the content broadcaster. To collect ratings, access, or presentation data for a broadcast stream, a content broadcaster or audience predictor can maintain a record of the number of presentations of the content stream by the broadcast receiver. The data processing system can compare actual viewership or access data of the broadcast stream with predicted audience data received from the audience predictor to determine feedback data to send to the audience predictor. The data processing system can store, in one or more data structures, total actual ratings information, an order of subsets of content items provided to the audience predictor or content broadcaster, and content item metadata in association with the content publisher in a memory accessible by the data processing system.

Referring now to fig. 5, depicted is a general architecture of an illustrative computer system 500 that may be employed to implement any of the computer systems discussed herein, in accordance with some implementations. Computer system 500 can be used to provide information for display via network 210. The computer system 500 of fig. 5 includes one or more processors 520 communicatively coupled to memory 525, one or more communication interfaces 505, and one or more output devices 510 (e.g., one or more display units) and one or more input devices 515. The processor 520 can be included in the data processing system 105 or any other computing device described herein.

In computer system 500 of fig. 5, memory 525 may comprise any computer-readable storage medium and may store computer instructions, such as processor-executable instructions for implementing the various functionalities described herein for the respective systems, as well as data related thereto, generated thereby, or received via a communication interface or input device, if present. Referring again to the computer system 500 of FIG. 5, the data processing system 105 can include a memory 525 for storing information relating to the set of user identifiers, the generated vectors, and the like. The processor 520 shown in fig. 5 may be used to execute instructions stored in the memory 525 and, in so doing, may also read from or write to the memory various information processed and/or generated pursuant to execution of the instructions.

The processor 520 of the computer system 500 shown in fig. 5 may also be communicatively coupled to the communication interface 505 or control the communication interface 505 to transmit or receive various information in accordance with the execution of instructions. For example, communication interface 505 may be coupled to a wired or wireless network, bus, or other communication means, and thus may allow computer system 500 to transmit information to, and receive information from, other devices (e.g., other computer systems). Although not explicitly shown in the system of fig. 5, one or more communication interfaces facilitate the flow of information between components of computer system 500. In some implementations, the communication interface may be configured (e.g., via various hardware or software components) to provide a website as an access portal for at least some aspects of the computer system 500. Examples of communication interface 505 include a user interface (e.g., a web page) through which a user can communicate with computer system 500.

For example, the output device 510 of the computer system 500 shown in fig. 5 may be provided to allow various information to be viewed or otherwise perceived in connection with execution of the instructions. For example, an input device 515 may be provided to allow a user to make manual adjustments during execution of instructions, to make selections, to enter data, or to interact with the processor in any of a variety of ways. Additional information regarding the general computer system architecture that may be employed for the various systems discussed herein is further provided herein.

Implementations of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software embodied in tangible media, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more components of computer program instructions, encoded on a computer storage medium for execution by, or to control the operation of, data processing apparatus. The program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium may be or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Further, although the computer storage medium is not a propagated signal, the computer storage medium can comprise a source or destination of computer program instructions encoded in an artificially generated propagated signal. The computer storage media may also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

The features disclosed herein may be implemented on a smart television module (or a connected television module, a hybrid television module, etc.) that may include a processing module configured to integrate an internet connection with a more traditional television program source (e.g., via cable, satellite, over-the-air, or other signal reception). The smart television module may be physically incorporated into a television or may comprise a separate device, such as a set-top box, a blu-ray or other digital media player, a game console, a hotel television system, and other companion devices. The smart television module may be configured to allow viewers to search for and find videos, movies, photos, and other content on the web, on local cable channels, on satellite television channels, or stored on local hard drives. A Set Top Box (STB) or Set Top Unit (STU) may include an information appliance that may contain a tuner and connect to a television and an external signal source to convert the signal into content that is then displayed on a television screen or other display device. The smart television module may be configured to provide a home screen or top level screen that includes icons for a plurality of different applications, such as a web browser and a plurality of streaming media services, connected cable or satellite media sources, other web "channels," and so forth. The smart television module may also be configured to provide an electronic program guide to the user. A companion application to the smart television module may operate on the mobile computing device to provide additional information to the user about available programming, to allow the user to control the smart television module, and so on. In alternative implementations, the features may be implemented on a laptop or other personal computer, smart phone, other mobile phone, handheld computer, tablet PC, or other computing device.

The operations described in this specification can be implemented as operations performed by data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

The terms "data processing apparatus," "data processing system," "user device," "client device," or "computing device" encompass all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip or multiple programmable processors, multiple computers, multiple systems on a chip, or a combination of the foregoing. An apparatus can comprise special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment are capable of implementing a variety of different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer include a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Further, for example, the computer can be embedded in another device, e.g., a mobile phone, a Personal Digital Assistant (PDA), a mobile audio or video player, a game player, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a Universal Serial Bus (USB) flash drive). Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), plasma, or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can also be used to provide for interaction with a user; for example, feedback provided to the user can include any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. Further, the computer is able to interact with the user by sending documents to and receiving documents from the device used by the user; for example, by sending a web page to a web browser on the user's client device in response to a request received from the web browser.

Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), internetworks (e.g., the internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

A computing system, such as data processing system 105, can include clients and servers. For example, the data processing system 105 can include one or more data centers or one or more servers in a server farm. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some implementations, the server transmits data (e.g., HTML pages) to the client device (e.g., for the purpose of displaying data to a user interacting with the client device and receiving user input from the user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received at the server from the client device.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular implementations of the systems and methods described herein. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. Moreover, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results.

In some cases, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. For example, the data processing system 105 may be part of a single module, a logical device with one or more processing modules, one or more servers, or a search engine.

Having now described some illustrative implementations and implementations, it should be apparent that the foregoing is illustrative and not limiting, having been presented by way of example. In particular, although many of the examples presented herein involve specific combinations of method acts or system elements, those acts and those elements may be combined in other ways to accomplish the same objectives. Acts, elements and features discussed only in connection with one implementation are not intended to be excluded from a similar role in other implementations or implementations.

The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of "including," "comprising," "having," "containing," "involving," "characterized by," and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items and alternative implementations consisting exclusively of the items listed thereafter. In one implementation, the systems and methods described herein consist of one, each combination of more than one, or all of the described elements, acts, or components.

Any reference to an implementation or element or act of the systems and methods herein referred to in the singular may also encompass implementations including a plurality of such elements, and any reference to any implementation or element or act herein in the plural may also encompass implementations including only a single element. References in the singular or plural form are not intended to limit the presently disclosed systems or methods, components, acts or elements thereof to a single or multiple configurations. A reference to any behavior or element based on any information, behavior, or element may include an implementation in which the behavior or element is based, at least in part, on any information, behavior, or element.

Any implementation disclosed herein may be combined with any other implementation, and references to "an implementation," "some implementations," "an alternative implementation," "various implementations," "one implementation," etc. are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the implementation may be included in at least one implementation. Such terms as used herein do not necessarily all refer to the same implementation. Any implementation may be combined with any other implementation either implicitly or exclusively in any manner consistent with aspects and implementations disclosed herein.

References to "or" may be construed as inclusive such that any term described using "or" may indicate any single one, more than one, or all of the described terms.

Where technical features in the drawings, detailed description or any claim are followed by reference signs, the reference signs have been included for the sole purpose of increasing the intelligibility of the drawings, detailed description, and claims. Accordingly, neither the reference signs nor their absence have any limiting effect on the scope of any claim elements.

The systems and methods described herein may be embodied in other specific forms without departing from the characteristics thereof. Although the examples provided herein relate to controlling the display of content of information resources, the systems and methods described herein can include being applied to other environments. The foregoing implementations are illustrative and not limiting of the described systems and methods. The scope of the systems and methods described herein is, therefore, indicated by the appended claims rather than by the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are intended to be embraced therein.

32页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理实体

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!