Line 1 was replaced by lines 1-7 |
- !! Overview |
+ !!! Intended audience |
+ This document is intended for __SEEK and Kepler developers__. |
+ |
+ It is a __DRAFT DESIGN DOCUMENT__ and does not reflect functionality as it |
+ currently exists in Kepler or SEEK. Comments and feedback are appreciated. |
+ |
+ !!! Overview |
Line 3 was replaced by line 9 |
- The following lists the semantic mediation service interfaces: |
+ The following lists the semantic-mediation service interfaces: |
Line 8 was replaced by lines 14-16 |
- search( ConceptExpression, Set<ResourceType>, RemoteFlag ) :: Set<ResourceID> |
+ Set<ResourceID> search( ConceptExpression, Set<ResourceType>, RemoteFlag ) |
+ |
+ Set<QueryResult> query( QueryExpression, RemoteFlag ) |
Line 10 was replaced by line 18 |
- query( QueryExpression, RemoteFlag ) :: Set<QueryResult> |
+ Boolean match( ResourceID, ConceptExpression, RemoteFlag ) |
Line 12 was replaced by line 20 |
- compatible( ResourceID, Connection, ResourceID, StructTypeFlag, RemoteFlag ) :: Boolean |
+ Boolean compatible( ResourceID, Connection, ResourceID, StructTypeFlag, RemoteFlag ) |
Line 14 was replaced by line 22 |
- searchCompatible( ResourceID, Port, StructTypeFlag, RemoteFlag ) :: Set<ResourceID> |
+ Set<ResourceID> searchCompatible( ResourceID, Port, StructTypeFlag, RemoteFlag ) |
Line 16 was replaced by line 24 |
- compose( ResourceID, Connection, ResourceID, RemoteFlag ) :: Set<StructMapping> |
+ Set<StructMapping> compose( ResourceID, Connection, ResourceID, RemoteFlag ) |
Line 18 was replaced by line 26 |
- merge( ResourceID, Connection, ResourceID, RemoteFlag ) :: Set<StructMapping> |
+ Set<StructMapping> merge( ResourceID, Connection, ResourceID, RemoteFlag ) |
Line 20 was replaced by line 28 |
- semanticType( ResourceID, String, RemoteFlag ) :: ConceptExpression // for summarizing annotations |
+ ConceptExpression semanticTypeConcepts( ResourceID, String, RemoteFlag ) // for summarizing annotations |
Line 28 was replaced by line 36 |
- !! {{Search}}: Simple Concept-Based Searching |
+ !!! {{Search}}: Simple Concept-Based Searching |
Line 30 was replaced by line 38 |
- {{{search( ConceptExpression, Set<ResourceType>, RemoteFlag ) :: Set<ResourceID>}}} |
+ {{{Set<ResourceID> search( ConceptExpression, Set<ResourceType>, RemoteFlag )}}} |
Line 37 was replaced by line 45 |
- The service returns a set of resources (as LSIDs) that have semantic annotations "matching" the given search term. |
+ The service returns a set of resources (as LSIDs) that have semantic types "matching" the given search term. |
Line 43 was replaced by line 51 |
- getResourceType( ResourceID ) :: ResourceType |
+ ResourceType getResourceType( ResourceID ) |
Line 45 was replaced by line 53 |
- getSemanticAnnotations( RemoteSearchFlag ) :: Set<SemanticAnnotationID> |
+ Set<SemanticTypeID> getSemanticAnnotations( RemoteSearchFlag ) |
Line 47 was replaced by line 55 |
- getOntology( OntologyID ) :: Set<Ontology> |
+ Set<Ontology> getOntology( OntologyID ) |
Line 50 was replaced by line 58 |
- The first operation returns the resource type of a given resource identifier (an LSID). The second operation returns the set of semantic annotations known to the kepler object manager (including annotations stored on remote repositories depending on the value of the remote flag). The last operation returns the ontology for a given ontology identifier (also a resource id). |
+ The first operation returns the resource type of a given resource identifier (an LSID). The second operation returns the set of semantic types known to the kepler object manager (including semantic types stored on remote repositories depending on the value of the remote flag). The last operation returns the ontology for a given ontology identifier (also a resource id). Note that this last operation could be used with an ontology service, e.g., the simple one described at the end of this page[simple ontology service|1]. |
Line 52 was replaced by line 60 |
- ! Optimized Remote Searching |
+ !! Optimized Remote Searching |
Line 54 was replaced by line 62 |
- 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 only {{B}} may be in another. Thus, for remote searches, the {{search}} algorithm must obtain and consider all remote annotations to find matching resources, making the {{search}} operation inherently centralized. |
+ In general, the {{search}} operation requires access to all semantic types 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 semantic types 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 a semantic type that states only {{A}} may be in one repository, while a semantic type that states only {{B}} may be in another. Thus, for remote searches, the {{search}} algorithm must obtain and consider all remote semantic types to find matching resources, making the {{search}} operation inherently centralized. |
Line 59 was replaced by line 67 |
- getRepositories() :: Set<RepositoryID> |
+ Set<RepositoryID> getRepositories() |
Line 61 was replaced by line 69 |
- getResources( RepositoryID, Set<ResourceType> ) :: Set<ResourceID> |
+ Set<ResourceID> getResources( RepositoryID, Set<ResourceType> ) |
Line 63 was replaced by line 71 |
- partialSearch( RepositoryID, ConceptExpression, ResourceID ) :: Set<ConceptExpression> |
+ Set<ConceptExpression> partialSearch( RepositoryID, ConceptExpression, ResourceID ) |
Line 69 was replaced by lines 77-84 |
- !! {{Query}}: Complex Concept-Based Searching |
+ !!! {{Query}}: Complex Concept-Based Searching |
+ |
+ {{{ |
+ Set<QueryResult> query( QueryExpression, RemoteFlag ) |
+ }}} |
+ |
+ |
+ |
At line 70 added 2 lines. |
+ !!!{{Match}}: Checking Matching Resources |
+ |
Line 72 was replaced by line 89 |
- query( QueryExpression, RemoteFlag ) :: Set<QueryResult> |
+ Boolean match( ConceptExpression, ResourceID, RemoteFlag ) |
At line 75 added 8 lines. |
+ The arguments for this service are: |
+ # A resource whose semantic types are to be checked; |
+ # A concept expression; and |
+ # A flag denoting whether local or remote repositories are searched |
+ |
+ The service returns true if the resource has a semantic type matching the concept expression. Note that given a set of resources {{R}} returned by the {{search}} service for a concept expression {{c}} and remote flag value {{m}} (either true or false), for each {{r}} in {{R}}, {{match(r, c, m)}} is true. That is, {{r}} is a {{match}} for search {{c}}. |
+ |
+ The {{match}} service is included primarily to support browsing of ontologies. |
Removed line 77 |
- !! {{Compatible}}: Checking Semantically Well-Formed Connections |
At line 78 added 2 lines. |
+ !!! {{Compatible}}: Checking Semantically Well-Formed Connections |
+ |
Line 80 was replaced by line 106 |
- compatible( ResourceID, Connection, ResourceID, StructTypeFlag, RemoteFlag ) :: Boolean |
+ Boolean compatible( ResourceID, Connection, ResourceID, StructTypeFlag, RemoteFlag ) |
Line 85 was replaced by line 111 |
- !! {{SearchCompatible}}: Searching for Semantically Well-Formed Connections |
+ !!! {{SearchCompatible}}: Searching for Semantically Well-Formed Connections |
Line 88 was replaced by line 114 |
- searchCompatible( ResourceID, Port, StructTypeFlag, RemoteFlag ) :: Set<ResourceID> |
+ Set<ResourceID> searchCompatible( ResourceID, Port, StructTypeFlag, RemoteFlag ) |
Line 92 was replaced by line 118 |
- !! {{Compose}}: Suggesting Well-Structured Actor Connections |
+ !!! {{Compose}}: Suggesting Well-Structured Actor Connections |
Line 95 was replaced by line 121 |
- compose( ResourceID, Connection, ResourceID, RemoteFlag ) :: Set<StructMapping> |
+ Set<StructMapping> compose( ResourceID, Connection, ResourceID, RemoteFlag ) |
Line 98 was replaced by line 124 |
- !! {{Merge}}: Suggesting Simple Merging of Heterogeneous Datasets |
+ !!! {{Merge}}: Suggesting Simple Merging of Heterogeneous Datasets |
Line 101 was replaced by line 127 |
- merge( ResourceID, Connection, ResourceID, RemoteFlag ) :: Set<StructMapping> |
+ Set<StructMapping> merge( ResourceID, Connection, ResourceID, RemoteFlag ) |
Line 105 was replaced by line 131 |
- !! {{SemanticType}}: Summarizing Semantic Annotations |
+ !!! {{SemanticType}}: Summarizing Semantic Annotations |
Line 108 was replaced by line 134 |
- semanticType( ResourceID, String, RemoteFlag ) :: ConceptExpression |
+ ConceptExpression semanticType( ResourceID, String, RemoteFlag ) |
Line 112 was replaced by lines 138-140 |
- !! A Simple Ontology Interface |
+ !!! A Simple Ontology Interface |
+ |
+ [simple ontology interface|#1] |
Line 115 was replaced by line 143 |
- interface IOntology { |
+ interface ISimpleOntologyAccess { |
Line 117 was replaced by line 145 |
- getConcepts(OntologyID) :: Set<ConceptID> |
+ Set<ConceptID> getConcepts( OntologyID ) |
Line 119 was replaced by line 147 |
- getRoles(OntologyID) :: Set<RoleID> |
+ Set<RoleID> getRoles( OntologyID ) :: Set<RoleID> |
Line 121 was replaced by line 149 |
- getMatchingConcepts(OntologyID, String) :: Set<ConceptID> |
+ Set<ConceptID> getMatchingConcepts( OntologyID, String ) |
Line 123 was replaced by line 151 |
- getMatchingRoles(OntologyID, String) :: Set<ConceptID> |
+ Set<ConceptID> getMatchingRoles( OntologyID, String ) |
Line 125 was replaced by line 153 |
- getSubConcepts(OntologyID, ConceptID, DirectFlag ) :: Set<ConceptID> |
+ Set<ConceptID> getSubConcepts( OntologyID, ConceptID, DirectFlag ) |
Line 127 was replaced by line 155 |
- getDirectSuperConcepts(OntologyID, ConceptID) :: Set<ConceptID> |
+ Set<ConceptID> getSuperConcepts( OntologyID, ConceptID, DirectFlag ) |
At line 128 added 1 line. |
+ Set<RoleID> getSubRoles( OntologyID, RoleID, DirectFlag ) |
Line 130 was replaced by line 159 |
- getDirectSubRoles(OntologyID, RoleID) :: Set<RoleID> |
+ Set<RoleID> getSuperRoles( OntologyID, RoleID, DirectFlag ) |
Lines 132-133 were replaced by line 161 |
- getDirectSuperRoles(OntologyID, RoleID) :: Set<RoleID> |
- |
+ Booolean satisfies( ConceptExpression, ConceptExpression ) |
At line 136 added 2 lines. |
+ |
+ !!! Comments |