Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EMF Search"
(→Extensibility) |
m (typos) |
||
Line 7: | Line 7: | ||
EMF Search is an Ecore meta-model based extensible search engine which purpose is to provide users query launching services against Ecore based models. | EMF Search is an Ecore meta-model based extensible search engine which purpose is to provide users query launching services against Ecore based models. | ||
− | Meta-model based search is basically being able to take advantage of a meta-model structure to run generic search queries onto it. This means that a meta-model structure, defining a minimal modeling " | + | Meta-model based search is basically being able to take advantage of a meta-model structure to run generic search queries onto it. This means that a meta-model structure, defining a minimal modeling "organization", contains information enough to get operations applied to it, and by extension having same operations applied to any inheriting model compliant with this meta-model structure. Ecore based search is in fact a particular case of meta-model based treatment, a typical approach also known as Model Driven Architecture. |
In other words, this allows to develop meta-model based generic algorithms, valid across any user defined model extending elements & structure of a given meta-model. Such method are usually employed as part of a code generation development process also known as Model Driven Development, allowing developers to code things once, setting up templates based code generation getting its data from the particular valuation of an instance of a given meta-model (eg: An actual user defined model or domain model populated with pertinent data). | In other words, this allows to develop meta-model based generic algorithms, valid across any user defined model extending elements & structure of a given meta-model. Such method are usually employed as part of a code generation development process also known as Model Driven Development, allowing developers to code things once, setting up templates based code generation getting its data from the particular valuation of an instance of a given meta-model (eg: An actual user defined model or domain model populated with pertinent data). | ||
Line 13: | Line 13: | ||
== Terminology == | == Terminology == | ||
− | For model search explanatory purposes, we need to introduce some terminology. First at all, lets keep in mind a model search query always need to deal with entities such as a scope of model resource(s)/element(s) onto which a search query will apply, a set of participant meta-elements which the search query will consider, and finally a search query, textual, scriptical, | + | For model search explanatory purposes, we need to introduce some terminology. First at all, lets keep in mind a model search query always need to deal with entities such as a scope of model resource(s)/element(s) onto which a search query will apply, a set of participant meta-elements which the search query will consider, and finally a search query, textual, scriptical, programmatic which an associated model search engine will evaluate against a scope and participants. This evaluation obviously having the role to produce Model Search Results. |
− | [EMF Model Search Query | + | [EMF Model Search Query Entities Overview] |
This brief explanation just made main concepts appearing : Model Search Scope, Model Search Participants, Model Search Query, Model Search Engine, Model Search Results. | This brief explanation just made main concepts appearing : Model Search Scope, Model Search Participants, Model Search Query, Model Search Engine, Model Search Results. | ||
Line 22: | Line 22: | ||
EMF Search has extension point allowing user to contribute custom model search engines | EMF Search has extension point allowing user to contribute custom model search engines | ||
(see org.eclipse.emf.search.modelSearchEngine extension point definition). | (see org.eclipse.emf.search.modelSearchEngine extension point definition). | ||
− | A model search engine has | + | A model search engine has responsibility, given a model resource scope, |
to evaluate a model search query applying only on a set of selected meta-elements (called meta-elements participants). | to evaluate a model search query applying only on a set of selected meta-elements (called meta-elements participants). | ||
* Model Search Query | * Model Search Query | ||
EMF Search offers extensible model search queries mechanism. | EMF Search offers extensible model search queries mechanism. | ||
− | Users can contribute model search queries potentially combined with any numbers of | + | Users can contribute model search queries potentially combined with any numbers of different elements participants. |
(eg. given the fact different user defined elements extends Ecore meta-elements). As a result, users can register to | (eg. given the fact different user defined elements extends Ecore meta-elements). As a result, users can register to | ||
org.eclipse.emf.search.modelSearchID extension their own model search queries (plus the way to handle it from UI point of view) | org.eclipse.emf.search.modelSearchID extension their own model search queries (plus the way to handle it from UI point of view) | ||
and the, associating it to an existing model search engine. | and the, associating it to an existing model search engine. | ||
− | * Model Search | + | * Model Search Participants |
EMF Search offers extensible model search participants elements mechanism. | EMF Search offers extensible model search participants elements mechanism. | ||
Users can contribute model search participants potentially combined with any numbers of diferent model search queries. | Users can contribute model search participants potentially combined with any numbers of diferent model search queries. | ||
Line 39: | Line 39: | ||
* Model Search Scope | * Model Search Scope | ||
− | Model Search Scope stands for a set of ecore resources to be | + | Model Search Scope stands for a set of ecore resources to be considered by the search query. |
We can make a comparison with platform search concepts from the scope point of view. | We can make a comparison with platform search concepts from the scope point of view. | ||
As in the text search or java search, user can search into the whole workspace or reduce its scope to selected resources, | As in the text search or java search, user can search into the whole workspace or reduce its scope to selected resources, | ||
Line 46: | Line 46: | ||
* Model Search Result | * Model Search Result | ||
Query evaluation produces matches, being collected in a result object or each resource evaluated. | Query evaluation produces matches, being collected in a result object or each resource evaluated. | ||
− | Matches can be considered as | + | Matches can be considered as result entries of top level result object. |
These matches are considered as Model Search Result and will populate the Eclipse Search View. | These matches are considered as Model Search Result and will populate the Eclipse Search View. | ||
Revision as of 06:48, 31 March 2009
Project website at Eclipse [1]
Contents
Concept
EMF Search provides the fundamental infrastructure and components for search queries on EMF based models. A particular focus is made on integration with the Eclipse Core Search API for end user tight integration.
EMF Search is an Ecore meta-model based extensible search engine which purpose is to provide users query launching services against Ecore based models.
Meta-model based search is basically being able to take advantage of a meta-model structure to run generic search queries onto it. This means that a meta-model structure, defining a minimal modeling "organization", contains information enough to get operations applied to it, and by extension having same operations applied to any inheriting model compliant with this meta-model structure. Ecore based search is in fact a particular case of meta-model based treatment, a typical approach also known as Model Driven Architecture.
In other words, this allows to develop meta-model based generic algorithms, valid across any user defined model extending elements & structure of a given meta-model. Such method are usually employed as part of a code generation development process also known as Model Driven Development, allowing developers to code things once, setting up templates based code generation getting its data from the particular valuation of an instance of a given meta-model (eg: An actual user defined model or domain model populated with pertinent data).
Terminology
For model search explanatory purposes, we need to introduce some terminology. First at all, lets keep in mind a model search query always need to deal with entities such as a scope of model resource(s)/element(s) onto which a search query will apply, a set of participant meta-elements which the search query will consider, and finally a search query, textual, scriptical, programmatic which an associated model search engine will evaluate against a scope and participants. This evaluation obviously having the role to produce Model Search Results.
[EMF Model Search Query Entities Overview]
This brief explanation just made main concepts appearing : Model Search Scope, Model Search Participants, Model Search Query, Model Search Engine, Model Search Results.
* Model Search Engine: EMF Search has extension point allowing user to contribute custom model search engines (see org.eclipse.emf.search.modelSearchEngine extension point definition). A model search engine has responsibility, given a model resource scope, to evaluate a model search query applying only on a set of selected meta-elements (called meta-elements participants).
* Model Search Query EMF Search offers extensible model search queries mechanism. Users can contribute model search queries potentially combined with any numbers of different elements participants. (eg. given the fact different user defined elements extends Ecore meta-elements). As a result, users can register to org.eclipse.emf.search.modelSearchID extension their own model search queries (plus the way to handle it from UI point of view) and the, associating it to an existing model search engine.
* Model Search Participants EMF Search offers extensible model search participants elements mechanism. Users can contribute model search participants potentially combined with any numbers of diferent model search queries. As a result, users can register to org.eclipse.emf.search.modelSearchParticipantTab extension their own model search participant elements (plus the way to handle it from UI point of view) and, associating it to an existing model search engine.
* Model Search Scope Model Search Scope stands for a set of ecore resources to be considered by the search query. We can make a comparison with platform search concepts from the scope point of view. As in the text search or java search, user can search into the whole workspace or reduce its scope to selected resources, selected projects or even given working set.
* Model Search Result Query evaluation produces matches, being collected in a result object or each resource evaluated. Matches can be considered as result entries of top level result object. These matches are considered as Model Search Result and will populate the Eclipse Search View.
Eclipse Search Integration
Eclipse Search Ecore Integration
EMF Search Replace
EMF Search Replace Feature Tour
UML2 Search Integration
GenModel Search Integration
Custom Textual Search Code Generation
Custom Textual Search Generation Feature Tour
Misc EMF Search Based Tooling
Miscellaneous Search Based Tooling Panorama
Quick Start Guide
Quick Start : Movies DB Example Tutorial
Developer Guide
How To Efficiently Use EMF Search APIs And Extension Points
Extensibility
EMF Search Framework Extensibility Example