Patent Description:
On line learning with mobile user devices is increasing. As a large volume of content is being provided to user devices with different performance capabilities, adjusting a type and amount of content to the capabilities of user devices when delivering such contents may be desired.

<CIT> discloses systems, devices and methods for adaptive switching in multicast media streams. <CIT> discloses a system and method for providing job-specific training material and job-specific employment tasks to an inmate within a controlled environment. <CIT> discloses systems and methods for delivering content to user devices before the content is selected or requested (e.g., a pre-delivery of content).

A learning system may be a location aware learning system for automatically transmitting files according to the capability of a user device. The learning system may include non-transitory memory storing instructions executable to transmit a file to a user device; and a processor circuitry configured to execute the instructions to determine a home base location of a user from the information, calculate a travel distance from the home base location of the user to a learning system hub circuity, determine a type of the file and an amount of content of the file based on the travel distance, and transmit, to the user device, the file according to the type of the file and the amount of content of the file.

In some forms of the present disclosure, when the type of the file and the amount of content the file are determined, the processor circuitry may be configured to determine the type of the file and the amount of content of the file based on a storage capacity of the user device, the home base location of the user, and a learning capacity of the user.

When the information is received, the processor circuitry may be configured to determine a predetermined slice size according to a storage capacity of the user device, the travel distance from the user device to the learning system hub circuity, and a learning capacity of a user.

The processor circuitry may be further configured to divide the information into a first slice, determine whether the first slice is greater than or equal to the predetermined slice size, when it is determined that the first slice is greater than or equal to the predetermined slice size, divide the first slice into a second slice, wherein the second slice includes a number of slices greater than the first slice, and convert the second slice into a combination of a video file, an audio file, and a text file.

In some forms of the present disclosure, the processor circuitry may be further configured to when it is determined that the first slice is less than the predetermined slice size, use the first slice to determine the type of the file and the amount of content of the file.

The processor circuitry may be further configured to determine whether the travel distance is greater than or equal to a predetermined value that is specific to each user, when it is determined that the travel distance is greater than or equal to the predetermined value, transmit, to an individual storage assigned to each user, the travel distance for recalculation, determine the type of the file and the amount of content of the file based on the recalculated travel distance, and transmit, to the user device, the file according to the type of the file and the amount of content of the file.

The processor circuitry may be further configured to when it is determined that the travel distance is less than the predetermined value, transmit, to the user device, the file according to the type of the file and the amount of content of the file.

In some forms of the present disclosure, when the type of the file and the amount of content of the file are determined, the processor circuitry may be configured to determine whether the storage capacity is greater than or equal to a first threshold value, when it is determined that the storage capacity is greater than or equal to the first threshold value, transmit, to the user device, a first file, and when it is determined that the storage capacity is less than the first threshold value, transmit, to the user device, a second file, wherein a size of the first file is greater than a size of the second file.

When the type of the file and the amount of content of the file are determined, the processor circuitry may be further configured to determine whether the travel distance is greater than or equal to a second threshold value, when it is determined that the travel distance is greater than or equal to the second threshold value, transmit, to the user device, a third file, and when it is determined that the travel distance is less than the second threshold value, transmit, to the user device, a fourth file, wherein a size of the third file is greater than a size of the fourth file.

When the type of the file and the amount of content of the file are determined, the processor circuitry may be further configured to determine whether the learning capacity is greater than or equal to a third threshold value, when it is determined that the learning capacity is greater than or equal to the third threshold value, transmit, to the user device, a fifth file, and when it is determined that the travel distance is less than the third threshold value, transmit, to the user device, a sixth file, wherein a size of the fifth file is greater than a size of the sixth file.

<FIG> illustrates an exemplary configuration of a learning system <NUM> that includes a processor circuitry <NUM> and a memory <NUM>.

The processor circuitry <NUM> may be in communication with the memory <NUM>. In one example, the processor circuitry <NUM> may also be in communication with additional elements such as a network interface. Examples of the processor circuitry <NUM> may include a general processor, a central processing unit, a microcontroller, a server, a hub circuity, an application specific integrated circuit (ASIC), a digital signal processor, a field programmable gate array (FPGA), and/or a digital circuit, analog circuit, or some combination thereof.

The processor circuitry <NUM> may be one or more devices operable to execute logic. The logic may include computer executable instructions, machine readable instructions, or computer code stored in the memory <NUM> or in other memory that when executed by the processor circuitry <NUM>, cause the processor circuitry <NUM> to perform the features implemented by the logic of a package receiver <NUM>, a local slice optimizer <NUM>, a content slicer <NUM>, an evaluator <NUM>, a content transformer <NUM>, a slice dispenser <NUM>, a negotiator <NUM>, a storage manager <NUM>, and/or the learning system <NUM>. The computer code may include instructions executable with the processor circuitry <NUM>.

The memory <NUM> may be any non-transitory device for storing and retrieving data or any combination thereof. The memory <NUM> may include non-volatile and/or volatile memory, such as a random access memory (RAM), a read-only memory (ROM), an erasable programable read-only memory (EPROM), or flash memory. Alternatively or in addition, the memory <NUM> may include an optical, magnetic (hard-device) or any other form of data storage device.

The memory <NUM> may include a content dispensing system 100A and a content provider system 100B. The content dispensing system 100A may include at least a part of a package receiver <NUM>, a local slice optimizer <NUM>, a content slicer <NUM>, an evaluator <NUM>, a content transformer <NUM>, a slice dispenser <NUM>, a negotiator <NUM>, a storage manager <NUM>, and/or other components of the learning system <NUM> described herein. The content provider system 100B may include a global slice optimizer <NUM>, a content slicer <NUM> and a package uploader <NUM>, and/or other components of the learning system <NUM> described herein.

The learning system <NUM> may also include a database <NUM> and a hub circuitry <NUM>. The database <NUM> may be any form of one or more data storage containers stored in the memory <NUM>. The database <NUM> may be a relational database and/or a sequence database managed and controlled by the learning system <NUM> in a database system such as, for example, a hierarchical database system, a network database system or an object-oriented database system. The database <NUM> may be distributed, centralized, or some combination of distributed and centralized and may be controlled, maintained and accessed by the learning system <NUM>.

The hub circuitry <NUM> may provide, for example, wireless communication for the learning system <NUM>. For example, the hub circuitry <NUM> may be a wireless router in communication with user devices that come within communication range of the wireless router. The hub circuitry <NUM> may perform handshaking, identification, authentication and otherwise configure a communication channel between the learning system <NUM> and user devices. The learning system <NUM> may communicate with user devices, for example, via the network interface and the hub circuitry <NUM>. Since the hub circuitry <NUM> has a relatively limited communication range, the user devices must be physically moved within the communication range of the hub circuitry <NUM> before communication may be established.

<FIG> illustrates an example operation of content distribution with the learning system <NUM>. In <FIG>, a content provider <NUM> may upload a content to the content provider system 100B (CPS). The content provider system 100B may then provide the content to a satellite communication <NUM>, cloud, server, or any type of network. The content may then be distributed by the content dispensing system 100A to different hub circuitry <NUM>. In other examples, content distribution may occur in other ways.

At each hub circuitry <NUM>, the content may be distributed to each user in different formats. For example, the content may be transmitted to classrooms <NUM> using an HDMI cable via the hub 112A. In another example, the same content may be delivered to schools <NUM> using a LAN cable via the hub circuitry 112B. Alternatively, each user may download or stream the content using a user device <NUM> via a wireless connection to the hub circuitry 112C or 112D. Some users may download the content onto the user device <NUM> from the hub circuitry 112C and take the user device <NUM> home <NUM> to watch the content at their leisure. Some users may download the content onto the user device <NUM> from the hub circuitry 112D and watch/interact with the content while still maintaining the wireless connection with the hub 112D. In some examples, the content dispensing system 100A may deliver the content without taking the storage capability of the user device <NUM> and network connectivity into consideration. Rather, the content dispensing circuitry 100A may distribute the content consistently regardless of the status of the user device <NUM>, such as by ignoring when a group of users have user devices <NUM> with limited storage and processing power. Under these circumstances, different techniques for content delivery to the user device <NUM> may be used, such as downgrading bandwidth, reducing frame rate, and dynamic compression.

Referring to <FIG> and <FIG>, in examples the learning system <NUM> may calculate a travel distance from a home base location of the user to a geographic location where the user device <NUM> enters into communication range of the hub circuitry <NUM>. The home base location may be, for example, where the user lives, which may not be in the same town, or part of town where the hub circuitry <NUM> is geographically located and therefore is out of range of communication with the hub circuitry <NUM>. The home base of the user may, for example, be stored as user specific information in the database <NUM> along with other information stored for each of the users and/or user devices. In addition, the learning system <NUM> may determine a type of a file and an amount of content of the file provided by the system to a user device <NUM> based on the travel distance, and transmit, to the user device <NUM> via the hub circuitry <NUM>, the file according to the type of the file and the amount of content of the file.

As described herein the type of the file may be a video file, an audio file, a text file or some combination of a video file, an audio file and a text file. In addition, the amount of content as described herein refers to a volume or quantity of subject matter represented by the file(s) being transmitted as slices to a user device. The content of the file may be from an external information provider. For example, an external information provider may provide educational materials in the form of chapters in a book, where the amount of content represents a quantity or number of the chapters being provided.

<FIG> illustrates an exemplary configuration of the learning system <NUM>, which includes the content dispensing system <NUM>00A, the content providing system 100B, and a user device <NUM>. In addition, <FIG> provides an example of a step-by-step explanation of how the learning system <NUM>, and the user device <NUM> may communicate with each other.

The content provider system 100B may include a one or more processor circuitries which cause the processor circuitry(s) to perform the features implemented by the logic of the global slice optimizer <NUM>, the content slicer <NUM> (or global content slicer <NUM>), and the package uploader <NUM>.

The global slice optimizer <NUM> may decide a desirable chunk-size that would be suitable for most of the users across the learning system <NUM>. For example, the chunk size may be based on the least common storage (global) <NUM> that may provide information representing an average memory and/or storage capacity of the user devices <NUM> across all the learning systems <NUM>. As used herein, a "chunk size" refers to the size of the corresponding data file that is being generated as a slice. As used herein, a "slice" refers to a datafile that is generated to represent a divided-out portion of a larger data file having a lesser data file size. Thus, a larger data file may be divided or "sliced" by the system into a number of slices of relatively smaller data file sizes based on a predetermined criterion, such as rules and/or logic used by the system as discussed herein. An "amount of content" as used herein refers to a quantity of subject matter being represented in a file, in the form of slice(s).

The content slicer <NUM> may divide the information/content based on the chunk-size decided by the global slice optimizer <NUM> according to the least common storage (global) <NUM>. The content slicer <NUM> may slice the relevant information/content to generate raw slices <NUM> which may be smaller file size. In the example of a continuous data datafile, the decision of how to divide up the continuous data datafile may be based on a determination by the content slicer <NUM> of scene change points. Scene change points may be points in the continuous datafile that may be breaks or pauses in the content of the continuous datafile, such as when there is a change of scene or limited visual change in a video datafile or a silence during a transition, such as between different speakers or a speaker inhaling, in an audio file.

The package uploader <NUM> may package the slices <NUM> that have been sliced by the content slicer <NUM> into a package <NUM>. The package <NUM> containing the slices <NUM> may be uploaded into a network <NUM>, such as a wireless network, cloud, or satellite communication network by the package uploader <NUM>.

With reference to <FIG> and <FIG>, at the content provider system 100B, the following steps may be performed.

Step <NUM>: The global slice optimizer <NUM> may collect the least common storage (global) <NUM> that the user devices <NUM> may have across all of the hub circuitry <NUM> and decide a desirable/optimal slice size. The least common storage may be a minimum memory storage capacity of a predetermined population size of the user devices, an average memory storage capacity, or another method used to determine that the majority of the user devices <NUM> in the learning system <NUM> will have memory capacity to receive and store the data files.

Steps <NUM>-<NUM>: Once the information/content, such as video content, is received (<NUM>), the content slicer <NUM> may slice the information/content per the chunk-size determined by the global slice optimizer <NUM> to generate raw slices <NUM> (<NUM>) sized smaller than the chunk-size. Slicing of the information content in the case of continuous content, such as video or audio files, may be based on identification of scene change points by the content slicer <NUM> in the data content. The scene change points may be provided by a scene change points analyzer 302A based on, for example, analysis of the information/content according to predetermined rules. An example of a scene change points analyzer 302A that may identify scene cut detection and video splitting is PYSCENEDETECT. Then, all of the raw slices <NUM> may be sequenced and packaged into a slice package <NUM> (<NUM>). Finally, the package uploader <NUM> may upload the slice package <NUM> to a network <NUM>, such as a cloud/satellite, local area network, wide area network, or any other type of network (<NUM>).

The learning system <NUM> may include the circuitry and logic of the package receiver <NUM>, the local slice optimizer <NUM>, the content slicer <NUM>, the evaluator <NUM>, the content transformer <NUM>, the slice dispenser <NUM>, the negotiator <NUM>, the storage manager <NUM>. In addition, the learning system <NUM> may include the circuitry and logic of the scene points change analyzer 302A and a scene points change analyzer 105A. In some examples, the scene points change analyzer 302A may be executed by the content provider system 100B to determine scene change points. Alternatively, or in addition, scene change points, such as those determined by the scene change points analyzer 302A, may be stored in the database <NUM> for access by the content provider system 100B and the content slicer <NUM>. The database <NUM> of the learning system <NUM> may also include the least common storage (global) <NUM>, an individual context <NUM>, a least common storage (local) <NUM>, and a group context <NUM>.

At the learning system <NUM>, the following steps may, for example, occur.

Step <NUM>: the local slice optimizer <NUM> may further slice the information/content to fit the needs of a population of user devices <NUM> within the vicinity of the learning system <NUM>. For example, the population of user devices <NUM> may be identified as those user devices <NUM> in wireless communication with the hub circuitry <NUM>. The needs of the population of user devices <NUM> may be fitted based on data from the least common storage (local) <NUM> and the group context <NUM> stored in the database <NUM>. The least common storage (local) <NUM> may include a dynamically stored determination of the average data storage capacity among the population of user devices <NUM> in communication with the hub circuitry <NUM> as determined by the evaluator <NUM>. Memory storage data capacity of the individual user devices <NUM> and the average data storage capacity may be provided from the evaluator <NUM> and stored in the least common storage (local) <NUM>. In addition, the average data storage capacity and/or the memory storage capacity of the individual user devices <NUM> may be provided to the least common storage (global) <NUM>. Data in the least common storage (global) <NUM> may be accessed by the content provider system 100B for use by the global slice optimizer <NUM>. The evaluator <NUM> may determine the storage capacity of user devices <NUM> based on stored information, interrogation, or some combination.

Group context <NUM> may include at least one of consideration of travel distances of users 116A, and a learning capacity/learning rate 116B of the users. The travel distances of users 116A provides physical travel distances from the hub circuitry <NUM> of the learning system <NUM> to the home base of the users, such as where the user lives. Determination, by the evaluator <NUM> of the travel distances in a group context may be based on geographic locations analysis, collection of geographic information from respective user devices <NUM>, historical information and/or stored information to provide a travel profile of the users who travel to come within the wireless communication range of the hub circuitry <NUM>. Based on the travel profile, a group context travel distance of a group of users may be dynamically determined and stored in the database <NUM> in the distance 116A. Learning rate 116B in a group context may be a group context learning rate dynamically determined by the evaluator <NUM> based on the aptitude of the individual users to absorb learning materials. The group context <NUM> may be developed by the evaluator <NUM> from an individual context <NUM>, and may be used in operation of the system <NUM>, such as, for example, to prioritize those who are traveling from further away, and/or to allocate transmission bandwidth of data during time of heavy usage by users.

The individual context <NUM> may be unique for each user. In examples, the individual context may include individual data storage assigned to a user where the user average travel distance 113A and average learning rate 113B of the individual user may be stored in the database <NUM>. The least common storage (Global) <NUM>, least common storage local <NUM>, group context <NUM>, and individual context <NUM> may be controlled and managed by the learning system <NUM> via the evaluator <NUM>. The group context <NUM> may provide storage of group information representative of groups of users, such as average learning capability and average travel distance of groups of users. In addition, the individual context <NUM> may provide each of the users with a unique individual storage area where their user specific information, such as individual learning capability and travel distance of the respective individual user is stored. Accordingly, each user of the learning system <NUM> may have a unique individual storage area assigned for their individual information within the individual context <NUM>.

The local slice optimizer <NUM> may consider available storage of the user device provided by the least common storage (local) <NUM> and the group context <NUM> when further slicing information/content into smaller sizes. For example, the local slice optimizer <NUM>, as part of the group context <NUM>, may take into consideration an average physical travel distance from the hub circuitry <NUM> of the learning system <NUM> to the home base of a group of users, or community of users, who visit the hub circuitry <NUM>, and/or the average learning capacity of the group of users. The average learning capacity may be an average of the learning capacity of the individual users in the group of users who visit the hub circuitry <NUM>. The learning capacity of an individual user may be determined based on, for example a log of time to completion, a tally of correct answers, or any other criteria providing evidence of a level of understanding and speed of accurate uptake of new material. Based on these factors, the local slice optimizer <NUM> may decide a desirable/optimal slice size for delivery to the group of the user devices <NUM> presently in close enough vicinity for wireless communication with the hub circuitry <NUM> to receive the slices.

Step <NUM>: the package receiver <NUM> may receive a packet from the cloud/satellite or any other type of network <NUM> and unpack the package <NUM>, and extract from the package <NUM> the slices as raw slices <NUM>.

Step <NUM>: the content slicer <NUM> may slice the raw slices <NUM> further into smaller user slices <NUM> of different types when the chunk-size determined by the local slice optimizer <NUM> is less than the raw slices <NUM>. For example, the content slicer <NUM> may slice a video file of raw slices <NUM> into smaller user slices <NUM>, where each of the user slices <NUM> are original resolution video slices 312A. The determination of how to slice the raw slices <NUM> may be based on scene change points provided by the scene change point analyzer 105A. The scene change point analyzer 105A may identify scene changes points, such as pauses or changes in the flow of video or audio data files received as raw slices <NUM>. In addition, or alternatively, the scene change points analyzer 105A may obtain scene changes from the scene change points analyzer 302A or a storage location having knowledge of scene changes in the data files such as the database <NUM>. Scene change points obtained or determined by the scene change point analyzer 105A may be stored for future use in the database <NUM>.

Step <NUM>: In other examples, the content transformer <NUM> may convert, for example, a raw slice <NUM> of a video file into other types of user slices <NUM> which are smaller than original resolution video slices 312A, such as lower resolution video files 312B, audio files 312C, and/or text files 312D.

Step <NUM>: the negotiator <NUM> may provide available storage, user home base location, and content completion status from the user device <NUM>. User related information may be stored in the database <NUM> associated with a respective unique user ID, extracted from stored information on the respective user devices <NUM>, received from polling of respective user devices <NUM> in communication with the hub circuitry <NUM> and/or entered by a user of a respective user device <NUM>.

Step <NUM>: the evaluator <NUM> may calculate the travel distance from the user home base location and the learning capacity of the user from the most up-to-date data and the status of content completion. In doing so, the evaluator <NUM> may consider the actual travel distance of each of the user devices <NUM> to the hub circuitry <NUM> of the learning system <NUM>, and the learning capacity of individual users. The travel distance, may be a geographic distance over which a user must travel such that the user's mobile device <NUM> is brought into range of the wireless signal from the hub circuitry <NUM> and can communicate with the hub circuitry <NUM>.

Step <NUM>: the slice dispenser <NUM> may determine a type and an amount of the file(s)/content to transmit to a user device <NUM> using data from the individual context <NUM>. Accordingly, the slice dispenser <NUM> may perform a logic-based slice factor analysis involving the storage capacity of the user device <NUM> provided by the evaluator <NUM> and data from the individual context <NUM>. The individual context <NUM> may include a travel distance 113A of an individual, which may be an average travel distance based on multiple trips between the user's home base with the user device <NUM> to the hub circuitry <NUM> of the learning system <NUM>. In addition, the individual context <NUM> may include a learning rate 113B of the individual user, which may represent the learning capacity of the individual user based on the user's performance as discussed elsewhere. The learning rate 113B of the individual user may be broken down by subject matter area such that the slice dispenser <NUM> may consider subject matter of the materials as an additional slice factor for the size/complexity of the user slices <NUM>.

Depending upon the slice factors, the slice dispenser <NUM> may generate a weighting used to decide the type of the file/content of the user slices <NUM>, such as, for example, a full resolution full video file 312A, a full video file with low resolution 312B, a video file along with embedded audio files 312A or 312B, a video file along with embedded transcript/text files 312A or 312B, a full audio file 312C, an audio file along with embedded transcript/text files 312C and 312D, or a full transcript/text file 312D. A slices tracker 108A may store the size of slices provided, slice factors, weightings and/or other decision criteria in the database <NUM> in association with the user device and/or the user for later use during future slice size determinations, weighting, and user slice type determinations.

Step <NUM>: the storage manager <NUM> may manage storage in the database <NUM> and re-use of the different types of file/content user slices <NUM> to avoid the need to slice and transform data each time the same raw slices <NUM> are received or for users with similar individual context <NUM>. In addition, the storage manager <NUM> may manage the storage in the database <NUM> of the user slices <NUM> of the learning system <NUM>. The storage manager <NUM> may include a time to live counter (TTL) 110A and a least recently used (LRU) counter 110B. The store manager <NUM> may, for example, delete from the database <NUM> at least some of the files which are user slices <NUM> that it determines are least recently used (LRU) and those files that have exceeded their time to live (TTL) according to a predetermined time schedule, threshold values, space remaining in the database <NUM> for storage of user slices <NUM>, or some other criteria. Criteria for LRU and TTL may be based on predetermined criteria, or may be dynamically determined according to the activity level of the system <NUM>.

The user device <NUM> may include the circuitry and logic of a negotiating circuitry <NUM>, a notifier <NUM>, and a resource manager <NUM>.

At the user device <NUM>, the following steps may be performed.

At <NUM>: the negotiating circuitry <NUM> may understand what has been transmitted by the learning system <NUM> and store the user slices <NUM> as files into each relevant file system. Types of user slices <NUM> may include, for example, video files 312A and 312B, audio files 312C, and transcript/text files 312D. The negotiating circuitry <NUM> may communicate with the negotiator <NUM> at the learning system <NUM> and provide information for the individual user such as the available storage capacity of the user device <NUM>, the travel distance from the user device <NUM> to be within wireless range of the hub circuitry <NUM> of the learning system <NUM>, and the learning capacity of the user. Based on this information, the negotiating circuitry <NUM> may ask for the next available files/contents from the slice dispenser <NUM>. In addition, the individual user information may be provided by the negotiator <NUM> to the evaluator <NUM> for storage in the individual context <NUM>, the group context <NUM>, the least common storage local <NUM> and the least common storage global <NUM>.

At <NUM>: the transferred files (user slices <NUM>) from the learning system <NUM> may be stored by the resource manager <NUM>.

At <NUM>: Similar to the step <NUM>, the resource manager <NUM> may manage and maintain the storage of the user device <NUM> (housekeeping). For example, the resource manager <NUM> may reject transmission and storage of files (user slices <NUM>) that are already stored and/or delete those files that are least recently used (LRU) and/or files that exceeded their time to live (TTL) on an as-needed or a predetermined schedule, or both, basis. In addition, the resource manager <NUM> may monitor the completion status of an education module the user is working on, and eliminate those user slices <NUM> associated with the respective education module upon completion. In this regard, the resource manager <NUM> may include a complete counter 353A, a time to live (TTL) counter 353B and a least recently used (LRU) counter 353C. The resource manager <NUM> may also monitor available storage of the user device <NUM> and may adjust the criteria dynamically for deleting user slices <NUM> according to current storage needs of the user device <NUM>.

Once sufficient storage is made available by the resource manager <NUM>, the notifier <NUM> may send notifications to the user view a user interface, such as a graphical user interface, that sufficient storage is available for the user to move into range of communication with the hub circuitry <NUM> and download the next education module, such as a set of chapters/content.

<FIG> illustrates a flow chart of an example of the operation of the local slice optimizer <NUM> at the learning system <NUM>.

Step <NUM>: the local slice optimizer <NUM> may determine whether the average data storage capacity among the population of user devices <NUM> in communication with the hub circuitry <NUM> dynamically stored in the least common storage (local) <NUM> is greater than the size of one more raw slices <NUM>. If no, move to Step <NUM>. If yes, move to Step <NUM> where no further change in slice size is necessary.

Step <NUM>: if the local slice optimizer <NUM> determines that the average data storage capacity stored in the least common storage (local) <NUM> is less than the size of the one or more raw slices <NUM>, then the local slice optimizer <NUM> may also use the group context <NUM> to determine whether an average learning capacity of the group of users (based on the group context learning rate 116B) in communication with the hub circuitry <NUM> is greater than a threshold value. If yes, then move to Step <NUM> and make no changes to the one or more raw slices <NUM>.

Step <NUM>, if the local slice optimizer <NUM> determines that the average learning capacity of the group of users according to the group context learning rate 116B is less than the threshold value, then the local slice optimizer <NUM> may further determine whether an average travel distance of the group of users (based on the group context distance 116A) from their home base to the learning systems <NUM> is greater than a threshold value. If yes, then move to Step <NUM>.

Step <NUM>: if the local slice optimizer <NUM> determines, according to the group context distance 116A in the group context <NUM>, that the average travel distance of the group of users from the user's home base to the hub circuity <NUM> of the learning system <NUM> is less than the threshold value, then the local slice optimizer <NUM> may determine that the desirable/optimal slice size is equivalent to the least common storage (local) <NUM>.

<FIG> illustrates a flow chart of example operation of the evaluator <NUM> at the learning system <NUM>.

Step <NUM>: the evaluator <NUM> may collect the available storage capacity of the respective user device <NUM>, the home base location of the user, and an education module completion status of an individual user. The evaluator <NUM> may collect this information from the user device <NUM> and/or from the individual context <NUM>. The home base location may be established based on, for example, the dominant location where the user's user device <NUM> is geographically positioned.

Step <NUM>: the evaluator <NUM> may calculate the travel distance between the hub circuity <NUM> of the learning system <NUM> and the home base location of the user device <NUM> using, for example, the least time-taking route. The least time-taking route may be the shortest route or the route with the least traffic at the time the user device commences communication with the hub circuitry <NUM>.

Step <NUM>: the evaluator <NUM> may then calculate the learning capacity of the user using the consumption date of the last file/content, current date, and the completion status of the file/content. In this way, the individual learning rate if the user may be calculated.

Step <NUM>: the evaluator <NUM> may determine whether the calculated travel distance from <NUM> and the calculated learning capacity of the user from <NUM> differ from the stored distance (Avg) 113A and learning rate (Avg) 113B from the individual context <NUM> for the individual user. The level of deviation may be compared against a threshold, such as a percentage difference.

Step <NUM>: if the answer to Step <NUM> is yes, then the evaluator <NUM> may send the calculated value of the travel distance and the learning capacity of the user to the individual context <NUM> for storage in the assigned storage of the respective user.

Step <NUM>: the evaluator <NUM> may recalculate new averages of the travel distance and learning capacity, and update the individual context <NUM> accordingly by storing in the storage assigned to the respective user.

Step <NUM>: if the answer to Step <NUM> is no, then the evaluator <NUM> may send the calculated values of the travel distance and learning capacity of the user to the slice dispenser <NUM>.

Step <NUM>: after the step <NUM> and <NUM>, the slice dispenser <NUM> may take over and perform its tasks discussed above with reference to <FIG>.

<FIG> illustrates a flow chart of the distribution of files/contents according to certain factors.

Step <NUM>: the slice dispenser <NUM> at the learning system <NUM> may obtain the storage capacity of the user device <NUM> and the individual context <NUM> by obtaining the travel distance (distance) from the user's home base to the hub circuity <NUM> of the learning system <NUM>, and the learning capacity (learning rate) of the user.

Step <NUM>: the slice dispenser <NUM> may then determine whether the storage capacity of the user device <NUM> is greater than or equal to a first threshold value. If the storage capacity of the user device <NUM> is above the first threshold value, the user devices <NUM> is considered to have good storage capacity with the capability to store a relatively large volume of data. If, on the other hand, the user device <NUM> is below the first threshold value, the user device <NUM> has relatively low storage capacity and is considered to have relatively poor storage.

Step <NUM>: if the answer to Step <NUM> is yes, then the slice dispenser <NUM> may determine whether the travel distance is greater than or equal to a second threshold value. The second threshold value may describe those user's who have traveled a far distant from their home base to reach wireless communication with the hub circuitry <NUM> vs. those user's who have traveled a short distance to from their home base to reach wireless communication with the hub circuitry <NUM>.

Step <NUM>: if the answer to Step <NUM> is yes (e.g. the user has traveled a relatively far distance to begin communication with the wireless hub <NUM>), then the slice dispenser <NUM> may determine whether the learning capacity of the user is greater than or equal to a third threshold value. The third threshold value may be a predetermined value indicating users who are quickly grasping the material in an education module and therefore need a less in-depth tutorial to master the material, vs. those users who are relatively slower at mastering the materials and therefore need a more in depth experience, such as a more thorough explanation, more examples, and the like.

Step <NUM>: if the answer to Step <NUM> is that the distance the user traveled does not exceed the threshold value (no), then the slice dispenser <NUM> may determine whether the learning capacity of the user is greater than or equal to a third threshold value.

Step <NUM>: if the answer to Step <NUM> is that the storage capacity of the user device <NUM> does not exceed the predetermined threshold (no), then the slice dispenser <NUM> may determine whether the travel distance is greater than or equal to a second threshold value.

Step <NUM>: if the answer to Step <NUM> is that the user has traveled greater than a predetermined distance (yes), then the slice dispenser <NUM> may determine whether the learning capacity of the user is greater than or equal to a third threshold value.

Step <NUM>: if the answer to Step <NUM> is no, then the slice dispenser <NUM> may determine whether the learning capacity of the user is greater than or equal to a third threshold value.

Based on the above steps, the learning system <NUM> may determine an amount of content, such as a volume of subject matter, and an allocation of the determined amount of content to the different types of slices to a selected user device <NUM>. In that regard, <FIG> is a table illustrating an example of slice type allocations according to the factors discussed for each of a number of different users/user devices <NUM>. In <FIG>, each row of the illustrated table may refer to a respective user device <NUM>. A storage characterization <NUM> is classification of whether the first predetermined threshold has been met, a distance descriptor <NUM> describes the travel distance of the user from the user's home base to the hub circuitry <NUM>. A learning rate <NUM> characterizes the aptitude of the user, and therefore the granularity of the content needed by the user to be successful. A content amount <NUM> may be representative of the volume of subject matter being provided to the user while they are in communication with the hub circuitry <NUM>. In the example of <FIG>, the education modules are divided into chapters, and the amount of contents may represent the subject matter of chapters of educational materials being provided, which may be described in terms of a factor above, below or at an average allocation of subject matter. In other examples, other forms of allocation of a representative quantity (or volume) of subject matter may be provided.

The percentage of slices of content/datafiles which are determined by the learning system <NUM> to be provided as video slices (312A or 312B, for example) is provided as a video percentage <NUM>. The percentage of slices content/datafiles which are determined by the learning system <NUM> to be provided as audio slices (312C for example) is provided as an audio percentage <NUM>. The percentage of slices content/datafiles which are determined by the learning system <NUM> to be provided as transcript slices (312D for example) is provided as a transcript percentage <NUM>. The percentage allocation of the types of raw slices <NUM> may be based on factor analysis at the user group level in communication with hub circuitry <NUM>. In addition, or alternatively, the percentage allocation of the types of slices may be based on factor analysis at the individual level based on factor analysis at the individual user and user device <NUM> level.

Referring to <FIG> and <FIG>, at Step <NUM>: if the answer to Step <NUM> is yes, then the slice dispenser <NUM> may determine that the storage capacity is good, the travel distance is far, the learning capacity is fast. As a result, the slice dispenser <NUM> may provide an amount of content representing <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files as illustrated in <FIG>.

Step <NUM>: if the answer to Step <NUM> is no, then the slice dispenser <NUM> may determine that the storage capacity is good, the travel distance is far, the learning capacity is slow. As a result, the slice dispenser <NUM> may provide an amount of content representing <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files as illustrated in <FIG>.

Step <NUM>: if the answer to Step <NUM> is yes, then the slice dispenser <NUM> may determine that the storage capacity is good, the travel distance is near, the learning capacity is fast. As a result, the slice dispenser <NUM> may provide an amount of content representative of <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files. Comparing the allocation of Step <NUM> to Step <NUM> it should be noted that only twice the content was provided for Step <NUM> since the user could more easily return to the hub circuitry <NUM>, while a higher percentage was provided as video due to the storage capacity of the user device <NUM>.

Step <NUM>: if the answer to Step <NUM> is no, then the slice dispenser <NUM> may determine that the storage capacity is good, the travel distance is near, the learning capacity is slow. As a result, the slice dispenser <NUM> may provide an amount of content representative of <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files. Since in the example of Step <NUM>, the user is identified as having a slow learning rate, and the user is relatively near the hub circuitry <NUM>, a majority of the content is provided as video content, but only <NUM> times the average content/files to the user due to the size of the audio content and the user's relatively close proximity to the hub circuitry <NUM>.

Step <NUM>: if the answer to Step <NUM> is yes, then the slice dispenser <NUM> may determine that the storage capacity is poor, the travel distance is far, the learning capacity is fast. As a result, the slice dispenser <NUM> may provide an amount of content representative of <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files.

Step <NUM>: if the answer to Step <NUM> is no, then the slice dispenser <NUM> may determine that the storage capacity is poor, the travel distance is far, the learning capacity is slow. As a result, the slice dispenser <NUM> may provide an amount of content representative of <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files.

Step <NUM>: if the answer to Step <NUM> is yes, then the slice dispenser <NUM> may determine that the storage capacity is poor, the travel distance is near, the learning capacity is fast. As a result, the slice dispenser <NUM> may provide an amount of content representative of <NUM> time the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files.

Step <NUM>: if the answer to Step <NUM> is no, then the slice dispenser <NUM> may determine that the storage capacity is poor, the travel distance is near, the learning capacity is slow. As a result, the slice dispenser <NUM> may provide an amount of content representative of <NUM> times the average content/files to the user, which, for example, may be allocated into different types of files as <NUM>% video files, <NUM>% audio files, and <NUM>% transcript/text files.

The example percentages of amounts of video/audio/transcript/text files discussed above are provided for the purpose of explanation. The amount of content, and the allocation percentages of to the represented content may be modified in other examples. In addition, as discussed elsewhere, an amount of hybridized content may be provided, which may include, for example, video and transcripts.

The description herein is merely exemplary in nature and, thus, variations that do not depart from the substance of the disclosure are intended to be within the scope of the disclosure. Such variations are not to be regarded as a departure from the spirit and scope of the disclosure.

The methods, devices, processing, circuitry, and logic described may be implemented in many different ways and in many different combinations of hardware and software. For example, all or parts of the implementations may be circuitry that includes an instruction processor, such as a Central Processing Unit (CPU), microcontroller, or a microprocessor; or as an Application Specific Integrated Circuit (ASIC), Programmable Logic Device (PLD), or Field Programmable Gate Array (FPGA); or as circuitry that includes discrete logic or other circuit components, including analog circuit components, digital circuit components or both; or any combination thereof. The circuitry may include discrete interconnected hardware components or may be combined on a single integrated circuit die, distributed among multiple integrated circuit dies, or implemented in a Multiple Chip Module (MCM) of multiple integrated circuit dies in a common package, as examples.

Accordingly, the circuitry may store or access instructions for execution, or may implement its functionality in hardware alone. The instructions may be stored in a tangible storage medium that is other than a transitory signal, such as a flash memory, a Random Access Memory (RAM), a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM); or on a magnetic or optical disc, such as a Compact Disc Read Only Memory (CDROM), Hard Disk Drive (HDD), or other magnetic or optical disk; or in or on another machine-readable medium. A product, such as a computer program product, may include a storage medium and instructions stored in or on the medium, and the instructions when executed by the circuitry in a device may cause the device to implement any of the processing described above or illustrated in the drawings.

The implementations may be distributed. For instance, the circuitry may include multiple distinct system components, such as multiple processors and memories, and may span multiple distributed processing systems. Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may be implemented in many different ways. Example implementations include linked lists, program variables, hash tables, arrays, records (e.g., database records), objects, and implicit storage mechanisms. Instructions may form parts (e.g., subroutines or other code sections) of a single program, may form multiple separate programs, may be distributed across multiple memories and processors, and may be implemented in many different ways. Example implementations include stand-alone programs, and as part of a library, such as a shared library like a Dynamic Link Library (DLL). The library, for example, may contain shared data and one or more shared programs that include instructions that perform any of the processing described above or illustrated in the drawings, when executed by the circuitry.

In some examples, each unit, subunit, and/or module of the system may include a logical component. Each logical component may be hardware or a combination of hardware and software. For example, each logical component may include an application specific integrated circuit (ASIC), a Field Programmable Gate Array (FPGA), a digital logic circuit, an analog circuit, a combination of discrete circuits, gates, or any other type of hardware or combination thereof. Alternatively or in addition, each logical component may include memory hardware, such as a portion of the memory, for example, that comprises instructions executable with the processor or other processors to implement one or more of the features of the logical components. When any one of the logical components includes the portion of the memory that comprises instructions executable with the processor, the logical component may or may not include the processor. In some examples, each logical components may just be the portion of the memory or other physical memory that comprises instructions executable with the processor or other processor to implement the features of the corresponding logical component without the logical component including any other hardware. Because each logical component includes at least some hardware even when the included hardware comprises software, each logical component may be interchangeably referred to as a hardware logical component.

A second action may be said to be "in response to" a first action independent of whether the second action results directly or indirectly from the first action. The second action may occur at a substantially later time than the first action and still be in response to the first action. Similarly, the second action may be said to be in response to the first action even if intervening actions take place between the first action and the second action, and even if one or more of the intervening actions directly cause the second action to be performed. For example, a second action may be in response to a first action if the first action sets a flag and a third action later initiates the second action whenever the flag is set.

To clarify the use of and to hereby provide notice to the public, the phrases "at least one of <A>, <B>,. and <N>" or "at least one of <A>, <B>,. <N>, or combinations thereof" or "<A>, <B>,. and/or <N>" are defined by the Applicant in the broadest sense, superseding any other implied definitions hereinbefore or hereinafter unless expressly asserted by the Applicant to the contrary, to mean one or more elements selected from the group comprising A, B,. In other words, the phrases mean any combination of one or more of the elements A, B,. or N including any one element alone or the one element in combination with one or more of the other elements which may also include, in combination, additional elements not listed.

Claim 1:
A learning system (<NUM>) comprising:
non-transitory memory (<NUM>) storing instructions executable to transmit a file to a user device (<NUM>) of a user;
a hub circuitry (<NUM>); and
a processor (<NUM>) circuitry configured to execute the instructions to:
initiate wireless communication between the user device and the hub circuitry in response to the user device entering a communication range of the hub circuitry;
retrieve information comprising a home base location of the user;
calculate a travel distance from the home base location of the user to a geographic location where the user device enters into the communication range of the hub circuitry;
determine a type of file to be transmitted and an amount of content of the file to be transmitted based on the travel distance; and
transmit from the hub circuitry, to the user device, the file according to the type of the file and the amount of content of the file.