The present disclosure relates to the field of data processing, in particular, to apparatuses, methods and storage medium associated with providing device 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 keyword-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. 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 media associated with device 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 device mnemonic associated with a device and store the device mnemonic. For example, a device mnemonic “&ravis_car” may be associated with a car owned by a person named Ravi. Acceptance of registration and storage of the device mnemonic may further include receipt of one or more communication addresses to be associated with the device mnemonic, e.g., an email address such as “ravicar@example.com,” and/or an IP address, and storage of the communication address(es) as associated with the device mnemonic. The response module may be configured to respond to a query about the device mnemonic, with at least the associated communication address(es).
In embodiments, acceptance of registration and storage of the device mnemonic may further comprise receipt of metadata to be associated with the device mnemonics. For example, metadata may include a business associated with the device, a physical location of the device, and/or information about communication or processing capabilities of the device. The response module may be configured to respond to a query about the device mnemonics, further providing some or all of the associated metadata. The device mnemonic may be further associated with business metadata. Accordingly, user experience for locating information associated with a device or business may be enhanced. The information may, in turn, because to communicate with the registered device, or to communicate about the registered device. For example instructions may be sent to a device using a communication address associated with the device. In another example, if a device is associated with a business or personal entity, that business or personal entity may be communicated with or about using the device mnemonic.
In embodiments, the registered/stored device 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 device mnemonic may be defined by the device mnemonic service. In embodiments, the device mnemonic service may define a device mnemonic to have the format of one or more special characters, followed by any number of alphanumeric and special characters. For example, the device mnemonic service may define a device 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 “&Ravis_car,” or “&Ryans_server.” As another example, the device mnemonic service may define a device 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_car,” or “#&Ryans_server.” These examples are just illustrative, and not meant to be limiting on the present disclosure.
In embodiments, communication addresses stored and associated with the device mnemonic may include various addresses used by various communication protocols to communicate with a device for which a device mnemonic is registered. For example, the registration engine 132 may be configured to accept an email address to store in the storage 116 in association with a device mnemonic. In another example, an domain name, Uniform Resource Locator, Internet Protocol (“IP”) address, or other communication address may be registered with the registration engine 132. In embodiments, when the communication address does not include an IP address, in the course of storing device mnemonics, associated communication addresses and metadata 138 into storage 116, registration engine 132 may further resolve the provided communication address to an IP address for storage. Further, in embodiments, registration engine 132 may organize the storage of the device mnemonics, their associated addresses, and metadata, based at least in part on the communication addresses to facilitate subsequent processing and retrieval.
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 device 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 device mnemonic, for retrieving communication addresses and/or metadata associated with a device mnemonic, or for retrieving a device mnemonic associated with a communication address, business, or other metadata. An example request to register a device mnemonic may be a request to register, e.g., “&Ravis_car” as a device mnemonic. An example request for data associated with a device mnemonic may comprise a query for the communication address and/or metadata associated with a device mnemonic. An example request for device mnemonics may comprise a query for device mnemonic for a business e.g., “Frank's Dry Cleaning”,” or a device mnemonics associated with a communication address, e.g., “ravi@example.com” or, e.g., “256.0.22.512”. Note that one or more device mnemonics, e.g., device mnemonics registered by different family members, or different users of a device, such as “&Ravis_car,” and “Asnani_car—1,” may resolve to the same communication address.
On determining that the request is for registration of a device mnemonic, process 300 may proceed to block 304. At block 304, the device mnemonic being registered may be accepted and stored, e.g., in storage 116. In embodiments, registration engine 132 may be configured to ensure each registered device mnemonics is unique, and deny registrations for device mnemonics that have already been registered. In other embodiments, registration engine 132 may be configured to accept similar or identical device mnemonics for different devices when those devices may otherwise be differentiated. For example, if the devices are used in different geographic areas, it may be unlikely that the use of the same device mnemonic may be used for the two different devices. Similarly, if the identical device mnemonic for one or both devices is not intended to be shared outside of an identifiable group of persons, registration engine 132 may be configured to accept these similar or identical device mnemonics.
Additionally, acceptance and storage of the device mnemonics may include acceptance and storage of a communication address to be associated with the device mnemonics. For example, on accepting and storing the example device mnemonic of “&Ravis_car,” the example communication address “raviscar@example.com,” may be accepted and stored as the communication address to be associated with the example device mnemonic of “&Ravis_car.” The example device mnemonics are 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 device mnemonics, including e.g., private device mnemonics, such as “&Ryan_bathroom_scale,” may be accepted and stored.
Further, in embodiments, concurrent with the initial registration or subsequent to the initial registration, acceptance and storage of the device mnemonic may further include acceptance and storage of metadata to be associated with the device mnemonics. For example, metadata may include indications of communication protocols which may be used with the car. In another example, metadata may include indications of instructions which may be recognized by the associated device. For example, for the example device mnemonic of “&Ravis_car,” metadata may include a device-control protocol that may be used for communication with the car associated with the device mnemonic, or instructions, such as, for example “start car” or “report milage,” that may be understood by the car. In other embodiments, metadata may include information regarding a physical location or business associated with the device. For example, if for the example device mnemonic of “&Als_home,” a device mnemonic associated with a home automation system, metadata may include the physical address of the home. In another example, for the example device mnemonic of “&Franks_dry_cleaning,” a device mnemonic associated with a customer-facing computer server for a dry cleaning establishment, the metadata may include information about the business itself, such as, e.g., business name, hours, services, prices, etc. The example metadata 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 metadata may be accepted and stored for each device 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 device mnemonic or device mnemonics associated with a communication location, business, or other metadata, process 300 may proceed to block 306. At block 306, in response to a request for data associated to device mnemonics, the response may include one or more associated communication addresses. Additionally, if the request also requested metadata (or particular type of metadata), the response may further include some or all the metadata 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 device mnemonics as “users.” As a result, owner user of device mnemonics may post contents against the device mnemonics. Other users may elect to be associated with a device mnemonic (e.g., “friend” the device mnemonic). These users may then see the posted contents for the device mnemonic, such as from a business associated with the device mnemonic, and/or postings from a device configured to report information, and/or receive notification from the social networking service about new contents being posted for the device mnemonic. Further, the social networking service may provide social networking, additionally based on information associated with device mnemonics obtained from device 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 device 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 device mnemonic, and that the term differs from other tagged words. As a result, a device mnemonic may become a tagged keyword or topic, enabling messages related to the device mnemonics to be easily recovered. Further, the messaging service may facilitate messaging, additionally based on information associated with device mnemonic obtained from device mnemonics server 102. For example, the messaging service may support creation and sending of messages to a device or business based on entry of a device mnemonic as the recipient. In such embodiments, the response engine 134 of device mnemonics server 102 may act as a resolver, providing communication addresses in exchange for device mnemonics, and facilitating messaging without requiring knowledge of the communication addresses by message senders.
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 device mnemonics in the Internet portal, e-commerce, and email service provided. In other words, the Internet portal, e-commerce, or email service may recognize device mnemonics in its provision of Internet portal, e-commerce, or email service, and facilitate resolution of device mnemonics with device 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 device mnemonics obtained from device mnemonics server 102.
Referring now to
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 device mnemonic server 102. For example, application service 144 (search, social networking, messaging etc.), through a device mnemonic associated with an business, e.g. Frank's Dry Cleaning, may be able to obtain information associated with the device mnemonic associated with Frank's Dry Cleaning, and provide its service leveraging on this information obtained from device mnemonics server 102. Similarly at block 404, on determination that the service requested does not involve device mnemonics or not need the assistance of device 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, a node 506a at a lowest level 506 may store the device mnemonic for “&Ryans_server” which is associated with a server in Portland, Oreg. This node may be stored under intermediate node 502m which is itself associated with Portland, Oreg. Another node, for example, 504a, may also be associated with a “&Ryans_server” that is located in Chicago, Ill., and the node may be stored below intermediate node 502a that is associated with Chicago, Ill. In another example, different intermediate nodes may be associated with different businesses. By using hierarchical storage models for storing device mnemonics, techniques described herein may facilitate the usage of non-unique device mnemonics.
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 information defining any geographic, business, political, cultural, social, and/or economic organizations.
For the example applications/embodiments, the subset of device 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 device 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 device mnemonics or communication addresses based search criteria 606, optionally accompanied with one or more masks 608.
On access, storage locations may output device mnemonics and/or their communication addresses to match circuitry 602 and the associated data to selector 604. In embodiments, device 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 communication addresses 204 (possibly including IP addresses 206), search criteria 606, and mask(s) 608 (if provided). Selector 604 may then select and output device mnemonics 202, communication addresses 204 and/or metadata 210, based on select signal(s) 610. Accordingly, the ability to select associated device mnemonics and associated data may be provided.
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.