This invention relates to methods and apparatus for updating a database associated with a set of elements of online content.
Search engines are known for retrieving a list of addresses of documents on the Web relevant to a search keyword or keywords. A search engine is typically a remotely accessible software program which indexes Internet addresses (universal resource locators (“URLs”), usenet, file transfer protocols (“FTPs”), image locations, etc). The index comprises a list of the keywords in the documents. As any one keyword in the index may be present in hundreds of documents, the index will have for each keyword a list of pointers to these documents, and some way of ranking them by relevance.
There are huge numbers of websites on the world wide web, many of which that publish feeds of updating content via RSS (or similar). Accordingly, each of these websites are themselves generating a plurality of articles or stories.
The concept of a user creating a tag for such RSS feeds is known. For example, if an RSS feed is tagged “Topic X”, each article published under the RSS is tagged as “Topic X”.
The present applicant has recognised that there is a need for an improved method of updating the keywords associated with each document.
According to a first aspect of the invention, there is provided a system comprising a database and a processor for updating said database, the processor being configured to:
Each associated tag may be termed a label. The elements may be sources such as websites or may be individual stories or articles from such sources or may be a combination of sources and stories.
The present applicant has recognised that the tag itself may be useful to the system whether used in conjunction with or separately from the elements associated with the stream. For example, the tag may:
The updating step may also comprise adding said associated tag to each element within the stream. Both tag and associated elements may be stored in the database (which may also be termed a stream store). Alternatively, the tag may be stored in the database with pointers to all associated elements. In this way, the system provides the capability to the end users to specifically tag articles and not just elements related to the stream.
Said predefined criteria may include one or more of a level of uniqueness of said tag, the nature of the elements contained in said first user stream and the country of origin for said first user stream.
The stream and its associated tag may be created in a variety of different ways, e.g:
A search stream may be created by a user searching within another stream, e.g. a mixed stream, using a particular keyword, so as to return a plurality of search results. Accordingly, in this case, the associated tag is the search keyword. In general, said search results may be individual stories and each story is tagged with the search keyword.
A mixed stream may be created by a user. For example, said system may further comprise a user interface to allow said first user to define which elements are to be included in said first user stream and to define the associated tag. A mixed stream may comprise a plurality of elements in the form of sources. In this case, the source and each individual story within the source may be associated with the tag.
The system may be further arranged to allow the user to define the set of sources associated with a tag by specifying one of more of the following:
Said database may be further configured to store curated streams of online content and wherein said updating step includes storing said elements from said first user stream in said database together with said associated tag and preferably information identifying said first user. For such a curated stream, the elements may be in the form of individual stories which are taken from various elements. In this case, the stories but not the sources from which they are taken are associated with the tag.
Said processor may be configured to update said database by
In this way, said first user that reads and/or shares a story via mail or any of the social networks may tag the story after the name of a stream. Once the story is tagged it becomes part of the curated stream.
Said system may further comprise a display for displaying said first user stream to another user wherein said display is updated when said database is updated. In this way, subscribers of the curated streams will see a story added to the stream by a user as it comes in.
The system may provide for multiple users to curate a single stream. In other words, said processor may be further configured to update said database by
One or both of the above aspects of the invention may also provide granularity of searching and/or a more personalised search to a user.
According to another aspect of the invention, there is provided apparatus for providing a search service for finding online content, the apparatus being arranged to
The search results sent to the user may be a visual feed, also known as stream, comprising stories or other material. The results may be arranged in chronological order. The at least one element may be displayed with said tag where appropriate. Once the user has received the search results, the user can scroll through to the other elements associated with the same tag and consume content coming from these elements.
The invention further provides processor control code to implement the above-described systems and methods, for example on a general purpose computer system or on a digital signal processor (DSP). The code is provided on a physical data carrier such as a disk, CD- or DVD-ROM, programmed memory such as non-volatile memory (eg Flash) or read-only memory (Firmware). Code (and/or data) to implement embodiments of the invention may comprise source, object or executable code in a conventional programming language (interpreted or compiled) such as C, or assembly code. As the skilled person will appreciate such code and/or data may be distributed between a plurality of coupled components in communication with one another.
The invention is diagrammatically illustrated, by way of example, in the accompanying drawings, in which:
a is a schematic block diagram of the components of a first arrangement of the system;
b is a flowchart of the steps for a method of updating a database of
a to 2d each show schematic representations of a user interface and together combine to show a flowchart of the steps of one method of creating a tag;
a to 3d each show schematic representations of a user interface and together combine to show a flowchart of the steps of another method of creating a tag;
a is a schematic block diagram of the components of a second arrangement of the system;
b is a variation of the arrangement of
a is a flowchart of the steps of a method of creating and updating a user curated stream carried out by the system of
b is a flowchart of the steps of an alternative method of creating and updating a user curated stream;
a to 6d are screen shots of graphical user interfaces displayed to users at various points during the method of
a to 7d are screen shots of graphical user interfaces displayed to users showing tags; and
The overall topology of one arrangement of the system is illustrated in
As shown in
The users communicate via the Internet with a web server 40 which is connected to various components to provide different functionality. The web server 40 is connected a query server 50 to which a user sends a search request. The search results sent to the users by the query server 50 can be tailored to preferences of the user or to characteristics of their device.
A stream engine 90 and connected stream store 80 form part of the system. In the Figure they are shown as connected to the query server 50 but they may be connected to other components within the system. In this context, a stream is a visual feed or source which provides a plurality of articles or stories. The stream may comprise a single source or website which alone provides a plurality of stories, e.g. a news site such as “http://www.bbc.co.uk”. Alternatively, the stream may comprise a plurality of sources or websites which together provide a plurality of stories. Alternatively, the stream may comprise a plurality of individual stories but not the overall sources of these stories. Finally, the stream may be a mix of sources and/or stories.
The stream store 80 stores a plurality of different databases of streams. There are databases which comprise a plurality of user curated streams each having a set of sources that are grouped under a user defined tag. There may also be databases comprising streams defined by the system provider. These databases may be grouped by topic, e.g. politics, world affairs, business or technology.
The web server 40 is connected to a database of user supplied tags 60 which stores tags which are created by said users in a variety of different ways as described in more detail below. This database is connected to a moderation tool 70 comprising a processor which can access the stored tags and determine whether or not to transfer the tags into the stream store. The moderation tool may be a server or implemented in other hardware as described in more detail below. As set out above, the stream store 80 is connected to the query server 50 via a stream engine 90. This allows access to the stream store by all users.
An optional component of both arrangements is a sharing engine 100 which allows a user to share or publish information, e.g. stories. The sharing engine may have one or more databases to store registered users and streams of published search results. The publication (or sharing) of results could be achieved for example as set out in WO2009/001140 to the present applicant. The publication may be private, e.g. by adding the results so that they are only visible to that user or as the limited publication to nominated users only (i.e. friends). Alternatively, publication may be public publication so that results can be viewed by any user whether identified (logged in) or not. For the group privacy implementation, the concept of user friends is added. Friends are declared by a user thus enabling those declared friends access to view items published as private.
Sharing may be achieved by the following steps:
b illustrates the steps in the method for updating the stream store database 80. At the first step S400, a stream is stored in the user supplied tag database 60 with its tag. Optionally, the addition of each new stream to the database may be published to the moderation tool. At step S402, the stream with its associated tag “tag a” is obtained by the moderation tool from the database. The moderation tool determines whether or not to include the tag “tag a” in the stream store is to be more widely used at step S404. The moderation tool may determine whether or not to include the tagged stream by considering some or all of the following illustrative criteria:
If a tag is accepted, at step S406 all sources and/or stories within the stream are tagged with the accepted tag depending on the nature of the stream. This means that they can be displayed to any user with this tag as described above. The tags are also stored in the stream store database (Step S408), for access by all users.
The tags that are rejected still live within the user application and are private to the user that has curated the specific stream.
The reason for storing the accepted tags is that they provide context with regards to the source and the documents appearing under the source. For example, if the user mixes two blogs about Asian Food and renames or tags the mixed stream as “Asian Food Recipes”, the system automatically knows that each post on those blogs is related to Asia Food and Recipes.
The stream and its associated tag may be created in a variety of different ways, e.g:
The nature of the stream will determine how the tag is to be used, if it is accepted by the system.
For a mixed stream, the tag is assigned to each of the sources that makes up the stream. All of the stories or other content within each source inherit the tag. For example, if the source “BBC news” is tagged as “news”, all articles published by this website “BBC news” are tagged as “news”.
For a search stream, the tag is assigned to the content and not the overall source of the content. For example, a user searches for Lady Gaga in the stream tagged “Music” which contains stories from sources such as NME, MTV ect. , The search stream which is returned is a collection of stories relating to Lady Gaga. All this content, i.e. all the stories, displayed in the search result are tagged Lady Gaga. They also continue to be tagged “Music” from the original stream.
For a curated stream, like a search stream, the tag is assigned to the content and not the overall source of the content. This is because a user curated stream comprises a plurality of stories from various sources all having a tag created by the user. The tag is assigned to each story and not to the overall source of the story. However, if the curated stream also comprises a whole source as part of the curated stream, all content from this stream will have the tag like a mixed stream.
Referring to the screenshots in
As shown in
Once the user is happy with the selection of sources, the user interface includes an input for the user to verify the selection, for example “merge” as shown in the present example. The user interface updates to that shown in
If the user verifies the selection “user supplied tag” is transferred to the user supplied tag database to await moderation.
Referring to the screenshots in
The overall topology of the system for the creation of a user curated stream is illustrated in
As shown in both
The users communicate via the Internet with a web server 40 which is connected to various components to provide different functionality. The web server 40 is connected a query server 50 to which a user sends a search request. The search results sent to the users by the query server 50 can be tailored to preferences of the user or to characteristics of their device.
In
In an alternative arrangement shown in
Referring now to
If the accessed tagged stream is not to be included, the system loops back to consider whether or not another curated stream is to be added to the database. If a tagged stream is accepted, the database known as the stream store is updated to include the new tagged stream Step S105. The database includes the stream with all its sources, the associated tag and also information identifying at least one user associated with the stream. This information identifying the user is useful as set out below.
As shown in steps S106 to S110 and as illustrated in the screen shots of
The effect of this update is illustrated in steps S112 to S114 which show the impact on a user B who is accessing the user curated stream tagged “tag a”. User B accesses the stream store via the query server. A user interface similar to that of
User B scrolls through the displayed streams and selects a user curated stream of interest, e.g. the stream tagged “Stream A” (step S112). User B may thus be subscribed to the user curated stream “stream A” and when a new story is published on one or more of the sources covered in the stream, user B is notified. If the system updates the stream to include additional stories and/or sources as described in steps S106 to S100, at step S114, user B can access these additional stories too. The new stories may become available following a refresh of the stream by user B or may be positively pushed across to the stream by the system.
As shown in
As shown in steps S310 to S314, updates to the user curated stream may be generated by activity from one or all users, e.g. one or both of user A and user B. Thus, at step S310, if the system determines that user A or user B or both are reading and/or sharing a new story, a user interface is displayed to the appropriate user(s) at step S312. The interface suggests including the new story in the stream. The system determines whether or not any new stories are added at step S314.
The impact of any updating is shown on user C who has subscribed to the stream jointly curated by user A and user B (step S316). Any updates are added at step S318 in a similar manner to that described in relation to
The jointly curated stream may be used in a similar manner to the single user curated stream. Thus as described above; the system may provide a notification to a user that the jointly curated stream is available.
It will be appreciated that the tags themselves may be used by the system to improve functionality. One use is to provide an alternative to a user accessing the stream via a search through the stream store; the system may provide a notification to a user that the stream is available. For example, as shown in
The tags and their associated streams may be used to improve searching as illustrated in the flowchart of
At step S200, user D inputs a search to the system using a keyword. At step S202, the system determines that the keyword used is contextually related to one of the tags for a stream. At step S204, the system accesses the stream store to determine the stories which form part of the “golf news” stream and returns at least one of these stories as part of the search results. The system may include some or all of the stories or sources forming part of the stream as the search result. Additionally, the system may conduct a search in the standard manner to return results, e.g. from the query server using a web crawler (not shown) to crawl the Internet.
The system may be configured to automatically determine any contextually related tags, e.g. the key word “putter” is input and the system recognizes that this is contextually related to the tag “golf news”. Alternatively, user D may have selected a tag from the stream store to add to the input search term and the system identifies that it has been included at step S202.
In all of the above embodiments, the search may be conducted on a mobile device which may be any kind of mobile computing device, including laptop and hand held computers, portable music players, portable multimedia players, mobile phones. Users can use mobile devices such as phone-like handsets communicating over a wireless network, or any kind of wirelessly-connected mobile devices including PDAs, notepads, point-of-sale terminals, laptops etc. Each device typically comprises one or more CPUs, memory, I/O devices such as keypad, keyboard, microphone, touch screen, a display and a wireless network radio interface.
These devices can typically run web browsers or microbrowser applications e.g. Openwave™, Access™, Opera™ Mozilla™ browsers, which can access web pages across the Internet. These may be normal HTML web pages, or they may be pages formatted specifically for mobile devices using various subsets and variants of HTML, including cHTML, WML, DHTML, XHTML, XHTML Basic and XHTML Mobile Profile. The browsers allow the users to click on hyperlinks within web pages which contain URLs (uniform resource locators) which direct the browser to retrieve a new web page.
The Web server can be a PC type computer or other conventional type capable of running any HTTP (Hyper-Text-Transfer-Protocol) compatible server software as is widely available. The Web server has a connection to the Internet 30. These systems can be implemented on a wide variety of hardware and software platforms.
The query server, moderation tool server and servers for indexing, calculating metrics and for crawling or metacrawling can be implemented using standard hardware. The hardware components of any server typically include: a central processing unit (CPU), an Input/Output (I/O) Controller, a system power and clock source; display driver; RAM; ROM; and a hard disk drive. A network interface provides connection to a computer network such as Ethernet, TCP/IP or other popular protocol network interfaces. The functionality may be embodied in software residing in computer-readable media (such as the hard drive, RAM, or ROM). A typical software hierarchy for the system can include a BIOS (Basic Input Output System) which is a set of low level computer hardware instructions, usually stored in ROM, for communications between an operating system, device driver(s) and hardware. Device drivers are hardware specific code used to communicate between the operating system and hardware peripherals. Applications are software applications written typically in C/C++, Java, assembler or equivalent which implement the desired functionality, running on top of and thus dependent on the operating system for interaction with other software code and hardware. The operating system loads after BIOS initializes, and controls and runs the hardware. Examples of operating systems include Linux™, Solaris™, Unix™, OSX™ Windows XP™ and equivalents.
The query server may provide for user login. The user is identified by registering a username and password and then subsequently by logging in with the same username and password. The registration process is a one-time process per user. In a preferred embodiment, the login process is also a one-time process per user by caching their credentials (or a unique key representing their identity) in a cookie. However, where cookies are not supported then the user is required to provide username and password per result publication. The user could be required to login at the first page of the mobile search service, however, in the preferred embodiment, the user is only prompted for login (if not already identified) when first attempting to connect.
No doubt many other effective alternatives will occur to the skilled person. It will be understood that the invention is not limited to the described embodiments and encompasses modifications apparent to those skilled in the art lying within the spirit and scope of the claims appended hereto.