| Line 30 was replaced by line 30 |
| - getResourceType( ResourceID ) :: ResourceType |
| + getResourceType( ResourceID ) :: ResourceType |
| Line 32 was replaced by line 32 |
| - getSemanticAnnotations( RemoteSearchFlag ) :: Set<SemanticAnnotationID> |
| + getSemanticAnnotations( RemoteSearchFlag ) :: Set<SemanticAnnotationID> |
| Line 34 was replaced by line 34 |
| - getOntology( OntologyID ) :: Set<Ontology> |
| + getOntology( OntologyID ) :: Set<Ontology> |
| Line 41 was replaced by line 41 |
| - In general, the {{search}} operation requires access to all semantic annotations to find matching resources. For example, if a search expression requires both concepts {{A}} and {{B}}, the algorithm must look for annotations that explicitly state {{A}} and {{B}} as well as those that state only {{A}} and only {{B}} (which taken together make {{A}} and {{B}}). Thus, for remote searches, the algorithm must consider all remote annotations to find matching resources. Because of this requirement, as the number of semantic annotations increases, this operation can become expensive. |
| + In general, the {{search}} operation requires access to all semantic annotations to find matching resources. For example, consider a search expression {{A and B}}, i.e., a resource must contribute to both concept {{A}} and concept {{B}}. To find appropriate matches for this search term, the algorithm must look for annotations that explicitly state {{A and B}} as well as those that state only {{A}} and only {{B}} (which taken together make {{A and B}}). Note that an annotation that states only {{A}} may be in one repository, while an annotation that states {{B}} may be in another. Thus, for remote searches, the {{search}} algorithm must gather and consider all remote annotations to find matching resources. The {{search}} operation is inherently centralized because of this situation. |
| Line 43 was replaced by line 43 |
| - 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: |
| + 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, making it slightly less centralized. The additional services are: |
| Line 45 was replaced by line 45 |
| - getRepositories() :: Set<RepositoryID> |
| + getRepositories() :: Set<RepositoryID> |
| Line 47 was replaced by line 47 |
| - getResources() :: Set<ResourceID> |
| + getResources( RepositoryID ) :: Set<ResourceID> |
| Line 49 was replaced by line 49 |
| - partialSearch( ConceptExpression, ResourceID ) :: Set<ConceptExpression> |
| + partialSearch( RepositoryID, ConceptExpression, ResourceID ) :: Set<ConceptExpression> |