Property 2: Creator
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
Definition: The surname or last name of the creator.
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.
Definition: The personal or first name of the creator, including middle names.
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.
Definition: Uniquely identifies an individual or legal entity, according to various identifier schemes. The format is dependent upon the identifier scheme.
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.
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.
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):
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:
{
"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
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
{
"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
{
"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
{
"creators": [
{
"family_name": "Kimani",
"given_name": "Michael",
"identifier": "https://orcid.org/0000-0009-8901-2345",
"identifier_type": "orcid",
"role_id": "reviewer"
}
]
}
Updating Creator Information
{
"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 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
National ID as a creator identifier
Many African researchers — particularly community knowledge holders, independent researchers, and contributors documenting indigenous knowledge — hold no ORCID. DOCiD therefore supports a national identity number as a creator identifier, so that authorship can be recorded without forcing registration with an external service.
Not a seeded vocabulary value
national_id is not present in the creators_identifiers reference table, which seeds only ORCID, ISNI and VIAF. It exists as a literal string in publication_creators.identifier_type. A client that populates its identifier dropdown from the reference endpoint will not see it, and must add it explicitly.
Storage
Two rows are written. The creator row holds the number itself in identifier, with identifier_type set to national_id. Separately, a registry table records the person: name, national ID number, and country, unique on the combination of number and country — the same number may legitimately exist in two countries.
There is no country column on the creator row. Country is resolved from the registry, and only the owner-only edit endpoint returns it.
Masking
A national identity number is personal data, and DOCiD records are public. Since September 2026 the API redacts these values server-side: the number is returned in full only to the owner of the record, presenting a valid token. Every other caller — anonymous, another authenticated user, a resolver hit, a harvester — receives a masked form.
// anonymous, or any non-owner
{
"family_name": "Achieng",
"identifier": "4*******8",
"identifier_type": "national_id",
"identifier_masked": true
}
// the record owner, with Authorization: Bearer <token>
{
"family_name": "Achieng",
"identifier": "455765838",
"identifier_type": "national_id"
}The mask preserves the first and last character. Values of two characters or fewer are returned unchanged, since masking them would reveal as much as it hid. Masked entries carry identifier_masked: true; entries without that flag are unmasked.
Redaction is applied by the publication detail endpoint, both DOCiD resolvers, and the DOI resolver. Because it happens in the API rather than the interface, a masked value cannot be recovered by reading the network response.
Implications for clients
Never cache a masked value and later treat it as an identifier — it is lossy and will not match. Never use it as a deduplication key. If your integration genuinely requires full national identity numbers, it needs the owner's credentials, and it needs a lawful basis for holding that data.
Exclusion from structured data
National identity numbers are excluded from the schema.org sameAs assertions emitted on public record pages. Those assertions are for resolvable public identifiers such as ORCID; a national ID is neither resolvable nor public, and must not be published to search engines as if it were.