Geographical area correlated websites

A system, method and/or software for using overlap between a first website area-of-interest map, associated with a first website, and a searcher area-of-interest map to help prioritize the websites returned by a search engine search. The area-of-interest maps are made up of geographic pixels respectively assigned with area-of-interest values. Overlap area is determined by comparing, on a pixel-by-pixel basis, corresponding pixels of the searcher area-of-interest map and the first website area-of-interest map to determine overlap pixels where the following conditions hold: (i) the first website area-of-interest map has a non-zero interest value, and (ii) the searcher area-of-interest map has a non-zero interest value.

FIELD OF THE INVENTION

The present invention relates generally to the field of websites communicated over data communication networks (such as the Internet) and more particularly to websites that implicate geographical information.

BACKGROUND OF THE INVENTION

Websites (sometimes herein called web pages) are known. A website is a set of associated data that is typically written in a language, such that hypertext markup language (HTML) or the extensible markup language (XML). It is known that a website may be related to a geographic location. For example, the website www.endicottny.com relates to the village of Endicott, N.Y., USA, because the content of this website (such as its text and pictures) substantively relates to this particular village in the state of New York.

Search engines for finding websites of interest are known. Search engines are applications, which typically reside on servers. Search engines are one means to sift through data in the hundreds of millions of web pages available. Search engines utilize matching algorithms to identify and return a set of “returned websites” (or “hit list”) that the search engine has determined to be likely to be of interest to the searcher based on the searcher's search. The matching algorithms may parse alphanumeric text to determine a match between the data interested by the client (herein called the “searcher”) and the data accessible to the search engine server hardware and software. The searcher intrinsically defines broadness of the search performed by the server by providing text-based queries designed to be broad, narrow or in between. For example, a search for “villages” would be broader than a search for “Endicott.”

Geo URIs are known. A “geo URI” is a Uniform Resource Identifier (URI) for geographic locations using the ‘geo’ scheme name. A geo URI identifies a physical location in a two- or three-dimensional coordinate reference system in a compact, simple, human-readable way. Geo URIs are also typically not protocol-specific. For example, a specific revision of the vCard specification supports geo URIs in a vCard “GEO” property field. As a further example, the GeoSMS standard uses geo URIs for geotagging SMS (Short Message Service) messages.

There is a currently-existing website called http://geourl.org. This website appears to relate to ICBM (Intercontinental Ballistic Missile) addresses, and should not be confused with the Geo URI background art identified above.

SUMMARY

A method according to the present invention includes a receiving step and a determining step. The receiving step includes receiving: (i) a first website area-of-interest map, associated with a first website data set, the first website area-of-interest map being made up of geographic pixels respectively assigned with area-of-interest values, and (ii) a searcher area-of-interest map, based upon a searcher area of interest defined by a searcher, the searcher area-of-interest map being made up of geographic pixels respectively assigned with area-of-interest values. The determining step includes determining overlap area by comparing, on a pixel-by-pixel basis, corresponding pixels of the searcher area-of-interest map and the first website area-of-interest map to determine overlap pixels where the following conditions hold: (i) the first website area-of-interest map has a non-zero interest value, and (ii) the searcher area-of-interest map has a non-zero interest value. At least the determining step is performed by computer software running on computer hardware.

DETAILED DESCRIPTION

The present invention will now be described in detail with reference to the Figures.FIGS. 1,2A,2B,2C and3are each a functional block diagram illustrating various portions of distributed data processing system100, including: server computer sub-system102; first client (or website (w/s)) developer computer sub-system104; second client (or searcher) computer sub-system106; network114; server computer200; website developer computer250; searcher computer280; communication units202,252,281; processor sets204,254,282; input/output (i/o) interface modules206,256,283; memory devices208,258,286; random access memory devices230,270,287; cache memory devices232,272,288; persistent storage devices210,260,290; search engine software (s/w)240; overlap module (or “mod”)242; browser275; w/s software276; bitmap (or map) mod277; browser289; display devices212,262,284; external devices sets214,264,285; fetch searcher area of interest (AOI) sub-mod302; fetch w/s result AOI sub-mod304; return ranked results sub-mod310; calculate overlap (o/l) sub-mod306; interface sub-sub-mod318; apply “and” function sub-sub-mod320; populate o/l bitmap sub-sub-mod322; and rank result sub-mod308.

As shown inFIG. 2A, server sub-system102is a computer used as search engine server hardware and software. Server computer sub-system102may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with the client sub-systems via network114. As shown inFIG. 2A, overlap module242is a collection of machine readable instructions and data that is used to calculate the amount of overlap between an area of interest (AOI) of a searcher and an area of interest designated for a given website. AOIs correspond generally to areas designated as “bits” on a “bitmap.” However, as will be discussed below in connection withFIGS. 6D to 6F, the “bits” may take the form of scalar quantities, rather than 1's and 0's. Also, as discussed below in connection withFIGS. 6G to 6I, the pixilated maps (called AOI maps) may be formed of “pixels” that are irregular in shape, size, layout and/or coordinate axes. The AOI maps will generally be two-dimensional, but this is not necessarily required. In this embodiment, search engine software240includes o/l mod242, and further includes conventional text-based search engine software.

As shown inFIG. 2B, client sub-system104is a computer used by a website developer for creating websites that are designed to be used in the present invention. Client computer sub-system104may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with the server and other client sub-systems via network114. Website development software276, stored in persistent storage of website developer computer250, may take the form of conventional website development software tools, frameworks and the like. However, bitmap mod (or, simply, map mod)277is not conventional. Map mod277allows the developer to define an AOI and to associate that AOI with the website under development by the website developer. In some embodiments, the website developer may enter multiple AOIs for a single website. For example: (i) different AOIs could be entered to reflect an area of intense interest and an area of moderate interest; (ii) different AOIs could be entered to be selectively used depending upon where the searcher is located; and/or (iii) different AOIs could be entered to be selectively used depending on other characteristics of future searches and/or searchers. In some preferred embodiments of the present invention, the website under development will be assigned only a single AOI by map mod277.

Network114can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and can include wired, wireless, or fiber optic connections. In general, network114can be any combination of connections and protocols that will support communications between server and client sub-systems.

It should be appreciated thatFIGS. 1,2A,2B,2C and3, taken together, provide only an illustration of one implementation (that is, system100) and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made, especially with respect to current and anticipated future advances in cloud computing, distributed computing, smaller computing devices, network communications and the like.

The computer sub-systems ofFIGS. 2A,2B and2C are shown as block diagrams with many double arrows. These double arrows (no separate reference numerals) represent a communications fabric, which provides communications between various components of sub-system102as shown inFIG. 2A. This communications fabric can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, the communications fabric can be implemented, at least in part, with one or more buses.

Turning again toFIG. 2A, memory208and persistent storage210are computer-readable storage media. In general, memory208can include any suitable volatile or non-volatile computer-readable storage media. It is further noted that, now and/or in the near future: (i) external device(s)214may be able to supply, some or all, memory for sub-system102; and/or (ii) devices external to sub-system102may be able to provide memory for sub-system102.

Turning again toFIGS. 2A,2B, and2C, the respective persistent storage devices210,260,290store machine readable instructions, and/or data for access and/or execution by one or more of the respective computer processors, usually through one or more memories. Persistent storage devices210,260,290are at least more persistent than a signal in transit is, but the persistent storage may, of course, be substantially less persistent than permanent storage. For example, persistent storage210may or can include a magnetic hard disk drive. To name some possible variations, persistent storage210may include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.

Staying withFIG. 2A, communication unit202provides for communications with other data processing systems or devices external to sub-system102, such as client sub-systems104and106. Communication unit202may include one or more network interface cards. Communication unit202may provide communications through the use of either or both physical and wireless communications links. Any software modules discussed herein may be downloaded to a persistent storage device (such as persistent storage device210) through a communication unit (such as communication unit202).

Turning now toFIG. 2Cand using sub-system106as a representative example, display device284provides a mechanism to display data to a searcher (or other user) and may be, for example, a computer monitor, a smart phone display screen or any other visual display device now known or to be developed in the future.

Turning now toFIG. 3, detailed discussion of the various modules, sub-modules and/or sub-sub-modules ofFIG. 3are described below with respect to the flow charts ofFIGS. 4A and 4B. Generally speaking, the various modules ofFIG. 3compare a searcher's AOI and an AOI associated with one or more websites in order to: (i) determine the overlap between the respective AOIs (this overlap area is sometimes herein called an overlap AOI); and/or (ii) provide or refine a priority order of a hit list based, at least in part, upon the degree and/or nature of the determined overlap AOI.

Some embodiments of the present invention use pixelized maps that represent geographical areas (for example, Italy, the whole world). These will be generically referred to herein as “AOI maps.” As mentioned above, a bitmap is one specific type of AOI map. A bitmap in the form of an orthogonal grid with square pixels is a preferred type of AOI map, although it is not the only possible type. Systems and methods, according to the present invention, and using these AOI maps, should preferably be designed to do AOI-map-related calculations sufficiently quickly so that results from a search engine are returned to a searcher substantially as quickly as results from a currently-conventional search engine. For example, if the calculations take several hours then this may be considered as an impractical embodiment for many, if not all, realistic implementations of the present invention. This is the reason that methods according to the present invention generally require the use of one or more computers.

Turning now toFIGS. 4A and 4B,FIG. 4Ashows a flowchart depicting process400in accordance with an embodiment of the present invention. The various steps of process400will now be discussed in turn.FIG. 4Bshows process454, which corresponds to step S454of process400.

Before step S450of process400, a searcher enters a search into a search engine screen. An example, of such a search engine screen is shown at screenshot500aofFIG. 5A, which includes: search engine window502; search text entry field504; search button506; geolocalization activation field508; and geolocalization map509a. Generally, speaking, screenshot500ais determined by search engine software240(seeFIG. 2A) working cooperatively in conjunction with searcher's browser289(seeFIG. 2C). The search engine window and search button are conventional and should be familiar to those of skill in the art. On the other hand, fetch searcher AOI sub-mod302of overlap mod242of search engine software240(seeFIGS. 2A and 3) generates and controls geolocalization activation field508and geolocalization map509a. The functionality of field508and map509awill be discussed more fully below.

Also, before the first step S450of process400, the searcher will “hit” the search button (seeFIG. 5A), which will cause search engine software240to determine a preliminary result list (or preliminary “hit” list), although this preliminary hit list is preferably only used for purposes internal to the search engine software and not returned to the user. In this example, the preliminary hit list includes websites that are believed to relate to the search text that the searcher has entered in the search text entry field before hitting the search button (seeFIG. 5Aat reference numeral504, where the example text is “commerce law”). This preliminary hit list will usually have a preliminary priority order associated with it, which preliminary priority order would rank the results in the hit list based on expected level of interest for the searcher (and perhaps other factors, such as payment for placement). A conventional search engine, and as will be recognized by those of skill in the art, would simply return this preliminary hit list in its preliminary priority order, to the searcher's display device through the searcher's browser, as the final hit list. However, as will be explained below in detail, the present invention may change the identity and/or the priority order of the returned websites of this preliminary hit list in certain ways, based upon AOI map comparisons, in order to determine and display a final hit list in final priority order.

Besides the searcher's AOI, as mentioned above and to be discussed in detail below, process400generally requires at least some of the websites returned in the preliminary hit list will have an associated website AOI. These website AOIs should preferably either be, or be susceptible to being, translated into an AOI map. If none of the preliminary hit list websites have associated AOIs, then process400does not apply and, presumably, the preliminary hit list becomes the final hit list, as is currently conventional. On the other hand, if some, or all, of the preliminary hit list websites have a website AOI, the respective comparisons of the searcher's AOI map to the websites' respective AOI maps will generally cause the priority order of the preliminary list to change into a differently ordered final hit list according to the present invention. The AOI map comparison may also cause some website preliminary return results to be dropped from the final hit list.

Turning again toFIG. 4A, at step S450, an item (called the “website under analysis”) from the preliminary hit list results is identified for the overlap analysis of process400. Step S450is performed by fetch website results AOI sub-module304of overlap module242of search engine software240of server computer200of server sub-system102(seeFIGS. 2A and 3). In at least some embodiments, step S450and process400, taken as a whole, will be repeated for each and every website in the preliminary hit list.

At step S452, the following are determined: (i) whether the website under analysis (that is, one of the preliminary hit list websites) has a specified, associated website AOI; and (ii) the AOI map for the website-under-analysis (assuming the website-under-analysis has an associated website AOI). This processing of step S452is performed by fetch website results AOI sub-module304of overlap mod242of search engine software240of server sub-system102(seeFIGS. 2A and 3).FIG. 6Bshows a (highly simplified) website area of interest map diagram610associated with a given website-under-analysis as identified at step S450.

In this simple example, the website AOI map for this website AOI has six total pixels. The website AOI, as designated by the website developer when the website was developed or last edited, corresponds to the three pixels set to have a bit value of “1” (or equivalent) in diagram610. These six pixels represent six relatively small geographical areas. In more realistic examples there will generally be many, many more pixels. In this simple example, the website AOI is initially provided to sub-module304in the form of a website AOI map, but in other examples and as discussed below, sub-mod304may need to generate a website AOI map for a website AOI that is presented in a form other than a pixelated map.

As mentioned earlier, there may be websites from the list that do not contain website AOIs. These will generally be tagged and/or prioritized differently than websites that include associated website AOIs. In some embodiments, websites without a specified AOI (no-AOI websites) may be omitted completely from the final hit list. In some embodiments, these no-AOI websites may be placed in a separate hit list from the websites that do specify an AOI. In other embodiments, no-AOI websites may be intermingled with AOI websites in the final hit lists. In these intermingled embodiments, the fact that a website is a no-AOI website may negatively impact its priority in the priority-ordered final hit list.

During the development of the website the website developer may designate the website AOI in many different ways, and the website AOI may be stored for public and/or search engine access in many different ways. As a simple example, the website developer could enter bit values directly on a bitmap which is diagrammatically displayed on the website developer's display device. In most practical embodiments, this method would be tedious and time-consuming for the website developer, but it is a method that would certainly work to make the highly simplified example website AOI map610ofFIG. 6B. With this method of website AOI entry, entering the website AOI and entering the AOI pixilated map amount to the same thing. However, in some embodiments, the website developer enters a website AOI in a manner other than filling in pixel values on a pixel-by-pixel basis. In these embodiments, it should be understood that the website developer will still enter an AOI, but there will not be a “website AOI map” unless and until the website AOI is somehow translated into the form of a pixilated map where each pixel is assigned an “area of interest value.” In embodiments where a website developer enters the website AOI in some manner other than direct assignment of pixel values, the website AOI may be translated to a website AOI map (generally by appropriate software algorithms) at various times including the following: (i) immediately after the developer enters the website AOI; (ii) when the website is stored on server(s) in a searcher-accessible form; (iii) when the website is returned on a preliminary hit list; and/or (iv) at the time step S452is performed. This translation from website AOI to website AOI map may be performed, for example, by map mod277(seeFIG. 2B) or overlap mod242(seeFIG. 2A).

In a preferred embodiment of the present invention, the website developer using map mod277(seeFIG. 2B) enters the website AOI by defining perimeter points on a map. An example of such perimeter points, and the way that they can be used to define an AOI, is shown at map509aofFIG. 5A. In this preferred embodiment, this AOI is then translated into a markup language, such as hypertext markup language (HTML) or extensible markup language (XML). The following is HTML-like code for a typical website AOI designation:<area_tag value=latitude,longitude> optional descriptive label 1 </area_tag><area_tag value=latitude,longitude> optional descriptive label 2 </area_tag><area_tag value=latitude,longitude> optional descriptive label 3 </area_tag>(and so on and so forth)<area_tag value=latitude,longitude> optional descriptive label n </area_tag>

In the above example, the HTML-like syntax is a website AOI that contains geographical data in the form of latitude and longitude. The above area_tags may contain other information, such as geographical data that describes altitude, information that describes an area underwater, or information within the earth, such as an underground mine location. In the above instance, the latitude and longitude are vertices for construction of an arbitrary polygon which is the website AOI. In this example, map mod277(seeFIG. 2B) builds the HTML-like syntax such that area_tags are ordered clockwise, if that is the prevailing convention; otherwise, it could be counterclockwise, clockwise in the north-hemisphere, and counterclockwise in the southern-hemisphere, or any prevailing browser convention. Website development software may provide other useful functions; one such function is to generate error messages when HTML conventions are broken. Other functions may include: (i) displaying the AOI in 2D or 3D; (ii) geographical zooming; (iii) overlaying multiple AOIs, on a map, pulled from website child pages; (iv) overlaying an AOI with natural or man-made objects, such as a tree or building; and/or (v) how the AOI moves along in time with plate tectonics. In this example, the website AOI (in HTML form that includes latitude/longitude data) is translated into an appropriate website AOI map at step S452.

After completion of step S452, processing proceeds to step S454. In this step, the searcher's AOI map is compared, on a pixel-by-pixel basis, with the website AOI of the website-under-analysis, as will be discussed below. In this embodiment, step S454is performed by overlap module242of search engine software240as shown inFIG. 2A. One example of the result of such a comparison is the overlap map diagram620ofFIG. 6C. Another example of such a comparison is the overlap map diagram650ofFIG. 6F. Step S454will now be discussed in detail with extensive reference toFIG. 4B.

Processing begins at sub-step S470(seeFIG. 4B) where the searcher AOI is defined and/or obtained by fetch searcher AOI sub-mod302(seeFIG. 3). It is noted that this AOI map comparison of the present invention is taking place because the searcher has activated the geolocalize feature (seeFIG. 5Aat reference numeral508). This means that at sub-step S470: (i) the searcher should provide an AOI; and (ii) the searcher AOI should be converted into a searcher AOI map. In this example, the searcher indicated a searcher AOI by identifying points510a,b,c,d,e,f,gon a map using an input device (seeFIG. 5Aat map509a). These perimeter points are then used to define a perimeter512which corresponds to the searcher's AOI. Interface sub-sub-mod318of calculate overlap sub-mod306of overlap mod242of search engine software240converts this perimeter into a pixilated AOI map which is herein called a “searcher AOI map.” Examples of searcher AOI maps are shown inFIG. 6AandFIG. 6D. Map diagram600ofFIG. 600Ais a searcher AOI in the form of a bitmap. Map diagram630is a searcher AOI which is not in the form of a bitmap because its constituent area of interest values are scalar quantities, rather than just one's and zero's.

Processing proceeds to sub-step S472where a website AOI map is defined or obtained. If the website AOI has not previously been put into the form of an AOI map, then this conversion is done in order to complete sub-step S472. The present invention generally requires that the pixels of the searcher AOI map correspond (in size, shape, geographical area) to the pixels of the website AOI map at least closely enough so that a meaningful pixel-by-pixel comparison between these AOI maps may be performed. This means that at sub-steps S470and S472, it should be ensured that the pixels of the respective AOI maps correspond closely enough to each other. For example: (i)FIG. 6Gshows AOI map660; (ii)FIG. 6Hshows AOI map670; and (iii)FIG. 6Ishows AOI map680. While these three AOI maps represent the same geographical area, the maps are pixilated with pixels of different sizes and/or shapes. If the searcher AOI was in one of these AOI pixilation formats and the website AOI was in another AOI pixilation format, then one or both maps would need to be converted so there is a common format and the searcher and website AOI maps can be compared to each other. In some preferred embodiments, the search engine will ensure that website developers (defining website AOI maps) and searchers use a common pixilation format when defining their respective AOIs.

After sub-step S472, processing proceeds to sub-step S474where corresponding pixels of the searcher AOI map and the website AOI map are selected for comparison by apply “and” function sub-sub-mod320. Three examples will now be discussed with reference toFIGS. 6A to 6C: (i) one example where the X(1,1) pixel of searcher AOI map600is compared with Y(1,1) pixel of website AOI map610; (ii) another example where the X(1,2) pixel of searcher AOI map600is compared with Y(1,2) pixel of website AOI map610; and (iii) another example where the X(1,3) pixel of searcher API map600is compared with Y(1,3) pixel of website AOI map610.

Now that the comparison pixels have been selected, processing proceeds to step S476, where sub-sub-mod320performs “and” processing.

In the first example the X(1,1) pixel of searcher API map600is compared with Y(1,1) pixel of website AOI map610. In this example, both of the respective area of interest values are zero, which means that the overlap AOI value is zero.

In the second example the X(1,2) pixel of searcher API map600is compared with Y(1,2) pixel of website AOI map610. In this example, both of the respective area of interest values are one, which means that the overlap AOI value is one.

In the third example the X(1,3) pixel of searcher API map600is compared with Y(1,3) pixel of website AOI map610. In this example, one of the AOI values is zero, which means that the overlap AOI value is zero.

Processing proceeds to sub-step S478wherein the result of the “and” function comparison is written, by populate overlap map sub-mod322(seeFIG. 3), into the overlap AOI map. As shown inFIG. 6C, for the three specific pixel comparison examples mentioned above, map diagram620, shown inFIG. 6C, is populated as follows: (i) first example, O(1,1)=0; (ii) second example, O(1,2)=1; and (iii) third example, O(1,3)=0.

At sub-step S480, processing continues looping back to sub-step S474until all of the respectively corresponding pixels of the searcher AOI map and the website AOI map of the website-under-analysis are compared. When sub-step S480determines that the last pixel has been reached then: (i) the O(i,j) overlap AOI map will be fully populated; and (ii) processing proceeds to sub-step S482.

At sub-step S482, an overlap value is calculated by calculate overlap value sub-sub-mod324of rank result sub-mod308of overlap mod242(seeFIG. 3). This overlap value is generally based upon the overlap as determined at sub-step S476. For example, the overlap value may be the absolute number of overlapping pixels, which would be 1 for o/l AOI map620shown inFIG. 6C. Alternatively, it may be the number of overlapping pixels divided by a normalizing factor, such as the number of non-zero pixels in the searcher AOI map and/or the number of non-zero pixels in the website AOI map. Analyzed websites with more overlap will, of course, tend to have higher overlap values. After sub-step S482is complete, this means that step S454(seeFIG. 4A) is complete, and processing proceeds to step S456.

At step S456, determine priority sub-sub-mod326of rank result sub-mod308of overlap mod242determines whether the overlap value is co-extensive with the searcher AOI and/or the website AOI, which is called a “full match.” If there is not a full match then processing proceeds to step S458to be discussed below.

If there is a “full match” determined at step S456, then processing proceeds to step S462. At step S462, sub-sub-mod326refines the priority of the website-under-analysis to reflect the full match. In this example, the full match website is added to the top of the priority list of items to display and processing loops back to step S450so that another website can be analyzed, and its priority refined.

At step S458, determine priority sub-sub-mod326determines whether the overlap value is partially co-extensive with the searcher AOI and/or the website AOI, which is called a “partial match.” If there is not a partial match then processing proceeds to step S466to be discussed below.

If there is a “partial match” determined at step S458, then processing proceeds to step S464. At step S464, sub-sub-mod326refines the priority of the website-under-analysis to reflect the partial match. In this example, the partial match website is added to a “medium” priority list of items to display and processing loops back to step S450so that another website can be analyzed and its priority refined. For example, in the example ofFIGS. 6A to 6C, the overlap is approximately 17% (as normalized against the six pixel “universe”) or approximately 33% (as normalized against the searcher AOI or the website AOI).

At step466, sub-sub-mod326adds the no-match website to a low priority list. Alternatively, such an item might be removed from the final results hit list all together. After step S466is performed processing loops back to step S450so that another website can be analyzed and its priority refined.

After all of the websites from the preliminary hit list are analyzed by process400, the final hit list and the final priority of the final hit list are fully determined and at least some portion (or portions) of this final hit list will generally be displayed to the user in priority order (or with some other indicia that communicates the priority order).

For example, turning now toFIG. 5B, screenshot500bincludes: search results return window525. Search results return window includes map509band priority-ordered hit list535. Map509bincludes: searcher AOI perimeter512; first hit AOI perimeter527; second hit AOI perimeter531; third hit AOI perimeter529; and final hit list portion535.

In hit list portion535, the three highest priority website hits have been returned in response to the searcher's search, and also give a numerical approximation of the degree of interest, or relevance, of each respective hit on the final hit list. In this example, all of these three hits equally relate to “commerce law,” which is the text the searcher entered in the search bar. However, the three results have three different associated website AOIs527,531,529. Therefore, the final priority order of portion535is largely determined by the respective overlap between each respective website AOI and the searcher's AOI. As a first example, the triangular website AOI527of the first hit lies entirely within the searcher's AOI512, and this leads to a priority rating of approximately 90%, which means that the first hit has the highest expected relevance of any hit returned by the search. As a second example, the L-shaped website AOI531of the second hit largely subsumes the searcher's AOI512, and this leads to a priority rating of approximately 70%, which means that the second hit has the second highest expected relevance of any hit returned by the search. As a third example, the elliptical website AOI529of the third hit has a relatively small amount of overlap with the searcher's AOI512, and this leads to a priority rating of approximately 20%, which means that the third hit has the third highest expected relevance of any hit returned by the search.

In the example of the previous paragraph, the fact that the first hit AOI was subsumed by the searcher's AOI led to a priority rating of approximately 90%, rather than 100%. This rating would have been higher, in this embodiment, if the sercher's AOI and the first hit's AOI were substantially co-extensive. However, in other embodiments, this same situation of the searcher's AOI subsuming the first hit's AOI could lead to a priority rating of 100%. It is a matter of design choice when deciding, in a detailed manner, exactly how various types and/or amounts of overlap will be effectively translated into priority ratings.

It is important to note that window525is not the only way that a priority-ordered hit list, and/or graphical representation of overlap map be presented to a user. However, this simple example is believed to communicate the larger concept of displaying a final hit list in priority order according to the present invention. As noted above, process400describes an alternative process where separate final hit lists are created, based, in part, on the degree of overlap.

It is also important to note that there is no single algorithm for calculating how the degree and nature of overlap will impact priority. As some examples of possible ways that prioritization algorithms can vary: (i) different weight can be given to the geographic overlap analysis as opposed to the conventional text-driven analysis part (if any) of the search; (ii) overlap may be normalized based on the searcher's AOI area; (iii) overlap may be normalized based on the website's respective AOI area; (iv) websites whose AOI subsumes the searcher's AOI may be prioritized differently than websites whose AOI is subsumed by the searcher's AOI; (v) priority may be affected only if the searcher and website AOI are co-extensive, or very close to co-extensive; (vi) degree of overlap could be negatively correlated with priority order impact; and so on.

Some additional information relating to various embodiments of the present invention will now be discussed.

The “and” operation shown inFIGS. 6A to 6Ccan be set forth in mathematical language as follows:For each value of i and j, calculate as follows:
Oij=XijYij: whereis the logical conjunction

Checkbox508, in the example ofFIG. 5A, is one possible way for the searcher to indicate that the search engine should perform a search in which geographical data is a consideration. Alternatively, for instance, a drop down box could be used, where the drop down box lists several choices for the searcher, such as: “Full overlap only”, “30%-80% overlap only”, “0% overlap only”, “maximum of 3 geographical data websites”, and “only find one geographical data site” (the rest being non-geographical data websites). Furthermore, in the example ofFIG. 5A, the searcher has provided the searcher's AOI by adding vertices510athrough510g, thus forming an arbitrary polygon512to be overlaid on a map509a.

FIGS. 6D through 6F(that is, diagrams630,640,650), demonstrate another possible implementation for determining overlap. Rather than the square pixel value being a “1” or a “0” the pixel values of the AOI maps of diagrams630,640,650respectively contain a number from 0 to 7. The “0” case representing an area of little expected interest or relevance. The “7” case represents an area of high interest. In this example, an alternative mathematical model determines the overlap value, such that when both the searcher's AOI cell (diagram630) and the website designer's AOI cell (diagram640) have non-zero values the average of the two cells is calculated (see diagram650); otherwise, a “0” is entered650.For each value of i and j, calculate as follows:
Oij=average(Xij,Yij)

The embodiment explained above in connection withFIGS. 6D to 6Fis not necessarily preferred and poses some challenges of which system designers should be mindful. First, assignment of dedicated values to each and every pixel will generally be difficult if the map has enough pixels to have reasonable geographical area and granularity. Also, if may be possible to allow the website entity to assign non-binary values to pixels, while still only allowing searches to assign binary values. This is true because website designers generally have more time and interest with populating a granulated pixel map with non-binary values. Also, even in the (not necessarily preferred) embodiments with non-binary pixels values, there are many possible ways to account (or choose not to account) for these non-binary weights as will be readily apparent to those of skill in the art. However, even in these embodiments, the concept of determining conjunctive overlap is likely to remain important.

FIGS. 6A through 6Fillustrate orthogonal bitmaps to calculate overlap results. Orthogonal bitmaps are not the only possible exemplification.FIGS. 6G through 6Iillustrates other means to overlay grid structures that are non-orthogonal. For instance,FIG. 6G660contains a grid structure having straight lines that are not orthogonal to one another. Furthermore,FIG. 6H670andFIG. 6I680both contain curved lines, however inFIG. 6Hthe curves lines do not intersect, while the curves do intersect inFIG. 6I.

The following paragraphs provide definitions for certain term(s) used in this document:

And/or: non-exclusive or; for example, A and/or B means that: (i) A is true and B is false; or (ii) A is false and B is true; or (iii) A and B are both true.

Searcher: includes, but is not necessarily limited to, the following: (i) a single individual human; (ii) an artificial intelligence entity with sufficient intelligence to act as a searcher; and/or (iii) a group of related searchers.