| Line 106 was replaced by lines 106-115 |
| - A very simple keyword-based search implementation within Kepler. |
| + *** A very simple keyword-based search we (Chad and I) implemented within Kepler. |
| + **** Integrated with the component 'quick search' frame |
| + **** Allows dynamic actor classification (for browsing) |
| + **** Allows runtime annotation and re-classification of actors |
| + **** Term expansion for individual concept queries |
| + *** Required a number of new features in Kepler: |
| + ***# ID mechanism for actors |
| + ***# Repositories |
| + ***** Fakes out: component repository (as a ptolemy xml config file), annotation repository (xml file), ontology (simple is-a hierarchy, no rels, etc.) |
| + ***# Provides a very naive local ID service (like for LSIDs). Hand-coded. |
| Removed lines 108-110 |
| - Fakes out: workflow component LSIDs, an actor repository (as a |
| - ptolemy xml config file), annotation repository (xml file), LSID |
| - service. |
| Removed line 112 |
| - The "ontology" is a simple hierarchy. No rels, etc. |
| At line 113 added 1 line. |
| + __What's needed for KEPLER__ |
| At line 114 added 3 lines. |
| + * Ontologies and Ontology Tools |
| + ** There basically aren't any. |
| + ** There also aren't any tools in Kepler for creating, browsing, or editing ontologies. |
| Line 116 was replaced by lines 125-129 |
| - * What's Needed for KEPLER |
| + * Annotations |
| + ** Need to extend the annotation "language" |
| + ** Desperately need an annotation editor/browser |
| + *** Need a reasonable/practical GUI design |
| + *** Need a good way to access/browse a component/dataset and its attributes, such as is ports and their input/output types. |
| Removed line 118 |
| - ** Ontologies |
| Line 120 was replaced by lines 132-135 |
| - There basically aren't any. |
| + * Basic Kepler GUI Hooks |
| + ** Like for toolbar, menus, etc. |
| + ** Checking semantic compatibility (can steal unit resolver?). |
| + ** Explanation of results (like for searching, etc.) |
| Removed lines 122-137 |
| - There also aren't any tools. No tools within Kepler. |
| - |
| - |
| - ** Repositories ... |
| - |
| - The Obj. Mngr. can help! We don't have repositories for |
| - workflows/components, ontologies, annotations, or datasets in |
| - KEPLER. |
| - |
| - For annotations, need a searchable "index" of annotations and ids |
| - (for components, datasets, etc.), and a mechanism to "retrieve" |
| - those items. |
| - |
| - For performance, I wonder though if the "index" should be in |
| - memory. |
| - |
| Lines 139-151 were replaced by lines 138-152 |
| - ** Semantic Annotation Editor |
| - |
| - This doesn't exist either ... lots of ways/approaches here. |
| - |
| - Need GUI design for this. |
| - |
| - Also, need a good way to access/browse a component/dataset and its |
| - attributes, such as is ports and their input/output types. |
| - |
| - Similar with datasets |
| - |
| - The challenges are making this tool easy to use, and accessible |
| - within Kepler. |
| + * Algorithms |
| + ** Need to understand the integration/merging algorithms |
| + ** Could today write the other types of search algorithms |
| + |
| + * Repositories |
| + ** Basically none of the repositories exist (except perhaps for Data, not sure) |
| + ** I think the Kepler Obj. Manager can help with this, what we need from it is: |
| + *** Ability to register components, data sets, ontologies, and annotations with the obj. manager |
| + *** Ability to access all LSIDs of a certain type, e.g., components, data sets, ontologies, annotations |
| + *** Ability to retrieve the object for an LSID |
| + *** Some form of ''annotation indexing'' (this is similar to metadata indexing perhaps) |
| + **** A search can be executed directly against an in-memory annotation file (e.g., obtained dynamically from all registered objects) |
| + **** In contrast to asking the obj mngr for all lsids that are annotations, and for each retrieving the annotation file, etc. |
| + *** For efficiency, probably want multiple access paths via lsids, e.g., get all the workflow components and for each, retrieve it's annotation (if there are a lot more annotations than just for components); or build an annotation index based on these lsids, etc. |
| + **** What types of indexing exactly needing should be driven by development/testing, but we may consider an obj. mngr. architecture that can easily support "extensible" indexing strategies (e.g., through listeners, etc.) |
| Removed line 154 |
| - ** Basic Kepler Interfaces / GUI Design |
| Removed lines 156-157 |
| - Like for searching, checking semantic compatibility (can steal |
| - unit resolver), explanation of semantics (like for searching, etc.) |