CN108027818B - Inquiry based on figure - Google Patents

Inquiry based on figure Download PDF

Info

Publication number
CN108027818B
CN108027818B CN201580083229.9A CN201580083229A CN108027818B CN 108027818 B CN108027818 B CN 108027818B CN 201580083229 A CN201580083229 A CN 201580083229A CN 108027818 B CN108027818 B CN 108027818B
Authority
CN
China
Prior art keywords
inquiry
database
node
predicate
result
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.)
Active
Application number
CN201580083229.9A
Other languages
Chinese (zh)
Other versions
CN108027818A (en
Inventor
S·尚卡
R·W·斯蒂芬森
A·J·卡特
M·S-B·李
S·M·梅耶
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108027818A publication Critical patent/CN108027818A/en
Application granted granted Critical
Publication of CN108027818B publication Critical patent/CN108027818B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/248Presentation of query results
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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
    • 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/2455Query execution
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • G06F16/337Profile generation, learning or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Abstract

In order to request expectation information from chart database, system executes inquiry for chart database.Chart database can store figure, which includes that side between node, node and predicate to indicate and store have the data without index adjacency.Moreover, inquiry can identify the first side, first side is associated with the predicate of one or more nodes in the node in specified figure.In response to inquiry, system receives the result of the subset including figure.Particularly, the subset of figure may include the expectation information expressed in the associated structure of figure.

Description

Inquiry based on figure
Technical field
Described embodiment is related to the technology of the inquiry for executing database.More specifically, described embodiment It is related to the technology of the inquiry for executing chart database.
Background technique
It is typically organized and is stored in database with the associated data of application.For example, in relational database, Data are organized as one or more tables of row and column based on relational model, wherein the example that row indicates the type of data entity, And arranging indicates associated value.Information can be by using the inquiry expressed with structured query language (SQL) from relationship number It is extracted according to library.
In principle, by linking or being associated with the row in different tables, complicated relationship can be indicated on relational database In.It usually requires to execute query set and the then intersection of definitive result or knot in fact, extracting such complicated relationship Close result.In general, the knowledge by utilizing underlying relational model, the group polling can be identified and then with optimal Mode executes.
However, the relational model in relational database is not known in application usually.On the contrary, from visual angle, data usually quilt is applied It is considered as the layering of the object of associated pointer in memory.Therefore, many applications generate inquiry in scrappy mode, this It makes it difficult to identify relational database or execute query set in the best way.This can reduce performance when using application And user experience.
Various methods have been utilized in an attempt to solve the problems, such as this, including use Object-Relation Mapping device, so that using having Effect ground has understanding or knowledge about the relational model in relational database.However, generating and Object-Relation being maintained to reflect Emitter is often difficult, especially for big real-time application.
Alternatively, replace relational database, key assignments storage (such as NoSQL database) can be used.Key assignments storage can be with The set of the associated field of value including object or record and with record.Data in key assignments storage can pass through It is stored or is retrieved using the key for uniquely identifying record.By avoiding the use of predefined relational model, key assignments storage can To allow to access data (that is, with the angle with application as the object of pointer associated in memory using by data Spend consistent mode).However, lacking for relational model means to be likely difficult to optimize key assignments storage.Therefore, it is mentioned from key assignments storage Take complicated relationship that may also be difficult (for example, it can require multiple queries), this can also be reduced when using application Performance and user experience.
Detailed description of the invention
Fig. 1 is the block diagram for illustrating system according to an embodiment of the present disclosure.
Fig. 2 is the block diagram of the figure in the chart database in the system for illustrate Fig. 1 according to an embodiment of the present disclosure.
Fig. 3 is the process of the diagram method according to an embodiment of the present disclosure for requesting expectation information from chart database Figure.
Fig. 4 is the figure of the interaction of the chart database in the diagram system according to an embodiment of the present disclosure with Fig. 1.
Fig. 5 is the process of the diagram method according to an embodiment of the present disclosure for requesting expectation information from chart database Figure.
Fig. 6 is the figure of diagram series connection inquiry according to an embodiment of the present disclosure.
Fig. 7 is the process of the diagram method according to an embodiment of the present disclosure for requesting expectation information from chart database Figure.
Fig. 8 is the figure for illustrating the verifying of query result according to an embodiment of the present disclosure.
Fig. 9 is that diagram is according to an embodiment of the present disclosure for the first inquiry to be translated to the process of the method for side inquiry Figure.
Figure 10 is the figure of the interaction of the chart database in the diagram system according to an embodiment of the present disclosure with Fig. 1.
Figure 11 is the diagram figure according to an embodiment of the present disclosure that the first inquiry is translated to side inquiry.
Figure 12 is the compound pass in the diagram figure according to an embodiment of the present disclosure for indicating to be stored in chart database The flow chart of the method for system.
Figure 13 is the figure of the interaction of the chart database in the diagram system according to an embodiment of the present disclosure with Fig. 1.
It includes the figure for indicating the figure of central node of compositive relation that Figure 14, which is according to an embodiment of the present disclosure,.
Figure 15 is the computer of the diagram method according to an embodiment of the present disclosure for executing Fig. 3, Fig. 5, Fig. 7, Fig. 9 and Figure 12 The block diagram of system.
Table 1 provides side inquiry according to an embodiment of the present disclosure.
Table 2 provides the data according to an embodiment of the present disclosure with JavaScript object representation (JSON).
Table 3 provides side inquiry according to an embodiment of the present disclosure.
Table 4 provides the result of side inquiry according to an embodiment of the present disclosure.
Table 5 provides the command set according to an embodiment of the present disclosure for defining compositive relation.
Table 6 provides the command set according to an embodiment of the present disclosure for defining compositive relation.
Note that same reference numerals refer to corresponding part through attached drawing.Moreover, multiple examples of same section are by passing through The common prefix that dash is separated with example number is specified.
Specific embodiment
In order to from chart database request expectation information, system for chart database executes inquiry (its be sometimes referred to as " while looking into Ask ").Chart database can store figure, which includes side between node, node and predicate to indicate and store with cordless Draw the data of adjacency.Moreover, inquiry can identify it is associated with the predicate of one or more of node in specified figure First side.In response to inquiry, system receives the result of the subset including figure.Particularly, the subset of figure generally has to be included in figure Associated structure in express expectation information.
Moreover, the result of inquiry can be used in the query set of series connection or sequence.Particularly, system can be directed to The second inquiry is executed in response to the subset for the figure that original query receives.Second inquiry can identify and one in specified node Associated second side of a or multiple the second predicate.Then, in response to the second inquiry, system can receive second including figure Second result of subset.
In addition, the subset for the figure that system can be returned with auth response in inquiry.Particularly, system can be with the son of proof diagram Collection includes one or more certain edges thereofs (side such as corresponding with the predicate in inquiry).More generally, system can be with proof diagram Subset includes data and/or associated structure in the part of figure.
In order to promote to request expectation information from chart database, system, which can translate to initial query, can be directed to diagram data The inquiry that library executes.Particularly, by using primitive, system can by with a type of database in addition to chart database (such as relational database) associated initial query translates to inquiry.Note that primitive may include the data for expressing the type Relation schema or model in library, rule based on the side in figure, and with the table in the specified database with the type The associated information of the compound keys of node, side in corresponding figure and the relationship between predicate
Moreover, efficient storage and extraction in order to promote data, system can indicate in the figure being stored in chart database Compositive relation.Particularly, system (or user) can based on two or more nodes in the node in figure it Between two or more in while associated predicate in two or more predicates define compositive relation.So Afterwards, system can generate central node in figure, corresponding with compositive relation and hiding to the user of figure, so that central node Identifier it is invisible in the outside of chart database.Note that the identifier of central node can by using two or two with Upper predicate is specified in queries, so that data associated with compositive relation be allowed easily to be identified, modified and/or extracted.
In this way, which it is efficient from chart database to can permit information associated with complicated relationship It extracts on ground.Particularly, expectation letter can be provided in the case where no connection in the result of inquiry performed on chart database Breath, rather than execute multiple queries, intermediate result is stored in data storage and then connects intermediate result to obtain the phase Hope information.Therefore, figure memory technology can reduce computer system and be directed to relative to other kinds of database (such as relationship number Stored according to library or key assignments) application extract calculating time and memory requirement required for expectation information from chart database.And And in the mode for not changing the data in application access chart database (that is, being associated by being considered as to have in memory by data Pointer object layering) in the case where, figure memory technology can improve the performance of the application using chart database.Moreover, The improved performance of application can also improve user experience when using application.
In the following discussion, individual or user can be people (for example, the existing user of social networks or social network The new user of network).It is same or on the contrary, figure memory technology can be used by any kind of tissue (such as enterprise), it should It is understood to include corporation of profit, non-profit firm, groups of individuals (or group), Sole Proprietorship, government organs, partnership business Deng.
System and its embodiment used will now be described in we.Fig. 1 presents the system 100 of diagram execution figure memory technology Block diagram.Within the system, the user of electronic equipment 110 can be used and be executed within system 100 at least partially through using One or more software products or application and the service that is provided.As described further below, using can be by system 100 In engine execute.
Moreover, service can be at least by using the example for the software application be resident and executed on electronic equipment 110 Partly provide.In some embodiments, user can access the web page, and webpage is via network 112 by the communication server 114 It provides, and webpage is drawn by the web browser on electronic equipment 110.For example, the software executed on electronic equipment 110 is answered The application tool that can be at least partly embedded in webpage and be executed in the virtual environment of web browser.Cause This, application tool can be provided to user via client server architecture.
Independent utility can be by the software application of user's operation, or be resident and execute on electronic equipment 110 It (is such as answered by the software that the communication server 114 provides or installs and execute on electronic equipment 110 part of another application With).
By using system 100, various services can be provided.In the following discussion, social networks (and More generally, user network) and (such as promotion user between interaction professional social networks) be used as illustrated examples.Moreover, One in electronic equipment 110 (such as electronic equipment 110-1) is used as illustrated examples, and the user of electronic equipment can make With software application and by system 100 engine execute application one or more of come with the other users in social networks Interaction.For example, administrator's engine 118 can handle user account and user profiles, activity engine 120 can be in social networks Tracking and aggregate users behavior over time, content engines 122 can receive content (audio, video, the text of user's offer Sheet, figure, multimedia content, oral, written and/or record information) and document (such as demonstration, electronics can be provided a user Table, word processing document, webpage etc.), and storage system 124 can be maintained to may include the computer-readable of multiple equipment and be deposited The data structure of (that is, large-scale storage systems) in reservoir.
Note that each user in the user of social networks can have associated user profiles, user profiles include Personal and profession feature and experience (it is sometimes collectively referred to as " attribute " or " feature ").For example, user profiles may include: Demographic information's (such as age and gender), geographical location, current employer industry, employ Start Date, optionally employ Close Date, functional area (for example, engineering, sale, consulting), qualification in the tissue, employer's scale, education (are such as participated in School and acquisition degree), employ history (such as previous employer and current employer), career development, interest segmentation, user it is attached Belong to or usertracking or the group followed, position title, additional professional attribute (such as technical ability) and/or infers attribute (its May include or based on user behavior).Moreover, user behavior may include: to log in frequency, search rate, search for, clear Look at certain webpages, position associated with the user (such as IP address), the advertisement being presented to the user or recommendation, for advertisement or User response that person recommends, like or be segmented by the sharing of user's exchange, the interest liking or shares for this, and/or The history of User Activity when using social networks.In addition, the interaction between user can help to define socialgram, interior joint with Side between user's correspondence and node is corresponding with the interaction of user, correlation and/or connection.However, as further below Description, the node being stored in the figure in chart database can correspond to be additional to or different from social networks member The information of (user, company etc.).For example, node can correspond to attribute, characteristic or the feature of user.
As previously mentioned, for being stored for user and the data retrieved in the existing database in storage system 124 can To be difficult, because (this is sometimes referred to as using that can not access relational model associated with particular kind of relationship database " object relationship impedance mismatching ").In addition, if using relational database or key assignments storage is related as having in memory The layering of the object of the pointer of connection possibly can not then be executed for the inquiry that existing database executes in optimal manner.For example, When (it can be related to two or more sides, and it is sometimes referred to as " compound pass for application request and complicated relationship System ") associated data when, query set can be performed and then link or connection result.In order to illustrate the problem, draw System can be related to the first inquiry for three newest blog posts for the webpage of blog, for any associated comment Second inquiry and the third inquiry of the information for the author about comment.Because query set can be suboptimum, obtain Obtaining result can be time-consuming.The performance of the reduction can reduce user's body when using application and/or social networks in turn It tests.
In order to solve these problems, storage system 124 may include storage figure (for example, as information storage and retrieval system System or engine a part) chart database.Note that figure can permit for be related to quickly connecting data (such as The complex relationship of oblique or large-scale " being fanned out to " in storage system 124) obtain any accurate data model, the quick connection Close to be directed toward memory location pointer speed (and therefore can be well suited for by using method).
Fig. 2 presents the block diagram of Figure 21 0 in the chart database 200 that diagram is stored in system 100 (Fig. 1).Figure 21 0 can With include between node 212, node 212 in 214 and predicate 216 (214 major keys when it is specified or label) to indicate And storing has the data without index adjacency, that is, looks into so that each node 212 in Figure 21 0 is included in without using index The direct side of its adjacent node is arrived in the case where looking for.
Note that chart database 200 can be with Time constant navigation (that is, independently of size N, rather than with log (N) change) relational model realization.In addition, all relationships in chart database 200 can be the first kind (that is, equal). On the contrary, the row in table can be the first kind in relational database, but the relationship for being related to connection table can be the second class.This Outside, the mode in chart database 200, which changes and (is such as equivalent to addition or deletes the column in relational database), can use perseverance Fixing time, (in relational database, change pattern may be problematic, because it is generally embedded in associated answer for execution In).In addition, the result of inquiry can be the subset of Figure 21 0 for chart database 200, by the subset of Figure 21 0 Structure (that is, node, side) retains complete.
Figure memory technology may include allow with apply and/or the associated data efficient of social networks store and from The embodiment for the method that chart database 200 is retrieved.For example, as below with reference to described in Fig. 3 and Fig. 4, figure memory technology can be with Acquisition provides the subset of Figure 21 0 in response to inquiry.In addition, the result of inquiry can as below with reference to described in Fig. 5 and Fig. 6 To be used in the inquiry of series connection or sequence.Particularly, replace and the first inquiry and the second inquiry are independently applied to figure Database 200, the second inquiry can be applied to the result of the first inquiry (it includes the subset of Figure 21 0).In this way, multiple Miscellaneous relationship can be acquired directly in the case where the subsequent connection of not intermediate result or link, to reduce the acquisition phase Hope the time required for information and for obtaining the system resource that desired information uses.
In addition, can lead to as below with reference to described in Fig. 7 and Fig. 8 for the result for the inquiry that chart database 200 executes It crosses and relatively verifies result compared with known or expectation information.For example, since the result of inquiry includes the subset of Figure 21 0, because And the result can based in the predefined structure or subset of Figure 21 0 specific information (such as with side those of in inquiry or The matched side of person's predicate or predicate) it verifies.
In some embodiments, as below with reference to described in Fig. 9 to Figure 11, it is associated with another type of database or Person is with the language (such as JavaScript object representation or JSON) different from the associated language of chart database 200 Inquiry can be translated for being used together before executing inquiry for chart database 200 with chart database 200 based on side Format.In addition, including being hidden to the user of chart database 200 by definition as following referring to figs 12 to described in Figure 14 Compositive relation in Figure 21 0 of the identifier of central node, complicated relationship can indicate in chart database 200.In for example, The identifier of heart node can be invisible in the outside of chart database 200.On the contrary, the identifier of central node is (and therefore multiple Conjunction relationship) it can specify or identify based on the two or more sides that can be included in inquiry.
Referring back to Fig. 1, figure memory technology described herein, which can permit, not to be required using in chart database In the case where the knowledge for the relational model realized in 200, efficiently and promptly (for example, most preferably) storage of system 100 and Retrieval data associated with application and social networks.Therefore, storage diagram technology can improve application, social networks and system 100 availability and performance or operation, can reduce the dejected mood of user, and can improve user experience.Therefore, The participation of social networks or the use of social networks can be improved in figure memory technology, and social networks therefore can be improved Supplier income.
Note that the information in system 100 can be stored in one or more positions (that is, locally and/or remotely).This Outside, since the data can substantially be sensitive, thus it can be encrypted.For example, the data that are stored and/or via net The data that network 112 and/or 116 communicates can be encrypted.
The embodiment of figure memory technology will now be described in we.Fig. 3 presents diagram for requesting expectation letter from chart database The flow chart of the method 300 of breath, this method can be by the computer system (calculating in all systems 100 or Figure 15 as shown in figure 1 Machine system 1500) it executes.During operation, computer system executes inquiry (operation 316) for the chart database of storage figure.Note Meaning, figure may include that side between node, node and predicate to indicate and store have the data without index adjacency.This Outside, inquiry can identify the first side associated with the predicate of one or more nodes in the node in specified figure.Then, it counts Calculation machine system comes reception result (operation 318) in response to inquiring, and wherein result includes the subset of figure.Note that expectation information can be with Expression and/or result can not include Layer constraint and relation constraint in the associated structure of figure.
In addition, computer system can be optionally based on desired information, the inquiry with subject, predicate and object is generated (operation 310).For example, inquiry can be associated with the entity in specialized network.
Alternatively, computer system can optionally receive another inquiry (operation 312), and computer system can incite somebody to action Another inquiry is converted to inquiry (operation 314).For example, another inquiry can from a type of of different data models Database and/or a type of database different from chart database (such as relational database and/or hierarchical data base) are simultaneous Hold.In some embodiments, other inquiries are compatible with JSON.
In the exemplary embodiment, by using the one or more applications and storage in computer system interactively with each other System (or engine), method 300 are implemented.This is illustrated in Fig. 4.During this method, executed in computer system 412 Application 410 (its some or all of function that the system 100 in Fig. 1 may be implemented) can be mentioned to storage subsystem 124 For inquiry 414.Alternatively, inquiry 414 can be generated (for example, based on by applying 410 requested expectations in storage subsystem 124 Information) or can be by from the initial query received using 410, (it can be with not different from the compatibility of chart database 416 Language) translate to inquiry 414 (it is the side inquiry compatible with chart database 416).Particularly, initial query can from it is different Data model is associated, and not can be performed for chart database 416, until it is translated for inquiry 414.
Then, storage subsystem 124 can execute inquiry 414 for chart database 416 (it can be with to obtain result 418 Subset including the figure being stored in chart database 416).Then, storage subsystem 124 can provide result 420 to application 410 (it can be a part of identical with result 418 or result 418).
In the exemplary embodiment, chart database has triple (subject, meaning by using specified first kind relationship Language, object) indicate the mode on side.Use triple that can directly be understood by people as the fundamental relation offer in data Meaning.In some embodiments, four-tuple is used for acquisition/expression additional information (such as ownership or origin).However, In other embodiments, variable-length relationship uses in figure.
Note that each field in triple can have associated integer " entity identifier ".The side structure can be with Allow to be connected in integer field and occur, specifically, the set of integers such as arranged by reverse indexing.In addition, the domain can permit letter Clean expression and the realization quickly connected.In addition, triple can be mapped in structural stratification, such as usually in the upstream of storehouse Used in JSON or hypertext markup language (HTML) template.Therefore, query result can be converted with JSON.
In chart database, the single concept of " attribute " can be not present.On the contrary, two different side types can be by having Having two different triples of common intermediate node indicates.For example, between the member 1234 in social networks and member 4567 Member to member connection can be represented as Edge (x, ' left_member ', ' member/1234 '), Edge (x, ' left_ score’,6.7)、Edge(x,‘right_member’,‘member/4567’)、Edge(x,‘right_score’,23.78) With Edge (x, ' creation_date ', ' 2014-sep-26 '), wherein " x " indicate intermediate node.Note that being previously referred to as The data of " attribute " can be used as triple presence, the triple in the case where no additional complexity individually may be updated, It indexes and can inquire completely.As other predicates, the predicate for being used as attribute can create on demand.
It can be structured record for the physical store of figure and index and can directly be mapped to memory.Section Point and side can be identified by their offsets in physical record.The interrecord structure can create nature virtual time, should be certainly Right virtual time can be used for consistency, and can permit for switching performance to physical data and index without limitation simultaneously Row access.
As previously mentioned, side can be may have access to by reverse indexing.For example, " iSub (1234) " can produce integer node identification Symbol collection is record-shifted with (multiple) side, and the subject on side is " 1234 ".Subject-predicate and object with precomputation-predicate are handed over The reverse indexing of collection can permit the navigation of Time constant comprising Hash table is searched to obtain the collection on side, and array is then accessed To navigate across each side.
Note that reverse indexing with regard to them can not be able to include the meaning of the copy of any of data of its index and Speech is by " standardization ".Therefore, the mode of reverse indexing may include be mapped to from subject identifier side identifier collection (S → { I }), From predicate identifier be mapped to when identifier collection (P → { I }), being mapped to from object identifier identifier collection (O → { I }), from Subject identifier and predicate identifier are mapped to side identifier collection (S, P → { I }), and from object identifier and predicate identifier It is mapped to side identifier collection (O, P → { I }).In addition, side identifier collection can specify in turn triple (I [i] → S:s, P:p, O:o})。
In addition, solution standardization (that is, the part on side is copied in index) can by using 3 layers of memory hierarchy With cause faster execute and lesser storage overlay area (S → { P, O }, P → { S, O }, O → { P, S }, S, P → { O } with And O, P → { S }).This method can be equal to Inverted List.Note that index can not need to include side at all.In some implementations In example, this method can further extend, so that S → P → { O }, P → S → { O }, P → O → { S } and O → P → { S }.Cause This, there may be two predicates index, one from S forward to O and another is opposite.In principle, it is possible to need all six Arrangement, but in practice for most of inquiries for, four inquiries can be enough.
In solving standardized some embodiments, for some or all of social networks entity (individual member, company Deng), figure is created.In this example, figure may include with tens or even thousands of side single order connection it is complete Whole neighborhood.Although this method will replicate a large amount of data, the needs for index can be not present.On the contrary, side is single Sequential scan can store in memory.
Figure can be bigger with the figure of full storage than individual machine, therefore it can be split into fragment, each fragment With special purpose machinery.In some embodiments, mixing sharding method used, wherein massive index collection across many machines be split off with Allow concurrency, and small indexed set is kept on a single machine, query evaluation to be allowed to be based on " partial closure generation together simultaneously Boundary " makes a policy.For example, such figure subregion can have meter in a fragment with show business, in another fragment Calculation machine programmer has finance etc. in another fragment.On the contrary (since it is massive index collection), for professional social networks Influential member (such as Richard Branson) for, millions of follower sides can across multiple fragments come It spreads.
It is a database by specifying each fragment independently, and makes initial top inquiry using database alliance Estimator's work can obtain the flexibility in fragment realization.Particularly, it is expected each fragment will return its about result or In the case where all things that person's answer is known, alliance's query evaluation can provide complete query to all fragments first.Therefore, The range of response can be from complete answer to the member in the social networks that can be played a role in the result to member link collection.
In some embodiments, chart database (or database) uses Static Inquiry plan.In these embodiments, excellent Inquiry can be checked by changing device, and with the help of from the statistical information of data and index, generate the plan then to be executed. When the expense for starting or stopping execution big (such as when data are received from hard disk drive flow-type) and data can make When easily being summarized with statistics, which can work well.
However, since the diagram data being stored in memory does not have these characteristics usually, (it usually never exceeds From the L3 cache-miss of processor, and deflection is universal), thus in some embodiments, chart database (or Database) use dynamic query optimization.As shown in Table 1, three-hop path " a.b.c " can be embedded in biggish inquiry q In.Based on index, the number on the side with predicate a, b and c can be determined.It is assumed that those are 400,10M and 200k side respectively. Evaluation can be since a.This can identify the Candidate Set for x1 and x2, and these collection can correspondingly be not more than the number on side Mesh (for example 400 and 300).If there is 300 x2, even if then there are those sides 10M, it can also be with using b side continuation It is reasonable.For example, there may be at most 300 candidates for x3 if b is " birthplace ".However, if b is ratio Such as " following ", then x2 [0] can have 20 sides, x2 [1] can have 243 sides, and x2 [2] can have 5M.? In the case where static projection, there will be no other selections, in addition to checking through all 5M possibilities.Alternatively, by or Person evaluates c or considers some other constraint (constraint may remove x2 [2] from consideration) in omission, and dynamic evaluation person can It is fanned out to greatly with postponing processing, as long as its holding is more more expensive than other alternate items.
Table 1
In the exemplary embodiment, for blog data, the initial query come self-application be format with JSON.This quilt It shows in table 2, the JSON inquiry for the blog post of date sort descending is shown.As shown in Table 3, initial query The side compatible with chart database can be translated for or be expressed as to inquire (such as by using Datalog or Prolog table The side inquiry reached).The side inquiry in, the key from initial query becomes predicate, such as " text ", " comment " and "author".In addition, side inquiry may include character string (such as " comment ") and/or variable (such as " P " or " C ").Example Such as, side inquiry may include scheduled date, the order according to the date, the grammer that is limited to three blog posts etc..In table 3, note The thing on meaning " :-" left side is referred to as or is called rule.Side inquiry format in, multiple definition of same rule be or (OR), and by the thing that comma separates it is and (AND).
Table 2
Table 3
Table 4 show for side inquiry result comprising the side group in the subset of figure, each of these by subject, Predicate and object are specified.Note that in general, side inquiry is will to be applied to the constraint set of database, and export or tie Fruit is part or the subset that figure meets constraint (in the case where no Layer constraint or relation constraint).Since result includes The part (and its associated structure) of figure, in the mode or knowledge for not having the relational model realized in chart database In the case of, as a result it can be used.For example, inquiry can be applied to rule (that is, output of inquiry), and identical result can Will be obtained.For relational database, such correlation inquiry is not typically possible for SQL query.
Table 4
Output or result due to inquiry include the subset (without losing associated structure) of figure, thus inquiring can be with It is connected and is applied to previous result rather than entire figure.This is illustrated in Fig. 5, and Fig. 5 presents diagram for from figure Database request it is expected the flow chart of the method 500 of information, and method 500 can be by computer system (all systems as shown in figure 1 Computer system 1500 in 100 or Figure 15) it executes.During operation, chart database of the computer system for storage figure Execute inquiry (operation 316).Note that figure may include side between node, node and predicate to indicate and store with nothing Index the data of adjacency.In addition, inquiry can identify it is associated with the predicate of one or more of node in specified figure The first side.Then, computer system comes reception result (operation 318) in response to inquiring, and wherein result includes the subset of figure.
Then, computer system executes the second inquiry (operation 510) for the subset of figure, wherein second inquires mark and refer to Determine associated second side of the second predicate of one or more nodes in node.In addition, computer system is looked into response to second It askes to receive the second result (operation 512), wherein the second result includes the second subset of figure.Note that in the first subset of figure The needs that the second inquiry is executed to chart database can be eliminated by executing the second inquiry.
Operation in method 500 can be repeated.For example, computer system can execute one or more in the subset of figure A additional queries and/or can be executed in the second subset of figure third inquiry.
Note that the inquiry in operation 316 can be generated by computer system, or it can be received and/or translate, such as first Described in preceding reference Fig. 3.
Referring back to Fig. 4, before result 420 is provided, computer system 412 can be executed in result 418 one or Multiple queries 422 are to obtain result 420.
By the way that the result that one is inquired is transported to another inquiry, one group of relevant inquiring can be total for the group by definition Same subquery efficiently (that is, on calculating quickly) to execute.Series connection inquiry is illustrated in Fig. 6.Note that because in relationship The relational model implemented in database or realized is not included in the result for these inquiries, so such series connection is looked into It askes not typically possible about the inquiry executed for relational database.(in other words, (for example, with SQL) write a return The single query of multiple tables is not typically possible).Conversely, because side inquiry the result is that the subset of figure and including associated Structure, thus the result can be transported to subsequent query, extract what the expectation information needed relative to from relational database Time, this can reduce from chart database and extract the time required for expectation information.
In the exemplary embodiment, side query set be used to identify the film in chart database.Although table is simple The SQL query that relational database can be used in lookup (row in such as look-up table) promptly executes (such as in 2 μ s), Linking number but when for SQL query collection, in complicated relationship (such as Oscar with specific actors win a prize film) When increase, the time required for acquisition expected result or information can promptly increase.
On the contrary, by using chart database while query set obtain the time required for expectation information can independently of while look into The number of inquiry (it is corresponding with the number of connection).For example, being inquired by using one or more sides required for obtaining expectation information Time can be constant (such as 20 μ s).Therefore, if complicated relationship is related to many connections of the result of SQL query collection (such as tens to several hundred connections), the side query set of chart database can have superior function and (obtain expectation information that is, reducing The required time).
Further, since side inquiry the result is that the subset of figure, thus result can be verified to confirm that side inquiry is correct Ground executes.This is illustrated in Fig. 7, and Fig. 7 presents the process of method 700 of the diagram for requesting expectation information from chart database Figure, method 700 can be executed by computer system (computer system 1500 in all systems 100 or Figure 15 as shown in figure 1). During operation, computer system executes inquiry (operation 316) for the chart database of storage figure.Note that figure may include section Side and predicate between point, node have the data without index adjacency to indicate and store.In addition, inquiry can identify with Associated first side of predicate of one or more of node in specified figure.Then, computer system is come in response to inquiring Reception result (operation 318), wherein result includes the subset of figure.
Then, the subset (operation 710) of verification of computer system figure.For example, the corresponding part of the subset matching figure when figure When, the subset of figure is verified.Particularly, verifying (operation 710) can be related to the subset of figure compared with the predefined subset of figure Compared with computer system.Alternatively or additionally, the expectation subset for including side when the subset of figure is (such as related to specific predicate One or more sides of connection or node) when, the subset of figure can be verified.
In some embodiments, verifying (operation 710) is related to computer system: executing another inquiry for chart database; Received in response to inquiring another as a result, wherein another result includes another subset of figure;And by another subset of figure and figure Subset compare.For example, when between the lap of the subset in figure and another subset of figure in the presence of matching, the subset of figure It is verified.Alternatively or additionally, verifying (operation 710) includes computer system: executing another inquiry for chart database; Received in response to inquiring another as a result, wherein result includes corresponding with the subset on side (such as associated with specific predicate one A or multiple sides or node) information;And information is compared with the subset on side.
Note that the inquiry in operation 316 can be generated by computer system, or it can be received and/or translate, such as first Described in preceding reference Fig. 3.
Referring back to Fig. 4, computer system 412 can verify 424 results 418 or 420.For example, based in inquiry 414 Predicate, computer system 412 can verify one or more expectation sides or node is included in result 418 or result In 420.Verifying is also illustrated in fig. 8.Particularly, for the result 814 of the inquiry 812 of chart database 810 can with it is predetermined Justice or predetermined result 816 compare.Therefore, if inquiry 812 includes the predicate for company, result 814 should include At least one employee of the said firm, and this can be by by the list of the employee of the company in result 814 and predetermined result 816 It is verified compared to relatively.More generally, if inquiry 812 includes predicate, verification result 814 can be related to finding in result 816 Certain sides presence.
As discussed previously, figure memory technology can be related to translating.This is illustrated in Fig. 9, and Fig. 9 presents diagram and uses In the flow chart for the method 900 that the first inquiry is translated to side inquiry, method 900 can be by computer system (all as shown in figure 1 Computer system 1500 in system 100 or Figure 15) it executes.During operation, computer system receives the first inquiry (operation 910), the first inquiry is with the database of the first kind (for example, relational database, hierarchical data base or another type of data Library (such as database compatible with SQL)) and more generally, the database with another or different data model is related Connection.Then, the first inquiry is translated to side associated with the chart database of storage figure by using primitive and looked by computer system Ask (operation 914).
Note that the database of the first kind is different with the data model different from chart database and/or with chart database (for example, SQL can be used in the database of the first kind), and scheme to include side between node, node and predicate to indicate simultaneously And storage has the data without index adjacency.In addition, primitive includes: the relation schema in the database for express the first kind , rule based on the side in figure, and and the node in specified figure corresponding with the table in the database of the first kind, Bian He The associated information of the compound keys of relationship between predicate.It is compatible with chart database about inquiry is translated to by using primitive Form, further discussion is provided below.
Then, computer system executes side inquiry (operation 916) for chart database, wherein side inquiry mark and specified figure In node in one or more nodes the associated side of predicate.In addition, computer system is received in response to side inquiry As a result (operation 918), wherein result includes the subset of figure.
For example, side inquiry can be compatible with data record.More generally, side inquiry can be compatible with query language, inquiry Language is that statement formula makes it to express calculating logic in the case where not expressing associated control stream, and query language is Indicate any calculating by query language.
In some embodiments, computer system optionally determines primitive (operation 912).
In the exemplary embodiment, by using the one or more applications and storage in computer system interactively with each other System (or engine), method 900 are implemented.This is illustrated in Figure 10.During this method, held in computer system 412 Capable application 410 can provide initial query 1010 to storage subsystem 124.The initial query can with not with chart database 416 compatible different language.Then, storage subsystem 124 (either feeds the evaluation of side or figure to storage subsystem 124 Person's layer) initial query 1010 can be translated to by inquiry 1014 (it is compatible with chart database 416) in side by using primitive 1012. Note that primitive 1012 can be scheduled or can optionally be determined by computer system 412.
Then, storage subsystem 124 can to obtain result 418, (it can for the execution of chart database 416 side inquiry 1014 To include the subset for the figure being stored in chart database 416).Then, storage subsystem 124 can provide result to application 410 420 (it can be a part of identical with result 418 or result 418).
In the exemplary embodiment, side inquiry is translated for general statements type query language (that is, the language from initial query It is not specified how should realize in the case where to computer system indicate it is desired as a result, making it possible to optimised).This is looked into Data record can be based on or be compatible with by asking language.In addition, query language can be no less than SQL in terms of expressiveness. In other words, query language can be completely, so that any calculate can be expressed or express.Query language can have Following characteristics, such as: conversion, composition and sample query.
Figure conversion can be any function of obtaining complicated figure and generate simpler figure.In general, management number According to people and for certain purpose, using between the people of data, there are natural tight relationships.Application developer often wants to specific The information (for example, current employer of member) of coarseness, but be easily managed and usually require that the fact that will not only change is recorded. If current employer is stored directly, Open Management responsibility (that is, the employment status for checking member) can be created.Although pipe Reason is more feasible, but it is also more complicated employer-employee relationship, is related to employee, employer, Start Date and Close Date, promotes Deng not changing over.Its complicated figure that can produce can be then converted into the desired simpler structure of user.Figure The usual example of conversion is apart from stamp.Particularly, two hop relationship can be converted into single " stamp " side, and object is ordinal number Word " 2 ".
Figure composition allows user by reference to simpler some inquiries to establish complicated inquiry.In view of potentially scheming Data are usually abundant and complicated, the needs there may be encapsulation inquiry to reuse.For example, being directed to " database (people such as with 10 years experiences in database industry, has and promotes and come at least once industry veterans " From in database industry other people, approval for the relevant technical ability of database) inquiry can be looked into such as below It is reusable in inquiry: ' most frequent graduate schools of database industry Veterans, ' ' conferences frequented by ..., ' and ' Bay Area start-ups attracting ... in the past year’。
In sample query, universal simple correlation inquiry can it is desirable to find the kind of more data by building The example of class is easily expressed.Note that the layered structure of predicate title can be used in sample query.Moreover, example is looked into The mechanism that can be provided for the advanced interaction with relational database is provided.
Query language in figure memory technology can permit computer system (utilizing different associated databases) branch Many different initial queries are held, without executing optimization for each initial query language.Moreover, figure memory technology can be with It is related to expressing simple core (or based on primitive) the language inquiry compiling of initial query and evaluation compiling by using primitive The use of device.Primitive may include expression or apply the first kind database in relation schema, based on the side in figure Rule.For example, the rule based on member to member relation a to b and b to c can contact a, b and c.In addition, primitive can wrap Compound keys and information associated with compound keys are included, compound keys are specified in figure corresponding with the table in the database of the first kind Relationship between node, side and predicate.(however, the use of compound keys can depend on embodiment.More generally, Yong Hutong It crosses using language primitive and defines compositive relation.Then, it is realizing at layer, compound keys can be generated to identify compound pass in database System.Therefore, the user of system can not know the presence of compound keys.) particularly, table may include attribute corresponding with predicate. For example, compound keys can define node and member property (such as Start Date and Close Date, instruction on the side with member is arrived How connected score of member etc.) between one or more relationships.
Initial or the first inquiry (such as SQL query) can be converted into side inquiry (such as data by using primitive Record-compatibility inquiry).For example, SQL query can be associated with one or more tables, one or more tables have column and can It is constituted with being broken down into reference table (for example, column can be the variable in regular head) joint (for example, selection * x, y, z, U choosing Select * a, b, c).Then, SQL query can clearly be expressed or be utilized according to one or more rules and is one or more multiple Key (it can be based on one or more common node in chart database) are closed impliedly to be expressed.The process is illustrated in Figure 11 In, Figure 11 presents the figure that the first inquiry is translated to side inquiry by diagram.
For example, table can be defined as in SQL: M2M arranges a and b.Comparably, the relationship can be expressed in the figure Are as follows: M2M (a, b) :-Edge (a, ' lin ', h), Edge (b, ' rin ', h).Then, SQL (has from M2M, MFC and arranges a, b and c) A, b are selected, wherein a=' Sri ', M2M.a=MFC.c become M2M (a, b), Equal (a, ' Sri '), MFC (a2, b2, c2), Equal(a,c2).In another example, SQL query is from M2M Combination selection a, b, from MFC selection a, b can use rule set and R (' Sri ', _)? it is expressed as query (a, b) :-M2M (a, b), query (a, b) :-MFC (a, b), query (_, _)?.
Note that translation can also be run on the contrary, the inquiry of (such as SQL) in a different format is inquired from side.For example, Initial edge inquiry can be create view M2M (a, b), from while e1, while e2 select e1.s, e2.s, wherein e1.O=e2.O, E1.P=' lin ' and e2.P=' rin '.
In some embodiments, figure memory technology is used to define compositive relation.This is shown in FIG. 12, and Figure 12 is presented The flow chart of method 1200 of the diagram for indicating the compositive relation in the figure that is stored in chart database, method 1200 can be by Computer system (computer system 1500 in all systems 100 or Figure 15 as shown in figure 1) executes.During operation, it calculates Machine system is two or two associated based on two or more sides between two or more nodes in figure The above predicate defines compositive relation (operation 1210).(alternatively or additionally, user can be via the compound pass of pattern definition System).Then, computer system can be generated or receive the inquiry (operation with the side including two or more predicates 1212).In addition, computer system can execute inquiry (operation 1214) for chart database.
In addition, computer system generates the central node (operation 1216) corresponding to compositive relation in figure.The mark at center Knowledge can be determined by adjoint compound boundary.It these sides can be visible to user.Internally, computer system can or can be with Without using the different coding of the entity or for the identifier of the entity.Note that the identifier of central node can be to figure User hide, allow the identifier of central node invisible outside chart database.
In addition, computer system can optionally execute one or more additional operations (operation 1218).For example, computer System can be based on two or more predicates, assign local identifier to central node.In addition, such as below with reference to Figure 14 into The description of one step, computer system can add the identifier predicate between central node and node including local identifier Associated side and/or computer system can be added with central node and including one in two or more nodes The associated side of attribute predicate between the node of the attribute of node.
(note that side can be only added in appointed situation in user query at it.For example it is assumed that such as by user Previously specified, predicate lm and rm form compositive relation.Then -- Edge (h, " lm ", " m1 "), Edge (h, " rm ", " m2 "), Edge (h, " score ", " 123 ") connection of member to member with 123 score can be created.Now, if it is late User's publication following write-in when a little -- Edge (h, " lm ", " m1 "), Edge (h, " rm ", " m2 "), Edge (h, " score ", " 456 "), then by using the compositive relation between " lm " and " rm ", central node can be identified as by computer system The central node created in one write-in, and new " score " attribute can be added to the central node.
How to be defined depending on attribute predicate and perhaps configures attribute predicate and can be updated or replace.For example, working as attribute The radix of predicate is greater than for the moment, and computer system can be added with central node and including one in two or more nodes The associated another side of attribute predicate between another node of the Update attribute of a node.Alternatively, when the base of attribute predicate Number is equal to for the moment, and computer system can use the Update attribute of a node in two or more nodes to replace and belong to Property.
In the exemplary embodiment, using the one or more applications and storage system in computer system interactively with each other (or engine), method 1200 are implemented.This is illustrated in Figure 13.During this method, storage subsystem 124 can be based on two A or more than two predicates define the compositive relation 1310 in chart database 416.
Then, the application 410 executed in computer system 412 can provide inquiry 1312 to storage subsystem 124.It is standby Selection of land, storage subsystem 124 can be generated inquiry 1312 (for example, based on using 410 requested expectation information) or can be with Inquiry will be translated to from the received initial query of application 410 (it can be with different language not compatible from chart database 416) 1312 (it is the side inquiry compatible with chart database 416).
Then, storage subsystem 124 can execute inquiry 1312 for chart database 416 (it can be with to obtain result 418 Subset including the figure being stored in chart database 416).Moreover, storage subsystem 124 can be stored in chart database 416 In figure in generate and the central node 1314 to the user of figure hidden corresponding with compositive relation 1310.In addition, storage subsystem System 124 can provide results 420 to application 410 (it can be a part of identical with result 418 or result 418).
In the exemplary embodiment, figure memory technology is used by write-in chart database to create compositive relation.This is multiple Conjunction relationship can indicate include more than one side relationship, such as member to member connect.For example, there may be left member side, The anonymity of central node (it keeps together subgraph) or hidden identifiers and right member side.Therefore, compositive relation can be with Specified relationship group (rather than a relationship).In other words, compositive relation can specify a relationship or multiple relationships.
Figure 14 presents the figure including the figure for indicating the central node 1410 of compositive relation 1400.Central node 1410 can be with The specified side for uniquely defining compositive relation 1400.
As shown in figure 14, compositive relation 1400 can be based on the predefined predicate (mode) on the specified side from subject to object Carry out designated company-member relation.For example, predefined predicate may include: 1412 predicate of company, employ 1414 predicates, start day 1422 predicate of 1416 predicate of phase and optional Close Date.In addition, compositive relation 1400 may include attribute or feature, such as 1420 attribute of 1418 attribute of position and position.Note that in this example, " position " and " position " can not be the one of compositive relation Part, because they do not provide mark to relationship.In general, attribute or feature can change.Therefore, as described below , depend on radix, 1420 predicate of position can be replaced or compositive relation 1400 can use from central node 1410 to The side of 1424 attribute of optional position updates.In this way, when the position of employee changes, compositive relation 1400 can be repaired It orders, rather than copy pattern.
When write operation is specified with 1410 associated multiple predicates of central node, temporary identifier can be generated, and It is not that (it cannot scale well and can want before being written to figure for the definition of central node 1410 global identifier Multiple readings are asked to inquire).For example, as shown in table 5, when compositive relation can be defined by command set.Alternatively, if user is specified Compositive relation in mode, then pattern information and the write-in come in can be used to generate the compound marking symbol for node h.This It is shown in table 6, and computer system can be used these write-ins and generate compound marking symbol as { company:Company A, start date:0/2/11/09, employee:Karen }, that is, it is based on three predicates.
Table 5
Table 6
How to be looked into from chart database since composite node h is hidden (and accorded with and being identified by compound marking), thus in user It askes message context and can be not present and change (that is, inquiry may include first three side shown in table 6).Therefore, compositive relation can By provide it is convenient in a manner of identifier to require no knowledge about compositive relation and/or central node in user in the case where indicate figure Relationship in database.
In some embodiments, it is additional to by using multiple predicates and defines compositive relation, there are metadata.This yuan of number According to may include subject metadata (type and radix of such as node) and/or the object metadata (type and base of such as node Number).For example, individual can only be employed by a company, therefore the radix of company can be one in compositive relation.However, more Individual can start to work in identical Start Date, thus the radix of Start Date can be it is unlimited.
In some embodiments, chart database includes the compositive relation of different types.Side compositive relation can be variable , allow in compositive relation while be added or remove, and more generally, side compositive relation can be deleted. (however, the side of specified identifier cannot be added or remove).Text compositive relation can be constant.The compound pass of text The content of system can not be changed, and text compositive relation is only absorbed as specified by text compositive relation in other no entities Relationship in the case where can be deleted.For example, the position (latitude and longitude) for the building that company is stationed can be included in In text compositive relation.The text compositive relation can be only deleted in the case where another company quarters in the building.
In method 300 (Fig. 3 and Fig. 4), 500 (Fig. 5), 700 (Fig. 7), 900 (Fig. 9 and Figure 10) and 1200 (Figure 12 and figures 13) in some embodiments, there may be additional or less operations.In addition, the sequence of operation can change and/or two Or more than two operations can be combined into single operation.
The embodiment for executing figure memory technology He its computer system used will now be described in we.Figure 15 is presented Illustrate execution method 300 (Fig. 3 and Fig. 4), 500 (Fig. 5), 700 (Fig. 7), 900 (Fig. 9 and Figure 10) and 1200 (Figure 12 and Figure 13) Computer system 1500 (all systems 100 as shown in figure 1) block diagram.Computer system 1500 includes that one or more processing are single Member or processor 1510 (it is sometimes referred to as " processing module "), communication interface 1512, user interface 1514, memory 1514 With one or more signal wires 1522 that these components are coupled.Note that one or more processors 1510 can prop up Parallel processing and/or multithreading operation are held, communication interface 1512 can have persistent communication connection, and one or more signals Line 1522 may be constructed communication bus.Moreover, user interface 1515 may include: display 1516 (such as touch screen), keyboard 1518 and/or indicator 1520 (such as mouse).
Memory 1524 in computer system 1500 may include volatile memory and/or nonvolatile memory. More specifically, memory 1524 may include: ROM, RAM, EPROM, EEPROM, flash memory, one or more smart card, One or more disk storage equipments and/or one or more optical storage apparatus.Memory 1524 can store an operating system 1526, operating system 1526 includes for handling the process for being directed to the various basic system services for executing the relevant task of hardware (or instruction set).Process (or instruction set) can also be stored in communication module 1528 by memory 1524.These communications Process can be used for one or more computers and/or server communication, including it is remotely fixed relative to computer system 1500 The computer and/or server of position.
Memory 1524 can also include multiple program modules, comprising: social networks module 1530, administrator module 1532, active module 1534, memory module 1536 and/or encrypting module 1538.Note that these program modules (or instruction set) One or more of may be constructed computer program mechanism (that is, software).
During the operation of computer system 1500, the user of the social networks promoted by social networks module 1530 can be with By using the setting of administrator module 1532 and account executive.In addition, social networks module 1530 can be via communication module Interaction between 1528 and the promotion user of communication interface 1512.These interactions can be tracked by active module 1534 (such as works as user The document (and more generally, content) provided in the social networks realized by using social networks module 1530 is provided When, watch the behavior of user).
Data associated with social networks can be stored in chart database 1540 by memory module 1536, chart database 1540 storages have Figure 154 2 of node 1544, side 1546 and predicate 1548.It is looked into when memory module 1536 is received from application 1552 When asking 1554, memory module 1536 can execute inquiry 1554 to obtain result 1556 for chart database 1540, and as a result 1556 It may include the subset of Figure 154 2.Moreover, memory module 1536 can be for result 1556 rather than Figure 154 2 executes subsequent look into Ask 1558.Note that memory module 1536 can by by result 1556 at least partly with expectation or scheduled (or predetermined Justice) (one in side 1546 such as based on one or more predicates in the predicate 1548 in inquiry 1554 of result 1560 Or the presentation on multiple sides) compare and relatively carry out verification result 1556.
In some embodiments, by using one or more rule before executing inquiry 1554 for chart database 1540 Then or the initial query 1562 received from application 1552 is translated to inquiry by one or more compound keys, memory module 1536 1554.For example, initial query 1562 can be associated with the another type of database in addition to chart database 1540, and look into Asking 1554 can be side inquiry.
In addition, by using the identifier for defining central node 1550 when two or more in 1546, Memory module 1536 can indicate the compositive relation 1564 in chart database 15340.
Since the information in computer system 1500 can substantially be sensitive, thus in some embodiments, storage In at least some of data in memory 1524 data and/or the data communicated by using communication module 1528 At least some data are encrypted by using encrypting module 1538.
The instruction in various modules in memory 1524 can with high level language, Object-Oriented Programming Language and/ Or compilation or machine language are realized.It perhaps interprets note that programming language can be compiled for example, can configure or matched It is set to and is performed by one or more processors.
Although computer system 1500 is illustrated as having several discrete items, Figure 15 is intended to the function of various features Description, various features can reside in computer system 1500 rather than the structural schematic diagram of embodiment described herein In.In practice, and as recognizing those skilled in the art, the function of computer system 1500 can divide Wherein each server group or calculating unit execute the specific subset of function to cloth on a large amount of server perhaps computer. In some embodiments, some or all of function of computer system 1500 function is implemented in one or more dedicated collection At in circuit (ASIC) and/or one or more digital signal processors (DSP).
Computer system (such as computer system 1500) and electronic equipment, computer kimonos in system 100 (Fig. 1) Business device may include that maneuvering calculation machine readable data or can be passed between two or more computing systems by network Pass one in the various equipment of such data, comprising: personal computer, laptop computer, tablet computer, large-scale meter Calculation machine, portable electronic device (such as cellular phone or PDA), server and/or client computer are (in client-clothes It is engaged in device framework).Moreover, network 112 (Fig. 1) may include: internet, WWW (WWW), Intranet, cellular phone network, The combination of LAN, WAN, MAN or network, or make the other technologies for the communication being able to achieve between computing system.
System 100 (Fig. 1) and/or computer system 1500 may include less component or additional component.In addition, Two or more components can be combined into single component, and/or the position of one or more components can be changed.? In some embodiments, the function of system 100 (Fig. 1) and/or computer system 1500 can more with hardware and less It realizes or less with hardware and is more realized with software with software, as known in the art.
Although social networks is utilized as the explanation in previous embodiment, more generally, figure memory technology can be with For storing and retrieving or inquiring data associated with various applications, service or system.Moreover, figure storage skill Art can use in applying below, and the communication between different entities (people, tissue etc.) or interaction in this application can be with It is described by socialgram.Note that people can loosely be attached to website (spectators or user of such as website), and therefore can be with Including not associated people's (opposite with the user of the social networks with user account) in form.Therefore, the connection in socialgram It can be than by less being defined rigorously by clearly receiving of the individual to request, with associated with each other or establish connection (such as Previously communicated with one another the people of (or not having) by using communication protocol, or had previously watched mutual homepage and (or do not had Have) people etc.).In this way, figure memory technology can be used to extend correlation in the crowd that more loosely defines or The potentially quality of the interaction between people interested and value-added service.
In the foregoing written description, we refer to " some embodiments ".Note that " some embodiments " describes all possible implementations The subset of example, but it is not always the same subsets of specified embodiment.
Foregoing description is intended to that those skilled in the art is manufactured and using the disclosure, and in specific application It is provided in the context required with it.Moreover, purpose of the foregoing description of embodiment of the disclosure merely for diagram and description It is presented.They are not intended to exhausted or the disclosure are limited to disclosed form.Therefore, many modifications and variations for It will be apparent for those skilled in the art, and without departing from the spirit and scope of the disclosure, herein The General Principle of definition can be applied to other embodiments and application.In addition, the discussion of previous embodiment is not intended to be limited to this public affairs It opens.Therefore, the disclosure be not limited to shown in embodiment, but it is consistent with principles and features disclosed herein in order to meet Widest range.
Various embodiments are disclosed in following numbered clause.These clauses are presented in four groups (A, B, C and D), However, the skilled person will understand that, the feature from different embodiment groups can according to the needs and situation of any given realization come It is appropriately combined.
A1. a kind of method for requesting the computer system of expectation information to be realized from chart database, method include:
The first inquiry is executed for the chart database of storage figure, in which:
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
First the first side of inquiry mark, the first predicate on the first side and one or more nodes in the node in specified figure It is associated;
First is received as a result, wherein the first result includes the first subset of figure in response to the first inquiry;
The second inquiry is executed for the first subset of figure, wherein second the second side of inquiry mark, the second side and specified node In one or more nodes the second predicate it is associated;And
Second is received as a result, wherein the second result includes the second subset of figure in response to the second inquiry.
A2. according to the method for clause A1, wherein method further includes that one or more add is executed in the first subset of figure Inquiry.
A3. according to the method for any aforementioned clause, wherein method further includes executing third inquiry to the second subset of figure.
A4. it according to the method for any aforementioned clause, eliminates wherein executing the second inquiry in the first subset of figure in figure number According to the needs for executing the second inquiry on library.
A5. according to the method for clause A1, wherein method further includes that the first inquiry is generated based on desired information.
A6. according to the method for clause A1, wherein method further include:
Receive from and the different database of chart database type compatibility another inquiry;
Another inquiry is converted into inquiry.
A7. according to the method for clause A6, wherein the type of database includes following one: relational database and individual-layer data Library
A8. according to the method for clause A1, wherein method further include:
Receive another inquiry compatible with JavaScript object representation;And
Another inquiry is converted into inquiry.
A9. according to the method for any aforementioned clause, wherein the first subset of figure includes the table in the associated structure of figure The expectation information reached.
A10. a kind of device, comprising:
One or more processors;
Memory;And
Program module, wherein program module is stored in memory, and during the operation of the device, program module by One or more processors are executed to request expectation information from chart database, and program module includes:
For executing the instruction of the first inquiry for the chart database of storage figure, in which:
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
First the first side of inquiry mark, the first predicate on the first side and one or more nodes in the node in specified figure It is associated;
For receiving the instruction of the first result in response to the first inquiry, wherein the first result includes the first subset of figure;
The instruction of the second inquiry is executed for the first subset for figure, wherein second the second side of inquiry mark, the second side It is associated with the second predicate of one or more nodes in specified node;And
For receiving the instruction of the second result in response to the second inquiry, wherein the second result includes the second subset of figure.
A11. according to the device of clause A10, wherein program module further includes for executing one in the first subset of figure Or the instruction of multiple additional queries.
A12. according to the device of clause A10, wherein program module further includes executing third for the second subset to figure to look into The instruction of inquiry.
A13. according to the device of clause A10 to any one of A12, wherein executing the second inquiry in the first subset of figure Eliminate the needs that the second inquiry is executed on chart database.
A14. according to the device of clause A10, wherein program module further includes looking into for generating first based on desired information The instruction of inquiry.
A15. according to the device of clause A10, wherein program module further includes for instruction below:
Receive from and the different database of chart database type compatibility another inquiry;
Another inquiry is converted into inquiry.
A16. according to the device of clause A15, wherein the type of database includes following one: relational database and hierarchy number According to library
A17. according to the device of clause A10, wherein program module further includes for instruction below:
Receive another inquiry compatible with JavaScript object representation;And
Another inquiry is converted into inquiry.
A18. according to the device of clause A10 to any one of A17, wherein the first subset of figure including the use of figure correlation The expectation information of the structure representation of connection.
A19. a kind of system, comprising:
Processing module comprising the non-transitory computer-readable medium of store instruction instructs upon being performed, so that being System:
The first inquiry is executed for the chart database of storage figure, in which:
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
First the first side of inquiry mark, the first predicate on the first side and one or more nodes in the node in specified figure It is associated;
First is received as a result, wherein the first result includes the first subset of figure in response to the first inquiry;
The second inquiry is executed for the first subset of figure, wherein second the second side of inquiry mark, the second side and specified node In one or more nodes the second predicate it is associated;And second is received as a result, wherein second in response to the second inquiry It as a result include the second subset of figure.
A20. according to the system of clause A19, wherein non-transitory computer-readable medium also store instruction, instructs to work as and be held When row, so that system:
One or more additional queries are executed in the first subset of figure.
B1. a kind of method for requesting the computer system of expectation information to be realized from chart database, method include:
Inquiry is executed for the chart database of storage figure, in which:
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
Inquiry identifies side associated with the predicate of one or more nodes in the node in specified figure;
Carry out reception result in response to inquiring, wherein result includes the subset of figure;And
The subset of proof diagram.
B2. according to the method for clause B1, wherein the subset of figure is tested when the corresponding part of the subset of figure matching figure Card.
B3. according to the method for clause B1 or B2, wherein verifying is related to the subset of figure compared with the predefined subset of figure Compared with.
B4. according to the method for clause B1 to any one of B3, wherein when the subset of figure includes the desired subset on side, The subset of figure is verified.
B5. according to the method for clause B1 to any one of B4, wherein verifying includes:
Another inquiry is executed for chart database;
Received in response to inquiring another as a result, wherein another result includes another subset of figure;And
Another result of figure is compared with the subset of figure.
B6. according to the method for clause B5, wherein existing when between the lap of the subset in figure and another subset of figure When matching, the subset of figure is verified.
B7. according to the method for clause B1, wherein verifying is related to:
Another inquiry is executed for chart database;
Received in response to inquiring another as a result, wherein result includes information corresponding with the subset on side;And
Information is compared with the subset on side.
B8. according to the method for clause B1, wherein method further includes that inquiry is generated based on desired information.
B9. according to the method for clause B1, wherein method further include:
Receive from and the different database of chart database type compatibility another inquiry;
Another inquiry is converted into inquiry.
B10. according to the method for clause B1, wherein method further include:
Receive another inquiry compatible with JavaScript object representation;And
Another inquiry is converted into inquiry.
B11. a kind of device, comprising:
One or more processors;
Memory;And
Program module, wherein program module is stored in memory, and during the operation of the device, program module by One or more processors are executed to request expectation information from chart database, and program module includes:
For executing the instruction of inquiry for the chart database of storage figure, in which:
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
Inquiry identifies side associated with the predicate of one or more nodes in the node in specified figure;
For carrying out the instruction of reception result in response to inquiring, wherein result includes the subset of figure;And
The instruction of subset for proof diagram.
B12. according to the device of clause B11, wherein the subset of figure is tested when the corresponding part of the subset of figure matching figure Card.
B13. according to the device of clause B11 to any one of B12, wherein the instruction for verifying includes for by figure Instruction of the subset compared with the predefined subset of figure.
B14. according to the device of clause B11 to any one of B13, wherein when the subset of figure includes the desired subset on side When, the subset of figure is verified.
B15. according to the device of clause B11, wherein the instruction for verifying includes being used for instruction below:
Another inquiry is executed for chart database;
Received in response to inquiring another as a result, wherein another result includes another subset of figure;And
Another subset of figure is compared with the subset of figure.
B16. according to the device of clause B15, wherein being deposited when between the lap of the subset in figure and another subset of figure In matching, the subset of figure is verified.
B17. according to the device of clause B11, wherein the instruction for verifying includes being used for instruction below:
Another inquiry is executed for chart database;
Received in response to inquiring another as a result, wherein result includes the information of the subset corresponding to side;And
Information is compared with the subset on side.
B18. according to the device of clause B11, wherein program module further includes for generating inquiry based on desired information Instruction.
B19. according to the device of clause B11, wherein program module further includes for instruction below:
Receive from and the different database of chart database type compatibility another inquiry;
Another inquiry is converted into inquiry.
B20. a kind of system, comprising:
Processing module comprising the non-transitory computer-readable medium of store instruction instructs upon being performed, so that being System:
Inquiry is executed for the chart database of storage figure, in which:
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
Inquiry identifies side associated with the predicate of one or more nodes in the node in specified figure;
Carry out reception result in response to inquiring, wherein result includes the subset of figure;And
The subset of proof diagram.
C1. a kind of method that the computer system for the first inquiry to be translated to side inquiry is realized, method include:
Receive the first inquiry associated with the database of the first kind;
The first inquiry side associated with the chart database of storage figure is translated to by using primitive to inquire, in which:
The database of the first kind has the data model different from chart database;
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
Primitive includes: the relation schema in the database for express the first kind, rule based on the side in figure, Yi Jiyu The compound keys of node, side in specified figure corresponding with the table in the database of the first kind and the relationship between predicate are associated Information;
It executes side for chart database to inquire, wherein side inquiry mark and one or more sections in the node in specified figure The associated side of predicate of point;And
Carry out reception result in response to side inquiry, wherein result includes the subset of figure.
C2. according to the method for clause C1, wherein the database of the first kind includes following one: relational database and layering Database
C3. according to the method for clause C1, wherein the database of the first kind is different from relational database.
C4. according to the method for clause C1 to any one of C3, wherein the first inquiry is compatible with structured query language.
C5. according to the method for clause C1 to any one of C4, wherein side inquiry is compatible with data record.
C6. according to the method for clause C1, wherein side inquiry is compatible with statement formula query language, and query language is statement formula So that it expresses calculating logic in the case where not expressing associated control stream, and query language is completely to make arbitrarily Calculating is indicated by query language.
C7. according to the method for clause C1, wherein method further includes determining primitive.
C8. a kind of device, comprising:
One or more processors;
Memory;And
Program module, wherein program module is stored in memory, and during the operation of the device, program module by One or more processors are executed so that the first inquiry is translated to side inquiry, and program module includes:
For receiving the instruction of the first inquiry associated with the database of the first kind;
For the first inquiry to be translated to the finger of side inquiry associated with the chart database of storage figure by using primitive It enables, in which:
The database of the first kind has the data model different from chart database;
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
Primitive includes: the relation schema in the database for express the first kind, rule based on the side in figure, Yi Jiyu The compound keys of node, side in specified figure corresponding with the table in the database of the first kind and the relationship between predicate are associated Information;
For executing the instruction of side inquiry for chart database, wherein side inquiry is identified and one in the node in specified figure The associated side of predicate of a or multiple nodes;And
For inquiring the instruction for carrying out reception result in response to side, wherein result includes the subset of figure.
C9. according to the device of clause C8, wherein the database of the first kind includes following one: relational database and layering Database
C10. according to the device of clause C8, wherein the database of the first kind is different from relational database.
C11. according to the device of clause C8 to any one of C10, wherein the first inquiry is compatible with structured query language.
C12. according to the device of clause C8 to any one of C11, wherein side inquiry is compatible with data record.
C13. according to the device of clause C8, wherein side inquiry is compatible with query language, and query language is making for statement formula It expresses calculating logic in the case where not expressing associated control stream, and query language is completely to make any calculating It is indicated by query language.
C14. according to the device of clause C8, wherein program module further includes the instruction for determining primitive.
C15. a kind of system, comprising:
Processing module comprising the non-transitory computer-readable medium of store instruction instructs upon being performed, so that being System:
Receive the first inquiry associated with the database of the first kind;
The first inquiry side associated with the chart database of storage figure is translated to by using primitive to inquire, in which:
The database of the first kind has the data model different from chart database;
Figure includes that side between node, node and predicate to indicate and store have the data without index adjacency;With And
Primitive includes: the relation schema in the database for express the first kind, rule based on the side in figure, Yi Jiyu The compound keys of node, side in specified figure corresponding with the table in the database of the first kind and the relationship between predicate are associated Information;
It executes side for chart database to inquire, wherein side inquiry mark and one or more sections in the node in specified figure The associated side of predicate of point;And
Carry out reception result in response to side inquiry, wherein result includes the subset of figure.
C16. according to the system of clause C15, wherein the database of the first kind includes following one: relational database and point Layer data library
C17. according to the system of clause C15, wherein the database of the first kind is different from relational database.
C18. according to the system of clause C15 to any one of C17, wherein the first inquiry is simultaneous with structured query language Hold.
C19. according to the system of clause C15, wherein side inquiry is compatible with query language, and query language is making for statement formula It expresses calculating logic in the case where not expressing associated control stream, and query language is completely to make any calculating It is indicated by query language.
C20. according to the system of clause C15, wherein non-transitory computer-readable medium also store instruction, instructs to work as and be held When row, so that system determines primitive.
D1. the side that a kind of computer system of the compositive relation in figure for indicating to be stored in chart database is realized Method, method include:
Associated two or two based on two or more sides between two or more nodes in figure A above predicate defines compositive relation;And
Central node is generated in figure, central node corresponds to compositive relation and has the mark hidden to the user of figure Symbol.
D2. according to the method for clause D1, wherein method further includes generating to have the side including two or more predicates Inquiry;And
The identifier of two of them or more than two predicate designated centers nodes.
D3. according to the method for clause D2, wherein method further includes executing inquiry for chart database.
D4. according to the method for clause D1, wherein method further includes being referred to based on two or more predicates to central node Identifier is sent, identifier is local identifier.
D5. according to the method for clause D4, wherein method further includes addition with following, and the side is with central node and including part Identifier predicate between the node of identifier is associated.
D6. according to the method for clause D1, wherein method further includes addition with following, and the side is with central node and including two Or the attribute predicate between the node of the attribute of a node in more than two nodes is associated.
D7. according to the method for clause D6, wherein method further includes when the radix of attribute predicate is greater than a period of time, addition and center Attribute predicate phase between node and another node of the Update attribute including a node in two or more nodes Associated another side.
D8. according to the method for clause D6, wherein method further include when the radix of attribute predicate is equal to for the moment, using two or The Update attribute of a node in more than two nodes replaces attribute.
D9. according to the method for clause D1 to any one of D8, wherein the identifier of central node hides the user of figure, So that the identifier of central node is invisible outside chart database.
D10. according to the method for clause D1 to any one of D9, wherein figure includes side and the predicate between node, node There are the data without index adjacency to indicate and store.
D11. a kind of device, comprising:
One or more processors;
Memory;And
Program module, wherein program module is stored in memory, and during the operation of the device, program module by One or more processors are executed to indicate that the compositive relation in the figure being stored in chart database, program module include:
For two associated based on two or more sides between two or more nodes in figure Or more than two predicates define the instruction of compositive relation;And in figure generate correspond to compositive relation and have pair The instruction of the central node for the identifier that the user of figure hides.
D12. according to the device of clause D11, wherein program module further include for generate have include two or two with The instruction of the inquiry on the side of upper predicate;And
The identifier of two of them or more than two predicate designated centers nodes.
D13. according to the device of clause D12, wherein program module further includes the finger for executing inquiry for chart database It enables.
D14. according to the device of clause D11, wherein program module further include for based on two or more predicates and The instruction accorded with to central node assigned identification, identifier is local identifier.
D15. according to the device of clause D14, wherein program module further includes for adding with central node and including part The instruction on the associated side of identifier predicate between the node of identifier.
D16. according to the device of clause D11, wherein program module further includes for adding with central node and including two Or the instruction on the associated side of attribute predicate between the node of the attribute of a node in more than two nodes.
D17. according to the device of clause D16, wherein program module further includes being greater than for the moment for the radix when attribute predicate, Between addition and central node and another node of the Update attribute including a node in two or more nodes The instruction of the associated another side of attribute predicate.
D18. according to the device of clause D16, wherein program module further includes being equal to for the moment for the radix when attribute predicate, Utilize the instruction of the Update attribute replacement attribute of a node in two or more nodes.
D19. according to the device of clause D11 to any one of D18, wherein the identifier of central node is hidden to the user of figure Hiding, so that the identifier of central node is invisible outside chart database.
D20. a kind of system, comprising:
Processing module comprising the non-transitory computer-readable medium of store instruction instructs upon being performed, so that being System:
Definition indicates the compositive relation of the compositive relation in the figure that is stored in chart database, wherein compositive relation be based on Two or more associated predicates of two or more sides between two or more nodes in figure;And
Central node is generated in figure, central node corresponds to compositive relation and has the mark hidden to the user of figure Symbol.

Claims (20)

1. a kind of method that the computer system for the chart database request expectation information from storage figure is realized, the method packet It includes:
The initial query compatible with the database of the first kind is received, the database of the first kind and the chart database are not Together;
The initial query is converted into the inquiry using primitive, wherein the primitive includes:
Rule, based on the side in figure, relation schema in the database of the first kind described in the regular expression, and
Information associated with compound keys, the compound keys are specified in figure corresponding with the table in the database of the first kind Node, the relationship between side and predicate,
The inquiry is executed for the chart database, in which:
The figure includes the side and predicate between node, the node, has the number without index adjacency to indicate and store According to;And
The inquiry identifies the first side associated with a predicate, and the predicate specifies one in the node in the figure A or multiple nodes;And
Carry out reception result in response to the inquiry, wherein the result includes the subset of the figure.
2. according to the method described in claim 1, wherein:
The method also includes generating the inquiry with subject, predicate and object based on the expectation information.
3. according to the method described in claim 2, wherein the inquiry is associated with the entity in specialized network.
4. according to the method described in claim 1, wherein the type of the database includes following one: relational database and point Layer data library.
5. according to the method described in claim 1, wherein the method also includes:
Receive another inquiry compatible with JavaScript object representation;And
Another inquiry is converted into the inquiry.
6. according to the method described in claim 1, wherein the subset of the figure includes: in the associated structures of the figure The expectation information of expression.
7. according to the method described in claim 1, wherein the result does not include Layer constraint and relation constraint.
8. according to the method described in claim 1, wherein the inquiry includes character string.
9. according to the method described in claim 1, wherein the inquiry includes variable.
10. according to the method described in claim 1, further include:
The second inquiry is executed for the result;And
Second is received as a result, wherein second result includes the second subset of the figure in response to second inquiry.
11. a kind of device, comprising:
One or more processors;
Memory;And
Program module, wherein described program module is stored in the memory, and during the operation of described device, institute Program module is stated to be executed by one or more of processors to request expectation information, described program from the chart database of storage figure Module includes:
For receiving the instruction of the initial query compatible with the database of the first kind, the database of the first kind with it is described Chart database is different;
For the initial query to be converted to the instruction of the inquiry using primitive, wherein the primitive includes:
Rule, based on the side in figure, relation schema in the database of the first kind described in the regular expression, and
Information associated with compound keys, the compound keys are specified in figure corresponding with the table in the database of the first kind Node, the relationship between side and predicate,
For executing the instruction of the inquiry for the chart database, in which:
The figure includes the side and predicate between node, the node, has the number without index adjacency to indicate and store According to;And
The inquiry identifies the first side associated with a predicate, and the predicate specifies one in the node in the figure A or multiple nodes;And
For carrying out the instruction of reception result in response to the inquiry, wherein the result includes the subset of the figure.
12. device according to claim 11, in which:
Described program module further includes for generating the inquiry with subject, predicate and object based on the expectation information Instruction.
13. device according to claim 11, wherein the type of the database includes following one: relational database and Hierarchical data base.
14. device according to claim 11, wherein described program module further includes for instruction below:
Receive another inquiry compatible with JavaScript object representation;And
Another inquiry is converted into the inquiry.
15. device according to claim 11, wherein the subset of the figure includes: the associated knot in the figure The expectation information expressed in structure.
16. device according to claim 11, wherein the result does not include Layer constraint and relation constraint.
17. device according to claim 11, wherein the inquiry includes character string.
18. device according to claim 11, wherein the inquiry includes variable.
19. device according to claim 11, wherein described program module further includes for instruction below:
The second inquiry is executed for the result;And
Second is received as a result, wherein second result includes the second subset of the figure in response to second inquiry.
20. a kind of system, comprising:
Processing module, the non-transitory computer-readable medium including store instruction, described instruction upon being performed so that described System:
The initial query compatible with the database of the first kind is received, the database of the first kind is different from chart database;
The initial query is converted into the inquiry using primitive, wherein the primitive includes:
Rule, based on the side in figure, relation schema in the database of the first kind described in the regular expression, and
Information associated with compound keys, the compound keys are specified in figure corresponding with the table in the database of the first kind Node, the relationship between side and predicate,
The inquiry is executed for the chart database, in which:
The figure includes the side and predicate between node, the node, has the number without index adjacency to indicate and store According to;And
The inquiry identifies the first side associated with a predicate, and the predicate specifies one in the node in the figure It is a or multiple;And
Carry out reception result in response to the inquiry, wherein the result includes the subset of the figure.
CN201580083229.9A 2015-09-18 2015-11-09 Inquiry based on figure Active CN108027818B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/858,178 US9535963B1 (en) 2015-09-18 2015-09-18 Graph-based queries
US14/858,178 2015-09-18
PCT/US2015/059714 WO2017048303A1 (en) 2015-09-18 2015-11-09 Graph-based queries

Publications (2)

Publication Number Publication Date
CN108027818A CN108027818A (en) 2018-05-11
CN108027818B true CN108027818B (en) 2019-08-27

Family

ID=54608953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580083229.9A Active CN108027818B (en) 2015-09-18 2015-11-09 Inquiry based on figure

Country Status (4)

Country Link
US (1) US9535963B1 (en)
CN (1) CN108027818B (en)
DE (1) DE202016005239U1 (en)
WO (1) WO2017048303A1 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831771B2 (en) * 2015-07-06 2020-11-10 Sap Se Interactive exploration of large graphs
US11468053B2 (en) 2015-12-30 2022-10-11 Dropbox, Inc. Servicing queries of a hybrid event index
US11423082B2 (en) * 2016-06-29 2022-08-23 Intel Corporation Methods and apparatus for subgraph matching in big data analysis
NO20161737A1 (en) * 2016-11-02 2018-05-03 Intelligent Operations As A method and system for managing, analyzing, navigating or searching of data information across one or more sources within a computer network
US10671671B2 (en) 2017-06-09 2020-06-02 Microsoft Technology Licensing, Llc Supporting tuples in log-based representations of graph databases
US11354348B2 (en) 2017-06-29 2022-06-07 Microsoft Technology Licensing, Llc Optimized record placement in graph database
US11151031B2 (en) 2017-06-29 2021-10-19 Microsoft Technology Licensing, Llc Optimized record placement in defragmenting graph database
US10585944B2 (en) 2017-07-06 2020-03-10 International Business Machines Corporation Directed graph compression
US10628492B2 (en) 2017-07-20 2020-04-21 Microsoft Technology Licensing, Llc Distributed graph database writes
CN110209885B (en) * 2018-04-26 2023-05-12 腾讯科技(深圳)有限公司 Graph query method and system
CN110889000B (en) * 2018-09-10 2022-08-16 百度在线网络技术(北京)有限公司 Method and apparatus for outputting information
CN110232078B (en) * 2019-04-26 2021-03-30 上海合合信息科技股份有限公司 Enterprise group relationship acquisition method and system
US11567995B2 (en) * 2019-07-26 2023-01-31 Microsoft Technology Licensing, Llc Branch threading in graph databases
CN110489986B (en) * 2019-08-22 2021-03-23 网易(杭州)网络有限公司 Response method and system of graph data function and electronic equipment
US11113267B2 (en) * 2019-09-30 2021-09-07 Microsoft Technology Licensing, Llc Enforcing path consistency in graph database path query evaluation
CN111026747A (en) * 2019-10-25 2020-04-17 广东数果科技有限公司 Distributed graph data management system, method and storage medium
US11074476B2 (en) 2019-11-21 2021-07-27 AstrumU, Inc. Data ingestion platform
US11487758B2 (en) 2020-01-30 2022-11-01 Adobe Inc. Query processing using hybrid inverted index of predicates
US11354290B2 (en) * 2020-01-30 2022-06-07 Adobe Inc. Query processing using inverted index of predicate statements
US11550848B2 (en) 2020-01-30 2023-01-10 Adobe Inc. Query processing using matrix and reduced predicate statements
CN111680036B (en) * 2020-05-12 2022-09-27 国网宁夏电力有限公司信息通信公司 Configuration management database based on graph storage
CN111984828A (en) * 2020-06-30 2020-11-24 联想(北京)有限公司 Neighbor node retrieval method and device
US11074509B1 (en) 2020-10-30 2021-07-27 AstrumU, Inc. Predictive learner score
US11928607B2 (en) 2020-10-30 2024-03-12 AstrumU, Inc. Predictive learner recommendation platform
CN112800287B (en) * 2021-04-15 2021-07-09 杭州欧若数网科技有限公司 Full-text indexing method and system based on graph database
US11704309B2 (en) * 2021-06-29 2023-07-18 Microsoft Technology Licensing, Llc Selective use of data structure operations for path query evaluation
US11741093B1 (en) 2021-07-21 2023-08-29 T-Mobile Usa, Inc. Intermediate communication layer to translate a request between a user of a database and the database
US20230129994A1 (en) * 2021-10-27 2023-04-27 Bank Of America Corporation System and Method for Transpilation of Machine Interpretable Languages
CN113722520B (en) * 2021-11-02 2022-05-03 支付宝(杭州)信息技术有限公司 Graph data query method and device
CN113901279B (en) * 2021-12-03 2022-03-22 支付宝(杭州)信息技术有限公司 Graph database retrieval method and device
US11847172B2 (en) * 2022-04-29 2023-12-19 AstrumU, Inc. Unified graph representation of skills and acumen
CN114996791B (en) * 2022-08-01 2022-11-22 湖南高至科技有限公司 Human-computer interaction simulation model construction method based on EAR

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488673A (en) * 2012-06-11 2014-01-01 富士通株式会社 Method, controller, program and data storage system for performing reconciliation processing

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912524B2 (en) 1998-05-20 2005-06-28 Lucent Technologies, Inc. Join synopsis-based approximate query answering
US7698267B2 (en) 2004-08-27 2010-04-13 The Regents Of The University Of California Searching digital information and databases
US7933915B2 (en) 2006-02-27 2011-04-26 The Regents Of The University Of California Graph querying, graph motif mining and the discovery of clusters
US7870087B2 (en) 2006-11-02 2011-01-11 D-Wave Systems Inc. Processing relational database problems using analog processors
US8868620B2 (en) 2007-06-08 2014-10-21 International Business Machines Corporation Techniques for composing data queries
US8156134B2 (en) 2007-11-15 2012-04-10 International Business Machines Corporation Using different groups of query graph transform modules to generate execution plans for queries for different database types
US8095515B2 (en) 2008-03-19 2012-01-10 Semmle Limited Approximating relation sizes using field dependencies
US8326847B2 (en) 2008-03-22 2012-12-04 International Business Machines Corporation Graph search system and method for querying loosely integrated data
US8185558B1 (en) 2010-04-19 2012-05-22 Facebook, Inc. Automatically generating nodes and edges in an integrated social graph
US8219591B2 (en) 2010-05-03 2012-07-10 Hewlett-Packard Development Company, L.P. Graph query adaptation
US9177346B2 (en) 2010-07-01 2015-11-03 Facebook, Inc. Facilitating interaction among users of a social network
US9495429B2 (en) 2010-07-09 2016-11-15 Daniel Paul Miranker Automatic synthesis and presentation of OLAP cubes from semantically enriched data sources
US8983990B2 (en) * 2010-08-17 2015-03-17 International Business Machines Corporation Enforcing query policies over resource description framework data
US20120096043A1 (en) * 2010-10-19 2012-04-19 7 Degrees, Inc. Data graph cloud system and method
JP5100820B2 (en) 2010-11-25 2012-12-19 株式会社東芝 Query expression conversion apparatus, method and program
US9116955B2 (en) * 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US8893008B1 (en) 2011-07-12 2014-11-18 Relationship Science LLC Allowing groups expanded connectivity to entities of an information service
US8977611B2 (en) 2011-10-18 2015-03-10 Facebook, Inc. Ranking objects by social relevance
WO2013116308A1 (en) 2012-01-31 2013-08-08 Kent State University Systems, methods, and software for unified analytics environments
US8533182B1 (en) 2012-05-31 2013-09-10 David P. Charboneau Apparatuses, systems, and methods for efficient graph pattern matching and querying
US9053210B2 (en) 2012-12-14 2015-06-09 Microsoft Technology Licensing, Llc Graph query processing using plurality of engines
EP2755148A1 (en) 2013-01-15 2014-07-16 Fujitsu Limited Data storage system, and program and method for execution in a data storage system
US10713261B2 (en) 2013-03-13 2020-07-14 Google Llc Generating insightful connections between graph entities
US9798772B2 (en) 2013-04-12 2017-10-24 Oracle International Corporation Using persistent data samples and query-time statistics for query optimization
US20140330867A1 (en) * 2013-05-01 2014-11-06 Silicon Graphics International Corp. Software design pattern for adapting a graph database visualization software
US20140337373A1 (en) 2013-05-07 2014-11-13 Magnet Systems, Inc. System for managing graph queries on relationships among entities using graph index
US9317557B2 (en) 2013-10-24 2016-04-19 Microsoft Technology Licensing, Llc Answering relational database queries using graph exploration
US20150120717A1 (en) 2013-10-25 2015-04-30 Marketwire L.P. Systems and methods for determining influencers in a social data network and ranking data objects based on influencers
US9542440B2 (en) 2013-11-04 2017-01-10 Microsoft Technology Licensing, Llc Enterprise graph search based on object and actor relationships
IN2013CH05115A (en) 2013-11-12 2015-05-29 Inmobi Pte Ltd
US20150302300A1 (en) * 2014-04-18 2015-10-22 Voalte, Inc. Efficient graph-based rule engine for complex, dynamic, unstructured data
US20150302063A1 (en) 2014-04-21 2015-10-22 Linkedln Corporation System and method for searching a distributed node-sharded graph
US20160171540A1 (en) 2014-12-12 2016-06-16 Suryanarayana MANGIPUDI Dynamic Omnichannel Relevant Content And Services Targeting In Real Time
US9378303B1 (en) 2015-09-18 2016-06-28 Linkedin Corporation Representing compound relationships in a graph database

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488673A (en) * 2012-06-11 2014-01-01 富士通株式会社 Method, controller, program and data storage system for performing reconciliation processing

Also Published As

Publication number Publication date
DE202016005239U8 (en) 2016-12-22
DE202016005239U1 (en) 2016-10-21
CN108027818A (en) 2018-05-11
WO2017048303A1 (en) 2017-03-23
US9535963B1 (en) 2017-01-03

Similar Documents

Publication Publication Date Title
CN108027818B (en) Inquiry based on figure
CN106547809B (en) Representing compound relationships in a graph database
US9672247B2 (en) Translating queries into graph queries using primitives
US9378241B1 (en) Concatenated queries based on graph-query results
US10445321B2 (en) Multi-tenant distribution of graph database caches
US10180992B2 (en) Atomic updating of graph database index structures
Dourish No SQL: The shifting materialities of database technology
US10579678B2 (en) Dynamic hierarchy generation based on graph data
US20140279839A1 (en) Integration of transactional and analytical capabilities of a database management system
US9378239B1 (en) Verifying graph-based queries
US20170212945A1 (en) Branchable graph databases
US9990443B2 (en) Message passing in a distributed graph database
US20170255708A1 (en) Index structures for graph databases
US11567995B2 (en) Branch threading in graph databases
US20090319559A1 (en) Method And System of Using Social Networks and Communities to Ensure Data Quality of Configuration Items in a Configuration Management Database
US11449477B2 (en) Systems and methods for context-independent database search paths
US11720543B2 (en) Enforcing path consistency in graph database path query evaluation
US20180357278A1 (en) Processing aggregate queries in a graph database
US10983997B2 (en) Path query evaluation in graph databases
US10417230B2 (en) Transforming and evaluating missing values in graph databases
Li et al. SQL2Cypher: automated data and query migration from RDBMS to GDBMS
Spiliotopoulos et al. An Interface for User-Centred Process and Correlation Between Large Datasets
Filho et al. Graph Modeling for Topological Data Analysis
Mao et al. MMDBench: A Benchmark for Hybrid Query in Multimodal Database
Moreira Knowledge analytics

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant