Scoping and biasing search to user preferred domains or blogs

Architecture that allows a user to search for content or to restrict an online search to a limited number of websites and/or blog sites. Architecture is provided that facilitates data searching via a source component that includes data representative of a website or a blog, and a search component that processes the data to restrict or bias a query based in part on the data. The source component can include one or more of a favorites list, a blogroll, a pointer to an XML file, or a pointer to an OPML (outline processor markup language) file to specify a list of sites or blogs which they frequent. The search component processes a search query and restricts or biases the search by specifying a list of sites or blogs which are contained in the data of the source component, for example, the favorites list, the pointer to an XML file, the pointer to an OPML file, and the blogroll.

BACKGROUND

A weblog, most often referred to as a “blog” is a web-based publication consisting most frequently of periodicals. Effectively, blogs enable web-based communities to exist, share ideas and communicate with regard to a wide variety of topics. The articles are most often arranged in reverse chronological order (e.g., the most recent appearing first). Conventionally, blogs were manually created and updated. However, with the increase in popularity, recent developments have emerged that include tools that facilitate automating the creation and/or maintenance of blogs.

Today, the range of categories of blogs is countless. For instance, blog content topics can range from geographically focused topics and points of interest to political topics. Political candidates and supporters often use blogging mechanisms and sites to reach out to other fellow supporters. The scope of topics is endless.

While some blogs are written by a solo author, others are written by a group of authors. Sometimes the blog is interactive (e.g., allowing a visitor or reader to leave a public and/or private comment). On the other hand, sometimes, they are not interactive effectively operating as a way to disperse information.

Traditionally, a blogger would employ a personal software package to assist in creating a blog. Today, the availability of blog hosting sites and Web services to provide editing via the Web has proliferated. As well, blog generation tools have continued to evolve and emerge to provide the blogger with greater flexibility and power in creating a blog.

Today, with the increased popularity, blogging has essentially combined a personal web page with tools to make linking to other pages easier. More particularly, track-backs, as well as comment are common mechanisms of blogs thus increasing penetration and interest. With these mechanisms, virtually any reader or visitor to a blog is able to participate by posting a comment or linking from an external blog (e.g., track-back).

Generally, a track-back is a mechanism that represents a first blog that is referenced in a second blog whereas a link to the first blog is provided in the second blog. For example, a blog can provide track-backs to other blogs of a similar topic or to other blogs that the blogger may think provide relevant information to a specific blog community. A comment is a mechanism that permits a reader or visitor to post a remark, thought or opinion on a particular topic or thread. The comments increase the interactivity and participation of a particular blog. For example, readers can post answers to questions, opinions on topics, etc.

With the increase in popularity of blogs comes an increase in content volume. As such, searching blogs results in blog readers being inundated with blog items relating to a subject or topic. The capability does not currently exist to allow a user to more specifically focus a search. Currently, no effective manner of rating, filtering and/or focusing blog items to a user are available. Therefore, a user is forced to sift through the voluminous number of blog items with hopes to locate items of interest.

SUMMARY

In many cases, blog users wish to search for content on the Internet, but only within one website and/or blog site. In other cases, users wish to search the web, but bias the results towards these websites and/or blogs. The disclosed innovation enables a user to limit the scope of an online search to those desired website and/or blog sites.

Accordingly, the invention disclosed and claimed herein, in one aspect thereof, comprises a system that facilitates data searching in accordance with an innovate aspect. The system comprises a source component that includes data representative of a website or a blog, and a search component that processes the data to restrict or bias a query based in part on the data. In one implementation, the source component can include one or more of a favorites list, a blogroll, a pointer to an XML file, or a pointer to an OPML (outline processor markup language) file to specify a list of sites or blogs which they frequent. The search component processes a search query and restricts or biases the search by specifying a list of sites or blogs which are contained in the data of the source component, for example, the favorites list, the pointer to an XML file, the pointer to an OPML file, and the blogroll.

In another aspect, a search can be extended to multiple secondary sites as defined in files that are searched via the initial query.

In yet another aspect thereof, a file source can be defined by a user login such that when the user logs in to a system, the source file for the search query is automatically assigned to the source file.

In still another aspect of the subject innovation, the search component can include a query parser component that at least retrieves the data associated with a desired websites and/or blogs, extracts that information, and incorporates the information into the query. An execution component of the search component facilitates efficient filtering or biasing of results to the set of websites or blogs specified. The search component can also include an index component that stores and exposes correct metadata structures to enable the efficient execution of such queries.

In another aspect, the system determines if a second search is required to be made based on adequacy of results of a first search conducted.

DETAILED DESCRIPTION

Referring initially to the drawings,FIG. 1illustrates a system100that facilitates data searching in accordance with an innovate aspect. The system100comprises a source component102that includes data representative of a website or a blog, and a search component104that processes the data to restrict or bias a query based in part on the data. In one implementation, the source component102can include one or more of a favorites list, a blogroll (a part of a blog which lists links to other blogs), a pointer to an XML (extensible markup language) file, or a pointer to an OPML (outline processor markup language) file to specify a list of sites or blogs which they frequent.

Additionally, in many cases, blog users wish to search for content on the Internet (also referred to herein as the “web”), but only within one website and/or blog. In other cases, users wish to search the web, but bias the results towards these websites and/or blogs. Accordingly, the disclosed innovation enables a user to limit the scope of an online search.

The search component104processes a search query and restricts or biases the search by specifying a list of sites or blogs which are contained in the data of the source component102, for example, the favorites list, the pointer to an XML file, the pointer to an OPML file, and the blogroll.

At200, a list or datasource of desired website and/or blogs is retrieved for processing. At202, the website and/or blog information is extracted from the list or datasource. At204, the website and/or blog data is incorporated into a query. At206, the query is processed against the website and/or blog to return results. At208, metadata structures associated with the website and/or blog are exposed and stored to facilitate efficient execution of the query. At210, the results are filtered or biased based on the website(s) and/or blog(s).

Referring now toFIG. 3, there is illustrated a methodology of limiting a content search in accordance with another aspect. At300, a source that provides a location of a website and/or a blog is specified in query syntax. At302, an online search is initiated based on the query. At304, content of the website and/or blog specified in the query is searched, and results returned to the user.

FIG. 4illustrates a methodology of limiting a search based on bias towards the website and/or blog being searched in accordance with another aspect of the innovation. At400, a source of websites and/or blogs is specified in search syntax. At402, an online search is initiated. At404, the search results are returned. At406, the results are then filtered based on the website and/or blog specified in the source.

FIG. 5illustrates a more detailed diagram of the types of data that can be provided by the source component102ofFIG. 1. As indicated supra, the types of data that can be utilized include a favorites list500which is a listing of frequently-accessed websites and/or blogs, a pointer to an XML file502, a pointer to an OPML file504, and a blogroll506.

Referring now toFIG. 6, there is illustrated a more detailed diagram of components of the search component104ofFIG. 1. The search component104can include a query parser component600that at least retrieves the data associated with a desired websites and/or blogs, extracts that information, and incorporates the information into the query. An execution component602of the search component104facilitates efficient filtering or biasing of results to the set of websites or blogs specified. The search component104can also include an index component604that stores and exposes correct metadata structures to enable the efficient execution of such queries.

FIG. 7illustrates a methodology of determining a source of a search destination based upon a user login. At700, a user logs-in to the system using login information. This can include username and password or other related information such as an e-mail address, for example. At702, the user defines a query that will be used for searching a network of data sources. At704, the user then initiates an online search. Note that “online” in this context means a network-based search such as via the Internet, for example. At706, the system automatically specifies the source of the website and/or blog information to be searched based on the user login information. As indicated supra, this can be a favorites list, a pointer to an OPML file, a pointer to an XML file, and a blogroll. At708, the search returns results.

FIG. 8illustrates a system800that utilizes a favorites list802to link to a website804and/or blog site806. The favorites list802can include a number of links. For example, a first link808includes destination information FAVORITES1LINK SITE that directs a query to the associated website804(denoted FAVORITES1LINK SITE). The search can then be restricted to content of the website804. The favorites list802can also include a second link810which includes destination information FAVORITES2LINK BLOG that directs a second query to the associated blog806(denoted FAVORITES2LINK BLOG). The second search can then be restricted to content of the blog806.

In another implementation, the website804can further employ a favorites list812such that the first search not only includes content of the website804, but is also extended to a website or blog identified by a link814FAVORITES3LINK SITE, which extends the search to content of a second site816(denoted FAVORITES3LINK SITE). The blog site806can also include a favorites list818which includes a link820FAVORITES3LINK SITE that points to the second site816.

It is to be appreciated that the query can define a single favorites list or multiple favorites lists. Additionally, the query can define a single favorites list, but multiple different links contained therein to extend the search to websites, blog sites and both websites and blog sites.

FIG. 9illustrates a system900that utilizes a datasource902that includes a pointer to an OPML file to link to one or more datastores. Here, the datasource902includes a first pointer904(denoted POINTER1) and a second pointer906(denoted POINTER1). The first pointer904includes information that points to a first datastore908which includes one or more OPML files (denoted OPML FILE1, OPML FILE3. . . ). Here, the first pointer904points to a first OPML file910. In one implementation, the search is limited to the first datastore908at which the first OPML file910resides. Alternatively, the first OPML file910is processed to extract destination information of other sites to which the search is extended and which associated content is searched.

The second pointer906includes information that points to a second datastore912which includes one or more OPML files (denoted OPML FILE2, OPML FILE6. . . ). Here, the second pointer906points to a second OPML file914. In one implementation, the search is limited to the second datastore912at which the second OPML file914resides. Alternatively, the second OPML file914is processed to extract destination information of other blog sites to which the search is extended and which associated content is searched.

It is to be appreciated that the query can define a single pointer (e.g., POINTER1904) in a list of pointers of the datasource902. Alternatively, the query can define multiple pointers (e.g., POINTER1904and POINTER2906) of the datasource902, such that the multiple pointers extend the search to websites, blog sites and, both websites and blog sites. Note that it is to be appreciated that the first OPML file910can include a pointer that links to a third OPML file916(denoted OPML FILE3) of the same location (e.g., first datasource908). Thereafter, the search can be restricted to the first datasource908, or extended to other websites and/or blogs defined by destination information contained within the third OPML file916.

FIG. 10illustrates a system1000that utilizes a datasource1002which includes a blogroll that provides a link to a datastore. The datasource1002includes a blogroll having at least a first link1004(denoted BLOGROLL1LINK) and a second link1006(denoted BLOGROLL2LINK). The first link1004directs the search query to an associated blog site1008. The search can be limited to the blog site1008, only, or extended to another site as identified in a blogroll1010of the blog site1008.

It is to be appreciated that the query can define a single blogroll link (e.g., BLOGROLL1LINK1004) in a list of links of the datasource1002. Alternatively, the query can define blogroll links (e.g., BLOGROLL1LINK1004and BLOGROLL2LINK1006) of the datasource1002, such that the multiple links extend the search to the many blog sites.

FIG. 11illustrates a system1100that utilizes a datasource1102that includes a pointer to an XML file to link to a site1104. The datasource1102includes a list of pointers having at least a first pointer1106(denoted POINTER1) and a second pointer1108(denoted POINTER2). The first pointer1106directs the search query to the associated site1104. The search can be limited to the site1104only, or extended to another site (not shown) as identified in a first XML file1110(denoted XML FILE1) of the site1104.

It is to be appreciated that the query can define a single pointer (e.g., POINTER1) in the list of pointers of the datasource1102. Alternatively, the query can define multiple pointers (e.g., POINTER1and POINTER2) of the datasource1102, such that the multiple pointers extend the search to the many associated sites (e.g., blog and website). In another example, the second pointer1108can include sufficient destination information to direct the search to a specific XML file of the site1104(e.g., XML FILE2). Thus, the search can be extended to the one or more associated sites (e.g., blog and website) defined in the XML FILE2.

FIG. 12illustrates a methodology of extending a search to multiple destinations. At1200, a query is defined that includes at least a destination and search terms. At1202, a source file is specified in the search syntax that includes a website and/or a blog site to be searched. At1204, the search is then initiated online. At1206, the system processes the search query against a first site (e.g., a website and/or a blog site) of the source file, and other sites linked-to in the first site. At1208, the search results are returned for processing.

FIG. 13illustrates a methodology of filtering search results based on multiple sites. At1300, a query is defined that includes at least a destination and search terms. At1302, multiple source files are specified in the search syntax that includes a website and/or a blog site to be searched. At1304, the search is then initiated online. At1306, the system processes the search query against sites (e.g., websites and/or blog sites) of the multiple source files. At1308, the search results are returned for processing. At1310, the results are filtered based on the multiple sites of the multiple sources selected in the source files.

FIG. 14illustrates a methodology of researching based on the quality of the results returned. At1400, a query is defined that includes at least a destination and search terms. At1402, first and second source files are specified for sites (e.g., website, blog site . . . ) to be searched. At1404, the search is then initiated online based on the first source file. At1406, the system processes the search query against sites (e.g., websites and/or blog sites) of the first source file and the search results are returned for processing. At1408, a determination is made as to whether the results are acceptable. This can be based on predetermined criteria such as the number of results returns, the type of results returned, and the source of the results returned, for example. If not acceptable, flow is to1410to initiate an online search based on the second source file and return the results for processing. If, at1408, the results are acceptable, flow can bypass utilization of the second source file to further the search.

Referring now toFIG. 15, there is illustrated a block diagram of a computer operable to execute the disclosed architecture. In order to provide additional context for various aspects thereof,FIG. 15and the following discussion are intended to provide a brief, general description of a suitable computing environment1500in which the various aspects of the innovation can be implemented. While the description above is in the general context of computer-executable instructions that may run on one or more computers, those skilled in the art will recognize that the innovation also can be implemented in combination with other program modules and/or as a combination of hardware and software.

With reference again toFIG. 15, the exemplary environment1500for implementing various aspects includes a computer1502, the computer1502including a processing unit1504, a system memory1506and a system bus1508. The system bus1508couples system components including, but not limited to, the system memory1506to the processing unit1504. The processing unit1504can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures may also be employed as the processing unit1504.

The system bus1508can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory1506includes read-only memory (ROM)1510and random access memory (RAM)1512. A basic input/output system (BIOS) is stored in a non-volatile memory1510such as ROM, EPROM, EEPROM, which BIOS contains the basic routines that help to transfer information between elements within the computer1502, such as during start-up. The RAM1512can also include a high-speed RAM such as static RAM for caching data.

The computer1502further includes an internal hard disk drive (HDD)1514(e.g., EIDE, SATA), which internal hard disk drive1514may also be configured for external use in a suitable chassis (not shown), a magnetic floppy disk drive (FDD)1516, (e.g., to read from or write to a removable diskette1518) and an optical disk drive1520, (e.g., reading a CD-ROM disk1522or, to read from or write to other high capacity optical media such as the DVD). The hard disk drive1514, magnetic disk drive1516and optical disk drive1520can be connected to the system bus1508by a hard disk drive interface1524, a magnetic disk drive interface1526and an optical drive interface1528, respectively. The interface1524for external drive implementations includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies. Other external drive connection technologies are within contemplation of the subject innovation.

A number of program modules can be stored in the drives and RAM1512, including an operating system1530, one or more application programs1532, other program modules1534and program data1536. All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM1512. It is to be appreciated that the innovation can be implemented with various commercially available operating systems or combinations of operating systems.

A user can enter commands and information into the computer1502through one or more wired/wireless input devices, e.g., a keyboard1538and a pointing device, such as a mouse1540. Other input devices (not shown) may include a microphone, an IR remote control, a joystick, a game pad, a stylus pen, touch screen, or the like. These and other input devices are often connected to the processing unit1504through an input device interface1542that is coupled to the system bus1508, but can be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.

A monitor1544or other type of display device is also connected to the system bus1508via an interface, such as a video adapter1546. In addition to the monitor1544, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.

When used in a LAN networking environment, the computer1502is connected to the local network1552through a wired and/or wireless communication network interface or adapter1556. The adaptor1556may facilitate wired or wireless communication to the LAN1552, which may also include a wireless access point disposed thereon for communicating with the wireless adaptor1556.

When used in a WAN networking environment, the computer1502can include a modem1558, or is connected to a communications server on the WAN1554, or has other means for establishing communications over the WAN1554, such as by way of the Internet. The modem1558, which can be internal or external and a wired or wireless device, is connected to the system bus1508via the serial port interface1542. In a networked environment, program modules depicted relative to the computer1502, or portions thereof, can be stored in the remote memory/storage device1550. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.

Referring now toFIG. 16, there is illustrated a schematic block diagram of an exemplary computing environment1600in accordance with another aspect. The system1600includes one or more client(s)1602. The client(s)1602can be hardware and/or software (e.g., threads, processes, computing devices). The client(s)1602can house cookie(s) and/or associated contextual information by employing the subject innovation, for example.

The system1600also includes one or more server(s)1604. The server(s)1604can also be hardware and/or software (e.g., threads, processes, computing devices). The servers1604can house threads to perform transformations by employing the invention, for example. One possible communication between a client1602and a server1604can be in the form of a data packet adapted to be transmitted between two or more computer processes. The data packet may include a cookie and/or associated contextual information, for example. The system1600includes a communication framework1606(e.g., a global communication network such as the Internet) that can be employed to facilitate communications between the client(s)1602and the server(s)1604.

Communications can be facilitated via a wired (including optical fiber) and/or wireless technology. The client(s)1602are operatively connected to one or more client data store(s)1608that can be employed to store information local to the client(s)1602(e.g., cookie(s) and/or associated contextual information). Similarly, the server(s)1604are operatively connected to one or more server data store(s)1610that can be employed to store information local to the servers1604.

What has been described above includes examples of the disclosed innovation. It is, of course, not possible to describe every conceivable combination of components and/or methodologies, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the innovation is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.