Introduction
Share-VDE manages a Knowledge Base which consists of clustered, integrated and enriched entities. In Share-VDE, a tenant is represented by a set of institutions contributing to the same Knowledge base.
An institution Pn within a tenant is called provenance. We use that term because we always want to retain the relationship between Share-VDE entities and data that originally contributed to their building.
Multiple tenants form the Share Family. Family members interoperate through a centralised registry.
In the following diagram we depicted a high-level overview of the clusters genesis process.
Starting from the left side we have:
- A tenant composed by n institutions (P1...Pn)
- Institutions contribute with their raw data (e.g. bibliographic records, authority records)
- The Share-VDE clusters are created in the Knowledge Base by means of an automatic process we simply call "clustering"
Each Share-VDE cluster is the result of merging contributions from several sources, including a special enrichment for linking external sources (e.g. VIAF, ISNI).
We like to imagine a cluster like a prism, which is a whole unit and at the same time it retains several faces (the contribution of each source). See the following diagrams for a visual explanation
Prism Status List
Status Code | Description | Locking? |
---|---|---|
SV or Null/Empty | Saved | No |
ED | Edit | No |
MS | Merge Source (the prism is part of a merge list as merge source) | Yes |
MD | Merge Destination (the prism is part of a merge list as merge destination) | Yes |
SG | Split Giver | Yes |
SR | Split Receiver | Yes |
NV | Invalidated | Yes |
RN | Review Needed | Yes |
API Perspective
Each cluster type has a "provenances" field associated which, as the name suggests, indicates the provenances that contributed to that cluster definition.
Here's an example of a request which asks for a specific Person and its provenances:
{
person(uri: "https://svde.org/agents/201") {
uri
name
provenances {
uri
description
}
}
}
In the response below we clearly see the Share-VDE cluster for Luiss Carroll has been contributed by 3 institutions: Stanford, Alberta and British Library.
{
"data": {
"person": {
"uri": "https://svde.org/agents/201",
"name": "Carroll, Luiss",
"provenances": [
{
"uri": "https://svde.org/agents/STANFORD",
"description": "Stanford University"
},
{
"uri": "https://svde.org/agents/BL",
"description": "British Library"
},
{
"uri": "https://svde.org/agents/UALBERTA",
"description": "University of Alberta"
}
]
}
}
}
The request/response above depicts an interaction between an anonymous (i.e. read-only) requestor and Share-VDE. In case the client has write permissions (e.g. it is associated to a svde-editor or svde-editor-advanced), for each provenance it's possible to get information about users (belonging to that provenance) that are working on that cluster. The request includes in this case a "status" field:
{
person(uri: "https://svde.org/agents/201") {
uri
name
provenances {
uri
description
status {
statusCode
user {
username
fullName
}
}
}
}
}
The response contains now the information about three users that are editing that cluster:
{
"data": {
"person": {
"uri": "https://svde.org/agents/201",
"name": "Carroll, Luiss",
"provenances": [
{
"uri": "https://svde.org/agents/UALBERTA",
"status": [
{
"statusCode": "ED",
"user": {
"username": "agazzarini",
"fullName": "Andrea Gazzarini"
}
},
{
"statusCode": "ED",
"user": {
"username": "mbranca",
"fullName": "Max Branca"
}
}
]
},
{
"uri": "https://svde.org/agents/BL",
"status": []
},
{
"uri": "https://svde.org/agents/STANFORD",
"status": [
{
"statusCode": "ED",
"user": {
"username": "fzancan",
"fullName": "Federico Zancan"
}
}
]
}
]
}
}
}