Last edited 6 months ago
by Serena Cericola

ShareDoc:Domain Model: Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:


==Introduction==
==Introduction==
Share-VDE manages a complex domain composed by several entities. That results in a complex graph of interconnected entities that can be queried and used by external requestors through a rich set of public APIs. The purpose of this section is to describe what a requestor can do in terms of API in order to interact with Share-VDE.
At the heart of the system there's a '''complex domain model,''' as depicted in the following diagram:[[File:Share VDE Domain Model.png|alt=Share VDE Domain Model|left|thumb]]The domain is composed by '''functional''' and '''technical''' entities, meaning with that a simple classification where we denote as
* '''"functional"''' those entities that are part of the Share-VDE Core Domain Model (e.g. Agents, Opuses, Works, Instances, Items)
*'''"technical"''' those entities required by some '''technical constraint''' in order to enrich the core entities with additional information (e.g. Collections, Facets, Pagination metadata).
=== Knowledge Base, Tenants, Provenances ===
'''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'''.
'''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'''.
[[File:svde-ckb-provenance-tenant.png|none|thumb]]
[[File:svde-ckb-provenance-tenant.png|none|thumb]]
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.
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: The Share-VDE Family===
===Multiple Tenants? The Share-VDE Family===
Multiple tenants form the '''Share Family'''. Family members interoperate through a centralised registry.
Multiple tenants form the '''Share Family'''. Family members interoperate through a centralised registry.
[[File:share-family.png|none|thumb]]
[[File:share-family.png|none|thumb]]


===Share-VDE Clusters: The Genesis===
===Share-VDE Entities===
In the following diagram we depicted a high-level overview of the clusters genesis process.
In the following diagram we depicted a high-level overview of the clusters genesis process.
[[File:data-to-svde-clusters.png|none|thumb|589x589px]]
[[File:data-to-svde-clusters.png|none|thumb|589x589px]]
Line 18: Line 28:
*The '''Share-VDE clusters''' are created in the '''Knowledge Base''' by means of an automatic process we simply call '''"clustering"'''
*The '''Share-VDE clusters''' are created in the '''Knowledge Base''' by means of an automatic process we simply call '''"clustering"'''


===The Share-VDE Cluster: The Prism===
===The Share-VDE Entity: The Prism===
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).   
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).   



Revision as of 08:39, 8 February 2024

Introduction

Share-VDE manages a complex domain composed by several entities. That results in a complex graph of interconnected entities that can be queried and used by external requestors through a rich set of public APIs. The purpose of this section is to describe what a requestor can do in terms of API in order to interact with Share-VDE.

At the heart of the system there's a complex domain model, as depicted in the following diagram:

Share VDE Domain Model

The domain is composed by functional and technical entities, meaning with that a simple classification where we denote as

  • "functional" those entities that are part of the Share-VDE Core Domain Model (e.g. Agents, Opuses, Works, Instances, Items)
  • "technical" those entities required by some technical constraint in order to enrich the core entities with additional information (e.g. Collections, Facets, Pagination metadata).


Knowledge Base, Tenants, Provenances

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.

svde-ckb-provenance-tenant.png

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? The Share-VDE Family

Multiple tenants form the Share Family. Family members interoperate through a centralised registry.

share-family.png

Share-VDE Entities

In the following diagram we depicted a high-level overview of the clusters genesis process.

data-to-svde-clusters.png

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"

The Share-VDE Entity: The Prism

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 1.png
prism 2.png

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"
            }
        ]
    }
  }
}