The drawings referenced herein form a part of the specification. Features shown in the drawing are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention, unless otherwise explicitly indicated, and implications to the contrary are otherwise not to be made.
In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized, and logical, mechanical, and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
A query is received from a user requesting information (102). The query may be a Boolean query in which search terms are separated by Boolean operators like OR, AND, and so on, or the query may be a simple list of search terms that are to be located. The query may further be a natural language query in the form of a question like “What does the project XYZ entail?” or a statement like “Give me all the financial information regarding the project XYZ.”, which is then parsed using a natural language interpreter. The query may be another type of query as well.
In response, the method 100 searches for the information (104), and is presumed for the purposes of
If the user does have the access rights required by the information to view the information, then the information is returned to the user (112), so that the user can view the information. However, if the user does not have the access rights required by the information, then the method 100 searches for related information that requires the access rights that the user does have (114), and is presumed for the purposes of
The related information is then returned to the user (118), so that the user can view the related information. As an example of the performance of the method 100 of
As such, the method 100 instead searches for related information on this project. This related information may be located within the corporate data repository, or within publicly available information stores on the Internet, for instance. The related information may be the general technology area with which the project is associated, and/or a general summary of the project that does not divulge the specific details regarding the project. Once this related information has been found, it is returned to the user as satisfying the user's query.
The data stores 204 are storehouses of data, such as the information 212 and the related information 216. The term data store is used in an encompassing and generic sense, and is intended to encompass all types of data storage devices. Where there is more than one such data store, the data stores 204 may be co-located or may be disposed at different locations. For instance, one of the data stores 204 may be a corporate data storage repository, whereas another data store may be considered as encompassing publicly available information on the Internet.
The information 212 and the related information 216 are depicted in
The information 212 has associated therewith access rights 214, either implicitly or explicitly, whereas the information 216 has associated therewith different access rights 218, also either implicitly or explicitly. For example, consider the situation where both the information 212 and the information 216 are located on the same corporate data storage repository. The information 212 may have explicit access rights 214 that specify only executives are able to access the information 212. The information 216 may have explicit access rights 218 that specify that only executive and engineers are able to access the information 216. As such, the access rights 214 are more exclusive, or higher, than the access rights 218, which are less exclusive, or lower, than the access rights 214.
As another example, consider the situation where the information 212 is located on a corporate data storage repository, while the information 216 is located on a publicly accessible portion of the Internet. The information 212 as before may have explicit access rights 214 that specify only executives are able to access the information 212. By comparison, the information 216, since it is located on a publicly accessible portion of the Internet, has implicit access rights 218 that specify that anyone can access the information 216. The access rights 218 are implicit by virtue of anyone being able to access the information 216. In one embodiment, the terminology access rights encompass both explicit and implicit access rights, whereas in another embodiment, this terminology encompasses just explicit access rights.
A user generates a query 220 requesting information at a client 202, which may be a client computing device. The query 220 may include keywords, Boolean operators, and so on. For descriptive purposes, it is presumed that this query 220 requests the information 212. The client 202 sends the query 220 to the servers 210 to which the client 202 is communicatively connected. In one embodiment, the communications component 206 receives the query 220 from the client 202. The component 206 can be implemented in hardware, software, or a combination of hardware and software.
The communications component 206 conveys the query 220 to the search component 208 of the servers 210. The search component 208 may also be implemented in hardware, software, or a combination of hardware and software. The components 206 and 208 may be part of the same or different servers 210 in the example of
The search component 208 searches for the information requested in the query 220 within the data stores 204, with which the servers 210 are communicatively connected, by performing the method 100 of
The query 220 is received from a user of the client 202 (102), and which requests the information 212. For instance, the communications component 206 of the servers 210 may receive the query 220. In response, the search component 208 of the servers 210 searches for the information 212 requested within the query 220 within the first data store 204A (106). The data store 204A stores the information 212, and the data store 204A has the access rights 214, such that the information 212 has associated therewith the access rights 214 by virtue of being stored at the data store 204A.
The information 212 is thus located within the first data store 204A (106), and the access rights 214 that the information 212 requires are determined (108). Where the user has these access rights 214 (110), the information 212 is returned to the user (112), for viewing at the client 202. However, where the user does not have the access rights 214 (110), then the search component 208 searches for the related information 216 within the second data store 204B (114). The data store 204B stores the related information 216, and the data store 204B has the access rights 218, such that the information 216 has associated therewith the access rights 218 by virtue of being stored at the data store 204B. The user also has the access rights 218.
Therefore, the related information 216 is located within the second data store 204B (116). The search component 208 returns the related information 216 to the user (118), for viewing at the client 202. Because the user has the access rights 218, the user is permitted to view the related information 216, which is why the search component 208 returns the related information 216 to the user for viewing.
In the embodiment of
The levels of abstraction 606 can refer to different levels of specificity of the information organized thereover. For instance, the levels of abstraction 606 may range from most general to most specific, from least confidential to most confidential, and so on. Thus, the information portion 604A may represent the most general and least confidential portion of the information and is associated with the level of abstraction 606A, whereas the information portion 604N may represent the most specific and most confidential portion of the information and is associated with the level of abstraction 606N. In general, one or more of the levels of abstraction 606 are different than one or more other of the levels of abstraction 606. The information portion 604B may represent a portion of the information that is more general than the information portion 604N but more specific than the information portion 604A, and is associated with the level of abstraction 606B.
The data object 602 is a data structure that encompasses the information (that is, the information portions 604 as a whole), the levels of abstraction 606, and the levels of access rights 608A, 608B, . . . 608N, collectively referred to as the levels of access rights 608, and which will be described later in the detailed description. This data structure may be an object-oriented programming (OOP) language data object, such as a C++ programming language data object, a Java programming language object, and so on. In another embodiment, the data object 602 may be a data structure other than an OOP language data object.
Organizing the information over the levels of abstraction 606 within the data object 602 in part 502 of the method 500 of
For example, in
As a concrete example, consider information regarding a corporate project. Specific details regarding the corporate project may include when the project is anticipated to ship, how much money the company plans on making on the project, and so on. The general summary of the information regarding the corporate project may include the general technology area with which the project is associated, and that otherwise does not divulge the specific details regarding the project. It is a more abstracted view of the information than the specific details of the information are.
Next, the method 500 of
For instance, the levels of access rights 608 may range from least restrictive to most restrictive. Thus, the level of access rights 608A may correspond to the least restrictive access rights, such that the level of abstraction 606A of the information (the information portion 604A) is accessible by the largest number of users. By comparison, the level of access rights 608N may correspond to the most restrictive access rights, such that the level of abstraction 606N of the information (the information portion 604N) is accessible by the smallest number of users. In general, each level of abstraction that is more specific than another level of abstraction has associated therewith more exclusive access rights than the other level of abstraction does.
Associating the levels of access rights 608 within the data object 602 to the levels of abstraction 606 within the data object 602 in part 508 of the method 500 of
For example, in
Next, the method 500 of
In response to receiving the query 220 from the user of the client 202 in
The search component 208 compares the predetermined access rights of the user of the client 202 that generated the query 220 with the levels of access rights 608 of the data object 602. For each level of access rights that the predetermined access rights of the user match, the search component 208 returns only the corresponding level of abstraction of the information of the data object 602 (the corresponding information portion of the data object 602). The search component 208 does not return any level of abstraction of the data object 602 associated with a level of access rights that does not match the predetermined access rights of the user. Stated another way, the search component 208 returns only those levels of abstraction 606 that are associated with the levels of access rights 608 that the user has.
For example, there may be five levels of abstraction 606 within the data object 602, and therefore five corresponding levels of access rights 608 within the data object 602, ordered from least restrictive to most restrictive on a scale from one to five. The user's predetermined access rights may specify that he or she can view any abstraction levels that have a level of access rights of three or less on this scale. As such, the first three more general levels of abstraction 606 are returned to the user for viewing. By comparison, the last two more specific levels of abstraction 606 are not returned to the user for viewing, because the user does not have sufficient access rights.
Returning all the levels of abstraction 606 that the predetermined access rights of the user permits the user to view in part 516 of the method 500 of
For example, in
The method 100 of
The former information portion 604B is thus an abstraction of the information at the level of abstraction 606B associated with a level of access rights 608B that the user does not have. The data object 602 may be considered as having first data that represents this level of abstraction 606B and this level of access rights 608B. The latter information portion 604A is an abstraction of the information at the level of abstraction 606A associated with a level of access rights 608A that the user does have. The data object 602 may be considered as having second data that represents this level of abstraction 606A and this level of access rights 608A.
As such, when the specific information requested by the user is located within the level of abstraction 606B of the data object 602 having the level of access rights 608B that the user does not have, the search component 208 instead returns the level of abstraction 606A of the data object 602. This level of abstraction 606A corresponds to the related information that has been described, and is associated with the level of access rights 608B that the user does have. Therefore, the method 100 of
It is noted that, although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is thus intended to cover any adaptations or variations of embodiments of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and equivalents thereof