The primary driver of this development is the BrownDog project.
Current sprint is JSON-LD-2.
As of June 8th the following need to be implemented
- When adding metadata check if context already exists and create new if it doesnt
- Ability to edit context
- Ability edit metadata
- Create GUI to manipulate this new metadata
- Store extractor metadata (on top of context metadata)
- store external services and libraries used
- Create example extractor using this new representation
- Add heartbeat for extractors that sends over extractor metadata and updates the heartbeat
Example json-ld document:
Available API endpoints:
POST | /api/contexts | @api.ContextLD.addContext() | |
GET | /api/contexts/:id | @api.ContextLD.getContextById(id: UUID) | |
GET | /api/contexts/:name/context.json | @api.ContextLD.getContextByName(name: String) | |
DELETE | /api/contexts/:id | @api.ContextLD.removeById(id: UUID) | |
POST | /api/datasets/:id/metadataJsonLD | @api.Datasets.addMetadataJsonLD(id: UUID) | |
GET | /api/datasets/:id/metadataJsonLD | @api.Datasets.getMetadataJsonLD(id: UUID) | |
POST | /api/files/:id/metadataJsonLD | @api.Files.addMetadataJsonLD(id: UUID) | |
GET | /api/files/:id/metadataJsonLD | @api.Files.getMetadataJsonLD(id: UUID) |
Comments:
- Extractor context definitions are similar to user specified metadata, they both provide what kind of metadata will be added
- How much flexibility do extractors get when adding metadata?
Open questions:
- Should ContextLD and Metadata services be combined into one?
Extractor info tentative model:
case class ExtractorInfo ( id: UUID, name: String, description: String, creator: User, version: String, lastSeen: Date, contexts: List[UUID], external_services: List[URL], libraries: List[String], bibtex: List[String] )