3148 lines
155 KiB
Python
3148 lines
155 KiB
Python
# Auto generated from heritage_custodian.yaml by pythongen.py version: 0.0.1
|
|
# Generation date: 2025-11-11T23:16:09
|
|
# Schema: heritage-custodian
|
|
#
|
|
# id: https://w3id.org/heritage/custodian
|
|
# description: A comprehensive LinkML schema for modeling heritage institutions (GLAM - Galleries, Libraries, Archives, Museums) worldwide. This schema integrates multiple standards including TOOI (Dutch organizational ontology), Schema.org, CPOC (Core Public Organization Vocabulary), ISIL (International Standard Identifier for Libraries), and domain-specific vocabularies (RiC-O, BIBFRAME, LIDO, CIDOC-CRM).
|
|
# license: https://creativecommons.org/publicdomain/zero/1.0/
|
|
|
|
import dataclasses
|
|
import re
|
|
from dataclasses import dataclass
|
|
from datetime import (
|
|
date,
|
|
datetime,
|
|
time
|
|
)
|
|
from typing import (
|
|
Any,
|
|
ClassVar,
|
|
Dict,
|
|
List,
|
|
Optional,
|
|
Union
|
|
)
|
|
|
|
from jsonasobj2 import (
|
|
JsonObj,
|
|
as_dict
|
|
)
|
|
from linkml_runtime.linkml_model.meta import (
|
|
EnumDefinition,
|
|
PermissibleValue,
|
|
PvFormulaOptions
|
|
)
|
|
from linkml_runtime.utils.curienamespace import CurieNamespace
|
|
from linkml_runtime.utils.enumerations import EnumDefinitionImpl
|
|
from linkml_runtime.utils.formatutils import (
|
|
camelcase,
|
|
sfx,
|
|
underscore
|
|
)
|
|
from linkml_runtime.utils.metamodelcore import (
|
|
bnode,
|
|
empty_dict,
|
|
empty_list
|
|
)
|
|
from linkml_runtime.utils.slot import Slot
|
|
from linkml_runtime.utils.yamlutils import (
|
|
YAMLRoot,
|
|
extended_float,
|
|
extended_int,
|
|
extended_str
|
|
)
|
|
from rdflib import (
|
|
Namespace,
|
|
URIRef
|
|
)
|
|
|
|
from linkml_runtime.linkml_model.types import Boolean, Date, Datetime, Float, Integer, String, Uri, Uriorcurie
|
|
from linkml_runtime.utils.metamodelcore import Bool, URI, URIorCURIE, XSDDate, XSDDateTime
|
|
|
|
metamodel_version = "1.7.0"
|
|
version = "0.2.2"
|
|
|
|
# Namespaces
|
|
ADMS = CurieNamespace('adms', 'http://www.w3.org/ns/adms#')
|
|
BF = CurieNamespace('bf', 'http://id.loc.gov/ontologies/bibframe/')
|
|
BIBO = CurieNamespace('bibo', 'http://purl.org/ontology/bibo/')
|
|
BIRO = CurieNamespace('biro', 'http://purl.org/spar/biro/')
|
|
CITO = CurieNamespace('cito', 'http://purl.org/spar/cito/')
|
|
CPOV = CurieNamespace('cpov', 'http://data.europa.eu/m8g/')
|
|
CRM = CurieNamespace('crm', 'http://www.cidoc-crm.org/cidoc-crm/')
|
|
DATACITE = CurieNamespace('datacite', 'http://purl.org/spar/datacite/')
|
|
DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/')
|
|
DOCO = CurieNamespace('doco', 'http://purl.org/spar/doco/')
|
|
EDM = CurieNamespace('edm', 'http://www.europeana.eu/schemas/edm/')
|
|
FABIO = CurieNamespace('fabio', 'http://purl.org/spar/fabio/')
|
|
FOAF = CurieNamespace('foaf', 'http://xmlns.com/foaf/0.1/')
|
|
FRBR = CurieNamespace('frbr', 'http://purl.org/vocab/frbr/core#')
|
|
GEONAMES = CurieNamespace('geonames', 'http://www.geonames.org/ontology#')
|
|
HERITAGE = CurieNamespace('heritage', 'https://w3id.org/heritage/custodian/')
|
|
LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/')
|
|
ORE = CurieNamespace('ore', 'http://www.openarchives.org/ore/terms/')
|
|
ORG = CurieNamespace('org', 'http://www.w3.org/ns/org#')
|
|
OWL = CurieNamespace('owl', 'http://www.w3.org/2002/07/owl#')
|
|
PRISM = CurieNamespace('prism', 'http://prismstandard.org/namespaces/basic/3.0/')
|
|
PRO = CurieNamespace('pro', 'http://purl.org/spar/pro/')
|
|
PROV = CurieNamespace('prov', 'http://www.w3.org/ns/prov#')
|
|
PSO = CurieNamespace('pso', 'http://purl.org/spar/pso/')
|
|
RDF = CurieNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
|
|
RDFS = CurieNamespace('rdfs', 'http://www.w3.org/2000/01/rdf-schema#')
|
|
RICO = CurieNamespace('rico', 'https://www.ica.org/standards/RiC/ontology#')
|
|
SCHEMA = CurieNamespace('schema', 'http://schema.org/')
|
|
SKOS = CurieNamespace('skos', 'http://www.w3.org/2004/02/skos/core#')
|
|
TOOI = CurieNamespace('tooi', 'http://standaarden.overheid.nl/tooi/def/')
|
|
TOOIONT = CurieNamespace('tooiont', 'https://identifier.overheid.nl/tooi/def/ont/')
|
|
VIAF = CurieNamespace('viaf', 'http://viaf.org/viaf/')
|
|
WIKIDATA = CurieNamespace('wikidata', 'http://www.wikidata.org/entity/')
|
|
XSD = CurieNamespace('xsd', 'http://www.w3.org/2001/XMLSchema#')
|
|
DEFAULT_ = HERITAGE
|
|
|
|
|
|
# Types
|
|
|
|
# Class references
|
|
class HeritageCustodianId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class OrganizationalUnitUnitId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class ChangeEventEventId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class DutchHeritageCustodianId(HeritageCustodianId):
|
|
pass
|
|
|
|
|
|
class ScholarlyWorkWorkId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class PublicationPublicationId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class JournalJournalId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class ConferenceConferenceId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class PersonPersonId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class OrganizationOrganizationId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class CitationCitationId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class DocumentSectionSectionId(URIorCURIE):
|
|
pass
|
|
|
|
|
|
class SchemaContactPoint(YAMLRoot):
|
|
"""
|
|
Local proxy for schema:ContactPoint. Represents contact information (phone, email, etc.) for an organization. Used
|
|
as mixin for ContactInfo.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = SCHEMA["ContactPoint"]
|
|
class_class_curie: ClassVar[str] = "schema:ContactPoint"
|
|
class_name: ClassVar[str] = "SchemaContactPoint"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.SchemaContactPoint
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class HeritageCustodian(YAMLRoot):
|
|
"""
|
|
A heritage custodian organization (GLAM institution) responsible for preserving, managing, and providing access to
|
|
cultural heritage collections. Integrates W3C Org Ontology, PROV-O provenance tracking, and TOOI temporal
|
|
patterns.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = ORG["Organization"]
|
|
class_class_curie: ClassVar[str] = "org:Organization"
|
|
class_name: ClassVar[str] = "HeritageCustodian"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.HeritageCustodian
|
|
|
|
id: Union[str, HeritageCustodianId] = None
|
|
name: str = None
|
|
institution_type: Union[str, "InstitutionTypeEnum"] = None
|
|
provenance: Union[dict, "Provenance"] = None
|
|
record_id: Optional[str] = None
|
|
ghcid_uuid: Optional[str] = None
|
|
ghcid_uuid_sha256: Optional[str] = None
|
|
ghcid_numeric: Optional[int] = None
|
|
ghcid_current: Optional[str] = None
|
|
ghcid_original: Optional[str] = None
|
|
ghcid_history: Optional[Union[Union[dict, "GHCIDHistoryEntry"], list[Union[dict, "GHCIDHistoryEntry"]]]] = empty_list()
|
|
alternative_names: Optional[Union[str, list[str]]] = empty_list()
|
|
official_name: Optional[str] = None
|
|
sorting_name: Optional[str] = None
|
|
abbreviation: Optional[str] = None
|
|
organization_status: Optional[Union[str, "OrganizationStatusEnum"]] = None
|
|
description: Optional[str] = None
|
|
parent_organization: Optional[Union[str, HeritageCustodianId]] = None
|
|
parent_organization_name: Optional[str] = None
|
|
sub_organizations: Optional[Union[Union[str, HeritageCustodianId], list[Union[str, HeritageCustodianId]]]] = empty_list()
|
|
founded_date: Optional[Union[str, XSDDate]] = None
|
|
closed_date: Optional[Union[str, XSDDate]] = None
|
|
prov_generated_at: Optional[Union[str, XSDDateTime]] = None
|
|
prov_invalidated_at: Optional[Union[str, XSDDateTime]] = None
|
|
change_history: Optional[Union[dict[Union[str, ChangeEventEventId], Union[dict, "ChangeEvent"]], list[Union[dict, "ChangeEvent"]]]] = empty_dict()
|
|
homepage: Optional[Union[str, URI]] = None
|
|
contact_info: Optional[Union[dict, "ContactInfo"]] = None
|
|
locations: Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]] = empty_list()
|
|
identifiers: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
|
|
chamber_of_commerce_number: Optional[str] = None
|
|
municipality_identifier: Optional[str] = None
|
|
collections: Optional[Union[Union[dict, "Collection"], list[Union[dict, "Collection"]]]] = empty_list()
|
|
digital_platforms: Optional[Union[Union[dict, "DigitalPlatform"], list[Union[dict, "DigitalPlatform"]]]] = empty_list()
|
|
metadata_standards: Optional[Union[Union[str, "MetadataStandardEnum"], list[Union[str, "MetadataStandardEnum"]]]] = empty_list()
|
|
partnerships: Optional[Union[Union[dict, "Partnership"], list[Union[dict, "Partnership"]]]] = empty_list()
|
|
publications: Optional[Union[dict[Union[str, PublicationPublicationId], Union[dict, "Publication"]], list[Union[dict, "Publication"]]]] = empty_dict()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.id):
|
|
self.MissingRequiredField("id")
|
|
if not isinstance(self.id, HeritageCustodianId):
|
|
self.id = HeritageCustodianId(self.id)
|
|
|
|
if self._is_empty(self.name):
|
|
self.MissingRequiredField("name")
|
|
if not isinstance(self.name, str):
|
|
self.name = str(self.name)
|
|
|
|
if self._is_empty(self.institution_type):
|
|
self.MissingRequiredField("institution_type")
|
|
if not isinstance(self.institution_type, InstitutionTypeEnum):
|
|
self.institution_type = InstitutionTypeEnum(self.institution_type)
|
|
|
|
if self._is_empty(self.provenance):
|
|
self.MissingRequiredField("provenance")
|
|
if not isinstance(self.provenance, Provenance):
|
|
self.provenance = Provenance(**as_dict(self.provenance))
|
|
|
|
if self.record_id is not None and not isinstance(self.record_id, str):
|
|
self.record_id = str(self.record_id)
|
|
|
|
if self.ghcid_uuid is not None and not isinstance(self.ghcid_uuid, str):
|
|
self.ghcid_uuid = str(self.ghcid_uuid)
|
|
|
|
if self.ghcid_uuid_sha256 is not None and not isinstance(self.ghcid_uuid_sha256, str):
|
|
self.ghcid_uuid_sha256 = str(self.ghcid_uuid_sha256)
|
|
|
|
if self.ghcid_numeric is not None and not isinstance(self.ghcid_numeric, int):
|
|
self.ghcid_numeric = int(self.ghcid_numeric)
|
|
|
|
if self.ghcid_current is not None and not isinstance(self.ghcid_current, str):
|
|
self.ghcid_current = str(self.ghcid_current)
|
|
|
|
if self.ghcid_original is not None and not isinstance(self.ghcid_original, str):
|
|
self.ghcid_original = str(self.ghcid_original)
|
|
|
|
if not isinstance(self.ghcid_history, list):
|
|
self.ghcid_history = [self.ghcid_history] if self.ghcid_history is not None else []
|
|
self.ghcid_history = [v if isinstance(v, GHCIDHistoryEntry) else GHCIDHistoryEntry(**as_dict(v)) for v in self.ghcid_history]
|
|
|
|
if not isinstance(self.alternative_names, list):
|
|
self.alternative_names = [self.alternative_names] if self.alternative_names is not None else []
|
|
self.alternative_names = [v if isinstance(v, str) else str(v) for v in self.alternative_names]
|
|
|
|
if self.official_name is not None and not isinstance(self.official_name, str):
|
|
self.official_name = str(self.official_name)
|
|
|
|
if self.sorting_name is not None and not isinstance(self.sorting_name, str):
|
|
self.sorting_name = str(self.sorting_name)
|
|
|
|
if self.abbreviation is not None and not isinstance(self.abbreviation, str):
|
|
self.abbreviation = str(self.abbreviation)
|
|
|
|
if self.organization_status is not None and not isinstance(self.organization_status, OrganizationStatusEnum):
|
|
self.organization_status = OrganizationStatusEnum(self.organization_status)
|
|
|
|
if self.description is not None and not isinstance(self.description, str):
|
|
self.description = str(self.description)
|
|
|
|
if self.parent_organization is not None and not isinstance(self.parent_organization, HeritageCustodianId):
|
|
self.parent_organization = HeritageCustodianId(self.parent_organization)
|
|
|
|
if self.parent_organization_name is not None and not isinstance(self.parent_organization_name, str):
|
|
self.parent_organization_name = str(self.parent_organization_name)
|
|
|
|
if not isinstance(self.sub_organizations, list):
|
|
self.sub_organizations = [self.sub_organizations] if self.sub_organizations is not None else []
|
|
self.sub_organizations = [v if isinstance(v, HeritageCustodianId) else HeritageCustodianId(v) for v in self.sub_organizations]
|
|
|
|
if self.founded_date is not None and not isinstance(self.founded_date, XSDDate):
|
|
self.founded_date = XSDDate(self.founded_date)
|
|
|
|
if self.closed_date is not None and not isinstance(self.closed_date, XSDDate):
|
|
self.closed_date = XSDDate(self.closed_date)
|
|
|
|
if self.prov_generated_at is not None and not isinstance(self.prov_generated_at, XSDDateTime):
|
|
self.prov_generated_at = XSDDateTime(self.prov_generated_at)
|
|
|
|
if self.prov_invalidated_at is not None and not isinstance(self.prov_invalidated_at, XSDDateTime):
|
|
self.prov_invalidated_at = XSDDateTime(self.prov_invalidated_at)
|
|
|
|
self._normalize_inlined_as_list(slot_name="change_history", slot_type=ChangeEvent, key_name="event_id", keyed=True)
|
|
|
|
if self.homepage is not None and not isinstance(self.homepage, URI):
|
|
self.homepage = URI(self.homepage)
|
|
|
|
if self.contact_info is not None and not isinstance(self.contact_info, ContactInfo):
|
|
self.contact_info = ContactInfo(**as_dict(self.contact_info))
|
|
|
|
if not isinstance(self.locations, list):
|
|
self.locations = [self.locations] if self.locations is not None else []
|
|
self.locations = [v if isinstance(v, Location) else Location(**as_dict(v)) for v in self.locations]
|
|
|
|
if not isinstance(self.identifiers, list):
|
|
self.identifiers = [self.identifiers] if self.identifiers is not None else []
|
|
self.identifiers = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.identifiers]
|
|
|
|
if self.chamber_of_commerce_number is not None and not isinstance(self.chamber_of_commerce_number, str):
|
|
self.chamber_of_commerce_number = str(self.chamber_of_commerce_number)
|
|
|
|
if self.municipality_identifier is not None and not isinstance(self.municipality_identifier, str):
|
|
self.municipality_identifier = str(self.municipality_identifier)
|
|
|
|
if not isinstance(self.collections, list):
|
|
self.collections = [self.collections] if self.collections is not None else []
|
|
self.collections = [v if isinstance(v, Collection) else Collection(**as_dict(v)) for v in self.collections]
|
|
|
|
if not isinstance(self.digital_platforms, list):
|
|
self.digital_platforms = [self.digital_platforms] if self.digital_platforms is not None else []
|
|
self.digital_platforms = [v if isinstance(v, DigitalPlatform) else DigitalPlatform(**as_dict(v)) for v in self.digital_platforms]
|
|
|
|
if not isinstance(self.metadata_standards, list):
|
|
self.metadata_standards = [self.metadata_standards] if self.metadata_standards is not None else []
|
|
self.metadata_standards = [v if isinstance(v, MetadataStandardEnum) else MetadataStandardEnum(v) for v in self.metadata_standards]
|
|
|
|
if not isinstance(self.partnerships, list):
|
|
self.partnerships = [self.partnerships] if self.partnerships is not None else []
|
|
self.partnerships = [v if isinstance(v, Partnership) else Partnership(**as_dict(v)) for v in self.partnerships]
|
|
|
|
self._normalize_inlined_as_list(slot_name="publications", slot_type=Publication, key_name="publication_id", keyed=True)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Location(YAMLRoot):
|
|
"""
|
|
Physical or virtual location associated with an organization
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = SCHEMA["Place"]
|
|
class_class_curie: ClassVar[str] = "schema:Place"
|
|
class_name: ClassVar[str] = "Location"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Location
|
|
|
|
location_type: Optional[str] = None
|
|
street_address: Optional[str] = None
|
|
city: Optional[str] = None
|
|
postal_code: Optional[str] = None
|
|
region: Optional[str] = None
|
|
country: Optional[str] = None
|
|
latitude: Optional[float] = None
|
|
longitude: Optional[float] = None
|
|
geonames_id: Optional[str] = None
|
|
is_primary: Optional[Union[bool, Bool]] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self.location_type is not None and not isinstance(self.location_type, str):
|
|
self.location_type = str(self.location_type)
|
|
|
|
if self.street_address is not None and not isinstance(self.street_address, str):
|
|
self.street_address = str(self.street_address)
|
|
|
|
if self.city is not None and not isinstance(self.city, str):
|
|
self.city = str(self.city)
|
|
|
|
if self.postal_code is not None and not isinstance(self.postal_code, str):
|
|
self.postal_code = str(self.postal_code)
|
|
|
|
if self.region is not None and not isinstance(self.region, str):
|
|
self.region = str(self.region)
|
|
|
|
if self.country is not None and not isinstance(self.country, str):
|
|
self.country = str(self.country)
|
|
|
|
if self.latitude is not None and not isinstance(self.latitude, float):
|
|
self.latitude = float(self.latitude)
|
|
|
|
if self.longitude is not None and not isinstance(self.longitude, float):
|
|
self.longitude = float(self.longitude)
|
|
|
|
if self.geonames_id is not None and not isinstance(self.geonames_id, str):
|
|
self.geonames_id = str(self.geonames_id)
|
|
|
|
if self.is_primary is not None and not isinstance(self.is_primary, Bool):
|
|
self.is_primary = Bool(self.is_primary)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class ContactInfo(YAMLRoot):
|
|
"""
|
|
Contact information for the organization. Maps to both Schema.org ContactPoint and EU CPOV ContactPoint.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = CPOV["ContactPoint"]
|
|
class_class_curie: ClassVar[str] = "cpov:ContactPoint"
|
|
class_name: ClassVar[str] = "ContactInfo"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.ContactInfo
|
|
|
|
email: Optional[str] = None
|
|
phone: Optional[str] = None
|
|
fax: Optional[str] = None
|
|
contact_type: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self.email is not None and not isinstance(self.email, str):
|
|
self.email = str(self.email)
|
|
|
|
if self.phone is not None and not isinstance(self.phone, str):
|
|
self.phone = str(self.phone)
|
|
|
|
if self.fax is not None and not isinstance(self.fax, str):
|
|
self.fax = str(self.fax)
|
|
|
|
if self.contact_type is not None and not isinstance(self.contact_type, str):
|
|
self.contact_type = str(self.contact_type)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Identifier(YAMLRoot):
|
|
"""
|
|
External identifier for the organization
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = DCTERMS["identifier"]
|
|
class_class_curie: ClassVar[str] = "dcterms:identifier"
|
|
class_name: ClassVar[str] = "Identifier"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Identifier
|
|
|
|
identifier_scheme: str = None
|
|
identifier_value: str = None
|
|
identifier_url: Optional[Union[str, URI]] = None
|
|
assigned_date: Optional[Union[str, XSDDate]] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.identifier_scheme):
|
|
self.MissingRequiredField("identifier_scheme")
|
|
if not isinstance(self.identifier_scheme, str):
|
|
self.identifier_scheme = str(self.identifier_scheme)
|
|
|
|
if self._is_empty(self.identifier_value):
|
|
self.MissingRequiredField("identifier_value")
|
|
if not isinstance(self.identifier_value, str):
|
|
self.identifier_value = str(self.identifier_value)
|
|
|
|
if self.identifier_url is not None and not isinstance(self.identifier_url, URI):
|
|
self.identifier_url = URI(self.identifier_url)
|
|
|
|
if self.assigned_date is not None and not isinstance(self.assigned_date, XSDDate):
|
|
self.assigned_date = XSDDate(self.assigned_date)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class OrganizationalUnit(YAMLRoot):
|
|
"""
|
|
A sub-unit, department, or division within a heritage institution. Examples: Conservation department, Special
|
|
Collections, Reading Room. Uses W3C Org Ontology patterns for organizational structure.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = ORG["OrganizationalUnit"]
|
|
class_class_curie: ClassVar[str] = "org:OrganizationalUnit"
|
|
class_name: ClassVar[str] = "OrganizationalUnit"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.OrganizationalUnit
|
|
|
|
unit_id: Union[str, OrganizationalUnitUnitId] = None
|
|
unit_name: str = None
|
|
unit_type: Optional[str] = None
|
|
parent_unit: Optional[Union[str, OrganizationalUnitUnitId]] = None
|
|
description: Optional[str] = None
|
|
contact_info: Optional[Union[dict, ContactInfo]] = None
|
|
homepage: Optional[Union[str, URI]] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.unit_id):
|
|
self.MissingRequiredField("unit_id")
|
|
if not isinstance(self.unit_id, OrganizationalUnitUnitId):
|
|
self.unit_id = OrganizationalUnitUnitId(self.unit_id)
|
|
|
|
if self._is_empty(self.unit_name):
|
|
self.MissingRequiredField("unit_name")
|
|
if not isinstance(self.unit_name, str):
|
|
self.unit_name = str(self.unit_name)
|
|
|
|
if self.unit_type is not None and not isinstance(self.unit_type, str):
|
|
self.unit_type = str(self.unit_type)
|
|
|
|
if self.parent_unit is not None and not isinstance(self.parent_unit, OrganizationalUnitUnitId):
|
|
self.parent_unit = OrganizationalUnitUnitId(self.parent_unit)
|
|
|
|
if self.description is not None and not isinstance(self.description, str):
|
|
self.description = str(self.description)
|
|
|
|
if self.contact_info is not None and not isinstance(self.contact_info, ContactInfo):
|
|
self.contact_info = ContactInfo(**as_dict(self.contact_info))
|
|
|
|
if self.homepage is not None and not isinstance(self.homepage, URI):
|
|
self.homepage = URI(self.homepage)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
class ProvenanceEntity(YAMLRoot):
|
|
"""
|
|
Local proxy for prov:Entity. Represents a physical, digital, conceptual, or other kind of thing with fixed
|
|
aspects. Used as mixin for classes that need PROV-O alignment (e.g., HeritageCustodian).
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = PROV["Entity"]
|
|
class_class_curie: ClassVar[str] = "prov:Entity"
|
|
class_name: ClassVar[str] = "ProvenanceEntity"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.ProvenanceEntity
|
|
|
|
|
|
class ProvenanceActivity(YAMLRoot):
|
|
"""
|
|
Local proxy for prov:Activity. Represents something that occurs over a period of time and acts upon or with
|
|
entities. Used as base for ChangeEvent.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = PROV["Activity"]
|
|
class_class_curie: ClassVar[str] = "prov:Activity"
|
|
class_name: ClassVar[str] = "ProvenanceActivity"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.ProvenanceActivity
|
|
|
|
|
|
class TOOIWijzigingsgebeurtenis(YAMLRoot):
|
|
"""
|
|
Local proxy for tooi:Wijzigingsgebeurtenis (Change Event in TOOI ontology). Represents organizational change
|
|
events in Dutch government organizations. Used as mixin for ChangeEvent to align with TOOI patterns.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = TOOIONT["Wijzigingsgebeurtenis"]
|
|
class_class_curie: ClassVar[str] = "tooi:Wijzigingsgebeurtenis"
|
|
class_name: ClassVar[str] = "TOOIWijzigingsgebeurtenis"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.TOOIWijzigingsgebeurtenis
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Provenance(YAMLRoot):
|
|
"""
|
|
Provenance information for data quality tracking
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = HERITAGE["Provenance"]
|
|
class_class_curie: ClassVar[str] = "heritage:Provenance"
|
|
class_name: ClassVar[str] = "Provenance"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Provenance
|
|
|
|
data_source: Union[str, "DataSourceEnum"] = None
|
|
data_tier: Union[str, "DataTierEnum"] = None
|
|
extraction_date: Union[str, XSDDateTime] = None
|
|
extraction_method: Optional[str] = None
|
|
confidence_score: Optional[float] = None
|
|
conversation_id: Optional[str] = None
|
|
source_url: Optional[Union[str, URI]] = None
|
|
verified_date: Optional[Union[str, XSDDateTime]] = None
|
|
verified_by: Optional[str] = None
|
|
enrichment_history: Optional[Union[Union[dict, "EnrichmentHistoryEntry"], list[Union[dict, "EnrichmentHistoryEntry"]]]] = empty_list()
|
|
provenance_notes: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.data_source):
|
|
self.MissingRequiredField("data_source")
|
|
if not isinstance(self.data_source, DataSourceEnum):
|
|
self.data_source = DataSourceEnum(self.data_source)
|
|
|
|
if self._is_empty(self.data_tier):
|
|
self.MissingRequiredField("data_tier")
|
|
if not isinstance(self.data_tier, DataTierEnum):
|
|
self.data_tier = DataTierEnum(self.data_tier)
|
|
|
|
if self._is_empty(self.extraction_date):
|
|
self.MissingRequiredField("extraction_date")
|
|
if not isinstance(self.extraction_date, XSDDateTime):
|
|
self.extraction_date = XSDDateTime(self.extraction_date)
|
|
|
|
if self.extraction_method is not None and not isinstance(self.extraction_method, str):
|
|
self.extraction_method = str(self.extraction_method)
|
|
|
|
if self.confidence_score is not None and not isinstance(self.confidence_score, float):
|
|
self.confidence_score = float(self.confidence_score)
|
|
|
|
if self.conversation_id is not None and not isinstance(self.conversation_id, str):
|
|
self.conversation_id = str(self.conversation_id)
|
|
|
|
if self.source_url is not None and not isinstance(self.source_url, URI):
|
|
self.source_url = URI(self.source_url)
|
|
|
|
if self.verified_date is not None and not isinstance(self.verified_date, XSDDateTime):
|
|
self.verified_date = XSDDateTime(self.verified_date)
|
|
|
|
if self.verified_by is not None and not isinstance(self.verified_by, str):
|
|
self.verified_by = str(self.verified_by)
|
|
|
|
if not isinstance(self.enrichment_history, list):
|
|
self.enrichment_history = [self.enrichment_history] if self.enrichment_history is not None else []
|
|
self.enrichment_history = [v if isinstance(v, EnrichmentHistoryEntry) else EnrichmentHistoryEntry(**as_dict(v)) for v in self.enrichment_history]
|
|
|
|
if self.provenance_notes is not None and not isinstance(self.provenance_notes, str):
|
|
self.provenance_notes = str(self.provenance_notes)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class EnrichmentHistoryEntry(YAMLRoot):
|
|
"""
|
|
Record of a data enrichment activity (e.g., Wikidata lookup, geocoding, identifier resolution). Tracks what was
|
|
enriched, when, how, and with what quality metrics.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = HERITAGE["EnrichmentHistoryEntry"]
|
|
class_class_curie: ClassVar[str] = "heritage:EnrichmentHistoryEntry"
|
|
class_name: ClassVar[str] = "EnrichmentHistoryEntry"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.EnrichmentHistoryEntry
|
|
|
|
enrichment_date: Union[str, XSDDateTime] = None
|
|
enrichment_method: str = None
|
|
enrichment_type: Union[str, "EnrichmentTypeEnum"] = None
|
|
verified: Union[bool, Bool] = None
|
|
match_score: Optional[float] = None
|
|
enrichment_source: Optional[Union[str, URI]] = None
|
|
enrichment_notes: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.enrichment_date):
|
|
self.MissingRequiredField("enrichment_date")
|
|
if not isinstance(self.enrichment_date, XSDDateTime):
|
|
self.enrichment_date = XSDDateTime(self.enrichment_date)
|
|
|
|
if self._is_empty(self.enrichment_method):
|
|
self.MissingRequiredField("enrichment_method")
|
|
if not isinstance(self.enrichment_method, str):
|
|
self.enrichment_method = str(self.enrichment_method)
|
|
|
|
if self._is_empty(self.enrichment_type):
|
|
self.MissingRequiredField("enrichment_type")
|
|
if not isinstance(self.enrichment_type, EnrichmentTypeEnum):
|
|
self.enrichment_type = EnrichmentTypeEnum(self.enrichment_type)
|
|
|
|
if self._is_empty(self.verified):
|
|
self.MissingRequiredField("verified")
|
|
if not isinstance(self.verified, Bool):
|
|
self.verified = Bool(self.verified)
|
|
|
|
if self.match_score is not None and not isinstance(self.match_score, float):
|
|
self.match_score = float(self.match_score)
|
|
|
|
if self.enrichment_source is not None and not isinstance(self.enrichment_source, URI):
|
|
self.enrichment_source = URI(self.enrichment_source)
|
|
|
|
if self.enrichment_notes is not None and not isinstance(self.enrichment_notes, str):
|
|
self.enrichment_notes = str(self.enrichment_notes)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class GHCIDHistoryEntry(YAMLRoot):
|
|
"""
|
|
Historical record tracking GHCID changes over time. Each entry represents a period when a specific GHCID was valid
|
|
for this institution.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = HERITAGE["GHCIDHistoryEntry"]
|
|
class_class_curie: ClassVar[str] = "heritage:GHCIDHistoryEntry"
|
|
class_name: ClassVar[str] = "GHCIDHistoryEntry"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.GHCIDHistoryEntry
|
|
|
|
ghcid: str = None
|
|
ghcid_numeric: int = None
|
|
valid_from: Union[str, XSDDateTime] = None
|
|
reason: str = None
|
|
institution_name: str = None
|
|
location_city: str = None
|
|
location_country: str = None
|
|
valid_to: Optional[Union[str, XSDDateTime]] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.ghcid):
|
|
self.MissingRequiredField("ghcid")
|
|
if not isinstance(self.ghcid, str):
|
|
self.ghcid = str(self.ghcid)
|
|
|
|
if self._is_empty(self.ghcid_numeric):
|
|
self.MissingRequiredField("ghcid_numeric")
|
|
if not isinstance(self.ghcid_numeric, int):
|
|
self.ghcid_numeric = int(self.ghcid_numeric)
|
|
|
|
if self._is_empty(self.valid_from):
|
|
self.MissingRequiredField("valid_from")
|
|
if not isinstance(self.valid_from, XSDDateTime):
|
|
self.valid_from = XSDDateTime(self.valid_from)
|
|
|
|
if self._is_empty(self.reason):
|
|
self.MissingRequiredField("reason")
|
|
if not isinstance(self.reason, str):
|
|
self.reason = str(self.reason)
|
|
|
|
if self._is_empty(self.institution_name):
|
|
self.MissingRequiredField("institution_name")
|
|
if not isinstance(self.institution_name, str):
|
|
self.institution_name = str(self.institution_name)
|
|
|
|
if self._is_empty(self.location_city):
|
|
self.MissingRequiredField("location_city")
|
|
if not isinstance(self.location_city, str):
|
|
self.location_city = str(self.location_city)
|
|
|
|
if self._is_empty(self.location_country):
|
|
self.MissingRequiredField("location_country")
|
|
if not isinstance(self.location_country, str):
|
|
self.location_country = str(self.location_country)
|
|
|
|
if self.valid_to is not None and not isinstance(self.valid_to, XSDDateTime):
|
|
self.valid_to = XSDDateTime(self.valid_to)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class ChangeEvent(ProvenanceActivity):
|
|
"""
|
|
A significant organizational change event in an institution's lifecycle. Based on TOOI Wijzigingsgebeurtenis and
|
|
W3C PROV-O Activity patterns. Tracks mergers, name changes, relocations, and other structural changes.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = HERITAGE["ChangeEvent"]
|
|
class_class_curie: ClassVar[str] = "heritage:ChangeEvent"
|
|
class_name: ClassVar[str] = "ChangeEvent"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.ChangeEvent
|
|
|
|
event_id: Union[str, ChangeEventEventId] = None
|
|
change_type: Union[str, "ChangeTypeEnum"] = None
|
|
event_date: Union[str, XSDDate] = None
|
|
event_description: Optional[str] = None
|
|
affected_organization: Optional[Union[str, HeritageCustodianId]] = None
|
|
resulting_organization: Optional[Union[str, HeritageCustodianId]] = None
|
|
related_organizations: Optional[Union[Union[str, HeritageCustodianId], list[Union[str, HeritageCustodianId]]]] = empty_list()
|
|
source_documentation: Optional[Union[str, URI]] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.event_id):
|
|
self.MissingRequiredField("event_id")
|
|
if not isinstance(self.event_id, ChangeEventEventId):
|
|
self.event_id = ChangeEventEventId(self.event_id)
|
|
|
|
if self._is_empty(self.change_type):
|
|
self.MissingRequiredField("change_type")
|
|
if not isinstance(self.change_type, ChangeTypeEnum):
|
|
self.change_type = ChangeTypeEnum(self.change_type)
|
|
|
|
if self._is_empty(self.event_date):
|
|
self.MissingRequiredField("event_date")
|
|
if not isinstance(self.event_date, XSDDate):
|
|
self.event_date = XSDDate(self.event_date)
|
|
|
|
if self.event_description is not None and not isinstance(self.event_description, str):
|
|
self.event_description = str(self.event_description)
|
|
|
|
if self.affected_organization is not None and not isinstance(self.affected_organization, HeritageCustodianId):
|
|
self.affected_organization = HeritageCustodianId(self.affected_organization)
|
|
|
|
if self.resulting_organization is not None and not isinstance(self.resulting_organization, HeritageCustodianId):
|
|
self.resulting_organization = HeritageCustodianId(self.resulting_organization)
|
|
|
|
if not isinstance(self.related_organizations, list):
|
|
self.related_organizations = [self.related_organizations] if self.related_organizations is not None else []
|
|
self.related_organizations = [v if isinstance(v, HeritageCustodianId) else HeritageCustodianId(v) for v in self.related_organizations]
|
|
|
|
if self.source_documentation is not None and not isinstance(self.source_documentation, URI):
|
|
self.source_documentation = URI(self.source_documentation)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
class RiCRecordSet(YAMLRoot):
|
|
"""
|
|
Local proxy for rico:RecordSet. Represents an aggregation of archival records with a common provenance or
|
|
assembled for a specific purpose. Used as mixin for Collection class to align with RiC-O archival description
|
|
standards.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = RICO["RecordSet"]
|
|
class_class_curie: ClassVar[str] = "rico:RecordSet"
|
|
class_name: ClassVar[str] = "RiCRecordSet"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.RiCRecordSet
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Collection(YAMLRoot):
|
|
"""
|
|
A collection held by the heritage custodian. Maps to RiC-O RecordSet for archives, BIBFRAME Collection for
|
|
libraries, and Schema.org Collection for general use. Implements rico:hasOrHadHolder to link back to custodial
|
|
organization.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = SCHEMA["Collection"]
|
|
class_class_curie: ClassVar[str] = "schema:Collection"
|
|
class_name: ClassVar[str] = "Collection"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Collection
|
|
|
|
collection_id: Optional[str] = None
|
|
collection_name: Optional[str] = None
|
|
collection_description: Optional[str] = None
|
|
collection_type: Optional[str] = None
|
|
item_count: Optional[str] = None
|
|
subjects: Optional[Union[str, list[str]]] = empty_list()
|
|
time_period_start: Optional[Union[str, XSDDate]] = None
|
|
time_period_end: Optional[Union[str, XSDDate]] = None
|
|
temporal_coverage: Optional[str] = None
|
|
access_rights: Optional[str] = None
|
|
catalog_url: Optional[Union[str, URI]] = None
|
|
custodian: Optional[Union[str, HeritageCustodianId]] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self.collection_id is not None and not isinstance(self.collection_id, str):
|
|
self.collection_id = str(self.collection_id)
|
|
|
|
if self.collection_name is not None and not isinstance(self.collection_name, str):
|
|
self.collection_name = str(self.collection_name)
|
|
|
|
if self.collection_description is not None and not isinstance(self.collection_description, str):
|
|
self.collection_description = str(self.collection_description)
|
|
|
|
if self.collection_type is not None and not isinstance(self.collection_type, str):
|
|
self.collection_type = str(self.collection_type)
|
|
|
|
if self.item_count is not None and not isinstance(self.item_count, str):
|
|
self.item_count = str(self.item_count)
|
|
|
|
if not isinstance(self.subjects, list):
|
|
self.subjects = [self.subjects] if self.subjects is not None else []
|
|
self.subjects = [v if isinstance(v, str) else str(v) for v in self.subjects]
|
|
|
|
if self.time_period_start is not None and not isinstance(self.time_period_start, XSDDate):
|
|
self.time_period_start = XSDDate(self.time_period_start)
|
|
|
|
if self.time_period_end is not None and not isinstance(self.time_period_end, XSDDate):
|
|
self.time_period_end = XSDDate(self.time_period_end)
|
|
|
|
if self.temporal_coverage is not None and not isinstance(self.temporal_coverage, str):
|
|
self.temporal_coverage = str(self.temporal_coverage)
|
|
|
|
if self.access_rights is not None and not isinstance(self.access_rights, str):
|
|
self.access_rights = str(self.access_rights)
|
|
|
|
if self.catalog_url is not None and not isinstance(self.catalog_url, URI):
|
|
self.catalog_url = URI(self.catalog_url)
|
|
|
|
if self.custodian is not None and not isinstance(self.custodian, HeritageCustodianId):
|
|
self.custodian = HeritageCustodianId(self.custodian)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class DigitalPlatform(YAMLRoot):
|
|
"""
|
|
Digital platform or system used by the institution
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = SCHEMA["SoftwareApplication"]
|
|
class_class_curie: ClassVar[str] = "schema:SoftwareApplication"
|
|
class_name: ClassVar[str] = "DigitalPlatform"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.DigitalPlatform
|
|
|
|
platform_name: Optional[str] = None
|
|
platform_type: Optional[Union[str, "DigitalPlatformTypeEnum"]] = None
|
|
platform_url: Optional[Union[str, URI]] = None
|
|
platform_description: Optional[str] = None
|
|
vendor: Optional[str] = None
|
|
integration_method: Optional[str] = None
|
|
implemented_standards: Optional[Union[Union[str, "MetadataStandardEnum"], list[Union[str, "MetadataStandardEnum"]]]] = empty_list()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self.platform_name is not None and not isinstance(self.platform_name, str):
|
|
self.platform_name = str(self.platform_name)
|
|
|
|
if self.platform_type is not None and not isinstance(self.platform_type, DigitalPlatformTypeEnum):
|
|
self.platform_type = DigitalPlatformTypeEnum(self.platform_type)
|
|
|
|
if self.platform_url is not None and not isinstance(self.platform_url, URI):
|
|
self.platform_url = URI(self.platform_url)
|
|
|
|
if self.platform_description is not None and not isinstance(self.platform_description, str):
|
|
self.platform_description = str(self.platform_description)
|
|
|
|
if self.vendor is not None and not isinstance(self.vendor, str):
|
|
self.vendor = str(self.vendor)
|
|
|
|
if self.integration_method is not None and not isinstance(self.integration_method, str):
|
|
self.integration_method = str(self.integration_method)
|
|
|
|
if not isinstance(self.implemented_standards, list):
|
|
self.implemented_standards = [self.implemented_standards] if self.implemented_standards is not None else []
|
|
self.implemented_standards = [v if isinstance(v, MetadataStandardEnum) else MetadataStandardEnum(v) for v in self.implemented_standards]
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Partnership(YAMLRoot):
|
|
"""
|
|
Partnership or network membership
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = ORG["Membership"]
|
|
class_class_curie: ClassVar[str] = "org:Membership"
|
|
class_name: ClassVar[str] = "Partnership"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Partnership
|
|
|
|
partner_name: Optional[str] = None
|
|
partner_id: Optional[Union[str, URIorCURIE]] = None
|
|
partnership_type: Optional[str] = None
|
|
start_date: Optional[Union[str, XSDDate]] = None
|
|
end_date: Optional[Union[str, XSDDate]] = None
|
|
description: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self.partner_name is not None and not isinstance(self.partner_name, str):
|
|
self.partner_name = str(self.partner_name)
|
|
|
|
if self.partner_id is not None and not isinstance(self.partner_id, URIorCURIE):
|
|
self.partner_id = URIorCURIE(self.partner_id)
|
|
|
|
if self.partnership_type is not None and not isinstance(self.partnership_type, str):
|
|
self.partnership_type = str(self.partnership_type)
|
|
|
|
if self.start_date is not None and not isinstance(self.start_date, XSDDate):
|
|
self.start_date = XSDDate(self.start_date)
|
|
|
|
if self.end_date is not None and not isinstance(self.end_date, XSDDate):
|
|
self.end_date = XSDDate(self.end_date)
|
|
|
|
if self.description is not None and not isinstance(self.description, str):
|
|
self.description = str(self.description)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
class TOOIOverheidsorganisatie(YAMLRoot):
|
|
"""
|
|
Local proxy for tooi:Overheidsorganisatie (Government Organization in TOOI ontology). Represents Dutch public
|
|
sector organizations with government affiliation. Used as mixin for DutchHeritageCustodian to align with TOOI
|
|
patterns.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = TOOIONT["Overheidsorganisatie"]
|
|
class_class_curie: ClassVar[str] = "tooi:Overheidsorganisatie"
|
|
class_name: ClassVar[str] = "TOOIOverheidsorganisatie"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.TOOIOverheidsorganisatie
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class DutchHeritageCustodian(HeritageCustodian):
|
|
"""
|
|
A heritage custodian organization based in the Netherlands, with additional Dutch-specific identification and
|
|
organizational metadata. Integrates with TOOI (Thesaurus Overheidsorganisaties) for public sector organizations.
|
|
Network memberships and thematic partnerships are represented using the universal Partnership class (not
|
|
Dutch-specific boolean flags).
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = HERITAGE["DutchHeritageCustodian"]
|
|
class_class_curie: ClassVar[str] = "heritage:DutchHeritageCustodian"
|
|
class_name: ClassVar[str] = "DutchHeritageCustodian"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.DutchHeritageCustodian
|
|
|
|
id: Union[str, DutchHeritageCustodianId] = None
|
|
name: str = None
|
|
institution_type: Union[str, "InstitutionTypeEnum"] = None
|
|
provenance: Union[dict, Provenance] = None
|
|
kvk_number: Optional[str] = None
|
|
gemeente_code: Optional[str] = None
|
|
identifiers: Optional[Union[Union[dict, Identifier], list[Union[dict, Identifier]]]] = empty_list()
|
|
partnerships: Optional[Union[Union[dict, Partnership], list[Union[dict, Partnership]]]] = empty_list()
|
|
locations: Optional[Union[Union[dict, Location], list[Union[dict, Location]]]] = empty_list()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.id):
|
|
self.MissingRequiredField("id")
|
|
if not isinstance(self.id, DutchHeritageCustodianId):
|
|
self.id = DutchHeritageCustodianId(self.id)
|
|
|
|
if self.kvk_number is not None and not isinstance(self.kvk_number, str):
|
|
self.kvk_number = str(self.kvk_number)
|
|
|
|
if self.gemeente_code is not None and not isinstance(self.gemeente_code, str):
|
|
self.gemeente_code = str(self.gemeente_code)
|
|
|
|
if not isinstance(self.identifiers, list):
|
|
self.identifiers = [self.identifiers] if self.identifiers is not None else []
|
|
self.identifiers = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.identifiers]
|
|
|
|
if not isinstance(self.partnerships, list):
|
|
self.partnerships = [self.partnerships] if self.partnerships is not None else []
|
|
self.partnerships = [v if isinstance(v, Partnership) else Partnership(**as_dict(v)) for v in self.partnerships]
|
|
|
|
if not isinstance(self.locations, list):
|
|
self.locations = [self.locations] if self.locations is not None else []
|
|
self.locations = [v if isinstance(v, Location) else Location(**as_dict(v)) for v in self.locations]
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
class FRBRWork(YAMLRoot):
|
|
"""
|
|
Local proxy for frbr:Work (FRBR Work entity). Represents the abstract intellectual essence of a work, independent
|
|
of any specific expression, manifestation, or item. Used as mixin for ScholarlyWork.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FRBR["Work"]
|
|
class_class_curie: ClassVar[str] = "frbr:Work"
|
|
class_name: ClassVar[str] = "FRBRWork"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.FRBRWork
|
|
|
|
|
|
class FRBRExpression(YAMLRoot):
|
|
"""
|
|
Local proxy for frbr:Expression (FRBR Expression entity). Represents a specific intellectual or artistic
|
|
realization of a work (e.g., the English translation, the revised edition). Used as mixin for Publication.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FRBR["Expression"]
|
|
class_class_curie: ClassVar[str] = "frbr:Expression"
|
|
class_name: ClassVar[str] = "FRBRExpression"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.FRBRExpression
|
|
|
|
|
|
class BiBOJournal(YAMLRoot):
|
|
"""
|
|
Local proxy for bibo:Journal (Bibliographic Ontology Journal class). Represents a scholarly journal or periodical
|
|
publication.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = BIBO["Journal"]
|
|
class_class_curie: ClassVar[str] = "bibo:Journal"
|
|
class_name: ClassVar[str] = "BiBOJournal"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.BiBOJournal
|
|
|
|
|
|
class BiBOConference(YAMLRoot):
|
|
"""
|
|
Local proxy for bibo:Conference (Bibliographic Ontology Conference class). Represents an academic conference or
|
|
symposium.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = BIBO["Conference"]
|
|
class_class_curie: ClassVar[str] = "bibo:Conference"
|
|
class_name: ClassVar[str] = "BiBOConference"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.BiBOConference
|
|
|
|
|
|
class BiBOBibliographicReference(YAMLRoot):
|
|
"""
|
|
Local proxy for biro:BibliographicReference (BiRO bibliographic reference). Represents a bibliographic reference
|
|
or citation.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = BIRO["BibliographicReference"]
|
|
class_class_curie: ClassVar[str] = "biro:BibliographicReference"
|
|
class_name: ClassVar[str] = "BiBOBibliographicReference"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.BiBOBibliographicReference
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class ScholarlyWork(YAMLRoot):
|
|
"""
|
|
Abstract intellectual creation representing a scholarly work (FRBR Work level). FaBiO concept for the conceptual
|
|
essence of a publication, independent of its specific expressions or manifestations.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FABIO["Work"]
|
|
class_class_curie: ClassVar[str] = "fabio:Work"
|
|
class_name: ClassVar[str] = "ScholarlyWork"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.ScholarlyWork
|
|
|
|
work_id: Union[str, ScholarlyWorkWorkId] = None
|
|
provenance: Union[dict, Provenance] = None
|
|
work_title: Optional[str] = None
|
|
work_subject: Optional[Union[str, list[str]]] = empty_list()
|
|
work_keywords: Optional[Union[str, list[str]]] = empty_list()
|
|
abstract: Optional[str] = None
|
|
discipline: Optional[Union[str, list[str]]] = empty_list()
|
|
research_field: Optional[Union[str, list[str]]] = empty_list()
|
|
has_expression: Optional[Union[Union[str, PublicationPublicationId], list[Union[str, PublicationPublicationId]]]] = empty_list()
|
|
related_institutions: Optional[Union[Union[str, HeritageCustodianId], list[Union[str, HeritageCustodianId]]]] = empty_list()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.work_id):
|
|
self.MissingRequiredField("work_id")
|
|
if not isinstance(self.work_id, ScholarlyWorkWorkId):
|
|
self.work_id = ScholarlyWorkWorkId(self.work_id)
|
|
|
|
if self._is_empty(self.provenance):
|
|
self.MissingRequiredField("provenance")
|
|
if not isinstance(self.provenance, Provenance):
|
|
self.provenance = Provenance(**as_dict(self.provenance))
|
|
|
|
if self.work_title is not None and not isinstance(self.work_title, str):
|
|
self.work_title = str(self.work_title)
|
|
|
|
if not isinstance(self.work_subject, list):
|
|
self.work_subject = [self.work_subject] if self.work_subject is not None else []
|
|
self.work_subject = [v if isinstance(v, str) else str(v) for v in self.work_subject]
|
|
|
|
if not isinstance(self.work_keywords, list):
|
|
self.work_keywords = [self.work_keywords] if self.work_keywords is not None else []
|
|
self.work_keywords = [v if isinstance(v, str) else str(v) for v in self.work_keywords]
|
|
|
|
if self.abstract is not None and not isinstance(self.abstract, str):
|
|
self.abstract = str(self.abstract)
|
|
|
|
if not isinstance(self.discipline, list):
|
|
self.discipline = [self.discipline] if self.discipline is not None else []
|
|
self.discipline = [v if isinstance(v, str) else str(v) for v in self.discipline]
|
|
|
|
if not isinstance(self.research_field, list):
|
|
self.research_field = [self.research_field] if self.research_field is not None else []
|
|
self.research_field = [v if isinstance(v, str) else str(v) for v in self.research_field]
|
|
|
|
if not isinstance(self.has_expression, list):
|
|
self.has_expression = [self.has_expression] if self.has_expression is not None else []
|
|
self.has_expression = [v if isinstance(v, PublicationPublicationId) else PublicationPublicationId(v) for v in self.has_expression]
|
|
|
|
if not isinstance(self.related_institutions, list):
|
|
self.related_institutions = [self.related_institutions] if self.related_institutions is not None else []
|
|
self.related_institutions = [v if isinstance(v, HeritageCustodianId) else HeritageCustodianId(v) for v in self.related_institutions]
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Publication(YAMLRoot):
|
|
"""
|
|
Concrete realization of a scholarly work (FRBR Expression level). Represents a specific version or edition of a
|
|
work with authors, publication date, and citation metadata. FaBiO Expression pattern.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FABIO["Expression"]
|
|
class_class_curie: ClassVar[str] = "fabio:Expression"
|
|
class_name: ClassVar[str] = "Publication"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Publication
|
|
|
|
publication_id: Union[str, PublicationPublicationId] = None
|
|
title: str = None
|
|
publication_type: Union[str, "PublicationTypeEnum"] = None
|
|
provenance: Union[dict, Provenance] = None
|
|
alternative_titles: Optional[Union[str, list[str]]] = empty_list()
|
|
authors: Optional[Union[dict[Union[str, PersonPersonId], Union[dict, "Person"]], list[Union[dict, "Person"]]]] = empty_dict()
|
|
editors: Optional[Union[dict[Union[str, PersonPersonId], Union[dict, "Person"]], list[Union[dict, "Person"]]]] = empty_dict()
|
|
contributors: Optional[Union[dict[Union[str, PersonPersonId], Union[dict, "Person"]], list[Union[dict, "Person"]]]] = empty_dict()
|
|
publication_date: Optional[Union[str, XSDDate]] = None
|
|
publication_year: Optional[int] = None
|
|
abstract: Optional[str] = None
|
|
keywords: Optional[Union[str, list[str]]] = empty_list()
|
|
language: Optional[str] = None
|
|
doi: Optional[str] = None
|
|
url: Optional[Union[str, URI]] = None
|
|
published_in: Optional[Union[str, JournalJournalId]] = None
|
|
volume: Optional[str] = None
|
|
issue: Optional[str] = None
|
|
page_range: Optional[str] = None
|
|
article_number: Optional[str] = None
|
|
publisher: Optional[Union[dict, "Organization"]] = None
|
|
place_of_publication: Optional[str] = None
|
|
isbn: Optional[str] = None
|
|
issn: Optional[str] = None
|
|
citations: Optional[Union[dict[Union[str, CitationCitationId], Union[dict, "Citation"]], list[Union[dict, "Citation"]]]] = empty_dict()
|
|
cited_by: Optional[Union[Union[str, CitationCitationId], list[Union[str, CitationCitationId]]]] = empty_list()
|
|
related_works: Optional[Union[Union[str, PublicationPublicationId], list[Union[str, PublicationPublicationId]]]] = empty_list()
|
|
document_sections: Optional[Union[dict[Union[str, DocumentSectionSectionId], Union[dict, "DocumentSection"]], list[Union[dict, "DocumentSection"]]]] = empty_dict()
|
|
open_access_status: Optional[Union[str, "OpenAccessStatusEnum"]] = None
|
|
publishing_status: Optional[Union[str, "PublishingStatusEnum"]] = None
|
|
peer_reviewed: Optional[Union[bool, Bool]] = None
|
|
license: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.publication_id):
|
|
self.MissingRequiredField("publication_id")
|
|
if not isinstance(self.publication_id, PublicationPublicationId):
|
|
self.publication_id = PublicationPublicationId(self.publication_id)
|
|
|
|
if self._is_empty(self.title):
|
|
self.MissingRequiredField("title")
|
|
if not isinstance(self.title, str):
|
|
self.title = str(self.title)
|
|
|
|
if self._is_empty(self.publication_type):
|
|
self.MissingRequiredField("publication_type")
|
|
if not isinstance(self.publication_type, PublicationTypeEnum):
|
|
self.publication_type = PublicationTypeEnum(self.publication_type)
|
|
|
|
if self._is_empty(self.provenance):
|
|
self.MissingRequiredField("provenance")
|
|
if not isinstance(self.provenance, Provenance):
|
|
self.provenance = Provenance(**as_dict(self.provenance))
|
|
|
|
if not isinstance(self.alternative_titles, list):
|
|
self.alternative_titles = [self.alternative_titles] if self.alternative_titles is not None else []
|
|
self.alternative_titles = [v if isinstance(v, str) else str(v) for v in self.alternative_titles]
|
|
|
|
self._normalize_inlined_as_list(slot_name="authors", slot_type=Person, key_name="person_id", keyed=True)
|
|
|
|
self._normalize_inlined_as_list(slot_name="editors", slot_type=Person, key_name="person_id", keyed=True)
|
|
|
|
self._normalize_inlined_as_list(slot_name="contributors", slot_type=Person, key_name="person_id", keyed=True)
|
|
|
|
if self.publication_date is not None and not isinstance(self.publication_date, XSDDate):
|
|
self.publication_date = XSDDate(self.publication_date)
|
|
|
|
if self.publication_year is not None and not isinstance(self.publication_year, int):
|
|
self.publication_year = int(self.publication_year)
|
|
|
|
if self.abstract is not None and not isinstance(self.abstract, str):
|
|
self.abstract = str(self.abstract)
|
|
|
|
if not isinstance(self.keywords, list):
|
|
self.keywords = [self.keywords] if self.keywords is not None else []
|
|
self.keywords = [v if isinstance(v, str) else str(v) for v in self.keywords]
|
|
|
|
if self.language is not None and not isinstance(self.language, str):
|
|
self.language = str(self.language)
|
|
|
|
if self.doi is not None and not isinstance(self.doi, str):
|
|
self.doi = str(self.doi)
|
|
|
|
if self.url is not None and not isinstance(self.url, URI):
|
|
self.url = URI(self.url)
|
|
|
|
if self.published_in is not None and not isinstance(self.published_in, JournalJournalId):
|
|
self.published_in = JournalJournalId(self.published_in)
|
|
|
|
if self.volume is not None and not isinstance(self.volume, str):
|
|
self.volume = str(self.volume)
|
|
|
|
if self.issue is not None and not isinstance(self.issue, str):
|
|
self.issue = str(self.issue)
|
|
|
|
if self.page_range is not None and not isinstance(self.page_range, str):
|
|
self.page_range = str(self.page_range)
|
|
|
|
if self.article_number is not None and not isinstance(self.article_number, str):
|
|
self.article_number = str(self.article_number)
|
|
|
|
if self.publisher is not None and not isinstance(self.publisher, Organization):
|
|
self.publisher = Organization(**as_dict(self.publisher))
|
|
|
|
if self.place_of_publication is not None and not isinstance(self.place_of_publication, str):
|
|
self.place_of_publication = str(self.place_of_publication)
|
|
|
|
if self.isbn is not None and not isinstance(self.isbn, str):
|
|
self.isbn = str(self.isbn)
|
|
|
|
if self.issn is not None and not isinstance(self.issn, str):
|
|
self.issn = str(self.issn)
|
|
|
|
self._normalize_inlined_as_list(slot_name="citations", slot_type=Citation, key_name="citation_id", keyed=True)
|
|
|
|
if not isinstance(self.cited_by, list):
|
|
self.cited_by = [self.cited_by] if self.cited_by is not None else []
|
|
self.cited_by = [v if isinstance(v, CitationCitationId) else CitationCitationId(v) for v in self.cited_by]
|
|
|
|
if not isinstance(self.related_works, list):
|
|
self.related_works = [self.related_works] if self.related_works is not None else []
|
|
self.related_works = [v if isinstance(v, PublicationPublicationId) else PublicationPublicationId(v) for v in self.related_works]
|
|
|
|
self._normalize_inlined_as_list(slot_name="document_sections", slot_type=DocumentSection, key_name="section_id", keyed=True)
|
|
|
|
if self.open_access_status is not None and not isinstance(self.open_access_status, OpenAccessStatusEnum):
|
|
self.open_access_status = OpenAccessStatusEnum(self.open_access_status)
|
|
|
|
if self.publishing_status is not None and not isinstance(self.publishing_status, PublishingStatusEnum):
|
|
self.publishing_status = PublishingStatusEnum(self.publishing_status)
|
|
|
|
if self.peer_reviewed is not None and not isinstance(self.peer_reviewed, Bool):
|
|
self.peer_reviewed = Bool(self.peer_reviewed)
|
|
|
|
if self.license is not None and not isinstance(self.license, str):
|
|
self.license = str(self.license)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Journal(YAMLRoot):
|
|
"""
|
|
Academic journal or periodical publication. FaBiO Journal class representing a continuing resource published in
|
|
serial fashion.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FABIO["Journal"]
|
|
class_class_curie: ClassVar[str] = "fabio:Journal"
|
|
class_name: ClassVar[str] = "Journal"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Journal
|
|
|
|
journal_id: Union[str, JournalJournalId] = None
|
|
journal_title: str = None
|
|
provenance: Union[dict, Provenance] = None
|
|
alternative_journal_titles: Optional[Union[str, list[str]]] = empty_list()
|
|
issn: Optional[str] = None
|
|
eissn: Optional[str] = None
|
|
publisher: Optional[Union[dict, "Organization"]] = None
|
|
journal_url: Optional[Union[str, URI]] = None
|
|
impact_factor: Optional[float] = None
|
|
cite_score: Optional[float] = None
|
|
subject_areas: Optional[Union[str, list[str]]] = empty_list()
|
|
open_access_status: Optional[Union[str, "OpenAccessStatusEnum"]] = None
|
|
indexing_services: Optional[Union[str, list[str]]] = empty_list()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.journal_id):
|
|
self.MissingRequiredField("journal_id")
|
|
if not isinstance(self.journal_id, JournalJournalId):
|
|
self.journal_id = JournalJournalId(self.journal_id)
|
|
|
|
if self._is_empty(self.journal_title):
|
|
self.MissingRequiredField("journal_title")
|
|
if not isinstance(self.journal_title, str):
|
|
self.journal_title = str(self.journal_title)
|
|
|
|
if self._is_empty(self.provenance):
|
|
self.MissingRequiredField("provenance")
|
|
if not isinstance(self.provenance, Provenance):
|
|
self.provenance = Provenance(**as_dict(self.provenance))
|
|
|
|
if not isinstance(self.alternative_journal_titles, list):
|
|
self.alternative_journal_titles = [self.alternative_journal_titles] if self.alternative_journal_titles is not None else []
|
|
self.alternative_journal_titles = [v if isinstance(v, str) else str(v) for v in self.alternative_journal_titles]
|
|
|
|
if self.issn is not None and not isinstance(self.issn, str):
|
|
self.issn = str(self.issn)
|
|
|
|
if self.eissn is not None and not isinstance(self.eissn, str):
|
|
self.eissn = str(self.eissn)
|
|
|
|
if self.publisher is not None and not isinstance(self.publisher, Organization):
|
|
self.publisher = Organization(**as_dict(self.publisher))
|
|
|
|
if self.journal_url is not None and not isinstance(self.journal_url, URI):
|
|
self.journal_url = URI(self.journal_url)
|
|
|
|
if self.impact_factor is not None and not isinstance(self.impact_factor, float):
|
|
self.impact_factor = float(self.impact_factor)
|
|
|
|
if self.cite_score is not None and not isinstance(self.cite_score, float):
|
|
self.cite_score = float(self.cite_score)
|
|
|
|
if not isinstance(self.subject_areas, list):
|
|
self.subject_areas = [self.subject_areas] if self.subject_areas is not None else []
|
|
self.subject_areas = [v if isinstance(v, str) else str(v) for v in self.subject_areas]
|
|
|
|
if self.open_access_status is not None and not isinstance(self.open_access_status, OpenAccessStatusEnum):
|
|
self.open_access_status = OpenAccessStatusEnum(self.open_access_status)
|
|
|
|
if not isinstance(self.indexing_services, list):
|
|
self.indexing_services = [self.indexing_services] if self.indexing_services is not None else []
|
|
self.indexing_services = [v if isinstance(v, str) else str(v) for v in self.indexing_services]
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Conference(YAMLRoot):
|
|
"""
|
|
Academic conference or symposium. FaBiO AcademicProceedings representing a collection of conference papers.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FABIO["AcademicProceedings"]
|
|
class_class_curie: ClassVar[str] = "fabio:AcademicProceedings"
|
|
class_name: ClassVar[str] = "Conference"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Conference
|
|
|
|
conference_id: Union[str, ConferenceConferenceId] = None
|
|
conference_name: str = None
|
|
provenance: Union[dict, Provenance] = None
|
|
conference_acronym: Optional[str] = None
|
|
conference_date: Optional[str] = None
|
|
conference_location: Optional[str] = None
|
|
conference_url: Optional[Union[str, URI]] = None
|
|
proceedings_title: Optional[str] = None
|
|
proceedings_isbn: Optional[str] = None
|
|
proceedings_publisher: Optional[Union[dict, "Organization"]] = None
|
|
editors: Optional[Union[dict[Union[str, PersonPersonId], Union[dict, "Person"]], list[Union[dict, "Person"]]]] = empty_dict()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.conference_id):
|
|
self.MissingRequiredField("conference_id")
|
|
if not isinstance(self.conference_id, ConferenceConferenceId):
|
|
self.conference_id = ConferenceConferenceId(self.conference_id)
|
|
|
|
if self._is_empty(self.conference_name):
|
|
self.MissingRequiredField("conference_name")
|
|
if not isinstance(self.conference_name, str):
|
|
self.conference_name = str(self.conference_name)
|
|
|
|
if self._is_empty(self.provenance):
|
|
self.MissingRequiredField("provenance")
|
|
if not isinstance(self.provenance, Provenance):
|
|
self.provenance = Provenance(**as_dict(self.provenance))
|
|
|
|
if self.conference_acronym is not None and not isinstance(self.conference_acronym, str):
|
|
self.conference_acronym = str(self.conference_acronym)
|
|
|
|
if self.conference_date is not None and not isinstance(self.conference_date, str):
|
|
self.conference_date = str(self.conference_date)
|
|
|
|
if self.conference_location is not None and not isinstance(self.conference_location, str):
|
|
self.conference_location = str(self.conference_location)
|
|
|
|
if self.conference_url is not None and not isinstance(self.conference_url, URI):
|
|
self.conference_url = URI(self.conference_url)
|
|
|
|
if self.proceedings_title is not None and not isinstance(self.proceedings_title, str):
|
|
self.proceedings_title = str(self.proceedings_title)
|
|
|
|
if self.proceedings_isbn is not None and not isinstance(self.proceedings_isbn, str):
|
|
self.proceedings_isbn = str(self.proceedings_isbn)
|
|
|
|
if self.proceedings_publisher is not None and not isinstance(self.proceedings_publisher, Organization):
|
|
self.proceedings_publisher = Organization(**as_dict(self.proceedings_publisher))
|
|
|
|
self._normalize_inlined_as_list(slot_name="editors", slot_type=Person, key_name="person_id", keyed=True)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Person(YAMLRoot):
|
|
"""
|
|
Person involved in scholarly publishing (author, editor, reviewer). FOAF Person with PRO publishing roles.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = FOAF["Person"]
|
|
class_class_curie: ClassVar[str] = "foaf:Person"
|
|
class_name: ClassVar[str] = "Person"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Person
|
|
|
|
person_id: Union[str, PersonPersonId] = None
|
|
person_name: str = None
|
|
given_name: Optional[str] = None
|
|
family_name: Optional[str] = None
|
|
orcid: Optional[str] = None
|
|
email: Optional[str] = None
|
|
affiliation: Optional[Union[dict, "Organization"]] = None
|
|
roles: Optional[Union[Union[dict, "PublishingRole"], list[Union[dict, "PublishingRole"]]]] = empty_list()
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.person_id):
|
|
self.MissingRequiredField("person_id")
|
|
if not isinstance(self.person_id, PersonPersonId):
|
|
self.person_id = PersonPersonId(self.person_id)
|
|
|
|
if self._is_empty(self.person_name):
|
|
self.MissingRequiredField("person_name")
|
|
if not isinstance(self.person_name, str):
|
|
self.person_name = str(self.person_name)
|
|
|
|
if self.given_name is not None and not isinstance(self.given_name, str):
|
|
self.given_name = str(self.given_name)
|
|
|
|
if self.family_name is not None and not isinstance(self.family_name, str):
|
|
self.family_name = str(self.family_name)
|
|
|
|
if self.orcid is not None and not isinstance(self.orcid, str):
|
|
self.orcid = str(self.orcid)
|
|
|
|
if self.email is not None and not isinstance(self.email, str):
|
|
self.email = str(self.email)
|
|
|
|
if self.affiliation is not None and not isinstance(self.affiliation, Organization):
|
|
self.affiliation = Organization(**as_dict(self.affiliation))
|
|
|
|
if not isinstance(self.roles, list):
|
|
self.roles = [self.roles] if self.roles is not None else []
|
|
self.roles = [v if isinstance(v, PublishingRole) else PublishingRole(**as_dict(v)) for v in self.roles]
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Organization(YAMLRoot):
|
|
"""
|
|
Organization involved in publishing (publisher, institutional affiliation). Schema.org Organization for
|
|
bibliographic contexts.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = SCHEMA["Organization"]
|
|
class_class_curie: ClassVar[str] = "schema:Organization"
|
|
class_name: ClassVar[str] = "Organization"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Organization
|
|
|
|
organization_id: Union[str, OrganizationOrganizationId] = None
|
|
organization_name: str = None
|
|
organization_type: Optional[str] = None
|
|
location: Optional[str] = None
|
|
homepage: Optional[Union[str, URI]] = None
|
|
ror_id: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.organization_id):
|
|
self.MissingRequiredField("organization_id")
|
|
if not isinstance(self.organization_id, OrganizationOrganizationId):
|
|
self.organization_id = OrganizationOrganizationId(self.organization_id)
|
|
|
|
if self._is_empty(self.organization_name):
|
|
self.MissingRequiredField("organization_name")
|
|
if not isinstance(self.organization_name, str):
|
|
self.organization_name = str(self.organization_name)
|
|
|
|
if self.organization_type is not None and not isinstance(self.organization_type, str):
|
|
self.organization_type = str(self.organization_type)
|
|
|
|
if self.location is not None and not isinstance(self.location, str):
|
|
self.location = str(self.location)
|
|
|
|
if self.homepage is not None and not isinstance(self.homepage, URI):
|
|
self.homepage = URI(self.homepage)
|
|
|
|
if self.ror_id is not None and not isinstance(self.ror_id, str):
|
|
self.ror_id = str(self.ror_id)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class Citation(YAMLRoot):
|
|
"""
|
|
Citation relationship between two publications. CiTO Citation characterizing how one work cites another.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = CITO["Citation"]
|
|
class_class_curie: ClassVar[str] = "cito:Citation"
|
|
class_name: ClassVar[str] = "Citation"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.Citation
|
|
|
|
citation_id: Union[str, CitationCitationId] = None
|
|
citing_work: Union[str, PublicationPublicationId] = None
|
|
cited_work: Union[str, PublicationPublicationId] = None
|
|
citation_type: Union[str, "CitationTypeEnum"] = None
|
|
citation_intent: Optional[str] = None
|
|
citation_context: Optional[str] = None
|
|
page_number: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.citation_id):
|
|
self.MissingRequiredField("citation_id")
|
|
if not isinstance(self.citation_id, CitationCitationId):
|
|
self.citation_id = CitationCitationId(self.citation_id)
|
|
|
|
if self._is_empty(self.citing_work):
|
|
self.MissingRequiredField("citing_work")
|
|
if not isinstance(self.citing_work, PublicationPublicationId):
|
|
self.citing_work = PublicationPublicationId(self.citing_work)
|
|
|
|
if self._is_empty(self.cited_work):
|
|
self.MissingRequiredField("cited_work")
|
|
if not isinstance(self.cited_work, PublicationPublicationId):
|
|
self.cited_work = PublicationPublicationId(self.cited_work)
|
|
|
|
if self._is_empty(self.citation_type):
|
|
self.MissingRequiredField("citation_type")
|
|
if not isinstance(self.citation_type, CitationTypeEnum):
|
|
self.citation_type = CitationTypeEnum(self.citation_type)
|
|
|
|
if self.citation_intent is not None and not isinstance(self.citation_intent, str):
|
|
self.citation_intent = str(self.citation_intent)
|
|
|
|
if self.citation_context is not None and not isinstance(self.citation_context, str):
|
|
self.citation_context = str(self.citation_context)
|
|
|
|
if self.page_number is not None and not isinstance(self.page_number, str):
|
|
self.page_number = str(self.page_number)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class DocumentSection(YAMLRoot):
|
|
"""
|
|
Structural section or component of a document. DoCO Document Component representing abstract, introduction,
|
|
methods, etc.
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = DOCO["Section"]
|
|
class_class_curie: ClassVar[str] = "doco:Section"
|
|
class_name: ClassVar[str] = "DocumentSection"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.DocumentSection
|
|
|
|
section_id: Union[str, DocumentSectionSectionId] = None
|
|
section_title: Optional[str] = None
|
|
section_type: Optional[Union[str, "DocumentSectionTypeEnum"]] = None
|
|
section_content: Optional[str] = None
|
|
section_order: Optional[int] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.section_id):
|
|
self.MissingRequiredField("section_id")
|
|
if not isinstance(self.section_id, DocumentSectionSectionId):
|
|
self.section_id = DocumentSectionSectionId(self.section_id)
|
|
|
|
if self.section_title is not None and not isinstance(self.section_title, str):
|
|
self.section_title = str(self.section_title)
|
|
|
|
if self.section_type is not None and not isinstance(self.section_type, DocumentSectionTypeEnum):
|
|
self.section_type = DocumentSectionTypeEnum(self.section_type)
|
|
|
|
if self.section_content is not None and not isinstance(self.section_content, str):
|
|
self.section_content = str(self.section_content)
|
|
|
|
if self.section_order is not None and not isinstance(self.section_order, int):
|
|
self.section_order = int(self.section_order)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
@dataclass(repr=False)
|
|
class PublishingRole(YAMLRoot):
|
|
"""
|
|
Role of a person or organization in the publishing process. PRO Publishing Role (author, editor, reviewer,
|
|
publisher).
|
|
"""
|
|
_inherited_slots: ClassVar[list[str]] = []
|
|
|
|
class_class_uri: ClassVar[URIRef] = PRO["PublishingRole"]
|
|
class_class_curie: ClassVar[str] = "pro:PublishingRole"
|
|
class_name: ClassVar[str] = "PublishingRole"
|
|
class_model_uri: ClassVar[URIRef] = HERITAGE.PublishingRole
|
|
|
|
role_type: Union[str, "PublishingRoleTypeEnum"] = None
|
|
role_holder: Union[str, PersonPersonId] = None
|
|
role_context: Optional[str] = None
|
|
|
|
def __post_init__(self, *_: str, **kwargs: Any):
|
|
if self._is_empty(self.role_type):
|
|
self.MissingRequiredField("role_type")
|
|
if not isinstance(self.role_type, PublishingRoleTypeEnum):
|
|
self.role_type = PublishingRoleTypeEnum(self.role_type)
|
|
|
|
if self._is_empty(self.role_holder):
|
|
self.MissingRequiredField("role_holder")
|
|
if not isinstance(self.role_holder, PersonPersonId):
|
|
self.role_holder = PersonPersonId(self.role_holder)
|
|
|
|
if self.role_context is not None and not isinstance(self.role_context, str):
|
|
self.role_context = str(self.role_context)
|
|
|
|
super().__post_init__(**kwargs)
|
|
|
|
|
|
# Enumerations
|
|
class InstitutionTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of heritage institutions (GLAMORCUBESFIXPHDNT taxonomy). Uses single-letter codes for GHCID generation:
|
|
G(allery), L(ibrary), A(rchive), M(useum), O(fficial), R(esearch), C(orporation), U(nknown),
|
|
B(otanical/Zoo), E(ducation), S(ociety), F(eatures), I(ntangible), X(miXed), P(ersonal),
|
|
H(oly sites), D(igital), N(GO).
|
|
"""
|
|
GALLERY = PermissibleValue(
|
|
text="GALLERY",
|
|
description="Art gallery or exhibition space",
|
|
meaning=SCHEMA["ArtGallery"])
|
|
LIBRARY = PermissibleValue(
|
|
text="LIBRARY",
|
|
description="Library (public, academic, specialized)",
|
|
meaning=SCHEMA["Library"])
|
|
ARCHIVE = PermissibleValue(
|
|
text="ARCHIVE",
|
|
description="Archive (government, corporate, personal, community)",
|
|
meaning=SCHEMA["ArchiveOrganization"])
|
|
MUSEUM = PermissibleValue(
|
|
text="MUSEUM",
|
|
description="Museum (art, history, science, natural history, etc.)",
|
|
meaning=SCHEMA["Museum"])
|
|
OFFICIAL_INSTITUTION = PermissibleValue(
|
|
text="OFFICIAL_INSTITUTION",
|
|
description="Official government institutions managing cultural heritage",
|
|
meaning=CPOV["PublicOrganisation"])
|
|
RESEARCH_CENTER = PermissibleValue(
|
|
text="RESEARCH_CENTER",
|
|
description="Research centers and institutes focused on cultural/heritage research",
|
|
meaning=SCHEMA["ResearchOrganization"])
|
|
CORPORATION = PermissibleValue(
|
|
text="CORPORATION",
|
|
description="Corporate collections and heritage institutions",
|
|
meaning=SCHEMA["Corporation"])
|
|
UNKNOWN = PermissibleValue(
|
|
text="UNKNOWN",
|
|
description="Unknown or uncategorized heritage custodian")
|
|
BOTANICAL_ZOO = PermissibleValue(
|
|
text="BOTANICAL_ZOO",
|
|
description="Botanical gardens, zoos, aquariums, and natural heritage sites",
|
|
meaning=SCHEMA["Zoo"])
|
|
EDUCATION_PROVIDER = PermissibleValue(
|
|
text="EDUCATION_PROVIDER",
|
|
description="Educational institutions with heritage collections (universities, schools)",
|
|
meaning=SCHEMA["EducationalOrganization"])
|
|
PERSONAL_COLLECTION = PermissibleValue(
|
|
text="PERSONAL_COLLECTION",
|
|
description="Personal or private collections",
|
|
meaning=SCHEMA["Collection"])
|
|
COLLECTING_SOCIETY = PermissibleValue(
|
|
text="COLLECTING_SOCIETY",
|
|
description="""Collecting societies (numismatics, philately, ephemera, local history/heemkundige kring, memorabilia, vintage, philographic)""",
|
|
meaning=SCHEMA["Organization"])
|
|
MIXED = PermissibleValue(
|
|
text="MIXED",
|
|
description="""Multi-type institution (e.g., library + archive + museum). Use primary type for GHCID; document mixed nature in description.""")
|
|
HOLY_SITES = PermissibleValue(
|
|
text="HOLY_SITES",
|
|
description="""Religious and sacred heritage sites (churches, temples, mosques, synagogues, shrines, monasteries, cathedrals) with historical, architectural, or cultural significance.""",
|
|
meaning=SCHEMA["PlaceOfWorship"])
|
|
FEATURES = PermissibleValue(
|
|
text="FEATURES",
|
|
description="""Physical landscape features with heritage significance (monuments, sculptures, statues, memorials, landmarks, cemeteries as physical features). Distinct from institutions that maintain collections.""",
|
|
meaning=SCHEMA["Monument"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="InstitutionTypeEnum",
|
|
description="""Types of heritage institutions (GLAMORCUBESFIXPHDNT taxonomy). Uses single-letter codes for GHCID generation: G(allery), L(ibrary), A(rchive), M(useum), O(fficial), R(esearch), C(orporation), U(nknown), B(otanical/Zoo), E(ducation), S(ociety), F(eatures), I(ntangible), X(miXed), P(ersonal), H(oly sites), D(igital), N(GO), T(aste/smell).""",
|
|
)
|
|
|
|
class OrganizationStatusEnum(EnumDefinitionImpl):
|
|
"""
|
|
Operational status of the organization
|
|
"""
|
|
ACTIVE = PermissibleValue(
|
|
text="ACTIVE",
|
|
description="Currently operational")
|
|
INACTIVE = PermissibleValue(
|
|
text="INACTIVE",
|
|
description="No longer operational")
|
|
MERGED = PermissibleValue(
|
|
text="MERGED",
|
|
description="Merged with another organization")
|
|
SUSPENDED = PermissibleValue(
|
|
text="SUSPENDED",
|
|
description="Temporarily suspended operations")
|
|
PLANNED = PermissibleValue(
|
|
text="PLANNED",
|
|
description="Planned but not yet operational")
|
|
UNKNOWN = PermissibleValue(
|
|
text="UNKNOWN",
|
|
description="Status unknown")
|
|
|
|
_defn = EnumDefinition(
|
|
name="OrganizationStatusEnum",
|
|
description="Operational status of the organization",
|
|
)
|
|
|
|
class DataSourceEnum(EnumDefinitionImpl):
|
|
"""
|
|
Source of the data (for provenance tracking)
|
|
"""
|
|
ISIL_REGISTRY = PermissibleValue(
|
|
text="ISIL_REGISTRY",
|
|
description="Official ISIL code registry")
|
|
DUTCH_ORG_CSV = PermissibleValue(
|
|
text="DUTCH_ORG_CSV",
|
|
description="Dutch heritage organizations CSV (totaallijst_nederland)")
|
|
CONVERSATION_NLP = PermissibleValue(
|
|
text="CONVERSATION_NLP",
|
|
description="Extracted from Claude conversation via NLP")
|
|
WEB_CRAWL = PermissibleValue(
|
|
text="WEB_CRAWL",
|
|
description="Extracted from institutional website via crawl4ai")
|
|
WIKIDATA = PermissibleValue(
|
|
text="WIKIDATA",
|
|
description="Sourced from Wikidata SPARQL query")
|
|
MANUAL_ENTRY = PermissibleValue(
|
|
text="MANUAL_ENTRY",
|
|
description="Manually entered or curated")
|
|
INFERRED = PermissibleValue(
|
|
text="INFERRED",
|
|
description="Inferred from other data points")
|
|
CSV_REGISTRY = PermissibleValue(
|
|
text="CSV_REGISTRY",
|
|
description="General CSV registry or dataset")
|
|
|
|
_defn = EnumDefinition(
|
|
name="DataSourceEnum",
|
|
description="Source of the data (for provenance tracking)",
|
|
)
|
|
|
|
class DataTierEnum(EnumDefinitionImpl):
|
|
"""
|
|
Data quality/authority tier (from 04-data-standardization.md)
|
|
"""
|
|
TIER_1_AUTHORITATIVE = PermissibleValue(
|
|
text="TIER_1_AUTHORITATIVE",
|
|
description="Official registries (ISIL, national registers)")
|
|
TIER_2_VERIFIED = PermissibleValue(
|
|
text="TIER_2_VERIFIED",
|
|
description="Verified institutional data (website, official publications)")
|
|
TIER_3_CROWD_SOURCED = PermissibleValue(
|
|
text="TIER_3_CROWD_SOURCED",
|
|
description="Community-sourced data (Wikidata, OpenStreetMap)")
|
|
TIER_4_INFERRED = PermissibleValue(
|
|
text="TIER_4_INFERRED",
|
|
description="NLP-extracted or inferred data")
|
|
|
|
_defn = EnumDefinition(
|
|
name="DataTierEnum",
|
|
description="Data quality/authority tier (from 04-data-standardization.md)",
|
|
)
|
|
|
|
class MetadataStandardEnum(EnumDefinitionImpl):
|
|
"""
|
|
Metadata standards used by the institution
|
|
"""
|
|
DUBLIN_CORE = PermissibleValue(
|
|
text="DUBLIN_CORE",
|
|
description="Dublin Core Metadata Initiative",
|
|
meaning=DCTERMS["title"])
|
|
MARC21 = PermissibleValue(
|
|
text="MARC21",
|
|
description="MARC 21 bibliographic format")
|
|
EAD = PermissibleValue(
|
|
text="EAD",
|
|
description="Encoded Archival Description")
|
|
BIBFRAME = PermissibleValue(
|
|
text="BIBFRAME",
|
|
description="BIBFRAME bibliographic framework")
|
|
LIDO = PermissibleValue(
|
|
text="LIDO",
|
|
description="Lightweight Information Describing Objects (museum objects)")
|
|
CIDOC_CRM = PermissibleValue(
|
|
text="CIDOC_CRM",
|
|
description="CIDOC Conceptual Reference Model",
|
|
meaning=CRM["E1_CRM_Entity"])
|
|
SCHEMA_ORG = PermissibleValue(
|
|
text="SCHEMA_ORG",
|
|
description="Schema.org vocabulary",
|
|
meaning=SCHEMA["Thing"])
|
|
RIC_O = PermissibleValue(
|
|
text="RIC_O",
|
|
description="Records in Contexts Ontology",
|
|
meaning=RICO["Record"])
|
|
MODS = PermissibleValue(
|
|
text="MODS",
|
|
description="Metadata Object Description Schema")
|
|
PREMIS = PermissibleValue(
|
|
text="PREMIS",
|
|
description="PREservation Metadata Implementation Strategies")
|
|
SPECTRUM = PermissibleValue(
|
|
text="SPECTRUM",
|
|
description="UK museum collections management standard")
|
|
DACS = PermissibleValue(
|
|
text="DACS",
|
|
description="Describing Archives - A Content Standard")
|
|
|
|
_defn = EnumDefinition(
|
|
name="MetadataStandardEnum",
|
|
description="Metadata standards used by the institution",
|
|
)
|
|
|
|
class DigitalPlatformTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of digital platforms used
|
|
"""
|
|
COLLECTION_MANAGEMENT = PermissibleValue(
|
|
text="COLLECTION_MANAGEMENT",
|
|
description="""Collection management system (CMS) or integrated library system (ILS). Examples: Koha, Alma, Symphony (libraries); Atlantis, MAIS, CollectiveAccess, TMS (museums/archives)""")
|
|
DIGITAL_REPOSITORY = PermissibleValue(
|
|
text="DIGITAL_REPOSITORY",
|
|
description="Digital repository (DSpace, EPrints)")
|
|
DISCOVERY_PORTAL = PermissibleValue(
|
|
text="DISCOVERY_PORTAL",
|
|
description="Discovery/search portal")
|
|
LINKED_DATA_ENDPOINT = PermissibleValue(
|
|
text="LINKED_DATA_ENDPOINT",
|
|
description="Linked Data/SPARQL endpoint")
|
|
API = PermissibleValue(
|
|
text="API",
|
|
description="Public API for data access")
|
|
AGGREGATOR = PermissibleValue(
|
|
text="AGGREGATOR",
|
|
description="Aggregation platform (Europeana, DPLA)")
|
|
WEBSITE = PermissibleValue(
|
|
text="WEBSITE",
|
|
description="Institutional website")
|
|
LEARNING_MANAGEMENT = PermissibleValue(
|
|
text="LEARNING_MANAGEMENT",
|
|
description="""Learning management systems for heritage education (Moodle, Google Classroom, Blackboard, Canvas)""",
|
|
meaning=SCHEMA["LearningResource"])
|
|
IDENTIFIER_SERVICE = PermissibleValue(
|
|
text="IDENTIFIER_SERVICE",
|
|
description="Persistent identifier assignment service (URN, DOI, Handle, ARK)",
|
|
meaning=SCHEMA["Service"])
|
|
GENERIC = PermissibleValue(
|
|
text="GENERIC",
|
|
description="""General-purpose software not specific to heritage sector. Examples: FileMaker, Microsoft Access, custom databases.""")
|
|
|
|
_defn = EnumDefinition(
|
|
name="DigitalPlatformTypeEnum",
|
|
description="Types of digital platforms used",
|
|
)
|
|
|
|
class ChangeTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of organizational changes, based on TOOI Wijzigingsgebeurtenis patterns. Tracks major events in an
|
|
organization's lifecycle.
|
|
"""
|
|
FOUNDING = PermissibleValue(
|
|
text="FOUNDING",
|
|
description="Organization was founded or established",
|
|
meaning=TOOIONT["Oprichting"])
|
|
CLOSURE = PermissibleValue(
|
|
text="CLOSURE",
|
|
description="Organization ceased operations or was dissolved",
|
|
meaning=TOOIONT["Opheffing"])
|
|
MERGER = PermissibleValue(
|
|
text="MERGER",
|
|
description="Organization merged with one or more other organizations",
|
|
meaning=TOOIONT["Fusie"])
|
|
SPLIT = PermissibleValue(
|
|
text="SPLIT",
|
|
description="Organization split into multiple separate entities",
|
|
meaning=TOOIONT["Afsplitsing"])
|
|
ACQUISITION = PermissibleValue(
|
|
text="ACQUISITION",
|
|
description="Organization acquired another organization")
|
|
RELOCATION = PermissibleValue(
|
|
text="RELOCATION",
|
|
description="Organization moved to a new geographic location")
|
|
NAME_CHANGE = PermissibleValue(
|
|
text="NAME_CHANGE",
|
|
description="Organization changed its official name")
|
|
TYPE_CHANGE = PermissibleValue(
|
|
text="TYPE_CHANGE",
|
|
description="Institution type changed (e.g., archive became museum)")
|
|
STATUS_CHANGE = PermissibleValue(
|
|
text="STATUS_CHANGE",
|
|
description="Operational status changed")
|
|
RESTRUCTURING = PermissibleValue(
|
|
text="RESTRUCTURING",
|
|
description="Internal reorganization or structural change")
|
|
LEGAL_CHANGE = PermissibleValue(
|
|
text="LEGAL_CHANGE",
|
|
description="Change in legal status or governance")
|
|
OTHER = PermissibleValue(
|
|
text="OTHER",
|
|
description="Other type of organizational change")
|
|
|
|
_defn = EnumDefinition(
|
|
name="ChangeTypeEnum",
|
|
description="""Types of organizational changes, based on TOOI Wijzigingsgebeurtenis patterns. Tracks major events in an organization's lifecycle.""",
|
|
)
|
|
|
|
class EnrichmentTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of data enrichment activities performed on heritage custodian records. Tracks what kind of data was added or
|
|
modified during enrichment processes.
|
|
"""
|
|
WIKIDATA_IDENTIFIER = PermissibleValue(
|
|
text="WIKIDATA_IDENTIFIER",
|
|
description="Wikidata Q-number identifier added via SPARQL query or API lookup",
|
|
meaning=PROV["Entity"])
|
|
GEOCODING = PermissibleValue(
|
|
text="GEOCODING",
|
|
description="Latitude/longitude coordinates added via geocoding service (Nominatim, GeoNames)",
|
|
meaning=PROV["Location"])
|
|
VIAF_IDENTIFIER = PermissibleValue(
|
|
text="VIAF_IDENTIFIER",
|
|
description="Virtual International Authority File (VIAF) identifier added",
|
|
meaning=PROV["Entity"])
|
|
ISIL_CODE = PermissibleValue(
|
|
text="ISIL_CODE",
|
|
description="International Standard Identifier for Libraries (ISIL) code assigned",
|
|
meaning=PROV["Entity"])
|
|
GHCID_GENERATION = PermissibleValue(
|
|
text="GHCID_GENERATION",
|
|
description="Global Heritage Custodian Identifier (GHCID) generated from institution metadata",
|
|
meaning=PROV["Entity"])
|
|
FALSE_POSITIVE_REMOVAL = PermissibleValue(
|
|
text="FALSE_POSITIVE_REMOVAL",
|
|
description="Incorrect or false positive enrichment data removed after verification",
|
|
meaning=PROV["Invalidation"])
|
|
NAME_NORMALIZATION = PermissibleValue(
|
|
text="NAME_NORMALIZATION",
|
|
description="Institution name normalized or standardized for consistency",
|
|
meaning=PROV["Revision"])
|
|
IDENTIFIER_VERIFICATION = PermissibleValue(
|
|
text="IDENTIFIER_VERIFICATION",
|
|
description="Existing identifier verified against authoritative source",
|
|
meaning=PROV["Validation"])
|
|
INSTITUTION_TYPE_CLASSIFICATION = PermissibleValue(
|
|
text="INSTITUTION_TYPE_CLASSIFICATION",
|
|
description="Institution type classified or corrected (GLAMORCUBESFIXPHDNT taxonomy)",
|
|
meaning=PROV["Revision"])
|
|
ADDRESS_STANDARDIZATION = PermissibleValue(
|
|
text="ADDRESS_STANDARDIZATION",
|
|
description="Physical address standardized or corrected using postal service data",
|
|
meaning=PROV["Revision"])
|
|
WEBSITE_URL_VALIDATION = PermissibleValue(
|
|
text="WEBSITE_URL_VALIDATION",
|
|
description="Institution website URL validated and updated",
|
|
meaning=PROV["Validation"])
|
|
COLLECTION_METADATA = PermissibleValue(
|
|
text="COLLECTION_METADATA",
|
|
description="Collection-level metadata added (extent, temporal coverage, subject areas)",
|
|
meaning=PROV["Entity"])
|
|
ORGANIZATIONAL_RELATIONSHIP = PermissibleValue(
|
|
text="ORGANIZATIONAL_RELATIONSHIP",
|
|
description="Relationship to parent/child organizations or networks identified",
|
|
meaning=PROV["Association"])
|
|
DIGITAL_PLATFORM_DETECTION = PermissibleValue(
|
|
text="DIGITAL_PLATFORM_DETECTION",
|
|
description="Digital platforms or systems used by institution identified",
|
|
meaning=PROV["Entity"])
|
|
OTHER = PermissibleValue(
|
|
text="OTHER",
|
|
description="Other type of enrichment activity not covered by standard types",
|
|
meaning=PROV["Activity"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="EnrichmentTypeEnum",
|
|
description="""Types of data enrichment activities performed on heritage custodian records. Tracks what kind of data was added or modified during enrichment processes.""",
|
|
)
|
|
|
|
class PublicationTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of scholarly publications
|
|
"""
|
|
JOURNAL_ARTICLE = PermissibleValue(
|
|
text="JOURNAL_ARTICLE",
|
|
description="Article published in an academic journal",
|
|
meaning=FABIO["JournalArticle"])
|
|
CONFERENCE_PAPER = PermissibleValue(
|
|
text="CONFERENCE_PAPER",
|
|
description="Paper presented at a conference",
|
|
meaning=FABIO["ConferencePaper"])
|
|
BOOK = PermissibleValue(
|
|
text="BOOK",
|
|
description="Scholarly book or monograph",
|
|
meaning=FABIO["Book"])
|
|
BOOK_CHAPTER = PermissibleValue(
|
|
text="BOOK_CHAPTER",
|
|
description="Chapter in an edited book",
|
|
meaning=FABIO["BookChapter"])
|
|
THESIS = PermissibleValue(
|
|
text="THESIS",
|
|
description="Thesis or dissertation",
|
|
meaning=FABIO["Thesis"])
|
|
TECHNICAL_REPORT = PermissibleValue(
|
|
text="TECHNICAL_REPORT",
|
|
description="Technical report or white paper",
|
|
meaning=FABIO["TechnicalReport"])
|
|
REVIEW_ARTICLE = PermissibleValue(
|
|
text="REVIEW_ARTICLE",
|
|
description="Review or survey article",
|
|
meaning=FABIO["ReviewArticle"])
|
|
EDITORIAL = PermissibleValue(
|
|
text="EDITORIAL",
|
|
description="Editorial or opinion piece",
|
|
meaning=FABIO["Editorial"])
|
|
PREPRINT = PermissibleValue(
|
|
text="PREPRINT",
|
|
description="Preprint or working paper",
|
|
meaning=FABIO["Preprint"])
|
|
DATASET = PermissibleValue(
|
|
text="DATASET",
|
|
description="Research dataset",
|
|
meaning=FABIO["Dataset"])
|
|
SOFTWARE = PermissibleValue(
|
|
text="SOFTWARE",
|
|
description="Software or code",
|
|
meaning=SCHEMA["SoftwareApplication"])
|
|
POSTER = PermissibleValue(
|
|
text="POSTER",
|
|
description="Conference poster",
|
|
meaning=FABIO["Poster"])
|
|
PRESENTATION = PermissibleValue(
|
|
text="PRESENTATION",
|
|
description="Presentation slides",
|
|
meaning=FABIO["Presentation"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="PublicationTypeEnum",
|
|
description="Types of scholarly publications",
|
|
)
|
|
|
|
class CitationTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of citation relationships (CiTO)
|
|
"""
|
|
CITES = PermissibleValue(
|
|
text="CITES",
|
|
description="Generic citation",
|
|
meaning=CITO["cites"])
|
|
CITES_AS_AUTHORITY = PermissibleValue(
|
|
text="CITES_AS_AUTHORITY",
|
|
description="Cites as authoritative source",
|
|
meaning=CITO["citesAsAuthority"])
|
|
CITES_AS_EVIDENCE = PermissibleValue(
|
|
text="CITES_AS_EVIDENCE",
|
|
description="Cites as evidence",
|
|
meaning=CITO["citesAsEvidence"])
|
|
CITES_AS_METADATA = PermissibleValue(
|
|
text="CITES_AS_METADATA",
|
|
description="Cites for metadata or provenance",
|
|
meaning=CITO["citesAsMetadataDocument"])
|
|
DISCUSSES = PermissibleValue(
|
|
text="DISCUSSES",
|
|
description="Discusses the cited work",
|
|
meaning=CITO["discusses"])
|
|
EXTENDS = PermissibleValue(
|
|
text="EXTENDS",
|
|
description="Extends the cited work",
|
|
meaning=CITO["extends"])
|
|
SUPPORTS = PermissibleValue(
|
|
text="SUPPORTS",
|
|
description="Provides support for claims in cited work",
|
|
meaning=CITO["supports"])
|
|
REFUTES = PermissibleValue(
|
|
text="REFUTES",
|
|
description="Refutes or disputes cited work",
|
|
meaning=CITO["disputes"])
|
|
CRITIQUES = PermissibleValue(
|
|
text="CRITIQUES",
|
|
description="Critiques cited work",
|
|
meaning=CITO["critiques"])
|
|
AGREES_WITH = PermissibleValue(
|
|
text="AGREES_WITH",
|
|
description="Agrees with cited work",
|
|
meaning=CITO["agreesWith"])
|
|
DISAGREES_WITH = PermissibleValue(
|
|
text="DISAGREES_WITH",
|
|
description="Disagrees with cited work",
|
|
meaning=CITO["disagreesWith"])
|
|
REVIEWS = PermissibleValue(
|
|
text="REVIEWS",
|
|
description="Reviews the cited work",
|
|
meaning=CITO["reviews"])
|
|
USES_METHOD_IN = PermissibleValue(
|
|
text="USES_METHOD_IN",
|
|
description="Uses methodology from cited work",
|
|
meaning=CITO["usesMethodIn"])
|
|
USES_DATA_FROM = PermissibleValue(
|
|
text="USES_DATA_FROM",
|
|
description="Uses data from cited work",
|
|
meaning=CITO["usesDataFrom"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="CitationTypeEnum",
|
|
description="Types of citation relationships (CiTO)",
|
|
)
|
|
|
|
class OpenAccessStatusEnum(EnumDefinitionImpl):
|
|
"""
|
|
Open access availability status
|
|
"""
|
|
FULLY_OPEN_ACCESS = PermissibleValue(
|
|
text="FULLY_OPEN_ACCESS",
|
|
description="Freely available to all readers",
|
|
meaning=FABIO["OpenAccess"])
|
|
OPEN_ACCESS_REPOSITORY = PermissibleValue(
|
|
text="OPEN_ACCESS_REPOSITORY",
|
|
description="Available via institutional or subject repository",
|
|
meaning=FABIO["GreenOpenAccess"])
|
|
HYBRID_OPEN_ACCESS = PermissibleValue(
|
|
text="HYBRID_OPEN_ACCESS",
|
|
description="Published in subscription journal with OA option",
|
|
meaning=FABIO["HybridOpenAccess"])
|
|
CLOSED_ACCESS = PermissibleValue(
|
|
text="CLOSED_ACCESS",
|
|
description="Subscription or paywall access only",
|
|
meaning=FABIO["ClosedAccess"])
|
|
EMBARGOED = PermissibleValue(
|
|
text="EMBARGOED",
|
|
description="Will become open access after embargo period",
|
|
meaning=FABIO["EmbargoedAccess"])
|
|
BRONZE_OPEN_ACCESS = PermissibleValue(
|
|
text="BRONZE_OPEN_ACCESS",
|
|
description="Free to read but without clear license",
|
|
meaning=FABIO["BronzeOpenAccess"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="OpenAccessStatusEnum",
|
|
description="Open access availability status",
|
|
)
|
|
|
|
class PublishingStatusEnum(EnumDefinitionImpl):
|
|
"""
|
|
Status in the publishing workflow (PSO)
|
|
"""
|
|
SUBMITTED = PermissibleValue(
|
|
text="SUBMITTED",
|
|
description="Submitted to journal/conference",
|
|
meaning=PSO["submitted"])
|
|
UNDER_REVIEW = PermissibleValue(
|
|
text="UNDER_REVIEW",
|
|
description="Under peer review",
|
|
meaning=PSO["under-review"])
|
|
ACCEPTED = PermissibleValue(
|
|
text="ACCEPTED",
|
|
description="Accepted for publication",
|
|
meaning=PSO["accepted"])
|
|
IN_PRESS = PermissibleValue(
|
|
text="IN_PRESS",
|
|
description="In press, awaiting publication",
|
|
meaning=PSO["in-press"])
|
|
PUBLISHED = PermissibleValue(
|
|
text="PUBLISHED",
|
|
description="Published and available",
|
|
meaning=PSO["published"])
|
|
REJECTED = PermissibleValue(
|
|
text="REJECTED",
|
|
description="Rejected by publisher",
|
|
meaning=PSO["rejected"])
|
|
WITHDRAWN = PermissibleValue(
|
|
text="WITHDRAWN",
|
|
description="Withdrawn by author(s)",
|
|
meaning=PSO["withdrawn"])
|
|
RETRACTED = PermissibleValue(
|
|
text="RETRACTED",
|
|
description="Retracted by publisher",
|
|
meaning=PSO["retracted"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="PublishingStatusEnum",
|
|
description="Status in the publishing workflow (PSO)",
|
|
)
|
|
|
|
class DocumentSectionTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Types of document sections (DoCO)
|
|
"""
|
|
ABSTRACT = PermissibleValue(
|
|
text="ABSTRACT",
|
|
description="Abstract or summary",
|
|
meaning=DOCO["Abstract"])
|
|
INTRODUCTION = PermissibleValue(
|
|
text="INTRODUCTION",
|
|
description="Introduction section",
|
|
meaning=DOCO["Introduction"])
|
|
METHODS = PermissibleValue(
|
|
text="METHODS",
|
|
description="Methods or methodology section",
|
|
meaning=DOCO["Methods"])
|
|
RESULTS = PermissibleValue(
|
|
text="RESULTS",
|
|
description="Results section",
|
|
meaning=DOCO["Results"])
|
|
DISCUSSION = PermissibleValue(
|
|
text="DISCUSSION",
|
|
description="Discussion section",
|
|
meaning=DOCO["Discussion"])
|
|
CONCLUSION = PermissibleValue(
|
|
text="CONCLUSION",
|
|
description="Conclusion section",
|
|
meaning=DOCO["Conclusion"])
|
|
ACKNOWLEDGMENTS = PermissibleValue(
|
|
text="ACKNOWLEDGMENTS",
|
|
description="Acknowledgments section",
|
|
meaning=DOCO["Acknowledgments"])
|
|
BIBLIOGRAPHY = PermissibleValue(
|
|
text="BIBLIOGRAPHY",
|
|
description="Bibliography or references",
|
|
meaning=DOCO["Bibliography"])
|
|
APPENDIX = PermissibleValue(
|
|
text="APPENDIX",
|
|
description="Appendix or supplementary material",
|
|
meaning=DOCO["Appendix"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="DocumentSectionTypeEnum",
|
|
description="Types of document sections (DoCO)",
|
|
)
|
|
|
|
class PublishingRoleTypeEnum(EnumDefinitionImpl):
|
|
"""
|
|
Roles in the publishing process (PRO)
|
|
"""
|
|
AUTHOR = PermissibleValue(
|
|
text="AUTHOR",
|
|
description="Author of the work",
|
|
meaning=PRO["author"])
|
|
EDITOR = PermissibleValue(
|
|
text="EDITOR",
|
|
description="Editor",
|
|
meaning=PRO["editor"])
|
|
REVIEWER = PermissibleValue(
|
|
text="REVIEWER",
|
|
description="Peer reviewer",
|
|
meaning=PRO["reviewer"])
|
|
TRANSLATOR = PermissibleValue(
|
|
text="TRANSLATOR",
|
|
description="Translator",
|
|
meaning=PRO["translator"])
|
|
ILLUSTRATOR = PermissibleValue(
|
|
text="ILLUSTRATOR",
|
|
description="Illustrator",
|
|
meaning=PRO["illustrator"])
|
|
CONTRIBUTOR = PermissibleValue(
|
|
text="CONTRIBUTOR",
|
|
description="General contributor",
|
|
meaning=DCTERMS["contributor"])
|
|
CORRESPONDING_AUTHOR = PermissibleValue(
|
|
text="CORRESPONDING_AUTHOR",
|
|
description="Corresponding author",
|
|
meaning=PRO["corresponding-author"])
|
|
PUBLISHER = PermissibleValue(
|
|
text="PUBLISHER",
|
|
description="Publisher",
|
|
meaning=PRO["publisher"])
|
|
SERIES_EDITOR = PermissibleValue(
|
|
text="SERIES_EDITOR",
|
|
description="Series editor",
|
|
meaning=PRO["series-editor"])
|
|
|
|
_defn = EnumDefinition(
|
|
name="PublishingRoleTypeEnum",
|
|
description="Roles in the publishing process (PRO)",
|
|
)
|
|
|
|
# Slots
|
|
class slots:
|
|
pass
|
|
|
|
slots.id = Slot(uri=DCTERMS.identifier, name="id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.id, domain=None, range=URIRef)
|
|
|
|
slots.ghcid_numeric = Slot(uri=DCTERMS.identifier, name="ghcid_numeric", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.ghcid_numeric, domain=None, range=Optional[int])
|
|
|
|
slots.ghcid_current = Slot(uri=DCTERMS.identifier, name="ghcid_current", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.ghcid_current, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[A-Z]{2}-[A-Z0-9]{1,3}-[A-Z]{3}-[A-Z]-[A-Z0-9]{1,10}(-Q[0-9]+)?$'))
|
|
|
|
slots.ghcid_original = Slot(uri=DCTERMS.identifier, name="ghcid_original", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.ghcid_original, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[A-Z]{2}-[A-Z0-9]{1,3}-[A-Z]{3}-[A-Z]-[A-Z0-9]{1,10}(-Q[0-9]+)?$'))
|
|
|
|
slots.ghcid_history = Slot(uri=DCTERMS.provenance, name="ghcid_history", curie=DCTERMS.curie('provenance'),
|
|
model_uri=HERITAGE.ghcid_history, domain=None, range=Optional[Union[Union[dict, GHCIDHistoryEntry], list[Union[dict, GHCIDHistoryEntry]]]])
|
|
|
|
slots.record_id = Slot(uri=DCTERMS.identifier, name="record_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.record_id, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'))
|
|
|
|
slots.ghcid_uuid = Slot(uri=DCTERMS.identifier, name="ghcid_uuid", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.ghcid_uuid, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'))
|
|
|
|
slots.ghcid_uuid_sha256 = Slot(uri=DCTERMS.identifier, name="ghcid_uuid_sha256", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.ghcid_uuid_sha256, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$'))
|
|
|
|
slots.name = Slot(uri=SCHEMA.name, name="name", curie=SCHEMA.curie('name'),
|
|
model_uri=HERITAGE.name, domain=None, range=str)
|
|
|
|
slots.alternative_names = Slot(uri=SCHEMA.alternateName, name="alternative_names", curie=SCHEMA.curie('alternateName'),
|
|
model_uri=HERITAGE.alternative_names, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.official_name = Slot(uri=TOOIONT.officieleNaamInclSoort, name="official_name", curie=TOOIONT.curie('officieleNaamInclSoort'),
|
|
model_uri=HERITAGE.official_name, domain=None, range=Optional[str])
|
|
|
|
slots.sorting_name = Slot(uri=TOOIONT.officieleNaamSorteer, name="sorting_name", curie=TOOIONT.curie('officieleNaamSorteer'),
|
|
model_uri=HERITAGE.sorting_name, domain=None, range=Optional[str])
|
|
|
|
slots.abbreviation = Slot(uri=TOOIONT.afkorting, name="abbreviation", curie=TOOIONT.curie('afkorting'),
|
|
model_uri=HERITAGE.abbreviation, domain=None, range=Optional[str])
|
|
|
|
slots.institution_type = Slot(uri=DCTERMS.type, name="institution_type", curie=DCTERMS.curie('type'),
|
|
model_uri=HERITAGE.institution_type, domain=None, range=Optional[Union[str, "InstitutionTypeEnum"]])
|
|
|
|
slots.organization_status = Slot(uri=ORG.organizationStatus, name="organization_status", curie=ORG.curie('organizationStatus'),
|
|
model_uri=HERITAGE.organization_status, domain=None, range=Optional[Union[str, "OrganizationStatusEnum"]])
|
|
|
|
slots.description = Slot(uri=DCTERMS.description, name="description", curie=DCTERMS.curie('description'),
|
|
model_uri=HERITAGE.description, domain=None, range=Optional[str])
|
|
|
|
slots.parent_organization = Slot(uri=ORG.subOrganizationOf, name="parent_organization", curie=ORG.curie('subOrganizationOf'),
|
|
model_uri=HERITAGE.parent_organization, domain=None, range=Optional[Union[str, HeritageCustodianId]])
|
|
|
|
slots.sub_organizations = Slot(uri=ORG.hasSubOrganization, name="sub_organizations", curie=ORG.curie('hasSubOrganization'),
|
|
model_uri=HERITAGE.sub_organizations, domain=None, range=Optional[Union[Union[str, HeritageCustodianId], list[Union[str, HeritageCustodianId]]]])
|
|
|
|
slots.founded_date = Slot(uri=SCHEMA.foundingDate, name="founded_date", curie=SCHEMA.curie('foundingDate'),
|
|
model_uri=HERITAGE.founded_date, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.closed_date = Slot(uri=SCHEMA.dissolutionDate, name="closed_date", curie=SCHEMA.curie('dissolutionDate'),
|
|
model_uri=HERITAGE.closed_date, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.prov_generated_at = Slot(uri=PROV.generatedAtTime, name="prov_generated_at", curie=PROV.curie('generatedAtTime'),
|
|
model_uri=HERITAGE.prov_generated_at, domain=None, range=Optional[Union[str, XSDDateTime]])
|
|
|
|
slots.prov_invalidated_at = Slot(uri=PROV.invalidatedAtTime, name="prov_invalidated_at", curie=PROV.curie('invalidatedAtTime'),
|
|
model_uri=HERITAGE.prov_invalidated_at, domain=None, range=Optional[Union[str, XSDDateTime]])
|
|
|
|
slots.change_history = Slot(uri=PROV.wasInfluencedBy, name="change_history", curie=PROV.curie('wasInfluencedBy'),
|
|
model_uri=HERITAGE.change_history, domain=None, range=Optional[Union[dict[Union[str, ChangeEventEventId], Union[dict, ChangeEvent]], list[Union[dict, ChangeEvent]]]])
|
|
|
|
slots.homepage = Slot(uri=FOAF.homepage, name="homepage", curie=FOAF.curie('homepage'),
|
|
model_uri=HERITAGE.homepage, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.contact_info = Slot(uri=HERITAGE.contact_info, name="contact_info", curie=HERITAGE.curie('contact_info'),
|
|
model_uri=HERITAGE.contact_info, domain=None, range=Optional[Union[dict, ContactInfo]])
|
|
|
|
slots.locations = Slot(uri=HERITAGE.locations, name="locations", curie=HERITAGE.curie('locations'),
|
|
model_uri=HERITAGE.locations, domain=None, range=Optional[Union[Union[dict, Location], list[Union[dict, Location]]]])
|
|
|
|
slots.identifiers = Slot(uri=HERITAGE.identifiers, name="identifiers", curie=HERITAGE.curie('identifiers'),
|
|
model_uri=HERITAGE.identifiers, domain=None, range=Optional[Union[Union[dict, Identifier], list[Union[dict, Identifier]]]])
|
|
|
|
slots.collections = Slot(uri=HERITAGE.collections, name="collections", curie=HERITAGE.curie('collections'),
|
|
model_uri=HERITAGE.collections, domain=None, range=Optional[Union[Union[dict, Collection], list[Union[dict, Collection]]]])
|
|
|
|
slots.digital_platforms = Slot(uri=HERITAGE.digital_platforms, name="digital_platforms", curie=HERITAGE.curie('digital_platforms'),
|
|
model_uri=HERITAGE.digital_platforms, domain=None, range=Optional[Union[Union[dict, DigitalPlatform], list[Union[dict, DigitalPlatform]]]])
|
|
|
|
slots.metadata_standards = Slot(uri=HERITAGE.metadata_standards, name="metadata_standards", curie=HERITAGE.curie('metadata_standards'),
|
|
model_uri=HERITAGE.metadata_standards, domain=None, range=Optional[Union[Union[str, "MetadataStandardEnum"], list[Union[str, "MetadataStandardEnum"]]]])
|
|
|
|
slots.partnerships = Slot(uri=HERITAGE.partnerships, name="partnerships", curie=HERITAGE.curie('partnerships'),
|
|
model_uri=HERITAGE.partnerships, domain=None, range=Optional[Union[Union[dict, Partnership], list[Union[dict, Partnership]]]])
|
|
|
|
slots.publications = Slot(uri=DCTERMS.bibliographicCitation, name="publications", curie=DCTERMS.curie('bibliographicCitation'),
|
|
model_uri=HERITAGE.publications, domain=None, range=Optional[Union[dict[Union[str, PublicationPublicationId], Union[dict, Publication]], list[Union[dict, Publication]]]])
|
|
|
|
slots.provenance = Slot(uri=HERITAGE.provenance, name="provenance", curie=HERITAGE.curie('provenance'),
|
|
model_uri=HERITAGE.provenance, domain=None, range=Union[dict, Provenance])
|
|
|
|
slots.location_type = Slot(uri=HERITAGE.location_type, name="location_type", curie=HERITAGE.curie('location_type'),
|
|
model_uri=HERITAGE.location_type, domain=None, range=Optional[str])
|
|
|
|
slots.street_address = Slot(uri=SCHEMA.streetAddress, name="street_address", curie=SCHEMA.curie('streetAddress'),
|
|
model_uri=HERITAGE.street_address, domain=None, range=Optional[str])
|
|
|
|
slots.city = Slot(uri=SCHEMA.addressLocality, name="city", curie=SCHEMA.curie('addressLocality'),
|
|
model_uri=HERITAGE.city, domain=None, range=Optional[str])
|
|
|
|
slots.postal_code = Slot(uri=SCHEMA.postalCode, name="postal_code", curie=SCHEMA.curie('postalCode'),
|
|
model_uri=HERITAGE.postal_code, domain=None, range=Optional[str])
|
|
|
|
slots.region = Slot(uri=SCHEMA.addressRegion, name="region", curie=SCHEMA.curie('addressRegion'),
|
|
model_uri=HERITAGE.region, domain=None, range=Optional[str])
|
|
|
|
slots.country = Slot(uri=SCHEMA.addressCountry, name="country", curie=SCHEMA.curie('addressCountry'),
|
|
model_uri=HERITAGE.country, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[A-Z]{2}$'))
|
|
|
|
slots.latitude = Slot(uri=SCHEMA.latitude, name="latitude", curie=SCHEMA.curie('latitude'),
|
|
model_uri=HERITAGE.latitude, domain=None, range=Optional[float])
|
|
|
|
slots.longitude = Slot(uri=SCHEMA.longitude, name="longitude", curie=SCHEMA.curie('longitude'),
|
|
model_uri=HERITAGE.longitude, domain=None, range=Optional[float])
|
|
|
|
slots.geonames_id = Slot(uri=HERITAGE.geonames_id, name="geonames_id", curie=HERITAGE.curie('geonames_id'),
|
|
model_uri=HERITAGE.geonames_id, domain=None, range=Optional[str])
|
|
|
|
slots.is_primary = Slot(uri=HERITAGE.is_primary, name="is_primary", curie=HERITAGE.curie('is_primary'),
|
|
model_uri=HERITAGE.is_primary, domain=None, range=Optional[Union[bool, Bool]])
|
|
|
|
slots.email = Slot(uri=SCHEMA.email, name="email", curie=SCHEMA.curie('email'),
|
|
model_uri=HERITAGE.email, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'))
|
|
|
|
slots.phone = Slot(uri=SCHEMA.telephone, name="phone", curie=SCHEMA.curie('telephone'),
|
|
model_uri=HERITAGE.phone, domain=None, range=Optional[str])
|
|
|
|
slots.fax = Slot(uri=SCHEMA.faxNumber, name="fax", curie=SCHEMA.curie('faxNumber'),
|
|
model_uri=HERITAGE.fax, domain=None, range=Optional[str])
|
|
|
|
slots.contact_type = Slot(uri=HERITAGE.contact_type, name="contact_type", curie=HERITAGE.curie('contact_type'),
|
|
model_uri=HERITAGE.contact_type, domain=None, range=Optional[str])
|
|
|
|
slots.identifier_scheme = Slot(uri=HERITAGE.identifier_scheme, name="identifier_scheme", curie=HERITAGE.curie('identifier_scheme'),
|
|
model_uri=HERITAGE.identifier_scheme, domain=None, range=Optional[str])
|
|
|
|
slots.identifier_value = Slot(uri=HERITAGE.identifier_value, name="identifier_value", curie=HERITAGE.curie('identifier_value'),
|
|
model_uri=HERITAGE.identifier_value, domain=None, range=Optional[str])
|
|
|
|
slots.identifier_url = Slot(uri=HERITAGE.identifier_url, name="identifier_url", curie=HERITAGE.curie('identifier_url'),
|
|
model_uri=HERITAGE.identifier_url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.assigned_date = Slot(uri=HERITAGE.assigned_date, name="assigned_date", curie=HERITAGE.curie('assigned_date'),
|
|
model_uri=HERITAGE.assigned_date, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.chamber_of_commerce_number = Slot(uri=DCTERMS.identifier, name="chamber_of_commerce_number", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.chamber_of_commerce_number, domain=None, range=Optional[str])
|
|
|
|
slots.municipality_identifier = Slot(uri=SCHEMA.addressLocality, name="municipality_identifier", curie=SCHEMA.curie('addressLocality'),
|
|
model_uri=HERITAGE.municipality_identifier, domain=None, range=Optional[str])
|
|
|
|
slots.parent_organization_name = Slot(uri=ORG.subOrganizationOf, name="parent_organization_name", curie=ORG.curie('subOrganizationOf'),
|
|
model_uri=HERITAGE.parent_organization_name, domain=None, range=Optional[str])
|
|
|
|
slots.unit_id = Slot(uri=DCTERMS.identifier, name="unit_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.unit_id, domain=None, range=URIRef)
|
|
|
|
slots.unit_name = Slot(uri=ORG.unitName, name="unit_name", curie=ORG.curie('unitName'),
|
|
model_uri=HERITAGE.unit_name, domain=None, range=str)
|
|
|
|
slots.unit_type = Slot(uri=ORG.classification, name="unit_type", curie=ORG.curie('classification'),
|
|
model_uri=HERITAGE.unit_type, domain=None, range=Optional[str])
|
|
|
|
slots.parent_unit = Slot(uri=ORG.unitOf, name="parent_unit", curie=ORG.curie('unitOf'),
|
|
model_uri=HERITAGE.parent_unit, domain=None, range=Optional[Union[str, OrganizationalUnitUnitId]])
|
|
|
|
slots.data_source = Slot(uri=HERITAGE.data_source, name="data_source", curie=HERITAGE.curie('data_source'),
|
|
model_uri=HERITAGE.data_source, domain=None, range=Union[str, "DataSourceEnum"])
|
|
|
|
slots.data_tier = Slot(uri=HERITAGE.data_tier, name="data_tier", curie=HERITAGE.curie('data_tier'),
|
|
model_uri=HERITAGE.data_tier, domain=None, range=Union[str, "DataTierEnum"])
|
|
|
|
slots.extraction_date = Slot(uri=HERITAGE.extraction_date, name="extraction_date", curie=HERITAGE.curie('extraction_date'),
|
|
model_uri=HERITAGE.extraction_date, domain=None, range=Union[str, XSDDateTime])
|
|
|
|
slots.extraction_method = Slot(uri=HERITAGE.extraction_method, name="extraction_method", curie=HERITAGE.curie('extraction_method'),
|
|
model_uri=HERITAGE.extraction_method, domain=None, range=Optional[str])
|
|
|
|
slots.confidence_score = Slot(uri=HERITAGE.confidence_score, name="confidence_score", curie=HERITAGE.curie('confidence_score'),
|
|
model_uri=HERITAGE.confidence_score, domain=None, range=Optional[float])
|
|
|
|
slots.conversation_id = Slot(uri=HERITAGE.conversation_id, name="conversation_id", curie=HERITAGE.curie('conversation_id'),
|
|
model_uri=HERITAGE.conversation_id, domain=None, range=Optional[str])
|
|
|
|
slots.source_url = Slot(uri=HERITAGE.source_url, name="source_url", curie=HERITAGE.curie('source_url'),
|
|
model_uri=HERITAGE.source_url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.verified_date = Slot(uri=HERITAGE.verified_date, name="verified_date", curie=HERITAGE.curie('verified_date'),
|
|
model_uri=HERITAGE.verified_date, domain=None, range=Optional[Union[str, XSDDateTime]])
|
|
|
|
slots.verified_by = Slot(uri=HERITAGE.verified_by, name="verified_by", curie=HERITAGE.curie('verified_by'),
|
|
model_uri=HERITAGE.verified_by, domain=None, range=Optional[str])
|
|
|
|
slots.provenance_notes = Slot(uri=RDFS.comment, name="provenance_notes", curie=RDFS.curie('comment'),
|
|
model_uri=HERITAGE.provenance_notes, domain=None, range=Optional[str])
|
|
|
|
slots.ghcid = Slot(uri=HERITAGE.ghcid, name="ghcid", curie=HERITAGE.curie('ghcid'),
|
|
model_uri=HERITAGE.ghcid, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[A-Z]{2}-[A-Z0-9]{1,3}-[A-Z]{3}-[A-Z]-[A-Z0-9]{1,10}(-Q[0-9]+)?$'))
|
|
|
|
slots.valid_from = Slot(uri=HERITAGE.valid_from, name="valid_from", curie=HERITAGE.curie('valid_from'),
|
|
model_uri=HERITAGE.valid_from, domain=None, range=Optional[Union[str, XSDDateTime]])
|
|
|
|
slots.valid_to = Slot(uri=HERITAGE.valid_to, name="valid_to", curie=HERITAGE.curie('valid_to'),
|
|
model_uri=HERITAGE.valid_to, domain=None, range=Optional[Union[str, XSDDateTime]])
|
|
|
|
slots.reason = Slot(uri=HERITAGE.reason, name="reason", curie=HERITAGE.curie('reason'),
|
|
model_uri=HERITAGE.reason, domain=None, range=Optional[str])
|
|
|
|
slots.institution_name = Slot(uri=HERITAGE.institution_name, name="institution_name", curie=HERITAGE.curie('institution_name'),
|
|
model_uri=HERITAGE.institution_name, domain=None, range=Optional[str])
|
|
|
|
slots.location_city = Slot(uri=HERITAGE.location_city, name="location_city", curie=HERITAGE.curie('location_city'),
|
|
model_uri=HERITAGE.location_city, domain=None, range=Optional[str])
|
|
|
|
slots.location_country = Slot(uri=HERITAGE.location_country, name="location_country", curie=HERITAGE.curie('location_country'),
|
|
model_uri=HERITAGE.location_country, domain=None, range=Optional[str])
|
|
|
|
slots.event_id = Slot(uri=DCTERMS.identifier, name="event_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.event_id, domain=None, range=URIRef)
|
|
|
|
slots.change_type = Slot(uri=RDF.type, name="change_type", curie=RDF.curie('type'),
|
|
model_uri=HERITAGE.change_type, domain=None, range=Union[str, "ChangeTypeEnum"])
|
|
|
|
slots.event_date = Slot(uri=PROV.atTime, name="event_date", curie=PROV.curie('atTime'),
|
|
model_uri=HERITAGE.event_date, domain=None, range=Union[str, XSDDate])
|
|
|
|
slots.event_description = Slot(uri=DCTERMS.description, name="event_description", curie=DCTERMS.curie('description'),
|
|
model_uri=HERITAGE.event_description, domain=None, range=Optional[str])
|
|
|
|
slots.affected_organization = Slot(uri=PROV.entity, name="affected_organization", curie=PROV.curie('entity'),
|
|
model_uri=HERITAGE.affected_organization, domain=None, range=Optional[Union[str, HeritageCustodianId]])
|
|
|
|
slots.resulting_organization = Slot(uri=PROV.generated, name="resulting_organization", curie=PROV.curie('generated'),
|
|
model_uri=HERITAGE.resulting_organization, domain=None, range=Optional[Union[str, HeritageCustodianId]])
|
|
|
|
slots.related_organizations = Slot(uri=PROV.wasAssociatedWith, name="related_organizations", curie=PROV.curie('wasAssociatedWith'),
|
|
model_uri=HERITAGE.related_organizations, domain=None, range=Optional[Union[Union[str, HeritageCustodianId], list[Union[str, HeritageCustodianId]]]])
|
|
|
|
slots.source_documentation = Slot(uri=DCTERMS.source, name="source_documentation", curie=DCTERMS.curie('source'),
|
|
model_uri=HERITAGE.source_documentation, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.enrichment_history = Slot(uri=HERITAGE.enrichment_history, name="enrichment_history", curie=HERITAGE.curie('enrichment_history'),
|
|
model_uri=HERITAGE.enrichment_history, domain=None, range=Optional[Union[Union[dict, EnrichmentHistoryEntry], list[Union[dict, EnrichmentHistoryEntry]]]])
|
|
|
|
slots.enrichment_date = Slot(uri=PROV.atTime, name="enrichment_date", curie=PROV.curie('atTime'),
|
|
model_uri=HERITAGE.enrichment_date, domain=None, range=Union[str, XSDDateTime])
|
|
|
|
slots.enrichment_method = Slot(uri=PROV.hadPlan, name="enrichment_method", curie=PROV.curie('hadPlan'),
|
|
model_uri=HERITAGE.enrichment_method, domain=None, range=str)
|
|
|
|
slots.enrichment_type = Slot(uri=RDF.type, name="enrichment_type", curie=RDF.curie('type'),
|
|
model_uri=HERITAGE.enrichment_type, domain=None, range=Union[str, "EnrichmentTypeEnum"])
|
|
|
|
slots.match_score = Slot(uri=ADMS.confidence, name="match_score", curie=ADMS.curie('confidence'),
|
|
model_uri=HERITAGE.match_score, domain=None, range=Optional[float])
|
|
|
|
slots.verified = Slot(uri=ADMS.status, name="verified", curie=ADMS.curie('status'),
|
|
model_uri=HERITAGE.verified, domain=None, range=Union[bool, Bool])
|
|
|
|
slots.enrichment_source = Slot(uri=DCTERMS.source, name="enrichment_source", curie=DCTERMS.curie('source'),
|
|
model_uri=HERITAGE.enrichment_source, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.enrichment_notes = Slot(uri=DCTERMS.description, name="enrichment_notes", curie=DCTERMS.curie('description'),
|
|
model_uri=HERITAGE.enrichment_notes, domain=None, range=Optional[str])
|
|
|
|
slots.collection_id = Slot(uri=HERITAGE.collection_id, name="collection_id", curie=HERITAGE.curie('collection_id'),
|
|
model_uri=HERITAGE.collection_id, domain=None, range=Optional[str])
|
|
|
|
slots.collection_name = Slot(uri=HERITAGE.collection_name, name="collection_name", curie=HERITAGE.curie('collection_name'),
|
|
model_uri=HERITAGE.collection_name, domain=None, range=Optional[str])
|
|
|
|
slots.collection_description = Slot(uri=DCTERMS.description, name="collection_description", curie=DCTERMS.curie('description'),
|
|
model_uri=HERITAGE.collection_description, domain=None, range=Optional[str])
|
|
|
|
slots.collection_type = Slot(uri=HERITAGE.collection_type, name="collection_type", curie=HERITAGE.curie('collection_type'),
|
|
model_uri=HERITAGE.collection_type, domain=None, range=Optional[str])
|
|
|
|
slots.item_count = Slot(uri=SCHEMA.size, name="item_count", curie=SCHEMA.curie('size'),
|
|
model_uri=HERITAGE.item_count, domain=None, range=Optional[str])
|
|
|
|
slots.subjects = Slot(uri=DCTERMS.subject, name="subjects", curie=DCTERMS.curie('subject'),
|
|
model_uri=HERITAGE.subjects, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.time_period_start = Slot(uri=HERITAGE.time_period_start, name="time_period_start", curie=HERITAGE.curie('time_period_start'),
|
|
model_uri=HERITAGE.time_period_start, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.time_period_end = Slot(uri=HERITAGE.time_period_end, name="time_period_end", curie=HERITAGE.curie('time_period_end'),
|
|
model_uri=HERITAGE.time_period_end, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.temporal_coverage = Slot(uri=DCTERMS.temporal, name="temporal_coverage", curie=DCTERMS.curie('temporal'),
|
|
model_uri=HERITAGE.temporal_coverage, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^\d{4}-\d{2}-\d{2}/\d{4}-\d{2}-\d{2}$'))
|
|
|
|
slots.access_rights = Slot(uri=HERITAGE.access_rights, name="access_rights", curie=HERITAGE.curie('access_rights'),
|
|
model_uri=HERITAGE.access_rights, domain=None, range=Optional[str])
|
|
|
|
slots.catalog_url = Slot(uri=HERITAGE.catalog_url, name="catalog_url", curie=HERITAGE.curie('catalog_url'),
|
|
model_uri=HERITAGE.catalog_url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.custodian = Slot(uri=RICO.hasOrHadHolder, name="custodian", curie=RICO.curie('hasOrHadHolder'),
|
|
model_uri=HERITAGE.custodian, domain=None, range=Optional[Union[str, HeritageCustodianId]])
|
|
|
|
slots.platform_name = Slot(uri=HERITAGE.platform_name, name="platform_name", curie=HERITAGE.curie('platform_name'),
|
|
model_uri=HERITAGE.platform_name, domain=None, range=Optional[str])
|
|
|
|
slots.platform_type = Slot(uri=HERITAGE.platform_type, name="platform_type", curie=HERITAGE.curie('platform_type'),
|
|
model_uri=HERITAGE.platform_type, domain=None, range=Optional[Union[str, "DigitalPlatformTypeEnum"]])
|
|
|
|
slots.platform_url = Slot(uri=HERITAGE.platform_url, name="platform_url", curie=HERITAGE.curie('platform_url'),
|
|
model_uri=HERITAGE.platform_url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.platform_description = Slot(uri=DCTERMS.description, name="platform_description", curie=DCTERMS.curie('description'),
|
|
model_uri=HERITAGE.platform_description, domain=None, range=Optional[str])
|
|
|
|
slots.vendor = Slot(uri=HERITAGE.vendor, name="vendor", curie=HERITAGE.curie('vendor'),
|
|
model_uri=HERITAGE.vendor, domain=None, range=Optional[str])
|
|
|
|
slots.implemented_standards = Slot(uri=HERITAGE.implemented_standards, name="implemented_standards", curie=HERITAGE.curie('implemented_standards'),
|
|
model_uri=HERITAGE.implemented_standards, domain=None, range=Optional[Union[Union[str, "MetadataStandardEnum"], list[Union[str, "MetadataStandardEnum"]]]])
|
|
|
|
slots.integration_method = Slot(uri=SCHEMA.applicationCategory, name="integration_method", curie=SCHEMA.curie('applicationCategory'),
|
|
model_uri=HERITAGE.integration_method, domain=None, range=Optional[str])
|
|
|
|
slots.partner_name = Slot(uri=HERITAGE.partner_name, name="partner_name", curie=HERITAGE.curie('partner_name'),
|
|
model_uri=HERITAGE.partner_name, domain=None, range=Optional[str])
|
|
|
|
slots.partner_id = Slot(uri=HERITAGE.partner_id, name="partner_id", curie=HERITAGE.curie('partner_id'),
|
|
model_uri=HERITAGE.partner_id, domain=None, range=Optional[Union[str, URIorCURIE]])
|
|
|
|
slots.partnership_type = Slot(uri=HERITAGE.partnership_type, name="partnership_type", curie=HERITAGE.curie('partnership_type'),
|
|
model_uri=HERITAGE.partnership_type, domain=None, range=Optional[str])
|
|
|
|
slots.start_date = Slot(uri=HERITAGE.start_date, name="start_date", curie=HERITAGE.curie('start_date'),
|
|
model_uri=HERITAGE.start_date, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.end_date = Slot(uri=HERITAGE.end_date, name="end_date", curie=HERITAGE.curie('end_date'),
|
|
model_uri=HERITAGE.end_date, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.kvk_number = Slot(uri=DCTERMS.identifier, name="kvk_number", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.kvk_number, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[0-9]{8}$'))
|
|
|
|
slots.gemeente_code = Slot(uri=TOOIONT.gemeente, name="gemeente_code", curie=TOOIONT.curie('gemeente'),
|
|
model_uri=HERITAGE.gemeente_code, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^[0-9]{4}$'))
|
|
|
|
slots.work_id = Slot(uri=DCTERMS.identifier, name="work_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.work_id, domain=None, range=URIRef)
|
|
|
|
slots.work_title = Slot(uri=DCTERMS.title, name="work_title", curie=DCTERMS.curie('title'),
|
|
model_uri=HERITAGE.work_title, domain=None, range=Optional[str])
|
|
|
|
slots.work_subject = Slot(uri=DCTERMS.subject, name="work_subject", curie=DCTERMS.curie('subject'),
|
|
model_uri=HERITAGE.work_subject, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.work_keywords = Slot(uri=SCHEMA.keywords, name="work_keywords", curie=SCHEMA.curie('keywords'),
|
|
model_uri=HERITAGE.work_keywords, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.discipline = Slot(uri=HERITAGE.discipline, name="discipline", curie=HERITAGE.curie('discipline'),
|
|
model_uri=HERITAGE.discipline, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.research_field = Slot(uri=HERITAGE.research_field, name="research_field", curie=HERITAGE.curie('research_field'),
|
|
model_uri=HERITAGE.research_field, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.has_expression = Slot(uri=FRBR.realization, name="has_expression", curie=FRBR.curie('realization'),
|
|
model_uri=HERITAGE.has_expression, domain=None, range=Optional[Union[Union[str, PublicationPublicationId], list[Union[str, PublicationPublicationId]]]])
|
|
|
|
slots.related_institutions = Slot(uri=HERITAGE.related_institutions, name="related_institutions", curie=HERITAGE.curie('related_institutions'),
|
|
model_uri=HERITAGE.related_institutions, domain=None, range=Optional[Union[Union[str, HeritageCustodianId], list[Union[str, HeritageCustodianId]]]])
|
|
|
|
slots.publication_id = Slot(uri=DCTERMS.identifier, name="publication_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.publication_id, domain=None, range=URIRef)
|
|
|
|
slots.title = Slot(uri=DCTERMS.title, name="title", curie=DCTERMS.curie('title'),
|
|
model_uri=HERITAGE.title, domain=None, range=Optional[str])
|
|
|
|
slots.alternative_titles = Slot(uri=DCTERMS.alternative, name="alternative_titles", curie=DCTERMS.curie('alternative'),
|
|
model_uri=HERITAGE.alternative_titles, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.publication_type = Slot(uri=DCTERMS.type, name="publication_type", curie=DCTERMS.curie('type'),
|
|
model_uri=HERITAGE.publication_type, domain=None, range=Optional[Union[str, "PublicationTypeEnum"]])
|
|
|
|
slots.authors = Slot(uri=DCTERMS.creator, name="authors", curie=DCTERMS.curie('creator'),
|
|
model_uri=HERITAGE.authors, domain=None, range=Optional[Union[dict[Union[str, PersonPersonId], Union[dict, Person]], list[Union[dict, Person]]]])
|
|
|
|
slots.editors = Slot(uri=BIBO.editor, name="editors", curie=BIBO.curie('editor'),
|
|
model_uri=HERITAGE.editors, domain=None, range=Optional[Union[dict[Union[str, PersonPersonId], Union[dict, Person]], list[Union[dict, Person]]]])
|
|
|
|
slots.contributors = Slot(uri=DCTERMS.contributor, name="contributors", curie=DCTERMS.curie('contributor'),
|
|
model_uri=HERITAGE.contributors, domain=None, range=Optional[Union[dict[Union[str, PersonPersonId], Union[dict, Person]], list[Union[dict, Person]]]])
|
|
|
|
slots.publication_date = Slot(uri=DCTERMS.issued, name="publication_date", curie=DCTERMS.curie('issued'),
|
|
model_uri=HERITAGE.publication_date, domain=None, range=Optional[Union[str, XSDDate]])
|
|
|
|
slots.publication_year = Slot(uri=PRISM.publicationDate, name="publication_year", curie=PRISM.curie('publicationDate'),
|
|
model_uri=HERITAGE.publication_year, domain=None, range=Optional[int])
|
|
|
|
slots.abstract = Slot(uri=DCTERMS.abstract, name="abstract", curie=DCTERMS.curie('abstract'),
|
|
model_uri=HERITAGE.abstract, domain=None, range=Optional[str])
|
|
|
|
slots.keywords = Slot(uri=PRISM.keyword, name="keywords", curie=PRISM.curie('keyword'),
|
|
model_uri=HERITAGE.keywords, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.language = Slot(uri=DCTERMS.language, name="language", curie=DCTERMS.curie('language'),
|
|
model_uri=HERITAGE.language, domain=None, range=Optional[str])
|
|
|
|
slots.doi = Slot(uri=DATACITE.doi, name="doi", curie=DATACITE.curie('doi'),
|
|
model_uri=HERITAGE.doi, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^10\.\d{4,9}/[-._;()/:A-Za-z0-9]+$'))
|
|
|
|
slots.url = Slot(uri=SCHEMA.url, name="url", curie=SCHEMA.curie('url'),
|
|
model_uri=HERITAGE.url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.published_in = Slot(uri=DCTERMS.isPartOf, name="published_in", curie=DCTERMS.curie('isPartOf'),
|
|
model_uri=HERITAGE.published_in, domain=None, range=Optional[Union[str, JournalJournalId]])
|
|
|
|
slots.volume = Slot(uri=PRISM.volume, name="volume", curie=PRISM.curie('volume'),
|
|
model_uri=HERITAGE.volume, domain=None, range=Optional[str])
|
|
|
|
slots.issue = Slot(uri=PRISM.number, name="issue", curie=PRISM.curie('number'),
|
|
model_uri=HERITAGE.issue, domain=None, range=Optional[str])
|
|
|
|
slots.page_range = Slot(uri=PRISM.pageRange, name="page_range", curie=PRISM.curie('pageRange'),
|
|
model_uri=HERITAGE.page_range, domain=None, range=Optional[str])
|
|
|
|
slots.article_number = Slot(uri=HERITAGE.article_number, name="article_number", curie=HERITAGE.curie('article_number'),
|
|
model_uri=HERITAGE.article_number, domain=None, range=Optional[str])
|
|
|
|
slots.publisher = Slot(uri=DCTERMS.publisher, name="publisher", curie=DCTERMS.curie('publisher'),
|
|
model_uri=HERITAGE.publisher, domain=None, range=Optional[Union[dict, Organization]])
|
|
|
|
slots.place_of_publication = Slot(uri=PRISM.location, name="place_of_publication", curie=PRISM.curie('location'),
|
|
model_uri=HERITAGE.place_of_publication, domain=None, range=Optional[str])
|
|
|
|
slots.isbn = Slot(uri=BIBO.isbn, name="isbn", curie=BIBO.curie('isbn'),
|
|
model_uri=HERITAGE.isbn, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^(97[89])?[0-9]{9}[0-9X]$'))
|
|
|
|
slots.issn = Slot(uri=BIBO.issn, name="issn", curie=BIBO.curie('issn'),
|
|
model_uri=HERITAGE.issn, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^\d{4}-\d{3}[\dX]$'))
|
|
|
|
slots.eissn = Slot(uri=FABIO.hasElectronicISSN, name="eissn", curie=FABIO.curie('hasElectronicISSN'),
|
|
model_uri=HERITAGE.eissn, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^\d{4}-\d{3}[\dX]$'))
|
|
|
|
slots.citations = Slot(uri=CITO.cites, name="citations", curie=CITO.curie('cites'),
|
|
model_uri=HERITAGE.citations, domain=None, range=Optional[Union[dict[Union[str, CitationCitationId], Union[dict, Citation]], list[Union[dict, Citation]]]])
|
|
|
|
slots.cited_by = Slot(uri=CITO.isCitedBy, name="cited_by", curie=CITO.curie('isCitedBy'),
|
|
model_uri=HERITAGE.cited_by, domain=None, range=Optional[Union[Union[str, CitationCitationId], list[Union[str, CitationCitationId]]]])
|
|
|
|
slots.related_works = Slot(uri=DCTERMS.relation, name="related_works", curie=DCTERMS.curie('relation'),
|
|
model_uri=HERITAGE.related_works, domain=None, range=Optional[Union[Union[str, PublicationPublicationId], list[Union[str, PublicationPublicationId]]]])
|
|
|
|
slots.document_sections = Slot(uri=HERITAGE.document_sections, name="document_sections", curie=HERITAGE.curie('document_sections'),
|
|
model_uri=HERITAGE.document_sections, domain=None, range=Optional[Union[dict[Union[str, DocumentSectionSectionId], Union[dict, DocumentSection]], list[Union[dict, DocumentSection]]]])
|
|
|
|
slots.open_access_status = Slot(uri=FABIO.hasOpenAccessStatus, name="open_access_status", curie=FABIO.curie('hasOpenAccessStatus'),
|
|
model_uri=HERITAGE.open_access_status, domain=None, range=Optional[Union[str, "OpenAccessStatusEnum"]])
|
|
|
|
slots.publishing_status = Slot(uri=PSO.holdsStatusInTime, name="publishing_status", curie=PSO.curie('holdsStatusInTime'),
|
|
model_uri=HERITAGE.publishing_status, domain=None, range=Optional[Union[str, "PublishingStatusEnum"]])
|
|
|
|
slots.peer_reviewed = Slot(uri=FABIO.hasPeerReviewStatus, name="peer_reviewed", curie=FABIO.curie('hasPeerReviewStatus'),
|
|
model_uri=HERITAGE.peer_reviewed, domain=None, range=Optional[Union[bool, Bool]])
|
|
|
|
slots.license = Slot(uri=DCTERMS.license, name="license", curie=DCTERMS.curie('license'),
|
|
model_uri=HERITAGE.license, domain=None, range=Optional[str])
|
|
|
|
slots.journal_id = Slot(uri=DCTERMS.identifier, name="journal_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.journal_id, domain=None, range=URIRef)
|
|
|
|
slots.journal_title = Slot(uri=DCTERMS.title, name="journal_title", curie=DCTERMS.curie('title'),
|
|
model_uri=HERITAGE.journal_title, domain=None, range=Optional[str])
|
|
|
|
slots.alternative_journal_titles = Slot(uri=DCTERMS.alternative, name="alternative_journal_titles", curie=DCTERMS.curie('alternative'),
|
|
model_uri=HERITAGE.alternative_journal_titles, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.journal_url = Slot(uri=SCHEMA.url, name="journal_url", curie=SCHEMA.curie('url'),
|
|
model_uri=HERITAGE.journal_url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.impact_factor = Slot(uri=HERITAGE.impact_factor, name="impact_factor", curie=HERITAGE.curie('impact_factor'),
|
|
model_uri=HERITAGE.impact_factor, domain=None, range=Optional[float])
|
|
|
|
slots.cite_score = Slot(uri=HERITAGE.cite_score, name="cite_score", curie=HERITAGE.curie('cite_score'),
|
|
model_uri=HERITAGE.cite_score, domain=None, range=Optional[float])
|
|
|
|
slots.subject_areas = Slot(uri=DCTERMS.subject, name="subject_areas", curie=DCTERMS.curie('subject'),
|
|
model_uri=HERITAGE.subject_areas, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.indexing_services = Slot(uri=HERITAGE.indexing_services, name="indexing_services", curie=HERITAGE.curie('indexing_services'),
|
|
model_uri=HERITAGE.indexing_services, domain=None, range=Optional[Union[str, list[str]]])
|
|
|
|
slots.conference_id = Slot(uri=DCTERMS.identifier, name="conference_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.conference_id, domain=None, range=URIRef)
|
|
|
|
slots.conference_name = Slot(uri=SCHEMA.name, name="conference_name", curie=SCHEMA.curie('name'),
|
|
model_uri=HERITAGE.conference_name, domain=None, range=Optional[str])
|
|
|
|
slots.conference_acronym = Slot(uri=HERITAGE.conference_acronym, name="conference_acronym", curie=HERITAGE.curie('conference_acronym'),
|
|
model_uri=HERITAGE.conference_acronym, domain=None, range=Optional[str])
|
|
|
|
slots.conference_date = Slot(uri=SCHEMA.startDate, name="conference_date", curie=SCHEMA.curie('startDate'),
|
|
model_uri=HERITAGE.conference_date, domain=None, range=Optional[str])
|
|
|
|
slots.conference_location = Slot(uri=SCHEMA.location, name="conference_location", curie=SCHEMA.curie('location'),
|
|
model_uri=HERITAGE.conference_location, domain=None, range=Optional[str])
|
|
|
|
slots.conference_url = Slot(uri=SCHEMA.url, name="conference_url", curie=SCHEMA.curie('url'),
|
|
model_uri=HERITAGE.conference_url, domain=None, range=Optional[Union[str, URI]])
|
|
|
|
slots.proceedings_title = Slot(uri=HERITAGE.proceedings_title, name="proceedings_title", curie=HERITAGE.curie('proceedings_title'),
|
|
model_uri=HERITAGE.proceedings_title, domain=None, range=Optional[str])
|
|
|
|
slots.proceedings_isbn = Slot(uri=HERITAGE.proceedings_isbn, name="proceedings_isbn", curie=HERITAGE.curie('proceedings_isbn'),
|
|
model_uri=HERITAGE.proceedings_isbn, domain=None, range=Optional[str])
|
|
|
|
slots.proceedings_publisher = Slot(uri=HERITAGE.proceedings_publisher, name="proceedings_publisher", curie=HERITAGE.curie('proceedings_publisher'),
|
|
model_uri=HERITAGE.proceedings_publisher, domain=None, range=Optional[Union[dict, Organization]])
|
|
|
|
slots.person_id = Slot(uri=DCTERMS.identifier, name="person_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.person_id, domain=None, range=URIRef)
|
|
|
|
slots.person_name = Slot(uri=FOAF.name, name="person_name", curie=FOAF.curie('name'),
|
|
model_uri=HERITAGE.person_name, domain=None, range=Optional[str])
|
|
|
|
slots.given_name = Slot(uri=FOAF.givenName, name="given_name", curie=FOAF.curie('givenName'),
|
|
model_uri=HERITAGE.given_name, domain=None, range=Optional[str])
|
|
|
|
slots.family_name = Slot(uri=FOAF.familyName, name="family_name", curie=FOAF.curie('familyName'),
|
|
model_uri=HERITAGE.family_name, domain=None, range=Optional[str])
|
|
|
|
slots.orcid = Slot(uri=DATACITE.orcid, name="orcid", curie=DATACITE.curie('orcid'),
|
|
model_uri=HERITAGE.orcid, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^\d{4}-\d{4}-\d{4}-\d{3}[0-9X]$'))
|
|
|
|
slots.affiliation = Slot(uri=SCHEMA.affiliation, name="affiliation", curie=SCHEMA.curie('affiliation'),
|
|
model_uri=HERITAGE.affiliation, domain=None, range=Optional[Union[dict, Organization]])
|
|
|
|
slots.roles = Slot(uri=HERITAGE.roles, name="roles", curie=HERITAGE.curie('roles'),
|
|
model_uri=HERITAGE.roles, domain=None, range=Optional[Union[Union[dict, PublishingRole], list[Union[dict, PublishingRole]]]])
|
|
|
|
slots.organization_id = Slot(uri=DCTERMS.identifier, name="organization_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.organization_id, domain=None, range=URIRef)
|
|
|
|
slots.organization_name = Slot(uri=SCHEMA.name, name="organization_name", curie=SCHEMA.curie('name'),
|
|
model_uri=HERITAGE.organization_name, domain=None, range=Optional[str])
|
|
|
|
slots.organization_type = Slot(uri=SCHEMA.additionalType, name="organization_type", curie=SCHEMA.curie('additionalType'),
|
|
model_uri=HERITAGE.organization_type, domain=None, range=Optional[str])
|
|
|
|
slots.location = Slot(uri=SCHEMA.location, name="location", curie=SCHEMA.curie('location'),
|
|
model_uri=HERITAGE.location, domain=None, range=Optional[str])
|
|
|
|
slots.ror_id = Slot(uri=HERITAGE.ror_id, name="ror_id", curie=HERITAGE.curie('ror_id'),
|
|
model_uri=HERITAGE.ror_id, domain=None, range=Optional[str],
|
|
pattern=re.compile(r'^https://ror\.org/0[a-z0-9]{6}[0-9]{2}$'))
|
|
|
|
slots.citation_id = Slot(uri=DCTERMS.identifier, name="citation_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.citation_id, domain=None, range=URIRef)
|
|
|
|
slots.citing_work = Slot(uri=CITO.hasCitingEntity, name="citing_work", curie=CITO.curie('hasCitingEntity'),
|
|
model_uri=HERITAGE.citing_work, domain=None, range=Optional[Union[str, PublicationPublicationId]])
|
|
|
|
slots.cited_work = Slot(uri=CITO.hasCitedEntity, name="cited_work", curie=CITO.curie('hasCitedEntity'),
|
|
model_uri=HERITAGE.cited_work, domain=None, range=Optional[Union[str, PublicationPublicationId]])
|
|
|
|
slots.citation_type = Slot(uri=CITO.hasCitationCharacterization, name="citation_type", curie=CITO.curie('hasCitationCharacterization'),
|
|
model_uri=HERITAGE.citation_type, domain=None, range=Optional[Union[str, "CitationTypeEnum"]])
|
|
|
|
slots.citation_intent = Slot(uri=CITO.hasCitationIntent, name="citation_intent", curie=CITO.curie('hasCitationIntent'),
|
|
model_uri=HERITAGE.citation_intent, domain=None, range=Optional[str])
|
|
|
|
slots.citation_context = Slot(uri=HERITAGE.citation_context, name="citation_context", curie=HERITAGE.curie('citation_context'),
|
|
model_uri=HERITAGE.citation_context, domain=None, range=Optional[str])
|
|
|
|
slots.page_number = Slot(uri=HERITAGE.page_number, name="page_number", curie=HERITAGE.curie('page_number'),
|
|
model_uri=HERITAGE.page_number, domain=None, range=Optional[str])
|
|
|
|
slots.section_id = Slot(uri=DCTERMS.identifier, name="section_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.section_id, domain=None, range=URIRef)
|
|
|
|
slots.section_title = Slot(uri=DCTERMS.title, name="section_title", curie=DCTERMS.curie('title'),
|
|
model_uri=HERITAGE.section_title, domain=None, range=Optional[str])
|
|
|
|
slots.section_type = Slot(uri=DCTERMS.type, name="section_type", curie=DCTERMS.curie('type'),
|
|
model_uri=HERITAGE.section_type, domain=None, range=Optional[Union[str, "DocumentSectionTypeEnum"]])
|
|
|
|
slots.section_content = Slot(uri=HERITAGE.section_content, name="section_content", curie=HERITAGE.curie('section_content'),
|
|
model_uri=HERITAGE.section_content, domain=None, range=Optional[str])
|
|
|
|
slots.section_order = Slot(uri=HERITAGE.section_order, name="section_order", curie=HERITAGE.curie('section_order'),
|
|
model_uri=HERITAGE.section_order, domain=None, range=Optional[int])
|
|
|
|
slots.role_type = Slot(uri=PRO.withRole, name="role_type", curie=PRO.curie('withRole'),
|
|
model_uri=HERITAGE.role_type, domain=None, range=Optional[Union[str, "PublishingRoleTypeEnum"]])
|
|
|
|
slots.role_holder = Slot(uri=PRO.isHeldBy, name="role_holder", curie=PRO.curie('isHeldBy'),
|
|
model_uri=HERITAGE.role_holder, domain=None, range=Optional[Union[str, PersonPersonId]])
|
|
|
|
slots.role_context = Slot(uri=HERITAGE.role_context, name="role_context", curie=HERITAGE.curie('role_context'),
|
|
model_uri=HERITAGE.role_context, domain=None, range=Optional[str])
|
|
|
|
slots.HeritageCustodian_id = Slot(uri=DCTERMS.identifier, name="HeritageCustodian_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.HeritageCustodian_id, domain=HeritageCustodian, range=Union[str, HeritageCustodianId])
|
|
|
|
slots.HeritageCustodian_name = Slot(uri=SCHEMA.name, name="HeritageCustodian_name", curie=SCHEMA.curie('name'),
|
|
model_uri=HERITAGE.HeritageCustodian_name, domain=HeritageCustodian, range=str)
|
|
|
|
slots.HeritageCustodian_institution_type = Slot(uri=DCTERMS.type, name="HeritageCustodian_institution_type", curie=DCTERMS.curie('type'),
|
|
model_uri=HERITAGE.HeritageCustodian_institution_type, domain=HeritageCustodian, range=Union[str, "InstitutionTypeEnum"])
|
|
|
|
slots.Identifier_identifier_scheme = Slot(uri=HERITAGE.identifier_scheme, name="Identifier_identifier_scheme", curie=HERITAGE.curie('identifier_scheme'),
|
|
model_uri=HERITAGE.Identifier_identifier_scheme, domain=Identifier, range=str)
|
|
|
|
slots.Identifier_identifier_value = Slot(uri=HERITAGE.identifier_value, name="Identifier_identifier_value", curie=HERITAGE.curie('identifier_value'),
|
|
model_uri=HERITAGE.Identifier_identifier_value, domain=Identifier, range=str)
|
|
|
|
slots.OrganizationalUnit_unit_id = Slot(uri=DCTERMS.identifier, name="OrganizationalUnit_unit_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.OrganizationalUnit_unit_id, domain=OrganizationalUnit, range=Union[str, OrganizationalUnitUnitId])
|
|
|
|
slots.OrganizationalUnit_unit_name = Slot(uri=ORG.unitName, name="OrganizationalUnit_unit_name", curie=ORG.curie('unitName'),
|
|
model_uri=HERITAGE.OrganizationalUnit_unit_name, domain=OrganizationalUnit, range=str)
|
|
|
|
slots.EnrichmentHistoryEntry_enrichment_date = Slot(uri=PROV.atTime, name="EnrichmentHistoryEntry_enrichment_date", curie=PROV.curie('atTime'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_enrichment_date, domain=EnrichmentHistoryEntry, range=Union[str, XSDDateTime])
|
|
|
|
slots.EnrichmentHistoryEntry_enrichment_method = Slot(uri=PROV.hadPlan, name="EnrichmentHistoryEntry_enrichment_method", curie=PROV.curie('hadPlan'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_enrichment_method, domain=EnrichmentHistoryEntry, range=str)
|
|
|
|
slots.EnrichmentHistoryEntry_enrichment_type = Slot(uri=RDF.type, name="EnrichmentHistoryEntry_enrichment_type", curie=RDF.curie('type'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_enrichment_type, domain=EnrichmentHistoryEntry, range=Union[str, "EnrichmentTypeEnum"])
|
|
|
|
slots.EnrichmentHistoryEntry_match_score = Slot(uri=ADMS.confidence, name="EnrichmentHistoryEntry_match_score", curie=ADMS.curie('confidence'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_match_score, domain=EnrichmentHistoryEntry, range=Optional[float])
|
|
|
|
slots.EnrichmentHistoryEntry_verified = Slot(uri=ADMS.status, name="EnrichmentHistoryEntry_verified", curie=ADMS.curie('status'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_verified, domain=EnrichmentHistoryEntry, range=Union[bool, Bool])
|
|
|
|
slots.EnrichmentHistoryEntry_enrichment_source = Slot(uri=DCTERMS.source, name="EnrichmentHistoryEntry_enrichment_source", curie=DCTERMS.curie('source'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_enrichment_source, domain=EnrichmentHistoryEntry, range=Optional[Union[str, URI]])
|
|
|
|
slots.EnrichmentHistoryEntry_enrichment_notes = Slot(uri=DCTERMS.description, name="EnrichmentHistoryEntry_enrichment_notes", curie=DCTERMS.curie('description'),
|
|
model_uri=HERITAGE.EnrichmentHistoryEntry_enrichment_notes, domain=EnrichmentHistoryEntry, range=Optional[str])
|
|
|
|
slots.GHCIDHistoryEntry_ghcid = Slot(uri=HERITAGE.ghcid, name="GHCIDHistoryEntry_ghcid", curie=HERITAGE.curie('ghcid'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_ghcid, domain=GHCIDHistoryEntry, range=str,
|
|
pattern=re.compile(r'^[A-Z]{2}-[A-Z0-9]{1,3}-[A-Z]{3}-[A-Z]-[A-Z0-9]{1,10}(-Q[0-9]+)?$'))
|
|
|
|
slots.GHCIDHistoryEntry_ghcid_numeric = Slot(uri=DCTERMS.identifier, name="GHCIDHistoryEntry_ghcid_numeric", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_ghcid_numeric, domain=GHCIDHistoryEntry, range=int)
|
|
|
|
slots.GHCIDHistoryEntry_valid_from = Slot(uri=HERITAGE.valid_from, name="GHCIDHistoryEntry_valid_from", curie=HERITAGE.curie('valid_from'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_valid_from, domain=GHCIDHistoryEntry, range=Union[str, XSDDateTime])
|
|
|
|
slots.GHCIDHistoryEntry_valid_to = Slot(uri=HERITAGE.valid_to, name="GHCIDHistoryEntry_valid_to", curie=HERITAGE.curie('valid_to'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_valid_to, domain=GHCIDHistoryEntry, range=Optional[Union[str, XSDDateTime]])
|
|
|
|
slots.GHCIDHistoryEntry_reason = Slot(uri=HERITAGE.reason, name="GHCIDHistoryEntry_reason", curie=HERITAGE.curie('reason'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_reason, domain=GHCIDHistoryEntry, range=str)
|
|
|
|
slots.GHCIDHistoryEntry_institution_name = Slot(uri=HERITAGE.institution_name, name="GHCIDHistoryEntry_institution_name", curie=HERITAGE.curie('institution_name'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_institution_name, domain=GHCIDHistoryEntry, range=str)
|
|
|
|
slots.GHCIDHistoryEntry_location_city = Slot(uri=HERITAGE.location_city, name="GHCIDHistoryEntry_location_city", curie=HERITAGE.curie('location_city'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_location_city, domain=GHCIDHistoryEntry, range=str)
|
|
|
|
slots.GHCIDHistoryEntry_location_country = Slot(uri=HERITAGE.location_country, name="GHCIDHistoryEntry_location_country", curie=HERITAGE.curie('location_country'),
|
|
model_uri=HERITAGE.GHCIDHistoryEntry_location_country, domain=GHCIDHistoryEntry, range=str)
|
|
|
|
slots.ChangeEvent_event_id = Slot(uri=DCTERMS.identifier, name="ChangeEvent_event_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.ChangeEvent_event_id, domain=ChangeEvent, range=Union[str, ChangeEventEventId])
|
|
|
|
slots.ChangeEvent_change_type = Slot(uri=RDF.type, name="ChangeEvent_change_type", curie=RDF.curie('type'),
|
|
model_uri=HERITAGE.ChangeEvent_change_type, domain=ChangeEvent, range=Union[str, "ChangeTypeEnum"])
|
|
|
|
slots.ChangeEvent_event_date = Slot(uri=PROV.atTime, name="ChangeEvent_event_date", curie=PROV.curie('atTime'),
|
|
model_uri=HERITAGE.ChangeEvent_event_date, domain=ChangeEvent, range=Union[str, XSDDate])
|
|
|
|
slots.DutchHeritageCustodian_identifiers = Slot(uri=HERITAGE.identifiers, name="DutchHeritageCustodian_identifiers", curie=HERITAGE.curie('identifiers'),
|
|
model_uri=HERITAGE.DutchHeritageCustodian_identifiers, domain=DutchHeritageCustodian, range=Optional[Union[Union[dict, Identifier], list[Union[dict, Identifier]]]])
|
|
|
|
slots.DutchHeritageCustodian_partnerships = Slot(uri=HERITAGE.partnerships, name="DutchHeritageCustodian_partnerships", curie=HERITAGE.curie('partnerships'),
|
|
model_uri=HERITAGE.DutchHeritageCustodian_partnerships, domain=DutchHeritageCustodian, range=Optional[Union[Union[dict, Partnership], list[Union[dict, Partnership]]]])
|
|
|
|
slots.DutchHeritageCustodian_locations = Slot(uri=HERITAGE.locations, name="DutchHeritageCustodian_locations", curie=HERITAGE.curie('locations'),
|
|
model_uri=HERITAGE.DutchHeritageCustodian_locations, domain=DutchHeritageCustodian, range=Optional[Union[Union[dict, Location], list[Union[dict, Location]]]])
|
|
|
|
slots.Publication_publication_id = Slot(uri=DCTERMS.identifier, name="Publication_publication_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.Publication_publication_id, domain=Publication, range=Union[str, PublicationPublicationId])
|
|
|
|
slots.Publication_title = Slot(uri=DCTERMS.title, name="Publication_title", curie=DCTERMS.curie('title'),
|
|
model_uri=HERITAGE.Publication_title, domain=Publication, range=str)
|
|
|
|
slots.Publication_publication_type = Slot(uri=DCTERMS.type, name="Publication_publication_type", curie=DCTERMS.curie('type'),
|
|
model_uri=HERITAGE.Publication_publication_type, domain=Publication, range=Union[str, "PublicationTypeEnum"])
|
|
|
|
slots.Journal_journal_id = Slot(uri=DCTERMS.identifier, name="Journal_journal_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.Journal_journal_id, domain=Journal, range=Union[str, JournalJournalId])
|
|
|
|
slots.Journal_journal_title = Slot(uri=DCTERMS.title, name="Journal_journal_title", curie=DCTERMS.curie('title'),
|
|
model_uri=HERITAGE.Journal_journal_title, domain=Journal, range=str)
|
|
|
|
slots.Conference_conference_id = Slot(uri=DCTERMS.identifier, name="Conference_conference_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.Conference_conference_id, domain=Conference, range=Union[str, ConferenceConferenceId])
|
|
|
|
slots.Conference_conference_name = Slot(uri=SCHEMA.name, name="Conference_conference_name", curie=SCHEMA.curie('name'),
|
|
model_uri=HERITAGE.Conference_conference_name, domain=Conference, range=str)
|
|
|
|
slots.Person_person_id = Slot(uri=DCTERMS.identifier, name="Person_person_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.Person_person_id, domain=Person, range=Union[str, PersonPersonId])
|
|
|
|
slots.Person_person_name = Slot(uri=FOAF.name, name="Person_person_name", curie=FOAF.curie('name'),
|
|
model_uri=HERITAGE.Person_person_name, domain=Person, range=str)
|
|
|
|
slots.Organization_organization_id = Slot(uri=DCTERMS.identifier, name="Organization_organization_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.Organization_organization_id, domain=Organization, range=Union[str, OrganizationOrganizationId])
|
|
|
|
slots.Organization_organization_name = Slot(uri=SCHEMA.name, name="Organization_organization_name", curie=SCHEMA.curie('name'),
|
|
model_uri=HERITAGE.Organization_organization_name, domain=Organization, range=str)
|
|
|
|
slots.Citation_citation_id = Slot(uri=DCTERMS.identifier, name="Citation_citation_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.Citation_citation_id, domain=Citation, range=Union[str, CitationCitationId])
|
|
|
|
slots.Citation_citing_work = Slot(uri=CITO.hasCitingEntity, name="Citation_citing_work", curie=CITO.curie('hasCitingEntity'),
|
|
model_uri=HERITAGE.Citation_citing_work, domain=Citation, range=Union[str, PublicationPublicationId])
|
|
|
|
slots.Citation_cited_work = Slot(uri=CITO.hasCitedEntity, name="Citation_cited_work", curie=CITO.curie('hasCitedEntity'),
|
|
model_uri=HERITAGE.Citation_cited_work, domain=Citation, range=Union[str, PublicationPublicationId])
|
|
|
|
slots.Citation_citation_type = Slot(uri=CITO.hasCitationCharacterization, name="Citation_citation_type", curie=CITO.curie('hasCitationCharacterization'),
|
|
model_uri=HERITAGE.Citation_citation_type, domain=Citation, range=Union[str, "CitationTypeEnum"])
|
|
|
|
slots.DocumentSection_section_id = Slot(uri=DCTERMS.identifier, name="DocumentSection_section_id", curie=DCTERMS.curie('identifier'),
|
|
model_uri=HERITAGE.DocumentSection_section_id, domain=DocumentSection, range=Union[str, DocumentSectionSectionId])
|
|
|
|
slots.PublishingRole_role_type = Slot(uri=PRO.withRole, name="PublishingRole_role_type", curie=PRO.curie('withRole'),
|
|
model_uri=HERITAGE.PublishingRole_role_type, domain=PublishingRole, range=Union[str, "PublishingRoleTypeEnum"])
|
|
|
|
slots.PublishingRole_role_holder = Slot(uri=PRO.isHeldBy, name="PublishingRole_role_holder", curie=PRO.curie('isHeldBy'),
|
|
model_uri=HERITAGE.PublishingRole_role_holder, domain=PublishingRole, range=Union[str, PersonPersonId])
|
|
|
|
# =============================================================================
|
|
# BACKWARD COMPATIBILITY ALIASES
|
|
# =============================================================================
|
|
# These aliases maintain backward compatibility with code that uses the old
|
|
# enum names without the "Enum" suffix. New code should use the full names.
|
|
# =============================================================================
|
|
|
|
# Enum aliases (old name -> new name)
|
|
InstitutionType = InstitutionTypeEnum
|
|
OrganizationStatus = OrganizationStatusEnum
|
|
DataSource = DataSourceEnum
|
|
DataTier = DataTierEnum
|
|
MetadataStandard = MetadataStandardEnum
|
|
DigitalPlatformType = DigitalPlatformTypeEnum
|
|
ChangeType = ChangeTypeEnum
|
|
EnrichmentType = EnrichmentTypeEnum
|
|
PublicationType = PublicationTypeEnum
|
|
CitationType = CitationTypeEnum
|
|
OpenAccessStatus = OpenAccessStatusEnum
|
|
PublishingStatus = PublishingStatusEnum
|
|
DocumentSectionType = DocumentSectionTypeEnum
|
|
PublishingRoleType = PublishingRoleTypeEnum
|
|
|