####################################################################################################
# Iroko Framework: Ewé Module (Turtle)
# File: docs/vocab/iroko-ewe-module.ttl
# Canonical module URI: https://iroko-framework.github.io/iroko-ewe-module/
# Serialization URI:     https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl
#
# Scope
# - SKOS concept schemes for controlled description (access, medicinal use, ritual use)
# - A minimal domain class (iroko:Plant) included for future RDF modeling without forcing it now
#
# Design notes
# - Option A enforced: term URIs follow filename slugs (including "and" where present)
# - Concept URIs are clean (no ".md"); web pages may still be ".md" while URIs remain stable identifiers
# - Schemes are dereferenceable folder URIs ending with "/"
####################################################################################################

@prefix :       <https://iroko-framework.github.io/iroko-ewe-module/> .
@prefix iroko:  <https://iroko-framework.github.io/iroko-ewe-module/terms/> .

@prefix skos:   <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms:<http://purl.org/dc/terms/> .
@prefix owl:    <http://www.w3.org/2002/07/owl#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .

####################################################################################################
# Ontology metadata
####################################################################################################

: a owl:Ontology ;
    dcterms:title "Iroko Framework: Ewé Module"@en ;
    dcterms:description "A stewardship-centered vocabulary for ethnobotanical description with controlled ritual, medicinal, and access governance structures."@en ;
    dcterms:creator "Iroko Historical Society"@en ;
    dcterms:issued "2026-01-27"^^xsd:date ;
    dcterms:modified "2026-02-15"^^xsd:date ;
    owl:versionInfo "0.2.1" ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> ;

    # Primary component schemes
    dcterms:hasPart
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

####################################################################################################
# Minimal domain class (non-conflicting)
#
# This class is optional and does not compete with SKOS modeling.
# You may:
# - model real plant entities as instances of iroko:Plant, AND/OR
# - continue to use SKOS concepts for controlled labels and categories
####################################################################################################

iroko:Plant a rdfs:Class ;
    rdfs:label "Plant"@en ;
    rdfs:comment "A botanical entity referenced in a source corpus. This module primarily provides controlled vocabularies (SKOS). Plant entities may be modeled as iroko:Plant in the future without changing the SKOS term URIs."@en ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

####################################################################################################
# Properties: Object Properties (link Plant entities to controlled SKOS concepts)
####################################################################################################

iroko:accessLevel a owl:ObjectProperty ;
    rdfs:label "Access Level"@en ;
    rdfs:comment "Links a plant record to its governance and disclosure classification within the Access Level concept scheme."@en ;
    rdfs:domain iroko:Plant ;
    rdfs:range skos:Concept ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

iroko:medicinalUse a owl:ObjectProperty ;
    rdfs:label "Medicinal Use"@en ;
    rdfs:comment "Links a plant record to one or more high-level medicinal use categories within the Medicinal Use concept scheme."@en ;
    rdfs:domain iroko:Plant ;
    rdfs:range skos:Concept ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

iroko:ritualUse a owl:ObjectProperty ;
    rdfs:label "Ritual Use"@en ;
    rdfs:comment "Links a plant record to one or more high-level ritual use categories within the Ritual Use concept scheme."@en ;
    rdfs:domain iroko:Plant ;
    rdfs:range skos:Concept ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

####################################################################################################
# Properties: Datatype Properties (literal-valued attributes of Plant entities)
####################################################################################################

iroko:ritualContext a owl:DatatypeProperty ;
    rdfs:label "Ritual Context"@en ;
    rdfs:comment "Free-text narrative describing ritual significance. Content governed by iroko:accessLevel — do not serialize for records classified above Public - No Amplification without custodial review."@en ;
    rdfs:domain iroko:Plant ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

iroko:nameCollision a owl:DatatypeProperty ;
    rdfs:label "Name Collision"@en ;
    rdfs:comment "Boolean flag indicating whether this plant shares a vernacular name with another species in the dataset, creating potential ambiguity."@en ;
    rdfs:domain iroko:Plant ;
    rdfs:range xsd:boolean ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

iroko:collisionNotes a owl:DatatypeProperty ;
    rdfs:label "Collision Notes"@en ;
    rdfs:comment "Free-text explanation of a name collision, identifying the conflicting species and the basis for disambiguation."@en ;
    rdfs:domain iroko:Plant ;
    rdfs:range xsd:string ;
    rdfs:isDefinedBy <https://iroko-framework.github.io/iroko-ewe-module/vocab/iroko-ewe-module.ttl> .

####################################################################################################
# SKOS Concept Scheme: Access Level
####################################################################################################

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> a skos:ConceptScheme ;
    skos:prefLabel "Access Level"@en ;
    dcterms:description "Controlled values describing distribution and amplification constraints for sensitive materials."@en ;
    skos:hasTopConcept
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/public-unrestricted> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/public-no-amplification> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/limited-community-only> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/limited-initiated-only> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/private-practitioner-access> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/restricted-no-access> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/public-unrestricted> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ;
    skos:prefLabel "Public - Unrestricted"@en ;
    skos:notation "public-unrestricted" ;
    skos:definition "Materials may be shared publicly without restriction."@en ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/public-no-amplification> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ;
    skos:prefLabel "Public - No Amplification"@en ;
    skos:notation "public-no-amplification" ;
    skos:definition "Materials may be accessed publicly but should not be redistributed, reposted, or amplified beyond the local context."@en ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/limited-community-only> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ;
    skos:prefLabel "Limited - Community Only"@en ;
    skos:notation "limited-community-only" ;
    skos:definition "Materials are limited to a defined community audience."@en ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/limited-initiated-only> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ;
    skos:prefLabel "Limited - Initiated Only"@en ;
    skos:notation "limited-initiated-only" ;
    skos:definition "Materials are restricted to initiated members and trusted custodians."@en ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/private-practitioner-access> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ;
    skos:prefLabel "Private - Practitioner Access"@en ;
    skos:notation "private-practitioner-access" ;
    skos:definition "Materials are private, intended only for designated practitioners or custodial stewards."@en ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/restricted-no-access> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> ;
    skos:prefLabel "Restricted - No Access"@en ;
    skos:notation "restricted-no-access" ;
    skos:definition "Materials should not be shared or accessed outside of strict custodial control."@en ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/accessLevel/> .

####################################################################################################
# SKOS Concept Scheme: Medicinal Use Category
####################################################################################################

<https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> a skos:ConceptScheme ;
    skos:prefLabel "Medicinal Use Category"@en ;
    dcterms:description "High-level medicinal use categories for plant records."@en ;
    skos:hasTopConcept
        <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/digestive-support> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/respiratory-support> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/skin-and-topical-use> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/general-tonic-revitalizing> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/digestive-support> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> ;
    skos:prefLabel "Digestive Support"@en ;
    skos:notation "digestive-support" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/respiratory-support> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> ;
    skos:prefLabel "Respiratory Support"@en ;
    skos:notation "respiratory-support" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/skin-and-topical-use> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> ;
    skos:prefLabel "Skin and Topical Use"@en ;
    skos:notation "skin-and-topical-use" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/general-tonic-revitalizing> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> ;
    skos:prefLabel "General Tonic / Revitalizing"@en ;
    skos:notation "general-tonic-revitalizing" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/medicinalUse/> .

####################################################################################################
# SKOS Concept Scheme: Ritual Use Category
####################################################################################################

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> a skos:ConceptScheme ;
    skos:prefLabel "Ritual Use Category"@en ;
    dcterms:description "High-level ritual use categories for plant records."@en ;
    skos:hasTopConcept
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/cosmological-or-symbolic-association> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/healing-and-restoration> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/invocation-and-communication> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/offering-and-devotion> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/protection-and-boundary-setting> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/purification-and-cleansing> ,
        <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/rites-of-transition> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/cosmological-or-symbolic-association> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Cosmological or Symbolic Association"@en ;
    skos:notation "cosmological-or-symbolic-association" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/healing-and-restoration> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Healing and Restoration"@en ;
    skos:notation "healing-and-restoration" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/invocation-and-communication> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Invocation and Communication"@en ;
    skos:notation "invocation-and-communication" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/offering-and-devotion> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Offering and Devotion"@en ;
    skos:notation "offering-and-devotion" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/protection-and-boundary-setting> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Protection and Boundary Setting"@en ;
    skos:notation "protection-and-boundary-setting" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/purification-and-cleansing> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Purification and Cleansing"@en ;
    skos:notation "purification-and-cleansing" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .

<https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/rites-of-transition> a skos:Concept ;
    skos:inScheme <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> ;
    skos:prefLabel "Rites of Transition"@en ;
    skos:notation "rites-of-transition" ;
    skos:topConceptOf <https://iroko-framework.github.io/iroko-ewe-module/terms/ritualUse/> .
