Contains the publication metadata necessary to generate pretty lists
| publicationId | displayName | type | date | thumbnailUri | publisher | linkedContentId |
|---|---|---|---|---|---|---|
| p:abc123 | Origin of Species | book | 123456789 | remote:http//... | Cambridge | null |
| p:def456 | SSTables in practice | article | 12345789 | null | NoSQL in the real world | c:cam:kljs2341 |
Maps a source ID to a publication ID Source IDs are a composite key of the source and their external identifier. Sources are citation indexes such as 'Web of Science', 'PubMed', 'Mendeley', .. This is so when we later need to support anything other than Symplectic, we can do some very basic disambiguation based on an external resource id.
| sourceId | publicationId |
|---|---|
| wos:123 | p:abc123 |
| mendeley:abc342 | p:def456 |
Maps a user id to a set of publications. In the example below simon and bert co-authored p:s13m13
This is so we generate a view that lists all the publications for a user
| userId | p:abc123 | p:s13m13 |
|---|---|---|
| u:cam:simong | 1 | 1 |
| u:cam:bert | 1 |
Maps a publication ID to a set of OAE user ids (so we can get all the co-authors of a publication) This is essentially the inverse of the PublicationsByUser CF
| publicationId | u:cam:simong | u:cam:bert |
|---|---|---|
| p:abc123 | 1 | |
| p:s13m13 | 1 | 1 |
| userId |
|---|
| u:cam:nico |
- Get the list of users in symplectic (
/users) - For each symplectic-user, check if he's in OAE
- Each symplectic-user has a
username=<val>attribute where maps to an external id from an authentication service - Construct the loginId
tenantAlias + ':' + authenticationStrategy + ':' + usernameVal - Check
AuthenticationLoginIdif that matches an OAE user. If that exists, go to step 3, otherwise move on to the next symplectic user - Get all the publications for that user
- GET /users/username-
usernameVal/publications?details=full - Ingest (get/create) all those publications
- Add the OAE user in
PublicationsByUsersfor each ingested publication - Store the date
lastRun=Date.now().time()somewhere (yet another CF?)
Two things need to happen:
- Symplectic updates their index
- Get all the new/updated users that Symplectic added in their index since
lastRun - ingest these in the same way as we would do in a full update cycle
- New users in OAE
- For each new user in
SymplecticNewUsers(full CF scan unfortunately) - Get loginId from
AuthenticationUserLoginId, get theexternalId - Get publications for that externalId: GET /users/username-
usernameVal/publications?details=full - Ingest (get/create) all those publications
- Add the OAE user, publication pairs in
PublicationsByUsersandPublicationsAuthors - Remove the userId from the
SymplecticNewUsersCF - Store the date
lastRun=Date.now().time()somewhere (yet another CF?)