...
- Domain model
- Decide where to have "count" fields (and whether this should be maintained in DB, in Lucene, or computed by REST layer).
- e.g. concept.getChildCount(), concept.getSimpleRefSetMemberCount()
- Consider separating "relationship" and "inferred relationship" into separate tables/calls. This may help working with classifier easier.
- The "graph resolution handler" and the concept model and loaders would have to be updated too.
- Transitive closure computer - avoid cycles.
- Pass set of identifiers "seen" along the way - fail?
Handling effective time (new handler)
- Loaders should be allowed to set effective time
- release process should be allowed to set effective time
- want to be able to distinguish between published and unpublished things (perhaps a "published" flag is better)
Semantic search
- Support searching by hierarchy, by relationships, etc.
- Sparql end point? or expression language.
Project metadata service
- For Project (pull out of content service)
- for release info (pull out of history service)
PG Support running all admin tools through REST services
- Add additional rest calls (e.g. to action service or whatever)
- Add corresponding client calls.
- When adding a new project, have REST service set the "lastModifiedBy" to the user who authenticated.
Project-based authorization (e.g. only allow edits on concepts where a user is an author)
- This requires tracking the full concept scope with the project. (what if you add a concept?)
Application metadata service (project stuff?)
- Terminology Metadata service
- DONE Support classifier - root node (done), isa relationship (done), and role root.
- DONE stated/inferred char types should be metadata methods,
- Update TerminologyUtility accordingly to avoid hardcoded values
- new DL features for properties and data properties
- access to "RoleRelationship" objects
Security service - n/a
Content service methods for adding/removing inferred rels in batch.
- Separate read/write services of content service
- SNOMEDCT Editing Service
- HistoryService
- getRevisions (without boolean)
- getReleaseRevision(id, String release) - pick any one with matching release - get first one
- Configuration setting for synchronizing access to write services
- ContentService (and content change service) - have a "deep" delete on concept and description that deletes connected refset data too.
- REST layer
- Implement semantic search
- Implement everything across the board for Concept, Description, Language Refset, Relationship, and AssociationReference (e.g. reason for inactivation)
- Let the demo drive all use cases,
- READ only version of rest service
...