US8983990B2 - Enforcing query policies over resource description framework data - Google Patents

Enforcing query policies over resource description framework data Download PDF

Info

Publication number
US8983990B2
US8983990B2 US12/857,618 US85761810A US8983990B2 US 8983990 B2 US8983990 B2 US 8983990B2 US 85761810 A US85761810 A US 85761810A US 8983990 B2 US8983990 B2 US 8983990B2
Authority
US
United States
Prior art keywords
query
user
graph
views
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US12/857,618
Other versions
US20120047114A1 (en
Inventor
Songyun Duan
Anastasios Kementsietsidis
Wangchao Le
Min Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US12/857,618 priority Critical patent/US8983990B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LE, WANGCHAO, WANG, MIN, DUAN, SONGYUN, KEMENTSIETSIDIS, ANASTASIOS
Publication of US20120047114A1 publication Critical patent/US20120047114A1/en
Application granted granted Critical
Publication of US8983990B2 publication Critical patent/US8983990B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • G06F17/30448
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation

Definitions

  • the present invention relates to query systems and methods, and more specifically, to query systems and methods for Resource Description Framework data.
  • RDF Resource Description Framework
  • policies can include, for example, simple policies that ensure the privacy of users (e.g., in sites like Facebook and LinkedIn), complex policies that enforce complex security clearance protocols in enterprise and military settings, or any other policy.
  • Secure access control solutions for both relational and extensive markup language (XML) data exist. However, such solutions prove to be ineffective for RDF data.
  • a method of performing a graph query issued by a user includes performing on a processor, receiving a user graph query; rewriting the user graph query as a new query based on a query policy expressed in a graph query language; and performing the new query on graph data to obtain a result.
  • FIG. 1 is an illustration of a computing system that includes a query system in accordance with exemplary embodiments
  • FIGS. 2A-2F illustrate exemplary data of the query system in accordance with exemplary embodiments
  • FIG. 3 is a dataflow diagram that illustrates a query system in accordance with exemplary embodiments.
  • FIGS. 4 and 5 are flowcharts illustrating query methods of the query system in accordance with exemplary embodiments.
  • an exemplary computing system 100 includes a query system in accordance with the present disclosure.
  • the computing system 100 is shown to include a computer 101 .
  • the computing system 100 can include any computing device, including but not limited to, a desktop computer, a laptop, a server, a portable handheld device, or any other electronic device that includes a memory and a processor.
  • the disclosure will be discussed in the context of the computer 101 .
  • the computer 101 is shown to include a processor 102 , memory 104 coupled to a memory controller 106 , one or more input and/or output (I/O) devices 108 , 110 (or peripherals) that are communicatively coupled via a local input/output controller 112 , and a display controller 114 coupled to a display 116 .
  • I/O input and/or output
  • a conventional keyboard 122 and mouse 124 can be coupled to the input/output controller 112 .
  • the computing system 100 can further include a network interface 118 for coupling to a network 120 .
  • the network 120 transmits and receives data between the computer 101 and external systems.
  • the memory 104 stores instructions that can be performed by the processor 102 .
  • the instructions stored in memory 104 may include one or more separate programs, each of which comprises an ordered listing of executable instructions for implementing logical functions.
  • the instructions stored in the memory 104 include a suitable operating system (OS) 126 .
  • the operating system 126 essentially controls the performance of other computer programs and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
  • the processor 102 When the computer 101 is in operation, the processor 102 is configured to execute the instructions stored within the memory 104 , to communicate data to and from the memory 104 , and to generally control operations of the computer 101 pursuant to the instructions.
  • the processor 102 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the computer 101 , a semiconductor based microprocessor (in the form of a microchip or chip set), a macroprocessor, or generally any device for executing instructions.
  • the processor 102 executes the instructions of a query system (QS) 128 of the present disclosure.
  • the query system 128 of the present disclosure is stored in the memory 104 (as shown), is run from a portable storage device (e.g., CD-ROM, Diskette, FlashDrive, etc.) (not shown), and/or is run from a remote location, such as from a central server (not shown).
  • a portable storage device e.g., CD-ROM, Diskette, FlashDrive, etc.
  • the query system 128 performs queries on data stored in, for example, the memory 104 or other data storage medium.
  • the query system 128 performs the queries based on a defined query policy. For example, the query system 128 generates a new query that is a join of the initial query and the query policy. The new query is then used to query the data.
  • Technical effects and benefits of this query process include more efficient query results as well as faster query response times. Further details are shown with reference to FIG. 3
  • FIGS. 2A-2F data associated with a social networking site is shown and described. Such data is provided for exemplary purposes. As can be appreciated, the query system 128 of the present disclosure is applicable to various types of data and is not limited to the present example.
  • the social networking data can describe user acquaintances, such as friend, related, works (with), and the like.
  • Resource Description Framework (RDF) triples are often used to model these types of user acquaintances.
  • RDF triples include a subject, a predicate, and an object, where the subject denotes the resource, and the predicate denotes traits or aspects of the resource and expresses a relationship between the subject and the object.
  • a collection of RDF triples represents a directed graph. A sample of RDF triples is shown in FIG. 2A .
  • secure access control allows users to expose only a subset of their social network. Such access is enforced through a query policy. For example, a user (say, person 0 ) might expose to the user's friends only the user's immediate friends (person 1 and person 2 ) and relatives (person 3 ), but not the user's co-workers (person 4 ). Furthermore, the user might also expose the user's friends-of-friends (FoF) and relatives-of-relatives (RoR) (but not the relatives-of-friends, or the friends-of-relatives).
  • RoF friends-of-friends
  • RoR relatives-of-relatives
  • FIG. 2B shows an exemplary query policy indicating an exposure rule in plain English.
  • FIG. 2C shows the data that can be accessed for user “Eric” provided the query policy of FIG. 2B .
  • FIG. 2D shows views that can be used to enforce the query policy of FIG. 2B .
  • the views are the query policy expressed in a graph query language.
  • the graph query language may include, but is not limited to, SPARQL (SPARQL Protocol and RDF Query Language), RDQL (RDF Data Query Language), RQL (RDF Query Language), etc.
  • the variables are prefixed by “?”.
  • the person for which the policies are enforced are indicated as a parameter Pi.
  • FIG. 2E shows an exemplary user query initiated in plain English
  • FIG. 2F shows the user query of FIG. 2E expressed a graph query language.
  • the views V are used to rewrite the user query Q into a new query Q′ over the base data.
  • the query system 128 can include one or more sub-modules and datastores.
  • the sub-modules can be implemented as software, hardware, firmware, a combination thereof, and/or other suitable components that provide the described functionality.
  • the sub-modules shown in FIG. 3 can be combined and/or further partitioned to similarly perform a query.
  • the query system 128 includes a query rewrite module 140 , an optimization module 142 , a query module 144 , and a base data datastore 146 .
  • the query rewrite module 140 receives as input a user query 148 and a query policy 150 .
  • the query policy 150 can be predefined and stored in a query policy datastore (not shown).
  • the query policy 150 is received and the query rewrite module 140 translates the query policy 150 to a graph query language.
  • the query policy 150 can be expressed in a graph query language (e.g., SPARQL, RDQL, RQL, etc.) and can include one or more views that define how the data can be accessed.
  • the user query 148 can be expressed in a graph query language.
  • the user query 148 can be received and translated to a query language by the query rewrite module 140 .
  • the query rewrite module 140 Based on the user query 148 and the query policy 150 , the query rewrite module 140 generates a new query 152 . For example, the query rewrite module 140 determines which views can be used from the query policy 150 in the rewriting process. If the user query 148 and the query policy 150 are provided in the same graph query language, such as SPARQL, it is determined whether a variable mapping exists between a triple pattern in the head of a view and one of the triple patterns in the user query 156 . If such variable mapping exists, then the view is included in the subset of views that is used to rewrite the user query 148 .
  • the query rewrite module 140 determines which views can be used from the query policy 150 in the rewriting process. If the user query 148 and the query policy 150 are provided in the same graph query language, such as SPARQL, it is determined whether a variable mapping exists between a triple pattern in the head of a view and one of the triple patterns in the user query 156 . If such variable mapping
  • computing variable mappings is similar to computing substitutions between conjunctive queries, that is, mappings from constants to constants, and from variables to variables and constants.
  • the variable mappings are computed between patterns in the query and the view that have the same constant predicate (note that variable predicates are replaced by constants).
  • the user query 148 and the query policy 150 are provided in different graph query languages, they can both be converted into equivalent query graphs and then the mappings can be computed between the nodes and edges of the corresponding graphs.
  • the query rewrite module 140 then constructs the new query 152 as a union of conjunctive queries.
  • Each query in the union is a result of considering one combination from the Cartesian product of the view set. While considering each combination, the query rewrite module 140 ensures that the corresponding variable mappings from individual predicates do not conflict (i.e., they do not map the same variable in the query Q to two different constants from the views). For each non-conflicting combination, the query rewrite module 140 generates one query in the union.
  • the optimization module 142 receives as input the new query 152 from the query rewrite module 140 .
  • the optimization module 142 performs one or more optimization techniques on the new query 152 to ensure that the new query 152 is secure, sound, and complete and generates an optimized query 154 .
  • the rewriting is secure if the evaluation of query Q′(G) only accesses triples that are also accessed by Vu (i.e., GP( ′))(G) ⁇ Ui((GP(Vi)(G)),Vi ⁇ Vu).
  • the rewriting is sound, for example, if Q′(G) is contained in Q(Vu(G)) (i.e., ′(G) ⁇ (Vu(G))).
  • the optimization techniques can include, for example, but are not limited to, redundancy removal, empty query removal, and sub-query optimization.
  • the optimization techniques can be based on, for example, the optimization techniques as described in the U.S Patent Application filed contemporaneously herewith entitled, “Database Query Optimizations,” which is incorporated herein by reference in its entirety.
  • the redundancy removal technique removes redundant views from the new query 152 . For example, assume that a view V is used twice in the new query 152 , once for predicate p 1 and once for its joinable predicate p 2 , with variable mappings ⁇ 1 and ⁇ 2 , respectively.
  • the optimization module 142 considers the variable mappings between the query and the views and attempts to construct a new mapping ⁇ merge that merges the two input mappings.
  • the variables and constants appearing in the new query 152 are treated as constants for the purpose of this merging (therefore only fresh variables are treated as variables for the purposes of the merging). This ensures that views are merged not just because they are copies of each other, but merged only when their predicates are joined in the same way as in the query itself. Each time view copies are merged, any variable mappings that have been applied to the views are accounted for, due to their relationship with other views corresponding to the other predicates. If ⁇ merge is equal to ⁇ , then the two copies of V can not be merged.
  • the empty query removal technique removes any empty views from the new query 152 . For example, a value set for each distinct variable involved in the views is determined, and a synopsis for each value set is then constructed. Given these synopses, for the previous example, the size of the intersection of A(?y 2 ) and A(?y 3 ) is estimated. If the intersection size is estimated to be above some preset threshold with a reasonable probability, they can be considered as joinable. Otherwise, an ASK query can be issued to verify if the view is actually empty. If the ask query returns ‘yes’, the rewritings that involve V 1 and V 2 for the joined triple patterns of p 1 (?y 1 , ?y 2 ) and p 2 (?y 3 , ?y 4 ) are removed.
  • the sub-query optimization technique removes empty sub-queries of the new query 152 .
  • the sub-query optimization technique can be performed during the rewrite process.
  • a structure STACK can be used where each element in the structure STACK stores a sub-query SubQ of Q along with a candidate view combination for rewriting SubQ. Initially, STACK and SubQ are empty.
  • the first sub-query considered corresponds to a pattern in Q, and the pattern with the smallest size of
  • one pattern added is considered at each step.
  • the way the pattern is picked ensures that it can be joined with the current SubQ at the head of STACK, which increases the chance of optimization with the other techniques described above.
  • the most selective one is picked. After a pattern is added and a candidate view for the pattern is picked, if the view is redundant with the existing view set for SubQ, it is merged into the view set. If the current rewriting for SubQ has an empty result, the rewriting is not extended further and not pushed back into STACK.
  • the query module 144 receives as input the optimized query 154 .
  • the query module 144 performs a query of base data 156 stored in the base data datastore 146 based on the optimized query 154 .
  • the query module 144 generates query results 158 from the query.
  • the query results 158 can be presented to the user via, for example, a user interface in a textual or graphical format.
  • FIGS. 4 and 5 flowcharts illustrate query methods that can be performed by the query system 128 in accordance with exemplary embodiments.
  • the order of operation within the methods is not limited to the sequential performance as illustrated in FIGS. 4 and 5 , but may be performed in one or more varying orders as applicable and in accordance with the present disclosure.
  • one or more steps can be added or deleted from the method without altering the spirit of the method.
  • a high level query method 300 is illustrated.
  • the method may begin at 305 .
  • the base data 156 is received and stored at 310 .
  • the query policy data 150 is received and stored at 320 .
  • the user query 148 is received at 330 .
  • the user query 148 is rewritten based on the query policy data 150 at 340 as discussed above and the new query 152 is generated.
  • the new query 152 is optimized at 350 as discussed above.
  • the optimized query 154 is then used to evaluate the base data 156 at 360 .
  • the results 158 of the evaluation are provided to a user at 370 .
  • the method may end at 380 .
  • the query rewrite step at 340 of FIG. 4 is further illustrated.
  • the method may begin at 405 .
  • the candidate set of views is identified at 410 as discussed above and shown for example in FIG. 2D .
  • the combinations of views are generated at 420 and the union of queries is constructed at 430 as discussed above. Thereafter, the method may end at 440 .
  • aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
  • the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
  • a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
  • a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Abstract

A method of performing a graph query issued by a user is provided. The method includes performing on a processor, receiving a user graph query. The method includes rewriting the user graph query as a new query based on a query policy expressed in a graph query language. The method includes performing the new query on graph data to obtain a result.

Description

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
This invention was made with U.S. Government support under Contract No. W911NF-09-2-0053 awarded by the U.S. Army. The U.S. Government has certain rights in the invention.
BACKGROUND
The present invention relates to query systems and methods, and more specifically, to query systems and methods for Resource Description Framework data.
Resource Description Framework (RDF) is a data representation standard of the Internet. Secure access of RDF data can be dictated by policies. Such policies can include, for example, simple policies that ensure the privacy of users (e.g., in sites like Facebook and LinkedIn), complex policies that enforce complex security clearance protocols in enterprise and military settings, or any other policy. Secure access control solutions for both relational and extensive markup language (XML) data exist. However, such solutions prove to be ineffective for RDF data.
SUMMARY
According to one embodiment of the present invention, a method of performing a graph query issued by a user is provided. The method includes performing on a processor, receiving a user graph query; rewriting the user graph query as a new query based on a query policy expressed in a graph query language; and performing the new query on graph data to obtain a result.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with the advantages and the features, refer to the description and to the drawings.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The forgoing and other features and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
FIG. 1 is an illustration of a computing system that includes a query system in accordance with exemplary embodiments;
FIGS. 2A-2F illustrate exemplary data of the query system in accordance with exemplary embodiments;
FIG. 3 is a dataflow diagram that illustrates a query system in accordance with exemplary embodiments; and
FIGS. 4 and 5 are flowcharts illustrating query methods of the query system in accordance with exemplary embodiments.
DETAILED DESCRIPTION
Turning now to the drawings in greater detail, it will be seen that in FIG. 1 an exemplary computing system 100 includes a query system in accordance with the present disclosure. The computing system 100 is shown to include a computer 101. As can be appreciated, the computing system 100 can include any computing device, including but not limited to, a desktop computer, a laptop, a server, a portable handheld device, or any other electronic device that includes a memory and a processor. For ease of the discussion, the disclosure will be discussed in the context of the computer 101.
The computer 101 is shown to include a processor 102, memory 104 coupled to a memory controller 106, one or more input and/or output (I/O) devices 108, 110 (or peripherals) that are communicatively coupled via a local input/output controller 112, and a display controller 114 coupled to a display 116. In an exemplary embodiment, a conventional keyboard 122 and mouse 124 can be coupled to the input/output controller 112. In an exemplary embodiment, the computing system 100 can further include a network interface 118 for coupling to a network 120. The network 120 transmits and receives data between the computer 101 and external systems.
In various embodiments, the memory 104 stores instructions that can be performed by the processor 102. The instructions stored in memory 104 may include one or more separate programs, each of which comprises an ordered listing of executable instructions for implementing logical functions. In the example of FIG. 1, the instructions stored in the memory 104 include a suitable operating system (OS) 126. The operating system 126 essentially controls the performance of other computer programs and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
When the computer 101 is in operation, the processor 102 is configured to execute the instructions stored within the memory 104, to communicate data to and from the memory 104, and to generally control operations of the computer 101 pursuant to the instructions. The processor 102 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the computer 101, a semiconductor based microprocessor (in the form of a microchip or chip set), a macroprocessor, or generally any device for executing instructions.
The processor 102 executes the instructions of a query system (QS) 128 of the present disclosure. In various embodiments, the query system 128 of the present disclosure is stored in the memory 104 (as shown), is run from a portable storage device (e.g., CD-ROM, Diskette, FlashDrive, etc.) (not shown), and/or is run from a remote location, such as from a central server (not shown).
Generally speaking, the query system 128 performs queries on data stored in, for example, the memory 104 or other data storage medium. The query system 128 performs the queries based on a defined query policy. For example, the query system 128 generates a new query that is a join of the initial query and the query policy. The new query is then used to query the data. Technical effects and benefits of this query process include more efficient query results as well as faster query response times. Further details are shown with reference to FIG. 3
With reference now to FIGS. 2A-2F, data associated with a social networking site is shown and described. Such data is provided for exemplary purposes. As can be appreciated, the query system 128 of the present disclosure is applicable to various types of data and is not limited to the present example.
In the provided example, the social networking data can describe user acquaintances, such as friend, related, works (with), and the like. Resource Description Framework (RDF) triples are often used to model these types of user acquaintances. RDF triples include a subject, a predicate, and an object, where the subject denotes the resource, and the predicate denotes traits or aspects of the resource and expresses a relationship between the subject and the object. A collection of RDF triples represents a directed graph. A sample of RDF triples is shown in FIG. 2A.
In social networking sites, secure access control allows users to expose only a subset of their social network. Such access is enforced through a query policy. For example, a user (say, person0) might expose to the user's friends only the user's immediate friends (person1 and person2) and relatives (person3), but not the user's co-workers (person4). Furthermore, the user might also expose the user's friends-of-friends (FoF) and relatives-of-relatives (RoR) (but not the relatives-of-friends, or the friends-of-relatives).
FIG. 2B shows an exemplary query policy indicating an exposure rule in plain English. FIG. 2C shows the data that can be accessed for user “Eric” provided the query policy of FIG. 2B. FIG. 2D shows views that can be used to enforce the query policy of FIG. 2B. In various embodiments, the views are the query policy expressed in a graph query language. The graph query language may include, but is not limited to, SPARQL (SPARQL Protocol and RDF Query Language), RDQL (RDF Data Query Language), RQL (RDF Query Language), etc. In the example of FIG. 2D, the variables are prefixed by “?”. The person for which the policies are enforced are indicated as a parameter Pi. Notice that the views hide any distinction between the immediate friends (or relatives) and those at a distance of two. FIG. 2E shows an exemplary user query initiated in plain English, and FIG. 2F shows the user query of FIG. 2E expressed a graph query language. According to various embodiments of the present disclosure, the views V are used to rewrite the user query Q into a new query Q′ over the base data.
Turning now to FIG. 3, the query system 128 is shown in more detail in accordance with exemplary embodiments. The query system 128 can include one or more sub-modules and datastores. As can be appreciated, the sub-modules can be implemented as software, hardware, firmware, a combination thereof, and/or other suitable components that provide the described functionality. As can further be appreciated, the sub-modules shown in FIG. 3 can be combined and/or further partitioned to similarly perform a query. In various embodiments, the query system 128 includes a query rewrite module 140, an optimization module 142, a query module 144, and a base data datastore 146.
The query rewrite module 140 receives as input a user query 148 and a query policy 150. In various embodiments, the query policy 150 can be predefined and stored in a query policy datastore (not shown). In various other embodiments, the query policy 150 is received and the query rewrite module 140 translates the query policy 150 to a graph query language. As illustrated in FIG. 2D, the query policy 150 can be expressed in a graph query language (e.g., SPARQL, RDQL, RQL, etc.) and can include one or more views that define how the data can be accessed. Similarly, the user query 148 can be expressed in a graph query language. In various embodiments, the user query 148 can be received and translated to a query language by the query rewrite module 140.
Based on the user query 148 and the query policy 150, the query rewrite module 140 generates a new query 152. For example, the query rewrite module 140 determines which views can be used from the query policy 150 in the rewriting process. If the user query 148 and the query policy 150 are provided in the same graph query language, such as SPARQL, it is determined whether a variable mapping exists between a triple pattern in the head of a view and one of the triple patterns in the user query 156. If such variable mapping exists, then the view is included in the subset of views that is used to rewrite the user query 148.
In various embodiments, computing variable mappings is similar to computing substitutions between conjunctive queries, that is, mappings from constants to constants, and from variables to variables and constants. The variable mappings are computed between patterns in the query and the view that have the same constant predicate (note that variable predicates are replaced by constants).
If, however, the user query 148 and the query policy 150 are provided in different graph query languages, they can both be converted into equivalent query graphs and then the mappings can be computed between the nodes and edges of the corresponding graphs.
The query rewrite module 140 then constructs the new query 152 as a union of conjunctive queries. Each query in the union is a result of considering one combination from the Cartesian product of the view set. While considering each combination, the query rewrite module 140 ensures that the corresponding variable mappings from individual predicates do not conflict (i.e., they do not map the same variable in the query Q to two different constants from the views). For each non-conflicting combination, the query rewrite module 140 generates one query in the union.
The optimization module 142 receives as input the new query 152 from the query rewrite module 140. The optimization module 142 performs one or more optimization techniques on the new query 152 to ensure that the new query 152 is secure, sound, and complete and generates an optimized query 154.
For example, provided an RDF graph G, a set of access control policies Pi=IF CONTEXTi GRANT Vi (1≦i≦n), and a user U, the rewriting is secure if the evaluation of query Q′(G) only accesses triples that are also accessed by Vu (i.e., GP(
Figure US08983990-20150317-P00001
′))(G)Ui((GP(Vi)(G)),Vi εVu). The rewriting is sound, for example, if Q′(G) is contained in Q(Vu(G)) (i.e.,
Figure US08983990-20150317-P00001
′(G)
Figure US08983990-20150317-P00001
(Vu(G))). The rewriting is complete, for example, if Q(Vu(G)) is contained in Q′(G) (i.e.,
Figure US08983990-20150317-P00001
(Vu(G))
Figure US08983990-20150317-P00001
′(G)). Soundness and completeness suffice to show that Q(Vu(G))=Q′(G). Security provides the additional guarantee that the rewriting does not touch data that would otherwise be inaccessible to user U.
In various embodiments, the optimization techniques can include, for example, but are not limited to, redundancy removal, empty query removal, and sub-query optimization. The optimization techniques can be based on, for example, the optimization techniques as described in the U.S Patent Application filed contemporaneously herewith entitled, “Database Query Optimizations,” which is incorporated herein by reference in its entirety.
The redundancy removal technique removes redundant views from the new query 152. For example, assume that a view V is used twice in the new query 152, once for predicate p1 and once for its joinable predicate p2, with variable mappings Φ1 and Φ2, respectively. The optimization module 142 considers the variable mappings between the query and the views and attempts to construct a new mapping Φ merge that merges the two input mappings.
In various embodiments, the variables and constants appearing in the new query 152 are treated as constants for the purpose of this merging (therefore only fresh variables are treated as variables for the purposes of the merging). This ensures that views are merged not just because they are copies of each other, but merged only when their predicates are joined in the same way as in the query itself. Each time view copies are merged, any variable mappings that have been applied to the views are accounted for, due to their relationship with other views corresponding to the other predicates. If Φ merge is equal to Ø, then the two copies of V can not be merged.
The empty query removal technique removes any empty views from the new query 152. For example, a value set for each distinct variable involved in the views is determined, and a synopsis for each value set is then constructed. Given these synopses, for the previous example, the size of the intersection of A(?y2) and A(?y3) is estimated. If the intersection size is estimated to be above some preset threshold with a reasonable probability, they can be considered as joinable. Otherwise, an ASK query can be issued to verify if the view is actually empty. If the ask query returns ‘yes’, the rewritings that involve V1 and V2 for the joined triple patterns of p1(?y1, ?y2) and p2(?y3, ?y4) are removed.
The sub-query optimization technique removes empty sub-queries of the new query 152. In various embodiments, the sub-query optimization technique can be performed during the rewrite process. For example, a structure STACK can be used where each element in the structure STACK stores a sub-query SubQ of Q along with a candidate view combination for rewriting SubQ. Initially, STACK and SubQ are empty. The first sub-query considered corresponds to a pattern in Q, and the pattern with the smallest size of |CandV| is picked. Intuitively, this pattern is the most selective. By considering the most selective predicates in order (in terms of their |CandV|), the effects of early termination of a branch of rewritings once we detect the rewriting for SubQ results in an empty set are maximized (i.e., a larger portion of the rewritings for Q that contain this rewriting for SubQ is pruned earlier in this manner).
After the first pattern, one pattern added is considered at each step. The way the pattern is picked ensures that it can be joined with the current SubQ at the head of STACK, which increases the chance of optimization with the other techniques described above. When more than one pattern is under consideration, the most selective one is picked. After a pattern is added and a candidate view for the pattern is picked, if the view is redundant with the existing view set for SubQ, it is merged into the view set. If the current rewriting for SubQ has an empty result, the rewriting is not extended further and not pushed back into STACK.
The query module 144 receives as input the optimized query 154. The query module 144 performs a query of base data 156 stored in the base data datastore 146 based on the optimized query 154. The query module 144 generates query results 158 from the query. The query results 158 can be presented to the user via, for example, a user interface in a textual or graphical format.
Turning now to FIGS. 4 and 5 and with continued reference to FIG. 3, flowcharts illustrate query methods that can be performed by the query system 128 in accordance with exemplary embodiments. As can be appreciated in light of the disclosure, the order of operation within the methods is not limited to the sequential performance as illustrated in FIGS. 4 and 5, but may be performed in one or more varying orders as applicable and in accordance with the present disclosure. As can be appreciated, one or more steps can be added or deleted from the method without altering the spirit of the method.
With particular reference to FIG. 4, a high level query method 300 is illustrated. In one example, the method may begin at 305. The base data 156 is received and stored at 310. The query policy data 150 is received and stored at 320. The user query 148 is received at 330. The user query 148 is rewritten based on the query policy data 150 at 340 as discussed above and the new query 152 is generated. The new query 152 is optimized at 350 as discussed above. The optimized query 154 is then used to evaluate the base data 156 at 360. The results 158 of the evaluation are provided to a user at 370. The method may end at 380.
With particular reference to FIG. 5, the query rewrite step at 340 of FIG. 4 is further illustrated. In one example, the method may begin at 405. The candidate set of views is identified at 410 as discussed above and shown for example in FIG. 2D. The combinations of views are generated at 420 and the union of queries is constructed at 430 as discussed above. Thereafter, the method may end at 440.
As can be appreciated, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one ore more other features, integers, steps, operations, element components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated
Further, as will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The flow diagrams depicted herein are just one example. There may be many variations to this diagram or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
While the preferred embodiment to the invention had been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims which follow. These claims should be construed to maintain the proper protection for the invention first described.

Claims (6)

What is claimed is:
1. A method of performing a graph query issued by a user, comprising:
performing on a processor,
receiving a user graph query, the user graph query being user generated;
creating a new query based on the user graph query and a query policy expressed in a graph query language, the query policy being expressed as a set of one or more views, where each view includes a first query that evaluates whether the query policy applies to the user and a second query that determines graph data that is viewable to the user through the view, wherein the new query comprises a union of conjunctive queries wherein each query in the union is a result of considering one combination from a Cartesian product of
creating an optimized query by removing redundant views from the new query, removing any empty views from the new query, and removing any empty sub-query of the new query; and
performing the optimized query on graph data to obtain a result, wherein the graph data includes a set of triples,
wherein the rewriting further comprises:
identifying a plurality of views in the query policy;
separating the plurality of views into groups based on a query predicate;
considering one view from each of the groups as a rewritten query based on a query predicate;
checking a validity of the rewritten query; and
generating the new query based on a union of the rewritten queries.
2. The method of claim 1 wherein the graph query language is at least one of SPARQL, RDQL, and RQL.
3. A system for performing a query, the system comprising:
a non-transitory computer readable medium that includes:
a query rewrite module that receives a user graph query and that rewrites the user graph query as a new query based on a query policy expressed in a graph query language, the user graph query being user generated, the query policy being expressed as a set of one or more views, where each view includes a first query that evaluates whether the query policy applies to the user and a second query that determines graph data that is viewable to the user through the view, wherein the new query comprises a union of conjunctive queries wherein each query in the union is a result of considering one combination from a Cartesian product of the user graph query and the set of one or more views;
the query rewrite module further configured to create an optimized query by removing redundant views from the new query, removing any empty views from the new query, and removing any empty sub-query of the new query; and
a query module that performs the optimized query on a graph data to obtain a result, wherein the graph data includes a set of triples,
wherein the query rewrite module rewrites the user query by:
identifying a plurality of views in the query policy;
separating the plurality of views into groups based on a query predicate;
considering one view from each of the groups as a rewritten query based on a query predicate; and
generating the new query based on a union of the rewritten queries.
4. The system of claim 3 wherein the graph query language is at least one of SPARQL, RDQL, and RQL.
5. A computer program product for performing a query issued by a user, the computer program product comprising:
a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
receiving a user graph query, the user graph query being user generated;
creating a new query based on the user graph query and a query policy expressed in a graph query language, the query policy being expressed as a set of one or more views, where each view includes a first query that evaluates whether the query policy applies to the user and a second query that determines graph data that is viewable to the user through the view, wherein the new query comprises a union of conjunctive queries wherein each query in the union is a result of considering one combination from a Cartesian product of the user graph query and the set of one or more views;
creating an optimized query by removing redundant views from the new query, removing any empty views from the new query, and removing any empty sub-query of the new query; and
performing the optimized query on a graph data to obtain a result, wherein the graph data includes a set of triples,
wherein the query rewrite module rewrites the user query by:
identifying a plurality of views in the query policy;
separating the plurality of views into groups based on a query predicate;
considering one view from each of the groups as a rewritten query based on a query predicate; and
generating the new query based on a union of the rewritten queries.
6. The computer program product of claim 5 wherein the graph query language is at least one of SPARQL, RDQL, and RQL.
US12/857,618 2010-08-17 2010-08-17 Enforcing query policies over resource description framework data Expired - Fee Related US8983990B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/857,618 US8983990B2 (en) 2010-08-17 2010-08-17 Enforcing query policies over resource description framework data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/857,618 US8983990B2 (en) 2010-08-17 2010-08-17 Enforcing query policies over resource description framework data

Publications (2)

Publication Number Publication Date
US20120047114A1 US20120047114A1 (en) 2012-02-23
US8983990B2 true US8983990B2 (en) 2015-03-17

Family

ID=45594867

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/857,618 Expired - Fee Related US8983990B2 (en) 2010-08-17 2010-08-17 Enforcing query policies over resource description framework data

Country Status (1)

Country Link
US (1) US8983990B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140067793A1 (en) * 2012-08-31 2014-03-06 Infotech Soft, Inc. Query Optimization for SPARQL
US20140304824A1 (en) * 2013-04-05 2014-10-09 Oracle International Corporation Systems and methods for context-sensitive data security for business application performance optimization

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101444926B1 (en) * 2013-01-29 2014-10-07 (주)센솔로지 Communication method between apparatuses, and communication apparatus
US9436681B1 (en) * 2013-07-16 2016-09-06 Amazon Technologies, Inc. Natural language translation techniques
US11238056B2 (en) 2013-10-28 2022-02-01 Microsoft Technology Licensing, Llc Enhancing search results with social labels
US9542440B2 (en) 2013-11-04 2017-01-10 Microsoft Technology Licensing, Llc Enterprise graph search based on object and actor relationships
US11645289B2 (en) 2014-02-04 2023-05-09 Microsoft Technology Licensing, Llc Ranking enterprise graph queries
US9870432B2 (en) 2014-02-24 2018-01-16 Microsoft Technology Licensing, Llc Persisted enterprise graph queries
US11657060B2 (en) 2014-02-27 2023-05-23 Microsoft Technology Licensing, Llc Utilizing interactivity signals to generate relationships and promote content
US10757201B2 (en) 2014-03-01 2020-08-25 Microsoft Technology Licensing, Llc Document and content feed
US10255563B2 (en) 2014-03-03 2019-04-09 Microsoft Technology Licensing, Llc Aggregating enterprise graph content around user-generated topics
US10394827B2 (en) 2014-03-03 2019-08-27 Microsoft Technology Licensing, Llc Discovering enterprise content based on implicit and explicit signals
US10169457B2 (en) 2014-03-03 2019-01-01 Microsoft Technology Licensing, Llc Displaying and posting aggregated social activity on a piece of enterprise content
US10061826B2 (en) 2014-09-05 2018-08-28 Microsoft Technology Licensing, Llc. Distant content discovery
US9330138B1 (en) * 2015-09-18 2016-05-03 Linkedin Corporation Translating queries into graph queries using primitives
US9378241B1 (en) 2015-09-18 2016-06-28 Linkedin Corporation Concatenated queries based on graph-query results
US9535963B1 (en) * 2015-09-18 2017-01-03 Linkedin Corporation Graph-based queries
US9378239B1 (en) 2015-09-18 2016-06-28 Linkedin Corporation Verifying graph-based queries
US9378303B1 (en) 2015-09-18 2016-06-28 Linkedin Corporation Representing compound relationships in a graph database
US9514247B1 (en) 2015-10-28 2016-12-06 Linkedin Corporation Message passing in a distributed graph database
US10180992B2 (en) 2016-03-01 2019-01-15 Microsoft Technology Licensing, Llc Atomic updating of graph database index structures
US10789295B2 (en) 2016-09-28 2020-09-29 Microsoft Technology Licensing, Llc Pattern-based searching of log-based representations of graph databases
US10467229B2 (en) * 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10754859B2 (en) 2016-10-28 2020-08-25 Microsoft Technology Licensing, Llc Encoding edges in graph databases
US10545945B2 (en) 2016-10-28 2020-01-28 Microsoft Technology Licensing, Llc Change monitoring spanning graph queries
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10402403B2 (en) 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10445321B2 (en) 2017-02-21 2019-10-15 Microsoft Technology Licensing, Llc Multi-tenant distribution of graph database caches
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
US10445370B2 (en) 2017-06-09 2019-10-15 Microsoft Technology Licensing, Llc Compound indexes for graph databases
US10671671B2 (en) 2017-06-09 2020-06-02 Microsoft Technology Licensing, Llc Supporting tuples in log-based representations of graph databases
US10628492B2 (en) 2017-07-20 2020-04-21 Microsoft Technology Licensing, Llc Distributed graph database writes
US10983997B2 (en) 2018-03-28 2021-04-20 Microsoft Technology Licensing, Llc Path query evaluation in graph databases
US11567995B2 (en) * 2019-07-26 2023-01-31 Microsoft Technology Licensing, Llc Branch threading in graph databases
US11113267B2 (en) 2019-09-30 2021-09-07 Microsoft Technology Licensing, Llc Enforcing path consistency in graph database path query evaluation
CN110990638B (en) * 2019-10-28 2023-04-28 北京大学 Large-scale data query acceleration device and method based on FPGA-CPU heterogeneous environment
CN113220820B (en) * 2020-12-15 2022-09-16 中国人民解放军国防科技大学 Efficient SPARQL query response method, device and equipment based on graph

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020143755A1 (en) 2000-11-28 2002-10-03 Siemens Technology-To-Business Center, Llc System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US20020194168A1 (en) * 2001-05-23 2002-12-19 Jinghua Min System and method for managing metadata and data search method using metadata
US6523028B1 (en) 1998-12-03 2003-02-18 Lockhead Martin Corporation Method and system for universal querying of distributed databases
US20040122804A1 (en) * 2002-12-19 2004-06-24 Guogen Zhang Materialized view signature and efficient identification of materialized view candidates for queries
US20040243613A1 (en) * 2003-05-30 2004-12-02 Mohammad Pourheidari System and method for creating a custom view from information in a managed data store
US20050065926A1 (en) * 2003-09-24 2005-03-24 International Business Machines Corportion Query transformation for union all view join queries using join predicates for pruning and distribution
US20080120594A1 (en) 2006-11-20 2008-05-22 Bruce David Lucas System and method for managing resources using a compositional programming model
US20080189758A1 (en) * 2007-02-01 2008-08-07 International Business Machines Corporation Providing Security for Queries to Electronic Product Code Information Services
US20080256026A1 (en) 2006-10-17 2008-10-16 Michael Glen Hays Method For Optimizing And Executing A Query Using Ontological Metadata
US20090006316A1 (en) 2007-06-29 2009-01-01 Wenfei Fan Methods and Apparatus for Rewriting Regular XPath Queries on XML Views
US20090055378A1 (en) 2007-08-22 2009-02-26 Alecu Iulian Systems and methods for providing improved access to phamacovigilance data
US7519599B2 (en) 2006-06-12 2009-04-14 International Business Machines Corporation System and method for scalable distribution of semantic web updates
US20090132474A1 (en) 2007-11-16 2009-05-21 Li Ma Method and Apparatus for Optimizing Queries over Vertically Stored Database
US20090182722A1 (en) 2008-01-15 2009-07-16 International Business Machines Corporation Method and system for navigation of a data structure
US20090234801A1 (en) 2008-03-11 2009-09-17 Semmle Limited Approximating query results by relations over types for error detection and optimization
US20090252319A1 (en) 2008-04-04 2009-10-08 Vesta Benjamin W Methods, systems, and computer readable media for automatically displaying customized call center operating statistics based on user profile information
US20090271179A1 (en) 2001-08-14 2009-10-29 Marchisio Giovanni B Method and system for extending keyword searching to syntactically and semantically annotated data
US20090292716A1 (en) 2008-05-23 2009-11-26 Nokia Corporation Apparatus, method and computer program product for processing resource description framework statements
US20090300002A1 (en) * 2008-05-28 2009-12-03 Oracle International Corporation Proactive Information Security Management
US20100114885A1 (en) 2008-10-21 2010-05-06 Microsoft Corporation Query submission pipeline using linq
US20100174682A1 (en) 2006-07-21 2010-07-08 Stephen Alstrin Methods, Systems and Computer Program Products for Monitoring Changes to Objects on a Computer System Using Information Models and Baselines
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
US20100268722A1 (en) * 2009-04-20 2010-10-21 Oracle International Corporation Access control for graph data
US20100332217A1 (en) 2009-06-29 2010-12-30 Shalom Wintner Method for text improvement via linguistic abstractions

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523028B1 (en) 1998-12-03 2003-02-18 Lockhead Martin Corporation Method and system for universal querying of distributed databases
US20020143755A1 (en) 2000-11-28 2002-10-03 Siemens Technology-To-Business Center, Llc System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US20020194168A1 (en) * 2001-05-23 2002-12-19 Jinghua Min System and method for managing metadata and data search method using metadata
US20090271179A1 (en) 2001-08-14 2009-10-29 Marchisio Giovanni B Method and system for extending keyword searching to syntactically and semantically annotated data
US20040122804A1 (en) * 2002-12-19 2004-06-24 Guogen Zhang Materialized view signature and efficient identification of materialized view candidates for queries
US20040243613A1 (en) * 2003-05-30 2004-12-02 Mohammad Pourheidari System and method for creating a custom view from information in a managed data store
US20050065926A1 (en) * 2003-09-24 2005-03-24 International Business Machines Corportion Query transformation for union all view join queries using join predicates for pruning and distribution
US7519599B2 (en) 2006-06-12 2009-04-14 International Business Machines Corporation System and method for scalable distribution of semantic web updates
US20100174682A1 (en) 2006-07-21 2010-07-08 Stephen Alstrin Methods, Systems and Computer Program Products for Monitoring Changes to Objects on a Computer System Using Information Models and Baselines
US20080256026A1 (en) 2006-10-17 2008-10-16 Michael Glen Hays Method For Optimizing And Executing A Query Using Ontological Metadata
US20080120594A1 (en) 2006-11-20 2008-05-22 Bruce David Lucas System and method for managing resources using a compositional programming model
US20080189758A1 (en) * 2007-02-01 2008-08-07 International Business Machines Corporation Providing Security for Queries to Electronic Product Code Information Services
US20090006316A1 (en) 2007-06-29 2009-01-01 Wenfei Fan Methods and Apparatus for Rewriting Regular XPath Queries on XML Views
US20090055378A1 (en) 2007-08-22 2009-02-26 Alecu Iulian Systems and methods for providing improved access to phamacovigilance data
US20090132474A1 (en) 2007-11-16 2009-05-21 Li Ma Method and Apparatus for Optimizing Queries over Vertically Stored Database
US20090182722A1 (en) 2008-01-15 2009-07-16 International Business Machines Corporation Method and system for navigation of a data structure
US20090234801A1 (en) 2008-03-11 2009-09-17 Semmle Limited Approximating query results by relations over types for error detection and optimization
US20090252319A1 (en) 2008-04-04 2009-10-08 Vesta Benjamin W Methods, systems, and computer readable media for automatically displaying customized call center operating statistics based on user profile information
US20090292716A1 (en) 2008-05-23 2009-11-26 Nokia Corporation Apparatus, method and computer program product for processing resource description framework statements
US20090300002A1 (en) * 2008-05-28 2009-12-03 Oracle International Corporation Proactive Information Security Management
US20100114885A1 (en) 2008-10-21 2010-05-06 Microsoft Corporation Query submission pipeline using linq
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
US20100268722A1 (en) * 2009-04-20 2010-10-21 Oracle International Corporation Access control for graph data
US20100332217A1 (en) 2009-06-29 2010-12-30 Shalom Wintner Method for text improvement via linguistic abstractions

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Correndo, G. et al. (Mar. 22-26, 2010). SPARQL Query Rewriting for Implementing Data Integration over Linked Data. EDBT 2010. pp. 1-11.
Faisal Alkhateeb et al., Extending SPARQL with Regular Expression Patterns (for Querying RDF) *, Journal Article, Elsevier Science, Jul. 22, 2008, pp. 1-48, France.
IBM (Mar. 16, 2009). A System and Method for Efficient RDF Query Processing. IP.com: IPCOM000180721D, pp. 1-5.
Kim, J. et al (Apr. 7-12, 2008). An RDF triple based access authorization specification considering subsumption relationships. IEEE, ICDE Workshop 2008, pp. 462-469.
Wangchao Le et al., RDF Access Control: Query rewriting over SPARQL security views, Journal Article, VLDB Endowment, 2010, pp. 1-11, Singapore.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140067793A1 (en) * 2012-08-31 2014-03-06 Infotech Soft, Inc. Query Optimization for SPARQL
US9256639B2 (en) * 2012-08-31 2016-02-09 Infotech Soft, Inc. Query optimization for SPARQL
US20140304824A1 (en) * 2013-04-05 2014-10-09 Oracle International Corporation Systems and methods for context-sensitive data security for business application performance optimization
US9235723B2 (en) * 2013-04-05 2016-01-12 Oracle International Corporation Systems and methods for context-sensitive data security for business application performance optimization

Also Published As

Publication number Publication date
US20120047114A1 (en) 2012-02-23

Similar Documents

Publication Publication Date Title
US8983990B2 (en) Enforcing query policies over resource description framework data
US11544623B2 (en) Consistent filtering of machine learning data
US9996595B2 (en) Providing full data provenance visualization for versioned datasets
CN112236763A (en) Regular expression generation using longest common subsequence algorithm on regular expression code
JP2024504060A (en) Network-based medical device control and data management system
EP3379427A1 (en) Order clustering method and device, and malicious information rejecting method and device
US10062030B2 (en) Tree structured data transform, by determining whether a predicate of a rule matches a given node in a set and applying a function responsive to the match
US20170024443A1 (en) Generating and executing query language statements from natural language
US20100281061A1 (en) Semantic Data Validation of Disjoint Data
US20120047124A1 (en) Database query optimizations
US20140082613A1 (en) Provisioning a virtual machine from one or more vm images
US9129213B2 (en) Inner passage relevancy layer for large intake cases in a deep question answering system
US20150066951A1 (en) Combined deterministic and probabilistic matching for data management
WO2017142519A1 (en) Content classes for object storage indexing systems
US20150121334A1 (en) Regression alerts
WO2018053568A1 (en) Systems and methods for accessing a database management system
US20180260447A1 (en) Advanced anomaly correlation pattern recognition system
US20230023290A1 (en) Method for managing function based on engine, electronic device and medium
US20150347429A1 (en) Managing Searches for Information Associated with a Message
US9275103B2 (en) Optimization of JOIN queries for related data
CN112948467B (en) Data processing method and device, computer equipment and storage medium
US20150006154A1 (en) Using a rule engine to manipulate semantic objects
CN112528594B (en) Control identification method and equipment
US10296990B2 (en) Verifying compliance of a land parcel to an approved usage
US20140025632A1 (en) Computer implemented systems and methods to augment data from data sources by simultaneously adding enhancements generated by different technologies

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DUAN, SONGYUN;KEMENTSIETSIDIS, ANASTASIOS;LE, WANGCHAO;AND OTHERS;SIGNING DATES FROM 20100812 TO 20100815;REEL/FRAME:024844/0530

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Expired due to failure to pay maintenance fee

Effective date: 20190317