PREFIX educor: <https://github.com/tibonto/educor#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

educor:EducationalResource a rdfs:Class ;
  rdfs:label "EducationalResource"@en ;
  rdfs:comment "Any educational resources online or offline"@en ;
  rdfs:seeAlso <https://w3id.org/ccso/ccso#Resource> .

educor:hasMultimediaData a rdf:Property ;
  rdfs:label "hasMultimediaData"@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range educor:MultimediaData .

<https://schema.org/contentRating> a rdf:Property ;
  rdfs:label "contentRating"@en ;
  rdfs:comment "The user rating of the Educational Resource."@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range xsd:integer .

educor:difficulty a rdf:Property ;
  rdfs:label "difficulty"@en ;
  rdfs:comment "The difficulty level of an Educational Resource"@en ;
  rdfs:seeAlso <http://purl.org/dcx/lrmi-vocabs/alignmentType/complexityLevel> ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://purl.org/dc/terms/description> a rdf:Property ;
  rdfs:label "description"@en ;
  rdfs:domain educor:Classification ;
  rdfs:range xsd:string .

educor:hasQuality a rdf:Property ;
  rdfs:label "hasQuality"@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range educor:QualityIndicator .

<http://purl.org/dcx/lrmi-vocabs/alignmentType/educationalLevel> a rdf:Property ;
  rdfs:label "educationalLevel"@en ;
  rdfs:comment "The educational level a resource is part of. A resource's educational level can vary depending the skill and the domain."@en ;
  rdfs:seeAlso <https://schema.org/educationalLevel> ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://schema.org/language> a rdf:Property ;
  rdfs:label "language"@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range xsd:language .

educor:hasKnowledgeTopic a rdf:Property ;
  rdfs:label "hasKnowledgeTopic"@en ;
  rdfs:domain educor:Methodology ;
  rdfs:range educor:KnowledgeTopic .

<https://schema.org/keywords> a rdf:Property ;
  rdfs:label "keywords"@en ;
  rdfs:domain educor:Classification ;
  rdfs:range rdf:PlainLiteral .

<https://schema.org/timeRequired> a rdf:Property ;
  rdfs:label "timeRequired"@en ;
  rdfs:domain educor:Test ;
  rdfs:range xsd:dateTime .

<http://purl.org/dc/elements/1.1/title> a rdf:Property ;
  rdfs:domain educor:Test ;
  rdfs:range xsd:string .

<https://schema.org/author> a rdf:Property ;
  rdfs:label "author"@en ;
  rdfs:comment "The person who provides the EducationalResource"@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range xsd:string .

<https://schema.org/dateCreated> a rdf:Property ;
  rdfs:label "dateCreated"@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range xsd:dateTime .

<https://schema.org/url> a rdf:Property ;
  rdfs:label "url"@en ;
  rdfs:domain educor:EducationalResource ;
  rdfs:range xsd:anyURI .

educor:accessibility a rdf:Property ;
  rdfs:label "accessibility"@en ;
  rdfs:domain educor:UserProfile ;
  rdfs:range educor:Accessibility .

educor:LearningPath a rdfs:Class ;
  rdfs:label "LearningPath"@en ;
  rdfs:comment "The learning path consists of learner's previously followed topics and future ones in order to reach to the learning goal. It is an ordered list of recommendations, which is personalized to the needs of a certain user and target the accomplishment of a complex skill. It has as a final point a learning goal."@en .

educor:studyPlan a rdf:Property ;
  rdfs:label "studyPlan"@en ;
  rdfs:comment "The list knowledge topics between the current topic and the learning goal"@en ;
  rdfs:domain educor:LearningPath ;
  rdfs:range rdf:PlainLiteral .

educor:consistsOfKnowledge a rdf:Property ;
  rdfs:label "consistsOfKnowledge"@en ;
  rdfs:domain educor:LearningPath ;
  rdfs:range educor:KnowledgeTopic .

educor:studyHistory a rdf:Property ;
  rdfs:label "studyHistory"@en ;
  rdfs:comment "The knowledge topics and their components a user has mastered in the past"@en ;
  rdfs:domain educor:LearningPath ;
  rdfs:range rdf:PlainLiteral .

educor:hasLearningGoal a rdf:Property ;
  rdfs:label "hasLearningGoal"@en ;
  rdfs:domain educor:LearningPath ;
  rdfs:range educor:LearningGoal .

<https://schema.org/audio> a rdfs:Class ;
  rdfs:label "Audio"@en ;
  rdfs:subClassOf educor:MultimediaData .

<https://w3id.org/ccso/ccso#LearningOutcome> a rdfs:Class ;
  rdfs:label "LearningOutcome"@en ;
  rdfs:comment "The learning outcomes and demonstrable skills or knowledge that will be acquired by a student as a result of the learning goal. It is found in text format."@en .

educor:Skill a rdfs:Class ;
  rdfs:label "Skill"@en ;
  rdfs:comment "A learned ability, which consist of a combination of Knowledge Topics. It is described in an abstract way by the Learning Outcomes. A skill can be tested by the accessing set of knowledge topics which define it."@en .

educor:requiresKnowledge a rdf:Property ;
  rdfs:label "requiresKnowledge"@en ;
  rdfs:domain educor:Skill ;
  rdfs:range educor:KnowledgeTopic .

educor:hasClassification a rdf:Property ;
  rdfs:label "hasClassification"@en ;
  rdfs:comment "The skill defines a classification of knowledge topics in order to be mastered"@en ;
  rdfs:domain educor:Skill ;
  rdfs:range educor:Classification .

educor:hasLearningOutcome a rdf:Property ;
  rdfs:label "hasLearningOutcome"@en ;
  rdfs:seeAlso <https://w3id.org/ccso/ccso#aimsToLO> ;
  rdfs:domain educor:KnowledgeTopic ;
  rdfs:range <https://w3id.org/ccso/ccso#LearningOutcome> .

educor:conceptUri a rdf:Property ;
  rdfs:label "conceptUri"@en ;
  rdfs:domain educor:Skill ;
  rdfs:range xsd:anyURI .

<http://www.w3.org/2004/02/skos/core#prefLabel> a rdf:Property ;
  rdfs:label "prefLabel"@en ;
  rdfs:domain educor:Skill ;
  rdfs:range xsd:string .

<http://purl.org/dc/elements/1.1/type> a rdf:Property ;
  rdfs:label "type"@en ;
  rdfs:domain educor:Answer ;
  rdfs:range <https://w3id.org/linkml/Any> .

educor:LearningPreference a rdfs:Class ;
  rdfs:label "LearningPreference"@en ;
  rdfs:comment "The learning preference of the user based on the learning styles theory"@en .

educor:storedIn a rdf:Property ;
  rdfs:label "storedIn"@en ;
  rdfs:domain educor:LearningPreference ;
  rdfs:range educor:UserProfile .

educor:MultimediaData a rdfs:Class ;
  rdfs:label "MultimediaData"@en ;
  rdfs:comment "The type of the data which is classified as video, image, audio, and text."@en .

educor:Test a rdfs:Class ;
  rdfs:label "Test"@en ;
  rdfs:comment "A test consists of one or many exercises, which have questions and answers. It is the way to evaluate student knowledge for a (set of) knowledge topic(s). It is linked to one or many skills and can have some educational requirements. The test can be consisted of exercises from different skills or domains"@en .

educor:testKnowledgeTopic a rdf:Property ;
  rdfs:label "testKnowledgeTopic"@en ;
  rdfs:domain educor:Test ;
  rdfs:range educor:KnowledgeTopic .

educor:Methodology a rdfs:Class ;
  rdfs:label "Methodology"@en ;
  rdfs:comment "A way to teach the theory and exercises. Different curricula define different theoretical and solving approaches for the same content, therefore define different methodologies"@en .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

educor:Answer a rdfs:Class ;
  rdfs:label "Answer"@en ;
  rdfs:comment "The input of a user in an exercise or test. It can have many different types, such as string, integer, or text."@en .

educor:UserProfile a rdfs:Class ;
  rdfs:label "UserProfile"@en ;
  rdfs:comment "The information related to the user profile"@en .

educor:definesLearningPath a rdf:Property ;
  rdfs:label "definesLearningPath"@en ;
  rdfs:domain educor:UserProfile ;
  rdfs:range educor:LearningPath .

educor:Classification a rdfs:Class ;
  rdfs:label "Classification"@en ;
  rdfs:comment """Adopted from the IEEE LOM Standard to separate the notions of Skills and Knowledge Topics.
A Skill creates a classification which consist of Knowledge Topics. Once mastering the Knowledge Topics you master the Skill as well."""@en .

educor:Exercise a rdfs:Class ;
  rdfs:label "Exercise"@en ;
  rdfs:comment "The exercise a user is asked to address. It may consist of one or multiple parts"@en ;
  rdfs:seeAlso <http://purl.org/dcx/lrmi-vocabs/educationalUse/assessment> .

educor:timeStamp a rdf:Property ;
  rdfs:label "timeStamp"@en ;
  rdfs:domain educor:Exercise ;
  rdfs:range xsd:dateTimeStamp .

educor:hasQuestion a rdf:Property ;
  rdfs:label "hasQuestion"@en ;
  rdfs:domain educor:Exercise ;
  rdfs:range educor:Question .

educor:PsycologicalParameter a rdfs:Class ;
  rdfs:label "PsycologicalParameter"@en ;
  rdfs:comment "The psycological parameters are computed by the student's static and dynamic psychological indicators, such as the current mood of the learner (dynamic), the personality type (static)."@en .

educor:staticIndicator a rdf:Property ;
  rdfs:label "staticIndicator"@en ;
  rdfs:comment "Represents a Psychological Parameter that does not rapidly change with time."@en ;
  rdfs:domain educor:PsycologicalParameter ;
  rdfs:range <https://w3id.org/linkml/Any> .

educor:dynamicIndicator a rdf:Property ;
  rdfs:label "dynamicIndicator"@en ;
  rdfs:comment "Represents a Psychological Parameter that changes continuously with time."@en ;
  rdfs:domain educor:PsycologicalParameter ;
  rdfs:range <https://w3id.org/linkml/Any> .

educor:psychologicalConstruct a rdf:Property ;
  rdfs:label "psychologicalConstruct"@en ;
  rdfs:comment "A high-level representation of the indication of Static Indicator and Dynamic Indicator classes."@en ;
  rdfs:domain educor:PsycologicalParameter ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://schema.org/image> a rdfs:Class ;
  rdfs:label "Image"@en ;
  rdfs:subClassOf educor:MultimediaData .

educor:Question a rdfs:Class ;
  rdfs:label "Question"@en ;
  rdfs:comment "Part of an exercise. A test has one or many exercises and therefore questions. An exercise can have multiple questions too"@en .

educor:hasAnswer a rdf:Property ;
  rdfs:label "hasAnswer"@en ;
  rdfs:domain educor:Question ;
  rdfs:range educor:Answer .

educor:score a rdf:Property ;
  rdfs:label "score"@en ;
  rdfs:comment "The score the user received for an answered question"@en ;
  rdfs:domain educor:Question ;
  rdfs:range xsd:double .

educor:Taxon a rdfs:Class ;
  rdfs:label "Taxon"@en ;
  rdfs:comment "The taxonomical entries that create the taxonomy. They are  KnowledgeTopics."@en ;
  rdfs:subClassOf educor:TaxonPath .

<http://purl.org/dc/elements/1.1/source> a rdf:Property ;
  rdfs:label "source"@en ;
  rdfs:domain educor:TaxonPath ;
  rdfs:range rdf:PlainLiteral .

<https://schema.org/identifier> a rdf:Property ;
  rdfs:label "identifier"@en ;
  rdfs:domain educor:Taxon ;
  rdfs:range rdf:PlainLiteral .

educor:entry a rdf:Property ;
  rdfs:label "entry"@en ;
  rdfs:domain educor:Taxon ;
  rdfs:range rdf:PlainLiteral .

educor:Recommendation a rdfs:Class ;
  rdfs:label "Recommendation"@en ;
  rdfs:comment "The output of the recommendation system algorithm. The system that reads user profile, content information, ratings and any available rules, in order to generate a meaningful recommendation."@en .

educor:feedback a rdf:Property ;
  rdfs:label "feedback"@en ;
  rdfs:comment "The user's feedback on the recommendation they receive"@en ;
  rdfs:domain educor:Recommendation ;
  rdfs:range xsd:string .

educor:generatedFrom a rdf:Property ;
  rdfs:label "generatedFrom"@en ;
  rdfs:domain educor:Recommendation ;
  rdfs:range educor:UserProfile .

educor:requirement a rdf:Property ;
  rdfs:label "requirement"@en ;
  rdfs:comment "Represents any required process in the generation of a recommendation."@en ;
  rdfs:domain educor:Recommendation ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://schema.org/text> a rdfs:Class ;
  rdfs:label "Text"@en ;
  rdfs:subClassOf educor:MultimediaData .

educor:KnowledgeTopic a rdfs:Class ;
  rdfs:label "KnowledgeTopic"@en ;
  rdfs:comment "A single node representing a learning module based on the domain ontology. It contains all the learning material for the specific learning module."@en ;
  rdfs:seeAlso <https://w3id.org/ccso/ccso#Topic> .

educor:hasExercise a rdf:Property ;
  rdfs:label "hasExercise"@en ;
  rdfs:domain educor:KnowledgeTopic ;
  rdfs:range educor:Exercise .

educor:hasMethodology a rdf:Property ;
  rdfs:label "hasMethodology"@en ;
  rdfs:domain educor:KnowledgeTopic ;
  rdfs:range educor:Methodology .

educor:hasTheory a rdf:Property ;
  rdfs:label "hasTheory"@en ;
  rdfs:domain educor:KnowledgeTopic ;
  rdfs:range educor:Theory .

educor:hasEducationalResource a rdf:Property ;
  rdfs:label "hasEducationalResource"@en ;
  rdfs:domain educor:KnowledgeTopic ;
  rdfs:range educor:EducationalResource .

educor:QualityIndicator a rdfs:Class ;
  rdfs:label "QualityIndicator"@en ;
  rdfs:comment "The quality indicator of multimedia, metadata, overall etc"@en .

educor:TaxonPath a rdfs:Class ;
  rdfs:label "TaxonPath"@en ;
  rdfs:comment "A classification consists of one or multiple Taxonomy paths. These represent the ways of mastering a skill. It is a list of ordered Knowledge Topics."@en ;
  rdfs:subClassOf educor:Classification .

educor:Accessibility a rdfs:Class ;
  rdfs:label "Accessibility"@en ;
  rdfs:comment "It describes the user access and content accessibility rights. It can be used as a plugin point to connect with other ontologies."@en ;
  rdfs:seeAlso <https://schema.org/accessibilitySummary> .

educor:Theory a rdfs:Class ;
  rdfs:label "Theory"@en ;
  rdfs:comment "The theoretical part of the knowledge topic"@en .

educor:UserLogs a rdfs:Class ;
  rdfs:label "UserLogs"@en ;
  rdfs:comment "The user's history activity in the system"@en .

<https://schema.org/video> a rdfs:Class ;
  rdfs:label "Video"@en ;
  rdfs:subClassOf educor:MultimediaData .

educor:LearningGoal a rdfs:Class ;
  rdfs:label "LearningGoal"@en ;
  rdfs:comment "The reach point of a learning path. The completion of a set of knowledge topics which can lead to mastering a skill. The learning goal in our design can be a Skill or a Knowledge Topic"@en .

educor:AcademicParameter a rdfs:Class ;
  rdfs:label "AcademicParameter"@en ;
  rdfs:comment "It contains the quantitative parameters regarding a user performance"@en .

educor:academicIndicator a rdf:Property ;
  rdfs:label "academicIndicator"@en ;
  rdfs:comment "Represents a measurable metric of the academic performance."@en ;
  rdfs:domain educor:AcademicParameter ;
  rdfs:range <https://w3id.org/linkml/Any> .

educor:User a rdfs:Class ;
  rdfs:label "User"@en ;
  rdfs:comment "A user in the system. It represents the learner in this context, as in contract to the teacher, mentor, etc."@en ;
  rdfs:seeAlso <http://xmlns.com/foaf/0.1/Person> .

<https://schema.org/name> a rdf:Property ;
  rdfs:label "name"@en ;
  rdfs:domain educor:User ;
  rdfs:range xsd:string .

<http://schema.org/email> a rdf:Property ;
  rdfs:label "email"@en ;
  rdfs:domain educor:User ;
  rdfs:range rdf:PlainLiteral .

educor:givesAnswer a rdf:Property ;
  rdfs:label "givesAnswer"@en ;
  rdfs:domain educor:User ;
  rdfs:range educor:Answer .

educor:generatesLogs a rdf:Property ;
  rdfs:label "generatesLogs"@en ;
  rdfs:domain educor:User ;
  rdfs:range educor:UserLogs .

educor:solves a rdf:Property ;
  rdfs:label "solves"@en ;
  rdfs:domain educor:User ;
  rdfs:range educor:Test .

educor:hasProfile a rdf:Property ;
  rdfs:label "hasProfile"@en ;
  rdfs:domain educor:User ;
  rdfs:range educor:UserProfile .

educor:charachterString a rdfs:Datatype ;
  rdfs:label "charachterString"@en .

educor:stri a rdfs:Datatype ;
  rdfs:label "stri"@en .
