This invention relates to query servers for providing a mobile search service, to corresponding methods of using a mobile search service, and corresponding apparatus and software.
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 list of addresses is typically a list of “hyperlinks” or Internet addresses of information from an index in response to a query. A user query may include a keyword, a list of keywords or a structured query expression, such as Boolean query.
Known Internet search engines take a query from a user and return a list of search results. A typical search engine “crawls” the Web by performing a search of the connected computers that store the information and makes a copy of the information in a “web mirror”. This has an index 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.
For all search engines, the order that results are displayed will depend on many factors, but are typically derived from at least a measure of how well the search terms matched the candidate documents and some measure of the significance or popularity of those documents independent of the search terms. For example, it is known to rank hypertext pages based on intrinsic and extrinsic ranks of the pages based on content and connectivity analysis. Connectivity here means hypertext links to the given page from other pages, called “backlinks” or “inbound links”. These can be weighted by quantity and quality, such as the popularity of the pages having these links. PageRank™ is a static ranking of web pages used as the core of the search engine known by the trademark Google (http://www.google.com).
The present applicant has realized that further improvements are possible, particularly to address searches based on keywords within a certain context.
The invention describes a query server and a computer-implemented method to provide a search service for finding online content. The query server may be incorporated in a system to provide the search service.
A search query is received from a user and a set of sources of online content associated with said user is identified. The search query is output to said identified set of sources to generate search results from within said identified set of sources. The search results are then sent to said user.
On traditional search engines, the user cannot specify either the:
The invention provides a double filtering of search results, a filter by the search query (which may be in the form of a keyword/phrase) and a second filter by sources or topic/genre. By having a user defined set of multiple sources, the invention may also provide granularity of searching as described in more detail below. The search is also personalised to a user.
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 set of sources may be termed a smart stream. The set of sources may be associated with a keyword or search term as well as the user. In this case, the set of sources may be termed a smart search stream.
The system may comprise a database to which the query server is connected (directly or indirectly, e.g. via a stream store). The database may store sets created on a previous occasion by said user. The identification of the set of sources may thus be simply a user selecting one of these sources.
Alternatively, the user may be prompted to define the sources to identify the sources to be used. For example, the user to define the set of sources by specifying one of more of the following:
The system may further comprise a user interface to which the query server is connected (directly or indirectly, e.g. via the web server and internet). The sources from a user which may define the user associated set of sources may be displayed on the user interface and the user interface sends a message to the query server when a source has been selected or deselected.
After the search results are output to the user, the search may be further refined by adapting the user associated set of sources. The choice of sources may be displayed to the user as described above and a user may select another source for inclusion in the user associated set of sources. The search query may then be sent again to the new user associated set of sources and a new set of search results be sent to the user. In other words, the double filtered search may be iteratively refined by the user. At each iteration, the user may opt to store the new user associated set of sources thus creating several different smart streams.
Once the user has received the search results, the user can scroll through those stories and consume content coming from the previously defined sources.
It will be appreciated that the order of receiving the search query and identifying the set of sources is not critical and can be reversed to achieve the same double filtering.
As an alternative, a list of sources may be sent to a user for selection and a selection of at least one source from within said list of sources may be received to create a selected set of sources. The search query may then be received from a user. The search results are generated from within said selected set of sources, and output said to said user. As previously described, the search results may be iteratively refined by the user.
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 the system;
b is a flowchart of a method for conducting a search using the system of
a is a screenshot of a user device for creating a smart stream from existing streams;
b is a screenshot of the device of
c is a flowchart of one method of creating a smart stream;
a is a screenshot showing search results returned following a key word search;
b is a screenshot showing the first step in creating a smart stream from existing streams;
c to 3e show alternative streams available in a service defined suggestion list, a user defined list and the full store;
f is a flowchart of another method of creating a smart stream;
The overall topology of the embodiments of the invention is illustrated in
A plurality of users 5 connected to the Internet via desktop computers 11 or mobile devices 10 can make searches via the query server. The users making searches (‘mobile users’) on mobile devices are connected to a wireless network 20 managed by a network operator, which is in turn connected to the Internet via a WAP gateway, IP router or other similar device (not shown explicitly). The search results sent to the users by the query server can be tailored to preferences of the user or to characteristics of their device.
The documents fetched and supplied to the indexer 60 can be of numerous different types, e.g. images, audio files, wikipedia™ pages.
A stream engine 90 and connected stream store 100 form part of the system. In the Figure they are shown as connected to the web server 40 and 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. For example, a stream may be a website, e.g. a news site such as www.bbc.co.uk. The stream store 100 stores a plurality of different database of sources. There are databases which comprise a user defined set of sources (also known as Mixed Streams) that are grouped under a user tag so that they are associated with a particular user, components of those sources make up the Private index 130. Thus although the private index 130 and the stream store are shown as separate databases, they may be combined within one database. There are also databases comprising a set of sources defined by the system provider. These databases may be grouped by topic, e.g. politics, world affairs, business or technology. The global index 70 may form part of these system provider defined databases.
An optional component is a sharing engine 120 which allows a user to share or publish the smart search stream that has been created. 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 WO 2009/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's friends is added. Friends are declared by a user thus enabling those declared user's access to view items published as private.
Sharing may be achieved by the following steps:
b outlines the main steps of a method of conducting a search using the system above. The first step S100 is receiving a search query from a user. The search query is typically input by a user on a user interface on the user's device, e.g. by typing into a keyboard. The search query is received by the query server 50, e.g. via the web server 40 as shown in
Once the set of sources have been identified, the search query is output to said set of sources at step S104. This may be achieved by the query server itself or by a back end engine connected to the query server. For example, the query server may send the query and the identified set of sources to the indexer 60 which together with the web crawler 80 searches the Internet within the identified set of sources. The results of the search query may be received by the query server at step S106 and transmitted to the user at step S108. Alternatively, the outputting of the search results may be arranged without the need for the search results to be transmitted to the query server.
The creation and editing of smart search streams is described in more detail with reference to
a to 2c show how a smart search stream can be created from an existing stream and filtered by keyword.
As shown in
The next step is to determine whether or not any more streams are to be included. This may be done simply by a user clicking on the “add more streams” button on the user interface if they wish to add more streams. The method then loops back to the first step.
Once a user is finished, they click on “done” or “create smart screen” to finish the process. The next step is for a user to input a search term. Accordingly, the user is now presented with a search screen having a window or text box in which to input a search term as shown in
The user enters a keyword into the text box (step S210) and the preview of the stream is updated with articles matching the keyword (in other words the original user associated set of sources is filtered using said user input search term at step S212). The results are output to the user at step S214, for example, they are listed chronolocigally. The user can then click on “done” to save the stream, i.e. to input that they wish to be associated with this new set of sources (step S216). This creates a new smart stream which is linked to the keyword. In other words, the newly created smart search stream is a filtering of the existing smart stream (in this case the “my stream” by keyword.
In summary, the steps are:
As an alternative, if the original stream is a Tag, user can remove constituent feeds from the search stream while changing the keyword.
As an alternative, a user can create a smart search stream from the beginning as shown in
c shows some example streams in the set suggested by the service provider. By clicking on the button marked with a “+”, a user can add the individual suggestions to the smart stream (step S308).
In each of
In summary, the steps are:
Once a smart search stream has been created, it may also be edited. This may be done via a user interface such as the one shown in
The smart search stream may be edited by changing the keyword, e.g. changing Obama to US. For example, this may be achieved by the following steps:
Alternatively, the smart search stream may be edited by adding or removing Constituent Feeds/Tags. For example, this may be achieved by the following steps:
Alternatively, the smart search stream may be edited by merging Search Streams. For example, this may be achieved by the following steps:
Alternatively, this may be achieved by the following steps:
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, touchscreen, 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, 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.
Number | Date | Country | |
---|---|---|---|
61525936 | Aug 2011 | US |