Property 2: Creator

The main researchers involved in producing the data, or the authors of the publication
2. Creator
Required Occurrence: 1-n Database: publication_creators

The main researchers involved in producing the data, or the authors of the publication, in priority order. The personal name format should be: family, given.

DOCiD™ Implementation: The PublicationCreators model provides comprehensive support for multiple creator identifiers, roles, and affiliations. It supports international identifier schemes and flexible role assignments for diverse research collaboration patterns found in African institutions.

Sub-properties

2.1 familyName
Required Occurrences: 1 Type: String

Definition: The surname or last name of the creator.

Database Schema
family_name = Column(String(255), nullable=False)

Allowed values, examples, other constraints:

  • Data Type: UTF-8 text string
  • Maximum Length: 255 characters
  • Character Set: Unicode support for international characters including African scripts
  • Required: Must be provided for all creators

Examples:

  • Okonkwo
  • Al-Zahra
  • Mthembu
  • van der Merwe
  • Diallo
  • Ogundipe
  • Kimani
  • Asante

African Naming Conventions

Supports diverse African family name structures including patronymic systems, clan names, and compound family names. Accommodates naming conventions from various African cultures including Bantu, Afroasiatic, and Niger-Congo language families.

2.2 givenName
Optional Occurrences: 0-1 Type: String

Definition: The personal or first name of the creator, including middle names.

Database Schema
given_name = Column(String(255))

Allowed values, examples, other constraints:

  • Data Type: UTF-8 text string
  • Maximum Length: 255 characters
  • Character Set: Unicode support for international characters
  • Optional: May be omitted for creators known primarily by family name
  • Multiple Names: Can include multiple given names separated by spaces

Examples based on the 2.1 family names:

  • Amara (for Okonkwo, Amara)
  • Fatima (for Al-Zahra, Fatima)
  • Themba (for Mthembu, Themba)
  • Sarah Nomsa (for van der Merwe, Sarah Nomsa)
  • Mariama (for Diallo, Mariama)
  • Adebayo (for Ogundipe, Adebayo)
  • Michael Mwangi (for Kimani, Michael Mwangi)
  • Kwame (for Asante, Kwame)

Cultural Considerations

The given name field is optional to accommodate naming conventions where individuals may be known primarily by their family name or single name, which is common in some African cultures. This also respects traditional naming systems where titles or honorifics may be more important than given names.

2.3 nameIdentifier
Optional Occurrences: 0-n Type: String

Definition: Uniquely identifies an individual or legal entity, according to various identifier schemes. The format is dependent upon the identifier scheme.

Database Schema
identifier = Column(String(500))  # Stores the full resolvable URL
identifier_type = Column(String(50))  # Stores the type (e.g., 'orcid', 'isni', 'viaf')

Allowed values, examples, other constraints:

  • Data Type: UTF-8 text string (full resolvable URL)
  • Maximum Length: 500 characters
  • Format: Complete HTTP/HTTPS URL to the identifier resource
  • Validation: Must be a valid URL format
  • Uniqueness: Should uniquely identify the individual globally
  • Persistence: Should be persistent and resolvable over time

Examples by identifier type:

Identifier Type Example Pattern Authority
ORCID https://orcid.org/0000-0002-1825-0097 https://orcid.org/0000-0000-0000-000X ORCID, Inc.
ISNI https://isni.org/isni/0000000121032683 https://isni.org/isni/[16 digits] ISNI International Agency
VIAF http://viaf.org/viaf/102333412 http://viaf.org/viaf/[numeric ID] OCLC Research
ResearcherID http://www.researcherid.com/rid/A-5678-2012 http://www.researcherid.com/rid/[ID] Clarivate Analytics
Scopus ID http://www.scopus.com/inward/authorDetails.url?authorID=7410587685 http://www.scopus.com/[path]?authorID=[ID] Elsevier
African Identifiers https://researchers.africa.org/profile/12345 Regional identifier schemes African research networks

Format Requirements:

  • ORCID: Must follow pattern https://orcid.org/0000-0000-0000-000X (where X is 0-9 or X)
  • ISNI: Must be 16 digits with optional spaces or hyphens in display format
  • VIAF: Numeric identifier appended to base URL
  • HTTP/HTTPS: All identifiers must use secure protocols where available
  • Case Sensitivity: URLs are case-sensitive and must match exactly

DOCiD™ Implementation Notes

DOCiD™ stores the complete resolvable URL rather than just the identifier value to ensure proper resolution and to support multiple identifier schemes simultaneously. The system validates identifier formats before storage and can resolve identifiers to retrieve additional metadata about creators.

2.4 nameIdentifierScheme
Optional Occurrences: 0-1 Controlled Vocabulary

Definition: The name of the name identifier scheme. This is automatically determined based on the identifier URL format and stored in the identifier_type field.

Allowed values, examples, other constraints:

  • Data Type: Controlled vocabulary from predefined list
  • Case Sensitivity: Lowercase preferred
  • Validation: Must correspond to supported identifier schemes
  • Auto-Detection: DOCiD™ can auto-detect scheme from URL pattern

Supported Schemes:

Scheme Value Display Name Standard URL Pattern
orcid ORCID Open Researcher and Contributor ID https://orcid.org/*
isni ISNI ISO 27729 International Standard Name Identifier https://isni.org/isni/*
viaf VIAF Virtual International Authority File http://viaf.org/viaf/*
dai DAI Digital Author Identifier (Netherlands) http://www.narcis.nl/person/*
researcherid ResearcherID Web of Science ResearcherID http://www.researcherid.com/rid/*
scopusid Scopus ID Scopus Author Identifier http://www.scopus.com/inward/authorDetails.url?authorID=*
lcnaf LCNAF Library of Congress Name Authority File http://id.loc.gov/vocabulary/relators/*
gnd GND Gemeinsame Normdatei http://d-nb.info/gnd/*

Examples:

  • For identifier "https://orcid.org/0000-0002-1825-0097" → scheme: "orcid"
  • For identifier "https://isni.org/isni/0000000121032683" → scheme: "isni"
  • For identifier "http://viaf.org/viaf/102333412" → scheme: "viaf"
  • For identifier "http://www.researcherid.com/rid/A-5678-2012" → scheme: "researcherid"

Automatic Detection

DOCiD™ automatically detects the identifier scheme based on the URL pattern and populates the identifier_type field. This ensures consistency and reduces manual input errors.

2.5 affiliation
Optional Occurrences: 0-n Type: Related Entity

Definition: The organizational or institutional affiliation of the creator. In DOCiD™, affiliations are managed through the PublicationOrganization model with comprehensive organization metadata.

Allowed values, examples, other constraints:

  • Implementation: Separate PublicationOrganization model
  • Multiple Affiliations: Supports multiple institutional affiliations per creator
  • Organization Identifiers: Integrated with ROR (Research Organization Registry)
  • Geographic Information: Includes country and regional data
  • Organization Types: Academic, government, commercial, NGO classifications

Affiliation Structure (PublicationOrganization model):

Related Model Schema
class PublicationOrganization(db.Model):
    id = Column(Integer, primary_key=True, autoincrement=True)
    publication_id = Column(Integer, ForeignKey('publications.id'), nullable=False)
    name = Column(String(255), nullable=False)  # Organization name
    type = Column(String(255), nullable=False)  # Organization type
    other_name = Column(String(255))  # Alternative names
    country = Column(String(255))  # Country location
    identifier = Column(String(500))  # ROR ID or other identifier
    identifier_type = Column(String(50))  # Type of identifier (ror, grid, isni)

Examples of organization affiliations:

  • University of Cape Town (ROR: https://ror.org/01ggx4157) - South Africa
  • University of Ghana (ROR: https://ror.org/05591te55) - Ghana
  • American University in Cairo (ROR: https://ror.org/03gc78e51) - Egypt
  • University of the Witwatersrand (ROR: https://ror.org/03rp50963) - South Africa
  • Council for Scientific and Industrial Research (ROR: https://ror.org/0145zh013) - South Africa
  • University of Ibadan (ROR: https://ror.org/01za5dv85) - Nigeria
  • Université Cheikh Anta Diop (ROR: https://ror.org/03qx6w235) - Senegal
  • Kenya Education Network (KENET) (ROR: https://ror.org/04b4z2r68) - Kenya

Organization Types:

  • Education: Universities, colleges, schools
  • Government: Government agencies and departments
  • Company: Commercial and industry organizations
  • Healthcare: Hospitals, medical centers, health organizations
  • Nonprofit: NGOs, foundations, civil society organizations
  • Other: Research institutes, international organizations

DOCiD™ Organization Integration

Creator affiliations in DOCiD™ are managed through a sophisticated organization model that integrates with ROR (Research Organization Registry) for global organization identification. This ensures accurate institutional attribution and supports advanced search and analytics capabilities.

API Integration Example:

Creator with Affiliation
{
  "creators": [
    {
      "family_name": "Okonkwo",
      "given_name": "Amara",
      "identifier": "https://orcid.org/0000-0002-1234-5678",
      "identifier_type": "orcid",
      "role_id": "author"
    }
  ],
  "organizations": [
    {
      "name": "University of Cape Town",
      "type": "Education",
      "country": "South Africa",
      "identifier": "https://ror.org/01ggx4157",
      "identifier_type": "ror"
    }
  ]
}

PublicationCreators Database Model

Complete Model Definition
class PublicationCreators(db.Model):
    """
    Creators related to publications
    """
    __tablename__ = 'publication_creators'

    id = Column(Integer, primary_key=True, autoincrement=True)
    publication_id = Column(Integer, ForeignKey('publications.id'), nullable=False, index=True)
    family_name = Column(String(255), nullable=False)
    given_name = Column(String(255))
    identifier = Column(String(500))  # Stores the full resolvable URL
    identifier_type = Column(String(50))  # Stores the type (e.g., 'orcid', 'isni', 'viaf')
    role_id = Column(String(255), nullable=False)

    # Relationships
    publication = relationship('Publications', back_populates='publication_creators')

    def __repr__(self):
        return f"<PublicationCreators(id={self.id}, family_name='{self.family_name}', publication_id={self.publication_id})>"

Field Specifications

Field Type Constraints Purpose
id Integer Primary Key, Auto-increment Unique identifier for creator record
publication_id Integer Foreign Key, Not Null, Indexed Links creator to specific publication
family_name String(255) Not Null Creator's surname/family name
given_name String(255) Nullable Creator's first/given name(s)
identifier String(500) Nullable Full resolvable URL for creator identifier
identifier_type String(50) Nullable Type of identifier (orcid, isni, viaf, etc.)
role_id String(255) Not Null Creator's role in the publication

API Examples

Creating Publication with Creators

POST /api/v1/publications/publish
{
  "title": "AI Applications in African Healthcare Systems",
  "description": "Comprehensive study on machine learning applications in healthcare across Sub-Saharan Africa",
  "resource_type_id": 1,
  "publication_type_id": 1,
  "creators": [
    {
      "family_name": "Okonkwo",
      "given_name": "Amara",
      "identifier": "https://orcid.org/0000-0002-1234-5678",
      "identifier_type": "orcid",
      "role_id": "author"
    },
    {
      "family_name": "Al-Zahra",
      "given_name": "Fatima",
      "identifier": "https://orcid.org/0000-0004-3456-7890",
      "identifier_type": "orcid",
      "role_id": "co-author"
    },
    {
      "family_name": "Mthembu",
      "given_name": "Themba",
      "identifier": "https://isni.org/isni/0000000121032683",
      "identifier_type": "isni",
      "role_id": "data-collector"
    }
  ]
}

API Response

Response
{
  "status": "success",
  "data": {
    "id": 123,
    "title": "AI Applications in African Healthcare Systems",
    "document_docid": "DOCID.123",
    "doi": "10.5555/docid.123",
    "creators": [
      {
        "id": 456,
        "family_name": "Okonkwo",
        "given_name": "Amara",
        "identifier": "https://orcid.org/0000-0002-1234-5678",
        "identifier_type": "orcid",
        "role_id": "author",
        "full_name": "Okonkwo, Amara"
      },
      {
        "id": 457,
        "family_name": "Al-Zahra",
        "given_name": "Fatima",
        "identifier": "https://orcid.org/0000-0004-3456-7890",
        "identifier_type": "orcid",
        "role_id": "co-author",
        "full_name": "Al-Zahra, Fatima"
      },
      {
        "id": 458,
        "family_name": "Mthembu",
        "given_name": "Themba",
        "identifier": "https://isni.org/isni/0000000121032683",
        "identifier_type": "isni",
        "role_id": "data-collector",
        "full_name": "Mthembu, Themba"
      }
    ]
  },
  "message": "Publication created successfully"
}

Adding Creators to Existing Publication

POST /api/v1/publications/publication/{id}/creators
{
  "creators": [
    {
      "family_name": "Kimani",
      "given_name": "Michael",
      "identifier": "https://orcid.org/0000-0009-8901-2345",
      "identifier_type": "orcid",
      "role_id": "reviewer"
    }
  ]
}

Updating Creator Information

PUT /api/v1/publications/creators/{creator_id}
{
  "family_name": "Okonkwo",
  "given_name": "Amara Chioma",
  "identifier": "https://orcid.org/0000-0002-1234-5678",
  "identifier_type": "orcid",
  "role_id": "lead-author"
}

Creator Roles

DOCiD™ supports a comprehensive set of creator roles that reflect diverse African research collaboration patterns and traditional knowledge systems.

Role ID Role Name Description Context
author Author Primary content creator Standard academic authorship
co-author Co-Author Collaborative content creator Multi-author publications
lead-author Lead Author Primary responsible author Corresponding author role
editor Editor Content editor and reviewer Editorial oversight
contributor Contributor Secondary contributor General contribution
data-collector Data Collector Data collection specialist Research data gathering
supervisor Supervisor Research supervisor Academic supervision
project-leader Project Leader Project coordinator Project management
translator Translator Language translator Multilingual publications
reviewer Reviewer Peer reviewer Quality assurance
knowledge-holder Knowledge Holder Traditional knowledge contributor Indigenous knowledge systems
community-representative Community Representative Community liaison and representative Community-based research

Validation and Constraints

Required Fields

  • family_name: Must be provided for all creators
  • role_id: Must reference a valid creator role
  • publication_id: Must reference an existing publication

Identifier Validation

ORCID Validation Pattern
# ORCID format: https://orcid.org/0000-0000-0000-0000
orcid_pattern = r'^https://orcid\.org/\d{4}-\d{4}-\d{4}-\d{3}[\dX]$'

# Example valid ORCID:
"https://orcid.org/0000-0002-1825-0097"

Cultural Sensitivity Guidelines

Naming Conventions

  • Support for single names where culturally appropriate
  • Flexible handling of complex family name structures
  • Accommodation for titles and honorifics in Indigenous contexts
  • Respectful handling of Traditional Knowledge attributions

Best Practices

Creator Ordering

Creators should be listed in order of contribution significance, following academic conventions or community protocols for Traditional Knowledge.

Identifier Usage

  • ORCID preferred: Use ORCID identifiers when available for academic researchers
  • Full URLs: Store complete resolvable URLs rather than just identifier values
  • Type specification: Always specify the identifier type for proper resolution
  • Validation: Validate identifier formats before storage

Role Assignment

  • Accurate roles: Assign roles that accurately reflect actual contributions
  • Cultural sensitivity: Use appropriate roles for Traditional Knowledge contributions
  • Community consent: Ensure community consent for Traditional Knowledge attributions