At line 30 added 1 line. |
+ |
At line 31 added 1 line. |
+ |
Line 37 was replaced by line 39 |
- In general, the {{search}} operation requires access to all semantic annotations (i.e., for remote searches all remote annotations) to find matching resources. Because of this requirement, as the number of semantic annotations increases, this operation can become expensive. |
+ !!! An optimization method |
At line 38 added 1 line. |
+ In general, the {{search}} operation requires access to all semantic annotations (i.e., for remote searches all remote annotations) to find matching resources. Because of this requirement, as the number of semantic annotations increases, this operation can become expensive. |
At line 39 added 3 lines. |
+ We may reduce the cost of {{search}} by adding additional services that can be executed locally at each repository and by altering the search algorithm. The additional services are: |
+ {{{ |
+ getRepositories() :: Set<RepositoryID> |
Line 41 was replaced by line 47 |
- We can reduce the cost by indexing semantic annotations for search. In particular, we can define an index of the form: {{ontoSearchIndex ( ResourceID, ResourceType, SemanticType )}} that can in particular, provide the functions: |
+ getResources() :: Set<ResourceID> |
Lines 43-46 were replaced by line 49 |
- {{{ |
- AnnotationEngine: ConceptExpression getSemanticType( OntoSearchIndex, ResourceID ) |
- AnnotationEngine: Set<ResourceID> getResourceIDs( OntoSearchIndex ) |
- AnnotationEngine: ResourceType getResourceType( OntoSearchIndex, ResourceID ) |
+ partialSearch( ConceptExpression, ResourceID ) :: Set<ConceptExpression> |
At line 47 added 1 line. |
+ Using these operations, the search algorithm would procede as follows. First, the search algorithm contacts a remote repository ... |