The present disclosure relates to the field of data processing, in particular, to apparatuses, methods and storage medium associated with providing geographic mnemonics services.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Advances in computing, networking and related technologies have led to proliferation in the availability of contents and/or information through the Internet. Today, users routinely use search services, such as Google®, Bing®, Yahoo®, and so forth, to locate information. Generally speaking, user searches or questions can be broadly classified as “what,” “when,” “how,” or “where” questions. For examples, “what are the movies being shown in a local cinema complex,” “when is kick off for a football game,” “how do you make pop corns in microwave,” or “where is the magnificent mile?” Today, search services would typically make no distinction between the different types of questions, and employ the same approach to providing answers to these questioning, by maintaining a collection of indices indexing the contents/information available on Internet. The indices are keywords based, that is based on the presence of keywords in the content and/or the metadata associated with content, such as non-textual audio/video content. For example, an index would be generated and stored to keep track that a web page with the keywords “magnificent mile” may be potentially relevant to user searching for information with search criteria including the keyword “magnificent mile,” and/or other related words, such as “Chicago.” In response to a search query, the search service will utilize the keyword based indices or a subset thereof to generate and return an answer set with locators to potential relevant contents to the search query. Certain ranking and/or relevance analysis algorithm may be applied/used to filter and/or order the potential relevant contents/information included in the answer set.
Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
Apparatuses, methods and storage medium associated with geographic mnemonics are disclosed herein. In embodiments, an apparatus may include a registration module and a response module. The registration module may be configured to accept a registration of a geographic mnemonics, e.g., “&ravi_home,” and store the geographic mnemonics. Acceptance of registration and storage of the geographic mnemonics may further comprise receipt of an address to be associated with the geographic mnemonics, e.g., “12345 Hidden Canyon Rd., Palm Springs, Calif.,” and storage of the address as associated with the geographic mnemonics. The response module may be configured to respond to a query about the geographic mnemonics, with at least the associated address.
In embodiments, acceptance of registration and storage of the geographic mnemonics may further comprise receipt of meta data to be associated with the geographic mnemonics, e.g., “a direction to reach the address from Palm Desert,” and storage of the meta data as associated with the geographic mnemonics. The response module may be configured to respond to a query about the geographic mnemonics, further providing some or all of the associated meta data. Accordingly, user experience for locating information associated with a location or an area may be enhanced.
In embodiments, the registered/stored geographic mnemonics and their associated information may be queried and used by application services, such as search engine, social networking services, message services, Internet portal services, e-commerce services or email services, to enhance the respective services provided.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which is shown by way of illustration embodiments that may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of embodiments is defined by the appended claims and their equivalents.
Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order than the described embodiment. Various additional operations may be performed and/or described operations may be omitted in additional embodiments.
For the purposes of the present disclosure, the phrase “A and/or B” means (A), (B), or (A and B). For the purposes of the present disclosure, the phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C).
The description may use the phrases “in an embodiment,” or “in embodiments,” which may each refer to one or more of the same or different embodiments. Furthermore, the terms “comprising,” “including,” “having,” and the like, as used with respect to embodiments of the present disclosure, are synonymous.
As used herein, the term “module” may refer to, be part of, or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
Referring now
In embodiments, the format of a geographic mnemonic may be defined by the geographic mnemonic service. In embodiments, the geographic mnemonic service may define a geographic mnemonic to have the format of one or more special characters, followed by any number of alphanumeric and special characters. For example, the geographic mnemonic service may define a geographic mnemonic to have the format of having the special character “&” as the lead off character, followed by one or more alphanumeric and special characters, such as “&Ravi_home,” or “&Schwabe_Seattle.” As another example, the geographic mnemonic service may define a geographic mnemonic to have the format of having the special characters “#&” as the lead off characters, followed by one or more alphanumeric and special characters, such as “#&Ravi_home,” or “#&Schwabe_Seattle.” These examples are just illustrative, and not meant to be limiting on the present disclosure.
In embodiments, in the course of storing geographic mnemonics, their associated addresses and meta data 138 into storage 116, registration engine 112 may further resolve the geographic mnemonics, based on its associated address, to a pair of geographic coordinates or geographic coordinate ranges, e.g., a pair of geodetic latitude and longitude coordinates, or a pair of geodetic latitude and longitude ranges. For example, the City and County of San Francisco may register the geographic mnemonics “&Coit_Tower,” to facilitate provision of various information associated with the landmark Coit Tower under the present disclosure. The associated address of “&Coit_Tower,” is “1 Telegraph Hill, Blvd, San Francisco, Calif.” In the course of storing “&Coit_Tower” as the registered geographic mnemonics, “1 Telegraph Hill, Blvd, San Francisco, Calif.” as the associated address, and so forth, registration engine 112 may resolve the address of “1 Telegraph Hill, Blvd, San Francisco, Calif.” of “&Coit_Tower” to the geodetic latitude and longitude coordinate pair of {37.8025° N, 122.4058° W}, and store also the geographic coordinates. As another example, the law firm Schwabe, Williamson & Wyatt may register the geographic mnemonics “&SWW_Seattle,” to facilitate provision of various information associated with the Seattle Office. The associated address of “&SWW_Seattle,” is “1420 5th Ave., Suite 3400, Seattle, Wash.” In the course of storing “&SWW_Seattle” as the registered geographic mnemonics, “1420 5th Ave., Suite 3400, Seattle, Wash.” as the associated address, and so forth, registration engine 112 may resolve the address of “1420 5th Ave., Suite 3400, Seattle, Wash.” of “&SWW_Seattle” to a pair of geodetic latitude and longitude coordinate, and store also the geographic coordinates. Further, in embodiments, registration engine 112 may organize the storage of the geographic mnemonics, their associated addresses, and meta data, based at least in part on the geographic coordinates to facilitate subsequent processing and retrieval.
While the above example illustrated the resolution to geodetic coordinates that are valued in accordance with a mathematical defined reference ellipsoid that approximates the Earth, the present disclosure is not so limited. Other geographic coordinates with other geographic reference systems may also be used, including but are not limited to, e.g., geocentric coordinates that are valued in accordance with a X-Y-Z reference centered at Earth's center, or spherical coordinates that are valued based on the radial distances from Earth's center, along with polar angles measured from the zenith directions of the positions, and azimuth angles of the positions based on orthogonal projections on corresponding reference planes that pass through Earth's center and orthogonal to the zenith directions.
While for ease of understanding, registration engine 132 and response engine 134 are being illustrated as being operated by processors of processor and memory arrangement 112, in embodiments, registration engine 132 and response engine 134 may be implemented in any combination of hardware and/or software. In embodiments, the combination of hardware and/or software may include processor(s), memory and executable instructions implementing the functions described herein. In embodiments, in lieu of being two separate engines, registration engine 132 and response engine 134 may share some common functions and/or resources. For example, registration engine 132 and response engine 134 may share common communication functions and components for communicating with client devices 104 and servers 106 of other online services. As a further example, registration engine 132 and response engine 134 may share processor and/or memory resources. In embodiments, some functions of registration engine 132 and response engine 134, or vice versa, or be combined.
Processor and memory arrangement 112, in addition to registration engine 132 and response engine 134, may further host execution of various operating system (OS) services (not shown). The OS services may include any one of a number of OS services known in the art, including but not limited to memory management, task management, and so forth. I/O devices 114 may include one or more communication interfaces 128 configured to facilitate communication with client devices 104, and servers 106 of other online services. Communication interfaces 128 may be any one of a number of communication components/interfaces known in the art, including but not limited to wired or wireless communication components for personal, local and/or wide area network communications. Storage 116 may be implemented using any magnetic, optical, and/or solid state non-volatile storage. The magnetic, optical, and/or solid state non-volatile storage may be disposed on one platform, or coupled/networked. In embodiments, storage 116 may also include volatile and/or non-volatile caches. Accordingly, except for the teachings of the present disclosure incorporated therein, server 102 is intended to represent a broad of single or multi-processor servers known in the art. In embodiments, server 102 may include one or more clusters computing servers, which may be coupled with one another, via one or more local or wide area networks (not shown).
Still referring to
Similar to server 102, each of servers 106 may include processor and memory arrangement 122, and I/O devices 124 coupled to with each other as shown. Processor and memory arrangement 122 may host OS Services 142 and application services 144. While I/O devices 124 may include one or more communication interfaces 146. Similar to processor and memory arrangement 112, processor and memory arrangement 122 may be any one of a wide range of such elements known in the art. Likewise, similar to I/O devices 114 and communication interfaces 136, I/O devices 124 and communication interfaces 146 may be any one of a wide range of such elements known in the art. As described earlier, OS Services 142 may include a wide range of OS services, including but not limited to memory management, task management, and so forth. Application services 144, except for their usage of geographic mnemonics services, may likewise be any one of a number of online services known it art. Examples of such services may include, but are not limited to, online search services, social networking services, messaging services, Internet portal service, e-commerce service, and email service to be described in more detail below.
Networks 108 may be any combinations of private and/or public, wired and/or wireless, local and/or wide area networks. Private networks may include, e.g., but are not limited to, enterprise networks. Public networks, may include, e.g., but is not limited to the Internet. Wired networks, may include, e.g., but are not limited to, Ethernet networks. Wireless networks, may include, e.g., but are not limited to, Wi-Fi, or 3G/4G networks. It would be appreciated that at the servers' end, networks 108 may include one or more local area networks with gateways and firewalls, through which servers 102 and 106 go through to communicate with client devices 104 and each other. Similarly, at the client device end, networks 108 may include base stations and/or access points, through which client devices 104 communicate with servers 102 and 106. In between the various ends may be any number of network routers, switches and other networking equipment of the like. However, for ease of understanding, these gateways, firewalls, routers, switches, base stations, access points and the like are not shown.
Referring now to
Referring now to
At block 302, a request for service may be received. In response, a determination may be made on whether the request is for registration of a geographic mnemonics, for retrieving data associated to a geographic mnemonics or for retrieving geographic mnemonics at a location or within an area. An example request to register a geographic mnemonics may be a request to register, e.g., “&Coit_Tower” as geographic mnemonics. An example request for data associated to a geographic mnemonics may comprise a query for the address and/or meta data associated with a geographic mnemonics. An example request for geographic mnemonics may comprise a query for geographic mnemonics at an address, e.g., “1 Telegraph Hill, Blvd, San Francisco, Calif.”,” or geographic mnemonics within an area, .e.g., “North Beach of San Francisco.” Note that one or more geographic mnemonics, e.g., geographic mnemonics registered by different family members of a family, such as “&AdamSmith_Home,” and “AnnaSmith_Home,” may resolve to the same address.
On determining that the request is for registration of a geographic mnemonics, process 300 may proceed to block 304. At block 304, the geographic mnemonics being registered may be accepted and stored, e.g., in storage 116. In embodiments, registration engine 132 may be configured to ensure each registered geographic mnemonics is unique, and deny registrations for geographic mnemonics that have already been registered. Additionally, acceptance and storage of the geographic mnemonics may include acceptance and storage of an address to be associated with the geographic mnemonics. For example, on accepting and storing the example geographic mnemonics of “&Coit_Tower,” the example address “1 Telegraph Hill, Blvd, San Francisco, Calif.,” may be accepted and stored as the address to be associated with the example geographic mnemonics of “&Coit_Tower.” The example geographic mnemonics is merely intended to be illustrative and is not to be read as limiting on the present disclosure. It is anticipated that a wide range of geographic mnemonics, including e.g., private geographic mnemonics, such as “&Ravi_home,” may be accepted and stored.
Further, in embodiments, concurrent with the initial registration or subsequent to the initial registration, acceptance and storage of the geographic mnemonics may further include acceptance and storage of meta data to be associated with the geographic mnemonics. For example, for the example geographic mnemonics of “&Coit_Tower,” meta data comprising a direction to Coit Tower, seasonal operating hours and so forth, may be accepted and stored. The example meta data are merely intended to be illustrative and are not to be read as limiting on the present disclosure. It is anticipated that a wide range of meta data may be accepted and stored for each geographic mnemonics. Thereafter, process 300 may return to block 302, and continue therefrom as earlier described.
Back at block 302, if the result of the determination is a request for data associated to a geographic mnemonics or geographic mnemonics at a location or within an area, process 300 may proceed to block 306. At block 306, in response to a request for data associated to geographic mnemonics, the response may include the associated address. Additionally, if the request also requested for meta data or particular type of meta, the response may further include some or all the meta data matching the request criteria. Thereafter, process 300 may return to block 302, and continue therefrom as earlier described.
Referring to
In another non-limiting example, the online service may be a social networking services configured to facilitate client devices 104 to socially network with each other. In embodiments, the social networking services may extend its support to include supports that allow geographic mnemonics as “users.” As a result, owner user of geographic mnemonics may post contents against the geographic mnemonics. Other users may elect to be associated with the geographic mnemonics (“friend” the geographic mnemonics). These users may then see the posted contents for the geographic mnemonics, and/or receive notification from the social networking service about new contents being posted for the geographic mnemonics. Further, the social networking service may provide social networking, additionally based on information associated with geographic mnemonics obtained from geographic mnemonics server 102.
In still another non-limiting example, the online service may be a messaging service configured to facilitate client devices 102 to message each other, including e.g., but not limited to, short messages. In embodiments, the messaging service may extend its support to include supports that allow for recognition of geographic mnemonics. In other words, the messaging service may recognize a term starting off with the special characters “#&,” and followed by any number alphanumeric or special characters, as a geographic mnemonics, differ from other tagged words. As a result, a geographic mnemonics may become a tagged keyword or topic, enabling messages related the geographic mnemonics to be easily recovered. Further, the messaging service may facilitate messaging, additionally based on information associated with geographic mnemonics obtained from geographic mnemonics server 102.
In still another non-limiting example, the online service may be an Internet portal service, an e-commerce service, or an email service configured to respectively provide Internet portal, e-commerce, or email service to client devices 102. In embodiments, the Internet portal, e-commerce, or email service may extend its support to include supports for inclusion of geographic mnemonics in the Internet portal, e-commerce, and email service provided. In other words, the Internet portal, e-commerce, or email service may recognize geographic mnemonics in its provision of Internet portal, e-commerce, or email service, and facilitate resolution of geographic mnemonics with geographic mnemonics server 102. Further, the Internet portal, e-commerce, and email service may provide Internet portal, e-commerce, and email services, additionally based on information associated with geographic mnemonics obtained from geographic mnemonics server 102.
Referring now
From block 406, process 400 may return to block 402, and continue there from as earlier described, except the services may now be provided leveraging on the information obtained from geographic mnemonic server 102. For example, application service 144 (search, social networking, messaging etc.), through a geographic mnemonics associated with an area, e.g. San Francisco, may be able to obtain information associated with the geographic mnemonics associated with San Francisco, as well as information associated with geographic mnemonics within the area, such as information associated with the geographic mnemonics associated with Coit Tower, Lombard Street and so forth, and provide its service leveraging on these information obtained from geographic mnemonics server 102. Similarly at block 404, on determination that the service requested does not involve geographic mnemonics or not need the assistance of geographic mnemonics server 102, process 400 may return to block 402, and continue there from as earlier described.
Referring now briefly back to
For example, in one embodiment, the lowest level 506 may store the geographic mnemonics and their associated data having geographic coordinates of specific locations, e.g. “1 Telegraph Hill Blvd, San Francisco, Calif.” A next immediate intermediate level, e.g., level 504, may store geographic mnemonics and their associated data having geographic coordinates of a wider area, such as a City like San Francisco, Los Angeles, and so forth. Further, another intermediate level (not shown) above intermediate level 504 may store may store geographic mnemonics and their associated data having geographic coordinate ranges defining States, such as California, Oregon, and so forth. Still further, yet another intermediate level, such as intermediate level 502 may store geographic mnemonics and their associated data having geographic coordinate ranges representing Countries, such as United States, Canada, and so forth.
The above example is not intended to be limiting on the present disclosure. The present disclosure may be practiced with any data organization or structure, depending on the application. In the case of hierarchical organization, the hierarchical organization may have any number of levels, with the nodes of the intermediate levels storing geographic coordinate ranges defining any geographic, political, cultural, social, and/or economic organizations.
For the example applications/embodiments, the subset of geographic mnemonics and their related may be stored in a content addressable memory (CAM) 600 on the particular client device 104 or one or servers 102/106. CAM 600, in addition to storage locations 612 for storing each 200 of the subset of geographic mnemonics and their associated data 138, may be configured with match circuitry 602 and selector 604, coupled with each other as shown. An application or service on access of CAM 600 may also provide geographic mnemonics or address based search criteria 606, optionally accompanied with one or more masks 608.
On access, storage locations may output geographic mnemonics and/or their geographic coordinates to match circuitry 602 and the associated data to selector 604. In embodiments, geographic mnemonics may be provided to match circuitry 602 and/or selector 604 depending on application (e.g., with the additional employment of a switch (not shown). Match circuitry 602 may output one or more select signals 610 to selector 604, based on geographic coordinates 206-208, search criteria 606, and mask(s) 608 (if provided). Selector 604 may then select and output geographic mnemonics 202, addresses 208 and/or meta data 210, based on select signal(s) 610. Accordingly, the ability to select associated geographic mnemonics and associated data may be provided.
For example, consider the geodetic coordinates of San Francisco and San Jose, which in decimal form may be {37.757687,−122.415161} and {37.335224,−121.898804}, respectively. In hexadecimal, these values are {24022F7,−74BE839} and {239B0B8,−7440734}, respectively. Thus, with the geographic coordinates stored in binary form, with appropriate masks, geographic mnemonics resolved to geographic coordinates of San Francisco and San Jose may be selected for a search query searching for geographic mnemonics and/or associated data for the Bay Area.
Referring now to
Each of these elements may perform its conventional functions known in the art. In particular, system memory 704 and mass storage devices 706 may be employed to store a working copy and a permanent copy of the programming instructions implementing the various operations earlier described, e.g., the operations associated with registration engine 132, response engine 134, an/or application services 144 collectively denoted as computational logic 722. Computational logic 722 may be implemented with assembler instructions supported by processor(s) 702 or high-level languages, such as, for example, C, that can be compiled into such instructions.
The permanent copy of the programming instructions may be placed into permanent storage devices 706 in the factory, or in the field, through, for example, a distribution medium (not shown), such as a compact disc (CD), or through communication interface 710 (from a distribution server (not shown)). That is, one or more distribution media having an implementation of computational logic 722 may be employed to distribute computational logic 722 and program various computing devices.
The number, capability and/or capacity of these elements 710-712 may vary, depending on whether computer 700 is used as a client device 104 or server 102/106. When use as client device 104, whether client device 104 is a stationary or mobile device, like a smartphone, in-vehicle/portable navigation/infotainment systems, computing tablet, ultrabook or laptop, with general or specific applications. The constitutions of these elements are otherwise known, and accordingly will not be further described.
Although certain embodiments have been illustrated and described herein for purposes of description, a wide variety of alternate and/or equivalent embodiments or implementations calculated to achieve the same purposes may be substituted for the embodiments shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the embodiments discussed herein. Therefore, it is manifestly intended that embodiments described herein be limited only by the examples.
Where the disclosure recites “a” or “a first” element or the equivalent thereof, such disclosure includes one or more such elements, neither requiring nor excluding two or more such elements. Further, ordinal indicators (e.g., first, second or third) for identified elements are used to distinguish between the elements, and do not indicate or imply a required or limited number of such elements, nor do they indicate a particular position or order of such elements unless otherwise specifically stated.