Modern data stores often contain vast amounts of information organized such that it is accessible in a multitude of different ways. For instance, data stores may contain data items organized, for instance, via hierarchies or tagging strategies, into many categories, sub-categories, and the like. Such organization enables users to inquire and receive detailed information about subsets of the data items of interest to them in a simpler manner than is possible with an unorganized data corpus.
However, as the amount of information contained within a data store increases, the quantity of data items satisfying a given inquiry may exceed a manageable number, for instance, due to technical and infrastructural limitations. When this happens, the user is often simply notified that the number of satisfying data items is too large and requested to provide a more narrowed inquiry. An exemplary view that may be displayed in such a situation is illustrated in the schematic diagram of
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In various embodiments, systems, methods, and computer-readable storage media are provided for providing a meaningful view into a corpus of data when the number of data items that make up the corpus is very large. A request for display of information about a subset of data items contained within the corpus that have a specified characteristic is received. A quantity of data items comprising the subset is determined. It also is determined whether the number exceeds a threshold number. If the quantity does not exceed the threshold, the requested information is presented. If, however, it is determined that the quantity of data items comprising the subset exceeds the threshold, a view of the data items comprising the subset is provided that includes at least one distribution graph generated in view of a certain measure, each distribution graph showing a visual representation of the data items comprising the subset organized by a particular attribute.
The present invention is illustrated by way of example and not limitation in the accompanying figures in which like reference numerals indicate similar elements and in which:
The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter also might be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step,” “block,” and/or “component,” etc., may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various steps herein disclosed unless and except when the order of individual steps is explicitly described.
Various aspects of the technology described herein are generally directed to systems, methods, and computer-readable storage media for providing a meaningful view into a corpus of data when the number of data items that make up the corpus is very large. By way of example only, the corpus may be an online advertising database that contains information regarding advertising campaigns and their respective performance for a number of advertisers. By way of another example, the corpus may be associated with a retail establishment or a plurality of retail establishments and contain information regarding orders, inventories, and the like.
In accordance with embodiments of the present invention, a request for display of information about a subset of data items contained within the corpus that have a specified characteristic is received. For instance, in the exemplary online advertising data corpus, a request may be received for the display of information about data items associated with a particular advertising account. Or, in the exemplary retail database, a request may be received for the display of information about items bearing a particular brand name.
A quantity of data items comprising the subset is determined. It also is determined whether the quantity exceeds a threshold number. If the quantity does not exceed the threshold, the requested information is presented. If, however, it is determined that the quantity of data items comprising the subset exceeds the threshold, a view of the data items having the specified characteristic is provided that includes at least one distribution graph generated in view of a certain measure, each distribution graph showing a visual representation of the data items having the specified characteristic organized by a particular attribute. For instance, in the exemplary advertising data corpus, a view may be provided showing a plurality of graphs illustrating the distribution of data items that are associated with the specified advertising account (the specified characteristic) generated in view of keyword counts (the measure in view of which the graphs are generated), each graph showing a visual representation of those satisfying data items organized by attributes such as campaign, status, age, impressions, clicks, and the like. An example of the systems and methods described herein utilizing an advertising data corpus is more fully described below with reference to
By way of another example, the exemplary retail data corpus mentioned above, a view may be provided showing a plurality of graphs illustrating the distribution of data items that are associated with the particular brand name (the specified characteristic) generated in view of inventory (the measure in view of which the graphs are generated), each graph showing a visual representation of those satisfying data items organized by attributes such as retail store location, item number, item descriptor, color, and the like.
Accordingly, one embodiment of the present invention is directed to one or more computer-readable storage media storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform a method for providing access to data. The method comprises receiving a request for display of information about a plurality of data items, each of the plurality of data items having a specified characteristic; determining that a quantity of the plurality of data items having the specified characteristic exceeds a threshold number; and providing a view of the plurality of data items having the specified characteristic that includes at least one distribution graph generated in view of a certain measure. Each of the at least one distribution graphs shows a visual representation of the plurality of data items having the specified characteristic organized by a particular attribute.
In another embodiment, the present invention is directed to a method being performed by one or more computing devices including at least one processor, the method for providing access to online advertising data. The method includes receiving a request for display of information about a plurality of keywords, each of the plurality of keywords having a specified characteristic. The method further includes determining that a quantity of the plurality of keywords having the specified characteristic exceeds a threshold number, and providing a view of the plurality of keywords having the specified characteristic that includes at least one distribution graph generated in view of keyword count. Each at least one distribution graph illustrates a visual representation of the plurality of keywords having the specified characteristic organized by a particular attribute.
In yet another embodiment, the present invention is directed to a system including a server having one or more processors and one or more computer-readable storage media, and a data store coupled with the server. The server is configured to receive a request for presentation of information about a plurality of data items, each of the plurality of data items having a specified characteristic; determine that a quantity of the plurality of data items having the specified characteristic exceeds a threshold number; provide a visual indication that the requested information cannot be displayed because the number of the plurality of data items having the specified characteristic exceeds the threshold number; and provide a view of the plurality of data items having the specified characteristic that includes plural distribution graphs each generated in view of a certain measure and each showing a visual representation of the plurality of data items having the specified characteristic organized by a different particular attribute than any other of the plurality of distribution graphs.
Having briefly described an overview of embodiments of the present invention, an exemplary operating environment in which embodiments of the present invention may be implemented is described below in order to provide a general context for various aspects of the present invention. Referring to the figures in general and initially to
Embodiments of the invention may be described in the general context of computer code or machine-useable instructions, including computer-useable or computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, and the like, and/or refer to code that performs particular tasks or implements particular abstract data types. Embodiments of the invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialty computing devices, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.
As utilized herein, the phrase “computing device” generally refers to a dedicated computing device with processing power and storage memory, which supports operating software that underlies the execution of software, applications, and computer programs thereon. As one skilled in the art will appreciate, the computing device 200 may include hardware, firmware, software, or a combination of hardware and software. The hardware includes processors and memories configured to execute instructions stored in the memories. The logic associated with the instructions may be implemented, in whole or in part, directly in hardware logic. For example, and without limitation, illustrative types of hardware logic include field programmable gate array (FPGA), application specific integrated circuit (ASIC), system-on-a-chip (SOC), or complex programmable logic devices (CPLDs).
With continued reference to
The computing device 200 typically includes a variety of computer-readable media. Computer-readable media may be any available media that is accessible by the computing device 200 and includes both volatile and nonvolatile media, removable and non-removable media. Computer-readable media comprises computer storage media and communication media; computer storage media excluding signals per se. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 200. In an embodiment, the computer storage media can be selected from tangible computer storage media like flash memory. These memory technologies can store data momentarily, temporarily, or permanently. Computer storage does not include and excludes communication media.
Communication media, on the other hand, typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
The memory 212 includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard drives, optical-disc drives, and the like. The computing device 200 includes one or more processors that read data from various entities such as the memory 212 or the I/O components 220. The presentation component(s) 216 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, and the like.
The I/O ports 218 allow the computing device 200 to be logically coupled to other devices including the I/O components 220, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, a controller (such as a stylus, keyboard, and mouse) or a natural user interface (NUI), etc.
A NUI processes gestures (e.g., hand, face, body, etc.), voice, or other physiological inputs generated by a user. These inputs may be interpreted, for instance, as requests for information, requests to alter displays in accordance with particular instructions, or the like. The input of the NUI may be transmitted to the appropriate network elements for further processing. The NUI implements any combination of speech recognition, touch and stylus recognition, facial recognition, biometric recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, and touch recognition associated with displays on the computing device 200. The computing device 200 may be equipped with depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, and combinations of these, for gesture detection and recognition. Additionally, the computing device 200 may be equipped with accelerometers or gyroscopes that enable detection of motion. The output of the accelerometers or gyroscopes may be provided to the display of the computing device 200 to render immersive augmented reality or virtual reality.
Aspects of the subject matter described herein may be described in the general context of computer-executable instructions, such as program modules, being executed by a mobile device. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. Aspects of the subject matter described herein also may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
Furthermore, although the term “server” is used herein, it will be recognized that this term also may encompass a search engine, a Web browser, a set of one or more processes distributed on one or more computers, one or more stand-alone storage devices, a set of one or more other computing or storage devices, a combination of one or more of the above, and the like.
As previously mentioned, embodiments of the present invention are generally directed to systems, methods, and computer-readable storage media for providing a meaningful view into a corpus of data when the number of data items that make up the corpus is very large. A request for display of information about a subset of data items contained within the corpus that have a specified characteristic is received. A quantity of data items comprising the subset is determined. It also is determined whether the quantity exceeds a threshold number. If the quantity does not exceed the threshold, the requested information is presented. If, however, it is determined that the quantity of data items comprising the subset exceeds the threshold, a view of the data items having the specified characteristic is provided that includes at least one distribution graph (e.g., a histogram) generated in view of a certain measure, each distribution graph showing a visual representation of the data items comprising the subset organized by a particular attribute.
Referring now to
It should be understood that any number of user computing devices 310 and/or servers 312 may be employed in the computing system 300 within the scope of embodiments of the present invention. Each may comprise a single device/interface or multiple devices/interfaces cooperating in a distributed environment. For instance, the server 312 may comprise multiple devices and/or modules arranged in a distributed environment that collectively provide the functionality of the server 312 described herein. Additionally, other components or modules not shown also may be included within the computing system 300.
In some embodiments, one or more of the illustrated components/modules may be implemented as stand-alone applications. In other embodiments, one or more of the illustrated components/modules may be implemented via the user computing device 310, the server 312, or as an Internet-based service. It will be understood by those of ordinary skill in the art that the components/modules illustrated in
It should be understood that this and other arrangements described herein are set forth only as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and groupings of functions, etc.) can be used in addition to or instead of those shown, and some elements may be omitted altogether. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, and in any suitable combination and location. Various functions described herein as being performed by one or more entities may be carried out by hardware, firmware, and/or software. For instance, various functions may be carried out by a processor executing instructions stored in memory.
The user computing device 310 may include any type of computing device, such as the computing device 200 described with reference to
The server 312 of
In embodiments, the data store 338 is configured to be searchable for one or more of the data items stored in association therewith. It will be understood and appreciated by those of ordinary skill in the art that the information stored in association with the data store 338 may be configurable and may include any information relevant to data items and their respective organizational components. The content and volume of such information are not intended to limit the scope of embodiments of the present invention in any way. Further, though illustrated as a single, independent component, the data store 338 may, in fact, be a plurality of storage devices, for instance a database cluster, portions of which may reside in association with the server 312, the user computing device 310, another external computing device (not shown), and/or any combination thereof.
The request receiving component 320 of the server 312 is configured to receive requests for information about a plurality of data items having a specified characteristic, each of the data items being included, for instance, in the data store 330. Such requests may be received, by way of example only, via the user computing device 310 through the network 314. For purposes of illustration only, suppose the data store 330 includes online advertising data items for a number of advertisers and that the request receiving component 320 receives a request from an advertiser associated with Customer Number 123456 for data items associated with Account “abcdef” (the specified characteristic).
Upon the request receiving component 320 receiving the request for detailed information about the plurality of data items having the specified characteristic, the data item determining component 322 of the server 312 is configured to query a data store (e.g., the data store 230) and determine the number of data items that comprise the requested data item subset, that is, to determine the number of data items satisfying the request. Armed with the number of request-satisfying data items, the threshold comparing component 324 of the server 312 is configured to compare the number of request-satisfying data items to a threshold number of data items for which the desired information may be displayed. The threshold number may be preconfigured and determined arbitrarily, due to processing constraints, or in any other desired manner within the scope of embodiments of the present invention.
If it is determined by the threshold comparing component 324 that the number of request-satisfying data items does not exceed the threshold number, the display generating component 326 of the server 312 is configured to generate a display that includes the requested information, the display to be presented, for instance, in association with the display 318 of the user computing device 310. If, however, it is determined by the threshold comparing component 324 that the number of request-satisfying data items exceeds the threshold number, the display generating component 326 is configured to generate a display that includes at least one distribution graph (e.g., histogram) generated in view of a certain measure, the at least one distribution graph showing a visual representation of the request-satisfying data items organized by a particular attribute. In embodiments, the display generating component 326 further is configured to generate, as part of the display, a visual indication that the requested detailed information cannot be displayed because the number of request-satisfying data items exceeds the threshold number.
With reference to
Within each distribution graph 410a, 410b, 410c, 410d, a graphical illustration of the number of keywords having each attribute value is shown by way of a shaded rectangle, the horizontal length of which corresponds to the keyword count in accordance with the scale shown just beneath the respective graph. In this way, users may readily and meaningfully view those attribute/attribute value combinations that provide the highest number of request-satisfying keywords. It will be understood and appreciated by those of ordinary skill in the art that the illustrated graphical representation is by way of example only and that any manner of visually providing comparative information among attribute values within a particular distribution graph may be utilized in accordance with embodiments of the present invention.
Also illustrated in the view of
Returning now to
With reference to
Each of the displayed distribution graphs 510a, 510b, 510c, 510d has been altered as a result of the user interaction with the “Keyword count by zero or 1+ click” graph 510c such that rectangular shading remains representing the number of keywords satisfying each attribute value but with the representative quantities now being determined based upon the altered criteria (i.e., removing any previously satisfying results that were associated with zero clicks). An outline of the original rectangular shading remains, however, to illustrate the change in a meaningful and insightful manner.
In the illustrated example, the user's interaction has lowered the number of keywords from the 100,000 that were identified in the view of FIGS. 4 to 20,000. However, this number is still above the threshold number of 5,000 for which the requested information may be displayed. Thus, also presented is a message 514 indicating such and requesting that the user further filter by interacting with the presented keyword distribution graphs 510a, 510b, 510c, 510d (such interaction being received by, for instance, the interaction receiving component 328 of
Turning now to
With reference now to
Turning to
With reference to
In accordance with embodiments of the present invention, real-time or near real-time changes in the data may be reflected in the rendered graphs and/or detailed information. This is illustrated in the schematic view of
Turning now to
As indicated at block 912, it is determined whether a quantity of the plurality of data items having the specified characteristic exceeds a threshold number, for instance, via the data item determining component 322 and the threshold comparing component 324 of the server 312 of
If it is determined at block 912 that the quantity of the data items comprising the subset having the specified characteristic does not exceed the threshold number, the requested information is provided, for instance, utilizing the display generating component 328 of the server 312 of
With reference now to
Turning to
If it is determined at block 1112 that the quantity of the data items comprising the subset having the specified characteristic does not exceed the threshold number, the requested information is provided, for instance, utilizing the display generating component 328 of the server 312 of
As can be understood, embodiments of the present invention provide systems, methods, and computer-readable storage media for, among other things, providing a meaningful view into a corpus of data when the number of data items that make up the corpus is very large. A request for display of information about a subset of data items contained within the corpus that have a specified characteristic is received. A quantity of data items comprising the subset is determined. It also is determined whether the quantity exceeds a threshold number. If the quantity does not exceed the threshold, the requested information is presented. If, however, it is determined that the quantity of data items comprising the subset exceeds the threshold, a view of the data items comprising the subset is provided that includes at least one distribution graph generated in view of a certain measure, each distribution graph showing a visual representation of the data items comprising the subset organized by a particular attribute.
The present invention has been described in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.
It will be understood by those of ordinary skill in the art that the order of steps shown in the methods 900 of