module core learn <https://thoughtroam.abcdefghijklmnopqrstuvxyzæøå.dk/learn/core#> is

  import [
    dc
    doap
    foaf
    rdfs
    skos
    xsd
  ]

  @skos:prefLabel = "Learning Ontology"@en
  @dc:description = "General domain ontology on learning"@en
  @dc:created = @xsd:date(2024-04-26)
  @dc:creator = <https://dr.jones.dk/me/#me>
  @dc:license = <https://spdx.org/licenses/AGPL-3.0-or-later>
  @rdf:type = skos:ConceptScheme

  entity Objective is
    @rdfs:subClassOf = doap:Project
    @skos:prefLabel = "Objective"@en
    @skos:prefLabel = "Mål"@da
    @skos:description = "Abstract or concrete goal/skill/competence resulting from a succesful learning"@en
    identity id -> unknown

  end

  entity Drive is
    @skos:description = "Motivating or demotivating factor for a learner towards a learning objective"@en
    identity id -> unknown

    drivesLearner -> Learner
  end

  entity Learner foaf:Person is
    @rdfs:subClassOf = foaf:Person
    @skos:description = "Agent subject to a learning process"@en
    identity id -> unknown

    learnsWithin -> Space
    learnsUsing -> Material
    learnsThrough -> Action
    learnsFormalizedBy -> System
    learnsCausedBy -> Cause
    seeksObjective -> Objective
    achievesObjective -> Objective
    isEducatedBy -> Educator
;    isTaughtBy -> Teacher
;    isFacilitatedBy -> Facilitator
;    isEvaluatedBy -> Evaluator
;    isInstructedBy -> Instructor
    collaboratesWith -> Learner
    usesMethod -> Method
    isDrivenBy -> Drive
  end

  entity Educator is
    @rdfs:subClassOf = foaf:Person
    @skos:description = "Agent aiding a learner towards an objective"@en
    @skos:description = "Agent abstractly or concretely guiding a learner towards an objective"@en
;    @skos:narrower = Teacher, Instructor, Facilitator, Evaluator
    identity id -> unknown

    educates -> Learner
    educatesAbout -> Objective
    educatesUsing -> Material
    educatesFormalizedBy -> System
  end

  entity System is
    @skos:description = "Set of principles/methods/conventions for structuring a learning process"@en
;    @skos:narrower = School_of_thought, Dogma, Principle
    identity id -> unknown
  end

  entity Action is
    @skos:description = "Abstract or concrete action/practice/movement by a learner as part of a learning process"@en
    identity id -> unknown

    contributesTo -> Objective
  end

  entity Cause is
    @skos:description = "Originating reason for a learner to initiate a learning process"@en
    identity id -> unknown

    causesAction -> Action
  end

  entity Material is
    @skos:description = "Sets of information intended to aid a learner in reaching a learning objective"@en
;    @skos:narrower = School_book, Prior_Knowledge
    identity id -> unknown
  end

  ;; the "evaluation"
  entity Evaluation

  entity Method is
    @skos:description = "Way of approaching a learning process"@en
    identity id -> unknown

    requiresMaterial -> Material
    isPartOf -> System
    shapesAction -> Action
  end

end