CN1828588A - Composable query building API and query language - Google Patents
Composable query building API and query language Download PDFInfo
- Publication number
- CN1828588A CN1828588A CN 200610003786 CN200610003786A CN1828588A CN 1828588 A CN1828588 A CN 1828588A CN 200610003786 CN200610003786 CN 200610003786 CN 200610003786 A CN200610003786 A CN 200610003786A CN 1828588 A CN1828588 A CN 1828588A
- Authority
- CN
- China
- Prior art keywords
- inquiry
- query
- search
- tree construction
- object search
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A system for constructing information search queries is provided. The system comprises a query language that has a predefined syntax and a constructor that creates a search object. The search object encapsulates a query constructed in the query language. Methods for using the system are also provided.
Description
The cross reference of related application
The application requires to meet for the 60/657th, No. 341 in the United States Patent (USP) provisional application that is called " COMPOSABLE QUERYBUILDING API AND QUERY LANGUAGE (can form inquiring structuring API and query language) " that on February 28th, 2005 submitted to the right of priority of 35U.S.C. § 119 (e) money.The integral body of aforementioned application comprises all appendix, is included in this by reference.
Background technology
Usually use a computer at present store, search and retrieve data, as their some main task.The various calculating progress in the field that is associated, the dramatic increase such as the packing density of the computing velocity of processing unit and memory device means computing system than whenever can store, search for and retrieve more multidata in the past.The current mass data of storing, searching for and retrieving is to search and organize the system of the data of being stored to propose challenge.
To the search of data be design complicated be again to carry out slowly.Complicacy usually to small part because the quantity of the searched data wanted and how to organize these data to be used to store.Complicacy also can greatly depend on the limited means that is used for carrying out to the search of desired information in available mass data.Limited means such as the selection of query language or the establishment of search inquiry etc. also can have influence to the speed that can carry out search.
Carry out inquiry and generally require developer to construct single big string, or other data structure, the whole piece inquiry of forming with the predefine query language comprised.Developer must pass to this whole piece inquiry usually then and provide and will carry out the application programming interface (" API ") of the function of inquiry.Usually can not reuse easily or the single part of the inquiry of combined composition is created different inquiries.In addition, do not assist developer usually by the query construction that API carries out, must generally understand on the contrary mutually query language have the ability so that create inquiry.
Generally speaking, spent a large amount of effort construct with the reconstruct single query to locate various information.This method is inconsistent with the common principle that the instruction computer code should be modularization and reusable OOSE.The benefit that Object-Oriented Design and program design realize is generally unavailable in information search system.Present system can not be provided for forming or construct the modularization of inquiry or the benefit of reusable software design.
Summary of the invention
Below present concise and to the point general introduction, so that the basic understanding of some aspect of assembly that institute is disclosed and describes and the method that is associated with these assemblies is provided.This general introduction is not wide in range general survey.It neither is intended to identify key element of the present invention or important element, also is not intended to describe scope.Its unique purpose is to present some notion with the form of simplifying, as after the preamble in greater detail that presents.In addition, chapter title used herein only is used to provide convenience, and should not be understood that to limit by any way.
The system that is used to create the modularization inquiry that data are carried out is provided.This system comprises that allowing developer is the application programming interface that query object is visited constructor and memory access.This application programming interface also assists to construct these query objects.Query object also can be packaged into the small part inquiry, and self also can be encapsulated in other query object to create the more complicated query that makes up from the query portion of previous encapsulation.Query object can directly be used or be searched for canned data by application program.
The system that is used to represent search inquiry is provided.The discrete portions of representing the inquiry formed with predefined query language with tree construction.Tree construction is another tree construction or quote self and as the part of complicated query structure more by reference.When carrying out inquiry, tree construction is encapsulated in the query object for use.
Can use query object as the building block formed of complex query more by query object being linked at together or query object being encapsulated each other.Can use the application space query language that can be mapped to the storage space query language to construct query object.Can use model space to finish such mapping.Use the query object of application space query language structure to can be used for locating institute's canned data, can use various storage space query languages to inquire about these information by the model space that defines between these two kinds of query languages.
Inquiring structuring apparatus can assist to construct the query object for using in the process of search canned data.Can visit this inquiring structuring apparatus with the user interface that is integrated in the complete inquiry by a part that allows the user to choose inquiry.This complete inquiry can be used for searching for the information in the storage.Inquiring structuring apparatus self can make up complete inquiry, maybe can use query specification to accord with and find out structure before and operational matching inquiry object.
Each feature of fully describing and in claims, particularly point out after assembly that discloses and describe and method comprising.The following description and drawings are described some illustrative feature in detail.These features are indicated the minority in the multiple mode that can use an assembly that discloses and describe and method.The assembly that discloses and describe and the specific implementation of method can comprise some, numerous or feature that all are such with and equivalent implementation.For those of ordinary skill in the art, read following detailed description the in detail in conjunction with the drawings, the specific implementation presented herein and the variation of example will be conspicuous.
Description of drawings
Fig. 1 is the system chart according to the query construction system of the one aspect of the present invention that is disclosed.
Fig. 2 is the system chart that can represent the tree construction inquired about.
Fig. 3 is the system chart of binding object search.
Fig. 4 is the block diagram of the mapping between application space and the storage space.
Fig. 5 is the system chart of storage medium search system.
Fig. 6 is the system chart of query construction system.
Fig. 7 comprises the system chart of the remote access query construction system of the query object of structure before.
Fig. 8 is the process flow diagram of the common treatment flow process that can use with the various assemblies that disclose and describe herein.
Fig. 9 is the process flow diagram of the common treatment flow process that can use with the various assemblies that disclose and describe herein.
Figure 10 is the process flow diagram of the common treatment flow process that can use with the various assemblies that disclose and describe herein.
Figure 11 is the process flow diagram of the common treatment flow process that can use with the various assemblies that disclose and describe herein.
Figure 12 shows exemplary networked environment.
Figure 13 shows exemplary operating environment.
Embodiment
As employed in this application, term " assembly ", " system ", " module " etc. refer to the relevant entity of computing machine, such as hardware, software (for example, executory software) and/or firmware.For example, assembly can be to operate in process, processor, object, executable code, program and/or computing machine on the processor.Equally, application program and the server itself that operates on the server can be assembly.One or more assemblies can reside in in-process, and assembly can be on the computing machine and/or be distributed between two or many computing machines.
The assembly and the method that are disclosed have been described with reference to the drawings, and in institute's drawings attached, identical reference number refers to identical element.In the following description, for purposes of illustration, numerous details have been described so that the complete understanding to the theme that is disclosed to be provided.Yet obviously, some can be omitted certain in specific realization in these details, or combine with other details.In other example, some structure and equipment are shown so that describe with the block diagram form.In addition, although described specific example can be used the term consistent with client/server architecture, even can be the example that client/server is realized, but it will be appreciated by those skilled in the art that, the role of client-server can reverse, the assembly and the method that disclose and describe are not limited to client/server architecture, and can easily be applicable to other architecture, especially comprise equity (P2P) architecture, and do not deviate from the assembly that discloses and describe and the spirit or scope of method herein.And, comprise or quote specific components that the assembly that discloses and describe and the realization of method are not necessarily limited to those specific components, and also can use herein although should be noted that specific example presented herein in other environment.
Such as after this description, can use system based on artificial intelligence (for example, the sorter of explicit and/or implicit expression training) to be used to carry out to infer and/or probabilistic is judged and/or based on the judgement of statistics.As used herein, term " deduction " generally refer to from by incident and/or data capture to one group of observed value the process of release or inference system, environment and/or state of user.Infer for example to be used to identify concrete context or action the probability distribution on perhaps can the generation state.Deduction can be probabilistic.For example, deduction can comprise based on the calculating of the consideration of data and incident being carried out to the probability distribution on the state of being concerned about.Infer and also can refer to the technology that is used for forming more senior incident from one group of incident and/or data.Such deduction causes incident or the action that structure makes new advances from the event data of one group of observed incident and/or storage, no matter and whether original incident is closely related in time, no matter also original incident and data are from one or several incidents and data source.Can use various classification schemes and/or system (for example, support vector machine, neural network, expert system, bayesian belief networks, fuzzy logic, data fusion engines or other similar system) to be used to carry out automatically and/or the action of inferring.
And the assembly that discloses and describe can be implemented as and use standard program design and/or engineering to produce software, firmware, hardware or its any combination to come method, device or the goods of control computer.Term " goods " as used herein, being intended to comprise can be from the computer program of any computer readable device, carrier wave or medium access.For example, computer-readable medium can comprise, but be not limited to, magnetic storage apparatus (such as, the medium of hard disk, floppy disk, magnetic stripe or other type), CD (such as, CD (CD), digital versatile disc (DVD) or other similar media type compact), smart card and flash memory device (for example, card, rod, key drive ...).In addition, should be appreciated that, can use carrier wave to carry computer-readable electronic, such as send and receive Email and visit in such as networks such as the Internet or Local Area Network employed those.Certainly, those skilled in the art will recognize that and to carry out multiple a spot of modification to this configuration, and do not deviate from an assembly that discloses and describe and the scope or the spirit of method.
But the inquiry of application developers complex structure is usually directed to the various dissimilar connection (join) between each data set, uses the sequence of forming the simple single API Calls of inquiry in every way.API can assist the structure inquiry by representing query capability in the mode that is easy to find and uses to the programmer.In addition, can provide a kind of mechanism such as the API that discloses and describe herein, the programmer can create or make up modularization or reusable part or the inquiry that can be applicable to other inquiry or be used for the similar inquiry of varying environment by this mechanism.
The ad hoc inquiry language that can special configuration be used to express inquiry allows the increment type structure of inquiry and forms.Use so a kind of language can allow developer when the structure inquiry, to utilize function of search better.Reusable in whole or in part modularization inquiry also can be convenient to create in a kind of query language like this.The simple change that the inquiry that module carries out was reused and replaced in inquiry also can reduce to be created the new required time of inquiry.
Fig. 1 is the system chart of query construction system 100.Query construction system 100 can be used to create the object that can encapsulate inquiry.The object of structure also can be used to carry out being stored in the search of the information on the computer system.As used herein, the term object can not only refer to the calculating object in the object-oriented computing environment, also can refer to other suitable data structure or structure, such as the data structure that finds in C or the C++ programming language or the such data structure and the combination of executable code from other computation paradigm.
Query construction system 100 comprises the application programming interface (" API ") 110 that can be used for creating memory search device object 120.API can provide the visit such as the method for memory search device objects such as constructor and memory access.The benefit of use such as API 110 API such as grade is, can make addressable common use that is provided by object of programmer or essential function by the clear system that sets up.Another benefit is, by concrete, the details that low layer is realized that the function that provides can be provided API 110, for example corrects defective, and need not to destroy the assembly that relies on this function.And, can realize API 110, make that the function that visit is provided of 110 couples of API and assembly are natural affection (natural-feeling) parts as query language, rather than carrier, described carrier is used for not being the part of the programming language that is used and is delivered to other assembly carrying out the query string that the query language of search is formed.
The 120 encapsulation inquiries 130 of memory search device object.By 120 pairs of inquiries of memory search device object, 130 visits of using API 110 to create.Can use as the visit the method call of indicating in the specific implementation or some other suitable access method are finished.At random or the user who goes around or process be all can't change easily on the meaning of inquiry unintentionally or otherwise, suchlike arrangement can strengthen the integrality of inquiry.Can in predefined query language, form inquiry 130 by the sentence structure with himself.The sentence structure that can construct this predefined query language makes that query portion is a modularization and reusable.In addition, this sentence structure can be convenient to represent the part of inquiring about or inquiring about with tree construction.Suchlike tree construction can be connected to other tree construction or quote other tree construction, to accumulate the other parts of inquiring about and to make up more complicated query.
Fig. 2 is the system chart that can represent the tree construction 200 of the part of inquiring about or inquiring about.Tree construction 200 comprises a plurality of nodes 210.Each node 210 comprises the item of inquiry.Depend on specific implementation, can comprise search terms and operational symbol, such as selection, projection or connection and other.Node such as one of node 210 can be linked at together to express the logic connection between the query term.Tree construction 200 can be represented whole inquiry or only be the part of inquiry.No matter in which kind of situation, tree construction 200 can be used as more the part of complex query and uses by it is connected with another tree construction.Tree construction 200 can be encapsulated in the object search for using in the function of search process.
Tree construction 200 also can be encapsulated in the object such as expression formula object (not shown).The expression formula object can be by such as the searcher object encapsulation such as memory search device object 120 that disclose and describe in conjunction with Fig. 1.When the structure inquiry, can construction expression formula object.Similarly, when carrying out inquiry, can handle the expression formula object.Replace except query string or as it, the expression formula object of expression inquiry can be delivered to the searcher constructor to create the new search device object of encapsulation by the object of this expression formula object representation.
Fig. 3 is the system chart of binding object search.The binding object search can be used to carry out search in its bound environment.In this example, as long as be required or suitable, environment can comprise region of search, physical storage area or both.As shown in this specific example, use API to create searcher object 310 such as the API 110 of Fig. 1.Searcher object 310 comprises inquiry 320.Inquiry 320 can be to be created as the inquiry of single monolithic or the complete query of the set of the partial query that collects from the modularization fragment of partial query.
Such as searcher 310 objects such as searcher such as grade, can be implemented as class with the Object-oriented Programming Design language compilation.Spendable suitable object-oriented programming language comprises Java and SmallTalk.Such can look as the set of various other methods that realizes enumeration methodology and can be used for other searcher object is configured to the example of class or one or more classes.The constructor method can be accepted one or more searcher objects as one or more input parameters, and the output encapsulation passes to the new search device object of its any searcher object as input parameter.By this way, can construct more complicated query.The object search of structure can be represented the set of filtering, classifying or dividing into groups and other type.Can work as by the inquiry of searcher object representation and to carry out when application program begins the content of searcher object enumerated.
Perhaps, searcher 310 can be implemented as data structure, such as can be with the data structure of creating as senior programming language such as C or C++.In such realization, the attribute of the searcher object that can otherwise be represented by object-oriented feature (for example object of other encapsulation) can be implemented as the territory of such data structure or otherwise be suitable for representing specific OO feature.Can define the member territory that suitable function visited, uses or otherwise operated this data structure.Design waits the example of other computation paradigm such as functional programs can not to list oneself, and does not mean that corresponding the realization is impossible in these examples.
As mentioned above, such as searcher object 310 objects such as searcher such as grade, can encapsulate inquiry such as inquiry 320.Be structure inquiry 320, the searcher class can be provided for constructing the several different methods of inquiry.The general accepted search device of these methods object is carried out some data manipulation function as input, and this inputted search device object of output encapsulation is as the new search device object of subquery.By this way, can form the inquiry of more sophisticated.
Can create multiple possible method carries out similar or is similar to the function of the function of being carried out by the various command in the query language.Can provide object-based property value to filter the filter method of these objects.Type filter can object-based type filtering object.Treat and to convert the searcher object to searcher that the superclass type is searched for from the searcher that subtype is searched for as type method.Sorting technique can be classified to object based on one or more property values.Projecting method can carry out projection to the one or more single attribute of one or more objects.Group technology can be divided into groups to object according to one or more values.Integrated processes can be created the associating of two group objects.In addition, querying method can be used complicated query in single step.Can realize these methods, make calling of method be can be used as the shortcut of calling querying method.
The inquiry of encapsulation and subquery can be used as the inquiry chain and be isolated from each other will inquire about each stage of carrying out.When doing like this, each later stages that inquiry is carried out only can influence the data that produced by stage before.Yet, this pattern can cause potentially the order in later phases, carried out revocable or destroy before the calculating that produces of stage (such as ordering or division operation) or at least a portion of result.For reducing this stake, can will be come implementation method by the mode that the operation of being carried out by this method keeps to guarantee ordering.In addition or, can specify with the order that keeps ordering or grouping and come call method.In addition, such as ordering or certain type method of group technology, can be stopped in some stage only carry out or be limited to the operation of carrying out by these methods unlikely by after calling in the stage of cancelling or destroying of method carry out.
For carrying out inquiry and obtaining Search Results, object search or search class can be supported the whole bag of tricks.For example, obtaining the enumerator method can enumerate all query structures.First result that Query Result is concentrated can obtain by obtaining first method.Obtaining tabulating method can be copied to Query Result in the tabulation of Query Result.Obtain method of counting and can obtain the counting that is included in a plurality of objects in the Query Result.The indication that can whether produce any result by the execution of using the inspection of method as a result to obtain inquiry.
When structure searcher object, can use the searcher object of being constructed can maybe will be to one type data parametersization of its execution to it.The searcher object can return the example of the type when it is carried out.In addition or, can the return recording type.The record class can represent not exist the structured type of respective type.The inquiry that these types are carried out can be produced by projecting method and group technology.When the record object that and if only if is returned by each searcher object contained the row of the just in time equal number with same names and type, two searcher objects of this of return recording type just can be same types.
In the example that presents herein, the query expression string that can be delivered to the searcher object can be accepted the parameter of two kinds of forms.First kind of form is positional parameter.When using positional parameter, query string can be by coming the reference parameter value with the position that query string is delivered in the value array of method.Ought only carry out inquiry once or the value that is bound to parameter not with carrying out in the situation that changes, positional parameter is useful.
Second kind of form is to name parameter.When parameter was named in use, query string can come the reference parameter value by the operation parameter name.Name can be bound to the searcher object to the dictionary of value mapping, thereby produces new searcher object before carrying out inquiry.Use different parameter values to carry out naming parameter in the situation of repeatedly same inquiry is useful.Compare the use positional parameter, use and to name parameter because extra bindings and complicated a little.
Positional parameter with name parameter and all can be used in the identical query string, and only can be used for providing literal or subquery.These parameters can not be used to provide attribute or parameter name by operation parameter.Subquery can be parameter by using expression formula object or searcher object to be transmitted.In other is realized, can use other form of diverse ways or parameter.
Searcher object such as searcher object 310 can be implemented as general class.This specific implementation can make that the searcher class is difficult to be used by the application program of importing the dynamic construction inquiry based on the user.For alleviating this difficulty, can realize factory class and searcher interface.Such factory class and searcher interface can allow to use universal class or method to construct and operate the searcher class.
Using these types and needn't using universal class to be useful to importing the late binding application program that makes up inquiry based on the user.The constructor method of factory's type can be used for constructing the searcher object.Type that can appointment in parameter can be corresponding to the universal class in the class definition.This class definition can provide can be corresponding to the description of the several different methods of the general version of establishment type.The realization of these methods can have the semantic and restriction identical with the method for universal class.
As preceding announcement with describe, various assemblies can be implemented as the example of class or class.In a kind of possible realization, the example of class can be constant.The method of operation searcher object can be returned and be packaged into the new search device object of small part based on the new inquiry of original query.Inquire about on the unalterable meaning in starting point, this realizes the protection of permission to the starting point inquiry.In addition, this design alternative helps the hash by query expression processed before safeguarding and reuses these and inquire about and carry out query optimization.
Fig. 4 is the block diagram of the mapping between application space 410 and the storage space 420.Application space 410 can be the set type by consumer's use of file system api.The consumer can be from the class to generate automatically a kind of description of pattern-coding.Also can support the object of other type.In addition, other data structure can be used to replace or replace object or class.
Mapping can be used to object-oriented conception and structure and SQL conceptual dependency.For example, the set that can be enumerated can be mapped to table or the relation with type.Object can be mapped to row or the tuple with type.Attribute or method can be mapped to the row or the attribute of simple or user-defined type, or are mapped to the nested table with type and are used for collecting.Other mapping also is possible.Should be appreciated that the detail of mapping greatly depends on ad hoc inquiry and realization.
The design of application space query language 430 especially can be convenient to use simultaneously a plurality of query string sentence structurees by the searcher object to the mutual and use that it carries out.Use the application program of searcher object to identify which kind of sentence structure of current use by inspection query string self.In addition or, which kind of sentence structure the addressable assembly level attribute of application program determine to use.Also can use other sentence structure matching process.
In the example that is presented, always write herein according to the model space of this application program by the inquiry of the application program expression of using the searcher object.The type of mentioning in the query string of this searcher object, attribute and method are those types, attribute and the methods of being used by this application program.Can make amendment to the assembly that discloses or describe and method herein and change this routine.Yet, use this routine to preserve the visual angle that is operated in the application programmers in the application program 410.Can present such preservation by present the familiar already environment of application programmers to these application programmers, make application programmers be easier to structure or use inquiry.
The searcher object can come integrated to support the inquiry of integrating language with object-oriented or other programming language.Be the inquiry of support integrating language, but the searcher object can realize containing the query interface of single query method.This querying method can adopt the query expression through resolving, and returns suitable interface object.This query expression can be resolved when compiling and affirmation by compiler.
To the programming language of not supporting to support that maybe integrating language is inquired about, or even, can use in the string and inquire about supporting the programming language of integrating language inquiry.When dynamically the establishment inquiry ran application simultaneously, querying method can be worked well in this string.Because the feature the when inquiry of integrating language is used as compiling usually may be difficult to dynamic construction inquiry when carrying out or move.Can get in touch string and come dynamic construction inquiry when operation.
Fig. 5 is the system chart of storage medium search system 500.Storage medium search system 500 can be used for the information in the search file system.File system can be positioned on the disc driver on the local computer, maybe can be positioned on some other medium such as flash memory or another suitable storage medium.In addition or, file system can be positioned on the remote computer, such as the server of networking.Also can be used for file system such as other stored configuration such as RAID array or SAN.
Storage medium search system 500 comprises searcher object 510.Any searcher object of describing in conjunction with other accompanying drawing before searcher object 510 can be implemented as.Searcher object 510 can be bound to environment 520.One of environment 520 can be represented one group of information by 510 search of searcher object, and the environment that discloses or describe in conjunction with other accompanying drawing before can being implemented as.
In operation, the storage medium search system can followingly be operated.Searcher object 510 also access environment 520 to determine environmental restraint to search.Searcher object 510 access file systems 530 are with locating file or object in by the environment of environment 520 appointments.Call a succession of method by searcher object 510 and be encapsulated in inquiry in the searcher object 510 with execution.For carrying out these methods, searcher 510 reads information from disk storage system 540.Searcher object 510 determines from which information of file system 530 to be in response to the inquiry of this execution, and exports the result of its search.
Fig. 6 is the system chart of query construction system 600.Query construction system 600 can be application programmers or other user provide composition can with the ability of the integrated inquiry of other assembly on the computing system.Particularly, query construction system 600 can allow to accord with composition inquiry from the fragment that the fragment or the user of previous existence create by definition search terms exclusive disjunction.
Inquiring structuring apparatus 610 also can use logic module, is used to guarantee to inquire about finally construct in logical and intelligible mode.As the part of this logic, but using method rewrites the inquiry of following semanteme or sentence structure requirement.In addition or, these logic modules can rewrite and be compared by the initial query of user input carries out more effective inquiry.No matter under which kind of situation, this logic can guarantee that all the inquiry that rewrites is correct.
The query fragment of inquiring structuring apparatus 610 accessible storage in query fragment data storage 620.Depend on the specific implementation details, query fragment data storage 620 can be implemented as the set of database, object or the data storage of another adequate types.Each fragment that is included in the query fragment data storage 620 all can be used as the more part of complex query.In addition, some query fragment can be the inquiry of constructing fully just with itself at least, and need not other modification and can use.When the structure inquiry, the user can visit these query fragments by the user interface of inquiring structuring apparatus 610.
The also addressable API 630 of inquiring structuring apparatus 610.API 630 can provide the visit of the assembly or the function of application programs spatial query language 640.By via API 630 call functions or the visit member, the programmer can guarantee that any sentence structure or the semantic requirements such as the bottom query language of application space query language 640 followed in constructed inquiry.By using inquiring structuring apparatus 610, the programmer needn't pay close attention to the details of API 630.On the contrary, inquiring structuring apparatus 610 can guarantee that all inquiries all are according to the feature construction of API.
In the operation, query construction system 600 can operate as follows.The user interface of user-accessible inquiring structuring apparatus 610 is with the structure inquiry.After choosing suitable interface tool, inquiring structuring apparatus will obtain the query fragment in the inquiry that will be included in the structure from query fragment data storage 620.Inquiring structuring apparatus 610 is assembled by all query fragments of user's input and any query fragment of choosing from query fragment data storage 620, and uses API 630 according to application space query language 640 compilation query objects 650.Query object 650 is used to carry out the inquiry that the information that is stored in the storage space 660 is carried out then.
Fig. 7 is the system chart of inquiry composition system 700.Inquiry composition system 700 can allow application programmers or other user to form can the inquiry integrated or that can be used as free-standing enquiring component with other assembly on the computing system.Particularly, query construction system 700 can allow to form the inquiry that can be matched to the user definition inquiry and can obtain from remote computer from before existing the assembly.
Access application spatial query language 720 when inquiring structuring apparatus 710 can be worked as the structure inquiry.Application space query language 720 can be realized according to describing in conjunction with other accompanying drawing before, maybe can be another suitable query language.Inquiring structuring apparatus 710 can use the pattern (not shown) when access application spatial query language 720, maybe can comprise such language rule and other method in operation.
Inquiring structuring apparatus 710 can be created the descriptor of the inquiry of being constructed so that be used for obtaining suitable object search, this inquiry of the latter or explication or can revise the approximate match that defines this inquiry of constructing.This descriptor can be any suitable descriptor, such as Object Descriptor, hash or some other suitable descriptor.Suitably the type of descriptor depends on specific implementation to a great extent.
Inquiring structuring apparatus 710 can send this descriptor (not shown) to object server 740 by network 730.Object server 710 can send to this descriptor object adaptation 750.The data storage 760 of object adaptation 750 addressable object searches is to obtain or accurately or the object search of the inquiry represented by this descriptor of approximate match.
Sorter is with input attributes vector X=(x
1, x
2, x
3, x
4... x
n) map to the function that this input belongs to the degree of confidence of a class, i.e. f (X)=confidence (class).Such classification can be used based on probability and/or based on the analysis (for example, being decomposed into analysis utilities and expense) of statistics and predict or infer that the user wants the action that automatically performs.In the situation of object adaptation 750, descriptor can be treated as the pattern that can be classified, to determine the whether corresponding modes of match search object of such pattern.After reading this announcement,, obviously also can use other pattern match task to those of ordinary skill in the art.
SVM is the example of operable sorter.SVM operates by the hypersurface of seeking in the space that may import, and wherein hypersurface is attempted to isolate triggering criterion from non-trigger event.On directly perceived, this make classification near but the test data that is different from training data is correct.Other oriented or undirected category of model method comprises, for example simple Bayes, Bayesian network, decision tree, and the probabilistic classification model of different independence patterns can be provided.Classification used herein also comprises the statistical regression that is used to develop models of priority.
Can easily understand by this instructions, the assembly that discloses herein and describe can use the sorter of explicit training (for example, by common training data) and implicit expression training (for example, by observing user behavior, receiving external information).For example, can dispose SVM by study in sorter constructor and the feature selection module or training stage.Therefore, sorter can be used to automatically perform a plurality of functions, includes but not limited to, determines whether match search object of descriptor.
In the operation, inquiry composition system can work as follows.Inquiring structuring apparatus 710 can be created inquiry according to the application space query language.In case constructed such inquiry, inquiring structuring apparatus 710 can be created the descriptor to this inquiry, and by network 730 this descriptor is sent to object server 740.
After receiving this descriptor, object server 740 is given object adaptation 750 with this descriptors convey.Object adaptation 750 uses these descriptors can directly be used or revise the object search of carrying out the inquiry of being constructed with sign from object search data storage 760.The object that object server 740 will mate by network 730 sends to inquiring structuring apparatus 710.The necessary any modification of execution that inquiring structuring apparatus 710 is correctly inquired about this object then, and make that this object is available.
Fig. 8 is the process flow diagram of the process 800 that can use together in conjunction with the assembly that discloses and describe herein.Process 800 can be used for making up the modularization inquiry that can reuse in other process or inquiry.In addition, the inquiry that is fabricated can be used for the access file system with location response in this information inquiring.
The execution of process 800 begins at beginning frame 810, and proceeds to processing block 820.In processing block 820, definition inquiry (or its part).At processing block 830 places, with the formal inquiry (or its part) of predefined query language structure such as the application space query language of describing in conjunction with other accompanying drawing.Processing continues at processing block 840 places the inquiry of being constructed is passed to memory search device object.850 places make up query tree from the inquiry of being constructed in processing block.At processing block 860 places, carry out this inquiry.870 places obtain the result of performed inquiry in processing block.Processing finishes at end block 880 places.
Fig. 9 is the process flow diagram that the method 900 that can use together in conjunction with the assembly of announcement herein or description is shown.Method 900 can be used to carry out the inquiry of constructing in the Object-Oriented Design example.Such inquiry can be by other component reuse.
The processing of method 900 begins at beginning frame 910 places.Processing proceeds to processing block 920 places, and object search is enumerated the item that will be used in the search there.At processing block 930 places, use filtrator so that the item in the search set is limited to those that satisfy one or more filter criteria.At processing block 940 places, carry out projection to operate remaining data.Processing proceeds to processing block 950 places, carries out classification or division operation there with the mode integrated data according to expectation.At processing block 960 places, create query results.Processing finishes at end block 970 places.
Figure 10 is the process flow diagram of the universal process method 1000 that can use together in conjunction with the assembly that discloses or describe herein.The execution of method 1000 begins at beginning frame 1010 places, and proceeds to processing block 1020.At processing block 1020 places, user capture inquiring structuring apparatus interface is with the structure inquiry.At processing block 1030 places, choose the memory block that is configured the inquiry of searching for.Processing proceeds to processing block 1040 places, chooses the environment of search there.
At processing block 1050 places, wherein according to the assembly of the inquiry that predefined query language compilation is configured such as using such as application space inquiry.Processing proceeds to processing block 1060 places, there from construct object search through the enquiring component of compilation.Processing finishes at end block 1070 places.
Figure 11 is the process flow diagram of the universal process method 100 that can use together in conjunction with the assembly that discloses or describe herein.The execution of method 1100 begins at beginning frame 1110 places, and proceeds to processing block 1120, there user capture inquiring structuring apparatus interface.At processing block 1130 places, choose search parameter by user or inquiring structuring apparatus or the two.
Processing proceeds to processing block 1140 places, creates the suitable descriptor to search parameter there.At processing block 1150 places, this descriptor is sent to the object search server.At processing block 1160 places, make this descriptor and one or more available search object coupling.At processing block 1170 places, the object search of one or more couplings is sent to inquiring structuring apparatus.Processing stops at end block 1180 places.
In order to provide the additional environment of realizing each side of the present invention, Figure 12-13 and the following brief, general description that aims to provide the suitable computing environment that can realize various aspects of the present invention therein of discussing.Although described the present invention in the general context of the computer executable instructions of the above computer program that on local computer and/or remote computer, moves, those skilled in the art will recognize that the present invention also can realize in conjunction with other program module.Generally speaking, program module comprises routine, program, assembly, data structure etc., and they are carried out particular task and/or realize particular abstract.
And, it will be appreciated by those skilled in the art that, the method of property of the present invention can realize in conjunction with other computer system configurations, comprise uniprocessor or multiprocessor computer system, minicomputer, large scale computer and personal computer, hand-held computing equipment, based on microprocessor and/or programmable consumer electronics etc., wherein each can be used to communicate by letter with one or more associated device.The present invention can realize in distributed computing environment also the aspect shown in some that wherein some task is by carrying out by the teleprocessing equipment of communication network link.Yet, even be not that all some also can realize certain in these aspects of the present invention on unit.In distributed computing environment, program module can be arranged in this locality and/or remote memory storage device.
Figure 12 is the schematic block diagram of the example calculations environment 1200 that the present invention can be mutual with it.System 1200 comprises one or more client computer 1210.Client computer 1210 can be hardware and/or software (for example, thread, process, computing equipment).System 1200 also comprises one or more servers 1220.Server 1220 can be hardware and/or software (for example, thread, process, computing equipment).For example, server 1220 can hold thread or the process that conversion is carried out in the application of the invention.
A kind of possible means of communication between client computer 1210 and the server 1220 can be the form that is suitable for data packets for transmission between two or more computer processes.System 1200 comprises the communication construction 1240 that can be used to be convenient to communication between client computer 1210 and the server 1220.Client computer 1210 may be operably coupled to the one or more client data storages 1250 that can be used to store to the information of client computer 1210 this locality.Similarly, server 1220 may be operably coupled to one or more server data stores 1230 that can be used to store to the information of server 1240 this locality.
With reference to Figure 13, be used to realize that the exemplary environments 1300 of each side of the present invention comprises computing machine 1312.Computing machine 1312 comprises processing unit 1314, system storage 1316 and system bus 1318.System bus 1318 will include but not limited to that the system component of system storage 1316 is coupled to processing unit 1314.Processing unit 1314 can be any various available processor.Also can use dual micro processor and other multiprocessor architecture as processing unit 1314.
System bus 1318 can be any in the bus structure of some types, comprise memory bus or Memory Controller, peripheral bus or external bus and/or use any local bus in the various available bus architectures, available bus architecture comprises, but be not limited to ISA(Industry Standard Architecture), MCA (MCA), the ISA (EISA) of expansion, intelligent driver electrical interface (IDE), VESA local bus (VLB), peripheral component interconnect (pci), card bus, USB (universal serial bus) (USB), advanced graphics port (AGP), PCMCIA (personal computer memory card international association) bus (PCMCIA), live wire (IEEE1394) and small computer system interface (SCSI).
System storage 1316 comprises volatile memory 1320 and nonvolatile memory 1322.Basic input/output (BIOS) includes the basic routine of the information of transmitting between the element when helping such as startup in computing machine 1312, it is stored in the nonvolatile memory 1322 usually.As an illustration, and unrestricted, nonvolatile memory 1322 can comprise ROM (read-only memory) (ROM), programming ROM (PROM), electrically programmable ROM (EPROM), electrically-erasable ROM (EEROM) (EEPROM) or flash memory.Volatile memory 1320 can comprise the random-access memory (ram) as External Cache.As an illustration, and it is unrestricted, RAM is available in a variety of forms, such as synchronous random access memory (SRAM), dynamic ram (DRAM), synchronous dram (SDRAM), Double Data Rate SDRAM (DDR SDRAM), enhancement mode SDRAM (ESDRAM), synchronization link DRAM (SLDRAM) and direct Rambus RAM (DRRAM).
That computing machine 1312 also comprises is removable/cannot move, volatile/nonvolatile computer storage media.For example, Figure 13 illustrates disk storage 1324.Disk storage 1324 includes, but not limited to the equipment as disc driver, floppy disk, tape drive, Jaz driver, Zip drive, Ls-100 driver, flash card or memory stick.In addition, disk storage 1324 can comprise storage medium independent or that combine with other storage medium, include but not limited to, can write down the CD drive of driver (CD-R driver), CD recordable drive (CD-RW driver) or digital versatile disc ROM driver (DVD-ROM) etc. such as CD ROM equipment (CD-ROM), CD.For the ease of disk storage device 1324 is connected to system bus 1318, generally use such as removable or not removable interfaces such as interfaces 1326.
Be appreciated that Figure 13 has described the software as the intermediary between the basic computer resources of user and description in suitable operating environment 1300.Such software comprises operating system 1328.Can be stored in operating system 1328 in the disk storage 1324 and be used for controlling resource with Distribution Calculation machine system 1312.System application 1330 has utilized operating system 1328 by being stored in the resource management that program module 1332 in system storage 1316 or the disk storage 1324 and routine data 1334 are carried out.Be appreciated that the present invention can use the combination of various operating systems or operating system to realize.
The user passes through input equipment 1336 to computing machine 1312 input commands or information.Input equipment 1336 comprises, but be not limited to, first-class such as pointing devices such as mouse, tracking ball, stylus, touch pads, keyboard, microphone, operating rod, game mat, satellite dish, scanner, TV tuner card, digital camera, Digital Video, network shooting.These and other input equipment is connected to processing unit 1314 via interface port 1338 by system bus 1318.Interface port 1338 comprises, for example serial port, parallel port, game port and USB (universal serial bus) (USB).Output device 1340 uses the port of some and input equipment 1336 same types.Thereby for example, USB port can be used for providing input to computing machine 1312, and provides output information from computing machine 1312 to output device 1340.Provide o adapter 1342 to illustrate, exist similar monitor, loudspeaker and printer and other to need some output device 1340 of the output device 1340 of private adapter.And unrestricted, o adapter 1342 comprises video card and the sound card that the connection means between output device 1340 and the system bus 1318 are provided as an illustration.Should be noted that such as remote computer 1344 miscellaneous equipments such as grade and/or device systems provide simultaneously the input and output ability both.
Computing machine 1312 can use to one or more remote computer, is connected in the networked environment such as the logic of remote computer 1344 and operates.Remote computer 1344 can be personal computer, server, router, network PC, workstation, the device based on microprocessor, peer device or other common network node etc., and generally includes many or all elements of above describing with respect to computing machine 1312.For for purpose of brevity, memory storage device 1346 only is shown for remote computer 1344.Remote computer 1344 is connected to computing machine 1312 by network interface 1348 by logic, and is physically connected by communicating to connect 1350 then.Network interface 1348 comprises the wired and/or cordless communication network such as Local Area Network and wide area network (WAN).Lan technology comprises Fiber Distributed Data Interface (FDDI), copper distributed data interface (CDDI), Ethernet, token ring etc.The WAN technology includes, but not limited to circuit-switched network, packet switching network and the Digital Subscriber Line (DSL) of point-to-point link, similar Integrated Service Digital Network and variant thereof.
Communicating to connect 1350 refers to and is used for network interface 1348 is connected to the hardware/software of bus 1318.Although clear, will communicate to connect 1350 and be shown and be positioned at computing machine 1312, yet it also can be in computing machine 1312 outside for explanation.It only is the purpose of example, be connected to network interface 1348 necessary hardware/softwares and comprise inside and outside technology, such as the modulator-demodular unit, ISDN adapter and the Ethernet card that comprise routine call level modulator-demodular unit, cable modem and DSL modulator-demodular unit etc.
The illustrated examples that comprises some assembly and method is more than described.Certainly, can not describe each imaginabale combination of assembly or method, but those of ordinary skill in the art can recognize that numerous other combination and permutation of the present invention are possible.Thereby all such changes, modifications and variations are intended to fall in the appended claims spirit and scope.
Especially, about the various functions of carrying out by above-described assembly, equipment, circuit, system etc., the term (comprising quoting " device ") that is used to describe such assembly is unless otherwise point out, otherwise it corresponding to any assembly of the appointed function of carrying out described assembly (for example is intended to, functional equivalent), even structurally different with the structure that is disclosed of function in carrying out example shown here., can recognize also that assembly that discloses and describe and method can comprise system and contain the action that is useful on the whole bag of tricks that execution discloses and describe herein and/or the computer-readable medium of the computer executable instructions of incident at this point.
In addition, although only disclose special characteristic of the present invention with reference to one among some embodiment, yet such feature can be according to desired and any mode given or that application-specific is favourable combined with one or more features of other realization.And, with regard to describe in detail or employed term in claims " comprise " and " comprising " and variation thereof with regard to, it is comprising property that these terms are intended to be similar to mode that term " contains ".
Claims (20)
1. the system of a tectonic information search inquiry comprises:
Query language with predefine sentence structure; And
Create the constructor of encapsulation with first object search of the inquiry of described query language structure.
2. the system as claimed in claim 1 is characterized in that, the inquiry of described encapsulation is represented as tree construction.
3. system as claimed in claim 2 is characterized in that, the tree construction of the inquiry of described encapsulation is quoted second tree construction of the tree construction of the inquiry that is different from described encapsulation.
4. system as claimed in claim 3 is characterized in that, also comprises:
Encapsulate second object search of described first object search.
5. system as claimed in claim 4 is characterized in that, also comprises can be by the interface of the file system of described second object search search.
6. system as claimed in claim 5 is characterized in that described file system resides on the disc driver.
7. system as claimed in claim 5 is characterized in that described file system resides on the redundant array of independent disk.
8. computer-readable medium that comprises the machine interpretable data entity structure that comprises assembly as claimed in claim 4.
9. method that is used to create search inquiry comprises:
Use has at least a portion of the query language definition inquiry of predefine sentence structure, at most to whole inquiry with comprise whole inquiry; And
First object search of the defined part of the described inquiry of structure encapsulation.
10. method as claimed in claim 9 is characterized in that, also comprises:
Defined question blank is shown first tree construction.
11. method as claimed in claim 10 is characterized in that, also comprises:
Use described first tree construction to quote second tree construction different with described first tree construction.
12. method as claimed in claim 11 is characterized in that, also comprises:
Create second object search of described first object search of encapsulation.
13. method as claimed in claim 12 is characterized in that, comprises that also described second object search of use comes the information in the locating file system.
14. method as claimed in claim 13 is characterized in that, described use second object search comprises the access file system interface.
15. a system of creating search inquiry comprises:
Be used to use at least a portion of the query language definition inquiry with predefine sentence structure, at most to whole inquiry with comprise the device of whole inquiry; And
Be used to construct the device of first object search of the defined part of the described inquiry of encapsulation.
16. system as claimed in claim 15 is characterized in that, also comprises:
Be used for defined question blank is shown the device of first tree construction.
17. system as claimed in claim 16 is characterized in that, also comprises:
Be used to use described first tree construction to quote the device of second tree construction that is different from described first tree construction.
18. system as claimed in claim 17 is characterized in that, also comprises:
Be used to create the device of second object search that encapsulates described first object search.
19. system as claimed in claim 18 is characterized in that, also comprises being used for using described second object search to come the device of the information of locating file system.
20. system as claimed in claim 19 is characterized in that, describedly is used to use the device of second object search to comprise the device that is used for the access file system interface.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US65734105P | 2005-02-28 | 2005-02-28 | |
US60/657,341 | 2005-02-28 | ||
US11/188,421 | 2005-07-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1828588A true CN1828588A (en) | 2006-09-06 |
Family
ID=36946987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610003786 Pending CN1828588A (en) | 2005-02-28 | 2006-02-10 | Composable query building API and query language |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1828588A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786932A (en) * | 2014-12-26 | 2016-07-20 | 北大医疗信息技术有限公司 | Query method and query apparatus for clinical business in medical system |
CN108304416A (en) * | 2017-01-13 | 2018-07-20 | 苏州稻城信息科技有限公司 | A kind of more attribute automatic mapping systems based on semantic analysis |
-
2006
- 2006-02-10 CN CN 200610003786 patent/CN1828588A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786932A (en) * | 2014-12-26 | 2016-07-20 | 北大医疗信息技术有限公司 | Query method and query apparatus for clinical business in medical system |
CN105786932B (en) * | 2014-12-26 | 2020-03-27 | 北大医疗信息技术有限公司 | Query method and query device for clinical business in medical system |
CN108304416A (en) * | 2017-01-13 | 2018-07-20 | 苏州稻城信息科技有限公司 | A kind of more attribute automatic mapping systems based on semantic analysis |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Delaware et al. | Fiat: Deductive synthesis of abstract data types in a proof assistant | |
JP2006244478A (en) | Composable query building api and query language | |
CN1841379A (en) | Mapping of a file system model to a database object | |
EP1725929B1 (en) | System and method for efficient evaluation of a query that invokes a table valued function | |
CN1821957A (en) | Relationship modeling | |
CN101253476B (en) | Translation system and method for programming code | |
CN101887365B (en) | Method and system for constructing executable code for component-based applications | |
US7536406B2 (en) | Impact analysis in an object model | |
CN102298607A (en) | Schema contracts for data integration | |
CN1877523A (en) | Method for unified management of component library supporting heterogeneous component | |
CN1361891A (en) | Method and system for an extensible macro language | |
CN1723461A (en) | System and method for object persistence in a database store | |
CN1828530A (en) | Automated data organization | |
CN101606154A (en) | Allow the query pattern of the type stream of element type | |
CN1647080A (en) | A method, computer program and computer for accessing data in an environment of multiple data repositories | |
CN102339316A (en) | Inquiry restraint encoding using state machine based on type | |
CN102609292B (en) | Optimization | |
CN1967538A (en) | Clinical genomics merged repository and partial episode support with support abstract and semantic meaning preserving data sniffers | |
CN1816791A (en) | System and a method for presenting items to a user with a contextual presentation | |
CN1658156A (en) | Program and its construction method, storage medium, program construction system and terminal device | |
CN1890632A (en) | Determining the possibility of adverse effects arising from a code change | |
CN1729448A (en) | Transparent EJB support and horizontal data partitioning | |
CN1866283A (en) | System and method for implementing regular system triggering | |
CN1828588A (en) | Composable query building API and query language | |
Bruneliere et al. | Towards scalable model views on heterogeneous model resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
CI02 | Correction of invention patent application |
Correction item: Priority Correct: 2005.07.25 US 11/188,421 False: Lack of priority second Number: 36 Page: The title page Volume: 22 |
|
COR | Change of bibliographic data |
Free format text: CORRECT: PRIORITY; FROM: MISSING THE SECOND ARTICLE OF PRIORITY TO: 2005.7.25 US 11/188,421 |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060906 |