The present teaching relates to methods, systems, and programming for a content platform.
On a mobile device, applications (apps) are usually downloaded and installed via an application (app) store, which is a type of digital distribution platform for computer software. Each app provides a specific set of functions for specific operating system(s). An app store (e.g., iOS App Store or Google Play) typically organizes the apps based on categories (e.g., games, books, health, sports, travel, etc.) for a user to browse, download, and install on a mobile device.
For example,
However, data and content streams of different apps are oftentimes separate from each other and are not connected. In other words, each app becomes an “information silo.” Also, a user has to constantly activate and deactivate different apps in order to switch between those apps. Moreover, when a user migrates existing apps from one device to another device, the user needs to re-download and re-install each app. All these tedious and time-consuming operations affect user experience on deploying and using different apps on mobile devices. These and other drawbacks exist.
The present teaching relates to methods, systems and programming for a content platform. More specifically, the present teaching relates to methods, systems, and programming for a multi-level content platform.
In one example, a method, implemented on at least one computing device each of which has at least one processor, storage, and a communication platform connected to a network for deploying applications is presented. An interface corresponding to an application eco-space is presented to a user. The application eco-space comprises one or more applications. First information associated with the user is obtained via the interface. The first information characterizes interest of the user. At least one of the one or more applications is identified to be recommended to the user based on the first information. The at least one of the one or more applications is deployed within the application eco-space in a manner consistent with the interest of the user based on the first information.
In a different example, a system for deploying applications is presented. The system includes a user interest engine, a presentation module, and a deployment module. The user interest engine is configured for obtaining first information associated with a user. The first information characterizes interest of the user. The presentation module is configured for presenting an interface corresponding to an application eco-space to the user. The application eco-space comprises one or more applications. The presentation module is further configured for identifying at least one of the one or more applications to be recommended to the user based on the first information. The deployment module is configured for deploying the at least one of the one or more applications within the application eco-space in a manner consistent with the interest of the user based on the first information.
Other concepts relate to software for implementing the present teaching on deploying applications. A software product, in accord with this concept, includes at least one non-transitory, machine-readable medium and information carried by the medium. The information carried by the medium may be executable program code data, parameters in association with the executable program code, and/or information related to a user, a request, content, or information related to a social group, etc.
In one example, a non-transitory, machine-readable medium having information recorded thereon for deploying applications is presented. The recorded information, when read by the machine, causes the machine to perform a series of processes. An interface corresponding to an application eco-space is presented to a user. The application eco-space comprises one or more applications. First information associated with the user is obtained via the interface. The first information characterizes interest of the user. At least one of the one or more applications is identified to be recommended to the user based on the first information. The at least one of the one or more applications is deployed within the application eco-space in a manner consistent with the interest of the user based on the first information.
The methods, systems, and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well-known methods, procedures, components, and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present teachings.
The present teaching describes methods, systems, and programming aspects of a multi-level content platform, realized as a specialized and networked system by utilizing one or more computing devices (e.g., mobile phone, personal computer, etc.) and network communications (wired or wireless). The multi-level content platform may be implemented as an interest-based personalized app eco-space in which a plurality of apps can be deployed based, at least in part, on individual user's interests. For each app in the app eco-space, the data and content stream may be organized by different content channels, each of which is directed to a specific interest of the user.
In one aspect of the present teaching, the entire interest-based personalized app eco-space may be driven by a user interest engine, which creates and updates a personal interest space for an individual user. Thus, each app in the app eco-space can fully utilize the user interest engine and/or the personal interest space to provide targeted content and optimize its functions in serving each individual user. Data and content streams of different apps in the app eco-space are connected and shared in the backend via the user interest engine and/or the personal interest space.
In another aspect of the present teaching, a user can easily switch between different apps deployed in the app eco-space without exiting the app eco-space. For example, tabs may be created and provided for each app on the same page of the interface of the app eco-space so that a user can switch between the apps in the app eco-space via the tabs. For better user experience, the look-and-feel of each app presented in the interface of the app eco-space may be uniform. To avoid mixing up content streams from different apps in the interface of the app eco-space, main content streams may be organized at the app level, and within each app, sub-content streams may be organized at the content channel level.
Additional novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The novel features of the present teaching may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities, and combinations set forth in the detailed examples discussed below.
For example, tabs may be created and presented on the homepage of the user interface 204 so that the user 102 can switch between the deployed apps 206, 208, 210 via the tabs. Turning to
In this example, the application eco-space 200 may be considered as the first level of a multi-level content platform above the operating system, parallel to other apps installed in the operating system; each deployed app 206, 208, 210 within the application eco-space 200 may be considered as the second level of the multi-level content platform, each of which has its own main data and content stream and may perform a set of functions as programmed. In this embodiment, each app 206, 208, 201, 212 provided by the application eco-space 200 is associated with a name, e.g., “Fashion,” “Phoenix Radio Station,” “Car Review,” etc. The names of the apps 206, 208, 210, 212 may become aliases of the application eco-space 200. That is, the application eco-space 200 may be associated with any names of the apps therein. For example, when the user 102 searches in the app store 106, any keyword related to the names of any apps provided by the application eco-space 200 may trigger the download of the application eco-space 200 via the app store 106. In other words, the application eco-space 200 can be identified and searched under the names of any apps provided therein.
In this embodiment, at least some of the apps 206, 208, 210 include a plurality of content channels from which the content associated with different interests are recommended. Taking APP1 206 for example, it includes multiple channels, each of which is associated with a specific user interest. Depending on the specific user 102, some channels 214-1, 214-2 may not be recommended to or selected by the user 102, some channels 216 may be recommended to the user 102 based on the user 102's interests, and some channels 218 may be directly searched and subscribed to by the user 102. When the user 102 activates the deployed APP 1 206 in the application eco-space 200, content may be recommended to the user 102 in accordance with each active content channel 216, 218. In this example, the content channels of each deployed app 206, 208, 210 may be considered as the third level of the multi-level content platform, each of which has its own sub-data and content stream. Turning now to
In this embodiment, as shown in
In this embodiment, the application eco-space 200 is backed-up by the user interest engine 220. As will be described below in detail, the user interest engine 220 creates and updates a personal interest space 222 for the user 102. The recommendation of apps and/or content channels may be performed based, at least in part, on the user interests from the personal interest space 222. In some embodiments, an API of the user interest engine 220 and/or the personal interest space 222 may be provided to the third-party developers so that they can utilize the user interests in their apps. For example, when a third-party developer feeds content to the user 102 via an app deployed within the application eco-space 200, the user 102's interest extracted from the personal interest space 222 may be used to filter and rank the content.
The user interface 204, as mentioned above, interacts with the user 102 to present apps, content channels, and content, and receives user input and any other information from the user 102. Each API 512 is an interface between the third-party developers 502 and the application eco-space 200 for creating and updating apps to be deployed within the application eco-space 200. In this embodiment, one of the them APIs 512 includes information about the user interest engine 220 such that the third-party developers 502 can incorporate functions and features that utilize the user interest engine 220 into their apps. In this embodiment, one of the APIs 512 includes information about the user interface specifications for the third-party developers 502 to comply with in order to ensure the uniform look-and-feel among different apps deployed within the application eco-space 200. The apps developed by the third-party developers 502 are stored in the application database 514. It is understood that in addition to the third-party apps, the application database 514 may also store apps developed by the same party who develops the application eco-space 200. As will be described below in detail, the user interest engine 220 receives information about the user 102 via the user interface 204 and creates and updates a personal interest space for the user 102. At least a portion of the information received by the user interest engine 220 characterizes interest of the user 102.
The application presentation module 506 in this example presents apps from the application database 514 to the user 102 via the user interface 204. Depending on the number of the apps stored in the application database 514, the application presentation module 506 may present some or all of the available apps. If only some the apps are presented to the user 102, these apps may be recommended by the application presentation module 506 based on the user 102's interests and/or other factors, e.g., popularity, recency, or user rating.
The application deployment module 508 in this example is configured to identify, from the presented apps, at least one app based on the information of the user 102 and to deploy the identified app(s) within the application eco-space 200. The user information may include the user 102's selection of app(s) to be deployed or any information related to the user 102's interests. For example, even if the user 102 does not explicitly select any app to be deployed, if the received information strongly indicates that the user 102 is interested in a particular app, then the application deployment module 508 may automatically deploy this app within the application eco-space 200. As mentioned above, when deploying the apps, the application deployment module 508 may generate a tab for each deployed app and present the tabs on the same page of the user interface 204 so that the user 102 can switch between the deployed apps via the tabs. The application deployment module 508 may also create a link for each deployed app on the desktop of the operating system so that the user 102 can access the deployed app in the application eco-space 200 via the links.
The content channel managing module 510 in this example is configured to determine content channels with respect to each deployed app based on the information associated with the user 102. In one example, content channels may be recommended to the user 102 in each deployed app based on the user 102's interests and/or other factors, e.g., popularity, recency, or user rating. The user 102 then may select and subscribe to one or more recommended content channels. In another example, the user 102 may actively search and subscribe to content channels in which the user 102 is interested. Once a content channel of a deployed app is subscribed to, the content channel managing module 510 may recommend content to the user 102 via the content channel within the app eco-space 200. The content may be fed from the corresponding content source 504, the third-party developer 502 who developed the app, and/or content from the personal interest space of the user interest engine 220.
As an integrated system, each user 102's interactions with any of the deployed app may cause the update and evolution of the app eco-space 200. In this embodiment, the personalized application eco-space updating module 516 manages the update and evolution of the app eco-space 200. The update may occur at the app level and/or the content channel level. In the app level, the personalized application eco-space updating module 516 may receive user information (e.g. the user 102's interactions with any of the deployed apps) via the user interface 204 and/or the user interest engine 220. Based on the received information, the personalized application eco-space updating module 516 may adjust any deployed apps or recommend un-deployed apps to the user 102 via the application presentation module 506. For example, when the user 102 continuously interacts with a deployed app, then another un-deployed app in the same category as the deployed app may be recommended to the user 102. The update and evolution of the app eco-space 200 may also occur at the content channel level across different apps. In the content channel level, the personalized application eco-space updating module 516 may receive user information (e.g. the user 102's interactions with any of the subscribed channels) via the user interface 204 and/or the user interest engine 220. Based on the received information, the personalized application eco-space updating module 516 may adjust any currently-subscribed channels of any deployed app or recommend new channels to the user 102. For example, if the user 102 constantly consumes content in a content channel of a deployed app, then similar content channels in other apps may also be recommended to the user 102.
The user information/request processor 702 in this example receives user information or a request from the user 102. The user information may include the user's demographic information, the user's personal information provided by the user 102 at registration or imported from another website, the user's input during initial setting when the user 102 logs in the application eco-space 200 for the first time, etc. For example, the user information may indicate that the user 102 is male, 35-years old, working as a software engineer, likes software and Internet during work time, and likes sports and games during the weekend. The request may be a subscription request from the user 102 to subscribe to a channel, a un-subscription request from the user 102 to unsubscribe from a channel, or a content update request to update content in a channel of the user' 102s personal interest space 222.
Based on the user information or the request, the initial channel allocator 704 may allocate channels for the user 102. The channel allocation may be based on the user 102's demographic information and initial setting when the user 102 logs in the application eco-space 200 for the first time. The channel allocation may also be based on a search query submitted by the user 102 to a search/recommendation engine 718 or to the user interest engine 220 directly. The search query may be for searching content items or channels. In one example, the initial channel allocator 704 may allocate an existing channel in the content channels 714 matching the user 102's query to the user 102. In another example, the initial channel allocator 704 may generate a new channel that is not in the content channels 714 and matches the user 102's query, and allocate the new channel to the user 102.
The initial interest space generator 706 in this example can generate the personal interest space 222 for the user 102 based on the channels allocated to the user 102 by the initial channel allocator 704. The personal interest space 222 may include information about the channels allocated to the user 102, and user information about the user 102. The personal interest space 222 is personal because it represents interest of the user 102 in terms of different channels. The channel content updater 708 in this example may update content of a channel, based on a request or a timer. As content in the Internet keeps changing and updating, the channel content updater 708 may obtain the most updated content items from the Internet and assign them into different channels according to their related topics. The channel content updater 708 may perform the updating periodically or upon a request from the user 102. In one embodiment, the channel content updater 708 may cooperate with the search/recommendation engine 718 to search for new information on the Internet for updating corresponding channels.
The user dynamic information analyzer 710 in this example may obtain the user 102's dynamic information. The dynamic information may include the user 102's interaction with the user interest engine 220 and/or the application eco-space 200. The dynamic information may also include the user 102's interaction with the search/recommendation engine 718. The dynamic information may further include the user 102's social connection with other users, from a social network. The dynamic information may also include the user 102's online behavior from other websites or apps. The user dynamic information analyzer 710 can analyze the dynamic information to generate user interest information associated with the user 102, and send the user interest information to the interest space updater 712. The interest space updater 712 in this example receives the user interest information and determines whether to update the personal interest space 222 of the user 102. For example, if the user interest information indicates a new interest of the user 102 that has not been included in any channel assigned to the user 102, the interest space updater 712 may determine to update the personal interest space 222 of the user 102 by adding a new channel to catch the new interest of the user 102. The interest space updater 712 may retrieve and update the personal interest space 222 of the user 102, and store it. Details of the user interest engine 220 are provided, for example, in PCT Patent Application No. PCT/CN2015/089288, filed Sep. 9, 2015, entitled “METHOD AND SYSTEM FOR PROVIDING ORGANIZED CONTENT,” which is incorporated herein by reference in its entirety.
The application attribute retrieving unit 902 in this example retrieves relevant attributes from each app stored in the application database 514. In one embodiment, the vertical (category) attributes may be retrieved and provided to the user interest/application matching unit 904. The user interest/application matching unit 904 matches each of the user's interests from the personal interest space 222 with one or more apps based on their verticals. The matched apps are provided to the personalized application presentation unit 906 and presented to the user 102. As shown in
Back to
In this embodiment, the channel recommending unit 1112 and the channel subscribing unit 1114 facilitate the user 102 to subscribe one or more channels within the deployed app 1102. The channel recommending unit 1112 may obtain the user 102's interests from the personal interest space 222 and recommend content channels related to the user 102's interest. The channel recommending unit 1112 may also recommend channels based on their quality metrics, such as popularity of each channel. In receiving the recommended channels, the user 102 may select and subscribe to any of them via the channel subscribing unit 1114. In some embodiments, via the channel subscribing unit 1114, the user 102 may search for and subscribe to other channels that have not been recommended to the user 102.
In this embodiment, the interest engine content feeding unit 1104 may fetch content from the personal interest space 222. As mentioned above, the personal interest space 222 may include updated content in each content channel subscribed to by the user 102. For example, the app eco-space 200 may be implemented as a news app in which news content is provided to the user 102 from different channels subscribed to by the user 102, e.g., sports news, political news, etc. For a third-party app 1102 deployed within the app eco-space 200, the third-party app 1102 may fetch news content from the personal interest space 222 created and updated by the app eco-space 200 and include the fetched news content in its content stream.
The developer content feeding unit 1106 in this example obtains content from the developer 502 of the third-party app 1102. For example, the developer 502 may be a radio station, and the third-party app 1102 may be a radio app. The radio station may continuously feed radio programs and related content to the user 102 via the radio app. In another example, the developer 502 may be a curator who regularly publishes articles, and the app 1102 may be a platform by which the curator provides the articles to the user 102. The vertical content feeding unit 1108 in this example obtains content from the corresponding vertical content source 504. For example, the app 1102 may be a car review app, and the vertical content feeding unit 1108 may periodically retrieve the most recent car review articles from cars.com, Edmunds.com, and kbb.com.
Additionally or optionally, the content recommending unit 1110 may filter and/or rank content from different sources based on the user 102's interests from the personal interest space 222. The content recommending unit 1110 may also remove duplicated content from different sources and organize the content based on the content channels of the app 1102. As shown in
To implement the present teaching, computer hardware platforms may be used as the hardware platform(s) for one or more of the elements described herein. The hardware elements, operating systems, and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to implement the processing essentially as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming, and general operation of such computer equipment and as a result the drawings should be self-explanatory.
The computer 1700, for example, includes COM ports 1702 connected to and from a network connected thereto to facilitate data communications. The computer 1700 also includes a CPU 1704, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 1706, program storage and data storage of different forms, e.g., disk 1708, read only memory (ROM) 1710, or random access memory (RAM) 1712, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU 1704. The computer 1700 also includes an I/O component 1714, supporting input/output flows between the computer and other components therein such as user interface elements 1716. The computer 1700 may also receive programming and data via network communications.
Hence, aspects of the method of multi-level content platform, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another. Thus, another type of media that may bear the software elements includes optical, electrical, and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the personal interest space exploration system and its components as disclosed herein can be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing has described what are considered to constitute the present teachings and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2016/073734 | 2/7/2016 | WO | 00 |