@prefix asn: <http://purl.org/ASN/schema/core/> .
@prefix course_category: <https://w3id.org/kmath/course_category/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix difficulty_band: <https://w3id.org/kmath/difficulty_band/> .
@prefix figure_kind: <https://w3id.org/kmath/figure_kind/> .
@prefix math: <https://w3id.org/kmath/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pav: <http://purl.org/pav/> .
@prefix problem_kind: <https://w3id.org/kmath/problem_kind/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix review_status: <https://w3id.org/kmath/review_status/> .
@prefix schema: <http://schema.org/> .
@prefix school_level: <https://w3id.org/kmath/school_level/> .
@prefix section_level: <https://w3id.org/kmath/section_level/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix solution_kind: <https://w3id.org/kmath/solution_kind/> .
@prefix source_kind: <https://w3id.org/kmath/source_kind/> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

dcterms:creator a owl:AnnotationProperty .

dcterms:description a owl:AnnotationProperty .

dcterms:hasPart a owl:AnnotationProperty .

dcterms:isReplacedBy a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

dcterms:rights a owl:AnnotationProperty .

dcterms:title a owl:AnnotationProperty .

pav:version a owl:AnnotationProperty .

void:Dataset a owl:Class .

void:vocabulary a owl:AnnotationProperty .

skos:ConceptScheme a owl:Class .

skos:altLabel a owl:AnnotationProperty .

skos:broadMatch a owl:AnnotationProperty .

skos:broader a owl:ObjectProperty .

skos:closeMatch a owl:AnnotationProperty .

skos:definition a owl:AnnotationProperty .

skos:editorialNote a owl:AnnotationProperty .

skos:exactMatch a owl:AnnotationProperty .

skos:example a owl:AnnotationProperty .

skos:hasTopConcept a owl:ObjectProperty ;
    owl:inverseOf skos:topConceptOf .

skos:inScheme a owl:ObjectProperty .

skos:narrowMatch a owl:AnnotationProperty .

skos:notation a owl:AnnotationProperty .

skos:prefLabel a owl:AnnotationProperty .

skos:relatedMatch a owl:AnnotationProperty .

math:achievementStandard a owl:ObjectProperty ;
    rdfs:label "achievement_standards"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:AchievementStandard ;
    skos:closeMatch schema:educationalAlignment .

math:applicationConsideration a owl:DatatypeProperty ;
    rdfs:label "application_considerations"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    skos:definition "Official considerations for applying achievement standards in a curriculum unit."@en ;
    math:valueLanguage "ko" .

math:coversConcept a owl:ObjectProperty ;
    rdfs:label "covered_concepts"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept ;
    skos:definition "Concepts covered by a textbook section. Concept.source_sections must be a subset of this inverse coverage relation; broad chapter sections may cover concepts without being listed as direct source_sections on every concept."@en .

math:coversProblemType a owl:ObjectProperty ;
    rdfs:label "covered_problem_types"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:ProblemType ;
    skos:definition "Problem types that a section explains or practises, such as the exercise set of a reference-book lesson or a workbook theme."@en .

math:derivedAtBuild a owl:AnnotationProperty ;
    rdfs:label "derived at build"@en ;
    skos:definition "Marks a property whose values are computed by the build instead of being authored in YAML."@en .

math:hasFigure a owl:ObjectProperty ;
    rdfs:label "figures"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:ProblemFigure .

math:hasSolution a owl:ObjectProperty ;
    rdfs:label "solutions"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:TextbookSolution .

math:learningObjective a owl:DatatypeProperty ;
    rdfs:label "learning_objectives"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    math:valueLanguage "ko" .

math:relatedConcept a owl:ObjectProperty ;
    rdfs:label "related_concepts"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept .

math:relatedSkill a owl:ObjectProperty ;
    rdfs:label "related_skills"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Skill .

math:requires a owl:AsymmetricProperty,
        owl:IrreflexiveProperty,
        owl:ObjectProperty ;
    rdfs:label "prerequisites"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept ;
    rdfs:subPropertyOf math:requiresTransitively ;
    skos:definition "Direct prerequisite concepts: concepts that must be understood before this concept can be introduced. Not used for taxonomy (see broader)."@en .

math:requiresConcept a owl:ObjectProperty ;
    rdfs:label "required_concepts"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept .

math:standardExplanation a owl:DatatypeProperty ;
    rdfs:label "standard_explanations"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    skos:definition "Official explanatory notes for an achievement standard."@en ;
    math:valueLanguage "ko" .

math:usesSkill a owl:ObjectProperty ;
    rdfs:label "uses_skills"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Skill ;
    skos:definition "Skills exercised while carrying out the solution pattern."@en .

math:usesSolutionPattern a owl:ObjectProperty ;
    rdfs:label "solution_patterns"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:SolutionPattern .

math:valueLanguage a owl:AnnotationProperty ;
    rdfs:label "value language"@en ;
    skos:definition "Language tag (BCP 47) that the build attaches to literal values of this property."@en .

dcterms:source a owl:AnnotationProperty .

skos:Concept a owl:Class .

skos:topConceptOf a owl:ObjectProperty .

math:aboutConcept a owl:ObjectProperty ;
    rdfs:label "related_concept"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept .

math:altText a owl:DatatypeProperty ;
    rdfs:label "alt_text"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    math:valueLanguage "ko" .

math:answerText a owl:DatatypeProperty ;
    rdfs:label "answer_text"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string .

math:appliesTo a owl:ObjectProperty ;
    rdfs:label "applies_to"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:ProblemType .

math:assetPath a owl:DatatypeProperty ;
    rdfs:label "asset_path"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string .

math:bbox a owl:DatatypeProperty ;
    rdfs:label "bbox"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string ;
    skos:definition "PDF-coordinate crop box encoded as x,y,width,height."@en .

math:bodyText a owl:DatatypeProperty ;
    rdfs:label "body_text"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    skos:closeMatch schema:text ;
    math:valueLanguage "ko" .

math:canonicalUnit a owl:ObjectProperty ;
    rdfs:label "canonical_unit"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:CurriculumUnit .

math:caption a owl:DatatypeProperty ;
    rdfs:label "caption"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    skos:exactMatch schema:caption ;
    math:valueLanguage "ko" .

math:correctionHint a owl:DatatypeProperty ;
    rdfs:label "correction_hint"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    math:valueLanguage "ko" .

math:courseCategory a owl:ObjectProperty ;
    rdfs:label "course_category"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:CourseCategory .

course_category:career_elective a owl:NamedIndividual,
        math:CourseCategory ;
    rdfs:label "career_elective"@en,
        "진로 선택"@ko ;
    skos:definition "High school career elective subject."@en ;
    skos:notation "career_elective" ;
    skos:prefLabel "진로 선택"@ko .

course_category:common_curriculum a owl:NamedIndividual,
        math:CourseCategory ;
    rdfs:label "common_curriculum"@en,
        "공통 교육과정"@ko ;
    skos:definition "Common curriculum shared by all students (up to middle school)."@en ;
    skos:notation "common_curriculum" ;
    skos:prefLabel "공통 교육과정"@ko .

course_category:common_subject a owl:NamedIndividual,
        math:CourseCategory ;
    rdfs:label "common_subject"@en,
        "공통 과목"@ko ;
    skos:definition "High school common subject."@en ;
    skos:notation "common_subject" ;
    skos:prefLabel "공통 과목"@ko .

course_category:convergence_elective a owl:NamedIndividual,
        math:CourseCategory ;
    rdfs:label "convergence_elective"@en,
        "융합 선택"@ko ;
    skos:definition "High school convergence elective subject."@en ;
    skos:notation "convergence_elective" ;
    skos:prefLabel "융합 선택"@ko .

course_category:general_elective a owl:NamedIndividual,
        math:CourseCategory ;
    rdfs:label "general_elective"@en,
        "일반 선택"@ko ;
    skos:definition "High school general elective subject."@en ;
    skos:notation "general_elective" ;
    skos:prefLabel "일반 선택"@ko .

math:curriculumFramework a owl:ObjectProperty ;
    rdfs:label "framework"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:CurriculumFramework ;
    skos:definition "The curriculum framework revision the course belongs to."@en .

math:difficultyBand a owl:ObjectProperty ;
    rdfs:label "difficulty_band"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:DifficultyBand .

difficulty_band:advanced a owl:NamedIndividual,
        math:DifficultyBand ;
    rdfs:label "advanced"@en,
        "심화"@ko ;
    skos:definition "Advanced difficulty"@en ;
    skos:notation "advanced" ;
    skos:prefLabel "심화"@ko .

difficulty_band:basic a owl:NamedIndividual,
        math:DifficultyBand ;
    rdfs:label "basic"@en,
        "기본"@ko ;
    skos:definition "Basic difficulty"@en ;
    skos:notation "basic" ;
    skos:prefLabel "기본"@ko .

difficulty_band:intermediate a owl:NamedIndividual,
        math:DifficultyBand ;
    rdfs:label "intermediate"@en,
        "중급"@ko ;
    skos:definition "Intermediate difficulty"@en ;
    skos:notation "intermediate" ;
    skos:prefLabel "중급"@ko .

math:explanationText a owl:DatatypeProperty ;
    rdfs:label "explanation_text"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    math:valueLanguage "ko" .

math:extractionConfidence a owl:DatatypeProperty ;
    rdfs:label "extraction_confidence"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:float .

math:figureKind a owl:ObjectProperty ;
    rdfs:label "figure_kind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:FigureKind .

figure_kind:diagram a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "diagram"@en,
        "도식"@ko ;
    skos:definition "Diagram."@en ;
    skos:notation "diagram" ;
    skos:prefLabel "도식"@ko .

figure_kind:geometry a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "geometry"@en,
        "도형"@ko ;
    skos:definition "Geometry figure."@en ;
    skos:notation "geometry" ;
    skos:prefLabel "도형"@ko .

figure_kind:graph a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "graph"@en,
        "그래프"@ko ;
    skos:definition "Graph or coordinate-plane figure."@en ;
    skos:notation "graph" ;
    skos:prefLabel "그래프"@ko .

figure_kind:mixed a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "mixed"@en,
        "복합"@ko ;
    skos:definition "Multiple visual types in one crop."@en ;
    skos:notation "mixed" ;
    skos:prefLabel "복합"@ko .

figure_kind:other a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "other"@en,
        "기타"@ko ;
    skos:definition "Other visual material."@en ;
    skos:notation "other" ;
    skos:prefLabel "기타"@ko .

figure_kind:photo a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "photo"@en,
        "사진"@ko ;
    skos:definition "Photo or realistic image."@en ;
    skos:notation "photo" ;
    skos:prefLabel "사진"@ko .

figure_kind:table a owl:NamedIndividual,
        math:FigureKind ;
    rdfs:label "table"@en,
        "표"@ko ;
    skos:definition "Table."@en ;
    skos:notation "table" ;
    skos:prefLabel "표"@ko .

math:fileName a owl:DatatypeProperty ;
    rdfs:label "file_name"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string .

math:hasStep a owl:ObjectProperty ;
    rdfs:label "steps"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:SolutionStep ;
    skos:definition "Ordered steps of a solution pattern."@en .

math:id a owl:DatatypeProperty ;
    rdfs:label "id"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:anyURI .

math:introducedIn a owl:ObjectProperty ;
    rdfs:label "introduced_in"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Course ;
    rdfs:subPropertyOf math:taughtIn ;
    skos:definition "The course in which the concept is first formally introduced in the curriculum framework. Declared a sub-property of taught_in in src/ontology/axioms.ttl (not via is_a, which would make it multivalued)."@en .

math:issuedYear a owl:DatatypeProperty ;
    rdfs:label "issued_year"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:integer ;
    skos:definition "Year the curriculum framework was issued."@en .

math:mappingConfidence a owl:DatatypeProperty ;
    rdfs:label "mapping_confidence"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:float .

math:page a owl:DatatypeProperty ;
    rdfs:label "page"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:integer .

math:pageCount a owl:DatatypeProperty ;
    rdfs:label "page_count"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:integer ;
    skos:exactMatch schema:numberOfPages .

math:parentSection a owl:ObjectProperty ;
    rdfs:label "parent_section"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:TextbookSection .

math:parentUnit a owl:ObjectProperty ;
    rdfs:label "parent_unit"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:CurriculumUnit .

math:partOfCourse a owl:ObjectProperty ;
    rdfs:label "part_of_course"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Course .

math:printedPageOffset a owl:DatatypeProperty ;
    rdfs:label "printed_page_offset"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:integer ;
    skos:definition "Printed page number minus file page number, when it is constant across the body of the source (for example 10 when file page 4 is printed as page 14). Section pages are file pages; add this offset to show printed pages."@en .

math:problem a owl:ObjectProperty ;
    rdfs:label "problem"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:TextbookProblem .

math:problemKind a owl:ObjectProperty ;
    rdfs:label "problem_kind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:ProblemKind .

math:problemNumber a owl:DatatypeProperty ;
    rdfs:label "problem_number"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string .

math:problemType a owl:ObjectProperty ;
    rdfs:label "problem_type"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:ProblemType .

problem_kind:appendix a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "appendix"@en,
        "부록"@ko ;
    skos:definition "Appendix problem."@en ;
    skos:notation "appendix" ;
    skos:prefLabel "부록"@ko .

problem_kind:assessment a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "assessment"@en,
        "평가"@ko ;
    skos:definition "Assessment or evaluation problem."@en ;
    skos:notation "assessment" ;
    skos:prefLabel "평가"@ko .

problem_kind:example a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "example"@en,
        "예제"@ko ;
    skos:definition "Worked example or textbook example problem."@en ;
    skos:notation "example" ;
    skos:prefLabel "예제"@ko .

problem_kind:exercise a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "exercise"@en,
        "문제"@ko ;
    skos:definition "In-body exercise or practice problem."@en ;
    skos:notation "exercise" ;
    skos:prefLabel "문제"@ko .

problem_kind:exploration a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "exploration"@en,
        "탐구"@ko ;
    skos:definition "Inquiry, exploration, or opening activity."@en ;
    skos:notation "exploration" ;
    skos:prefLabel "탐구"@ko .

problem_kind:final_review a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "final_review"@en,
        "종합 평가"@ko ;
    skos:definition "End-of-book or final review problem."@en ;
    skos:notation "final_review" ;
    skos:prefLabel "종합 평가"@ko .

problem_kind:other a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "other"@en,
        "기타"@ko ;
    skos:definition "Other textbook problem."@en ;
    skos:notation "other" ;
    skos:prefLabel "기타"@ko .

problem_kind:self_check a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "self_check"@en,
        "스스로 확인"@ko ;
    skos:definition "Self-check or self-confirmation problem."@en ;
    skos:notation "self_check" ;
    skos:prefLabel "스스로 확인"@ko .

problem_kind:unit_review a owl:NamedIndividual,
        math:ProblemKind ;
    rdfs:label "unit_review"@en,
        "단원 마무리"@ko ;
    skos:definition "Unit-level review problem."@en ;
    skos:notation "unit_review" ;
    skos:prefLabel "단원 마무리"@ko .

math:requiresSkill a owl:ObjectProperty ;
    rdfs:label "required_skills"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Skill .

math:requiresTransitively a owl:ObjectProperty,
        owl:TransitiveProperty ;
    rdfs:label "requires_transitively"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept ;
    skos:definition "Transitive closure of prerequisites. Derived at build time; not authored in YAML."@en ;
    math:derivedAtBuild "true" .

review_status:auto_extracted a owl:NamedIndividual,
        math:ReviewStatus ;
    rdfs:label "auto_extracted"@en,
        "자동 추출"@ko ;
    skos:definition "Automatically extracted and not yet reviewed."@en ;
    skos:notation "auto_extracted" ;
    skos:prefLabel "자동 추출"@ko .

review_status:needs_review a owl:NamedIndividual,
        math:ReviewStatus ;
    rdfs:label "needs_review"@en,
        "검토 필요"@ko ;
    skos:definition "Needs human review."@en ;
    skos:notation "needs_review" ;
    skos:prefLabel "검토 필요"@ko .

review_status:reviewed a owl:NamedIndividual,
        math:ReviewStatus ;
    rdfs:label "reviewed"@en,
        "검토 완료"@ko ;
    skos:definition "Human reviewed."@en ;
    skos:notation "reviewed" ;
    skos:prefLabel "검토 완료"@ko .

math:schoolLevel a owl:ObjectProperty ;
    rdfs:label "school_level"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:SchoolLevel .

school_level:high_school a owl:NamedIndividual,
        math:SchoolLevel ;
    rdfs:label "high_school"@en,
        "고등학교"@ko ;
    skos:definition "High school (grades 10-12)."@en ;
    skos:notation "high_school" ;
    skos:prefLabel "고등학교"@ko .

school_level:middle_school a owl:NamedIndividual,
        math:SchoolLevel ;
    rdfs:label "middle_school"@en,
        "중학교"@ko ;
    skos:definition "Middle school (grades 7-9)."@en ;
    skos:notation "middle_school" ;
    skos:prefLabel "중학교"@ko .

math:sectionLevel a owl:ObjectProperty ;
    rdfs:label "section_level"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:SectionLevel .

section_level:activity a owl:NamedIndividual,
        math:SectionLevel ;
    rdfs:label "activity"@en,
        "활동"@ko ;
    skos:definition "Exploration, project, technology, or enrichment section."@en ;
    skos:notation "activity" ;
    skos:prefLabel "활동"@ko .

section_level:assessment a owl:NamedIndividual,
        math:SectionLevel ;
    rdfs:label "assessment"@en,
        "평가"@ko ;
    skos:definition "Review, checkpoint, or assessment section."@en ;
    skos:notation "assessment" ;
    skos:prefLabel "평가"@ko .

section_level:chapter a owl:NamedIndividual,
        math:SectionLevel ;
    rdfs:label "chapter"@en,
        "대단원"@ko ;
    skos:definition "Top-level textbook chapter."@en ;
    skos:notation "chapter" ;
    skos:prefLabel "대단원"@ko .

section_level:lesson a owl:NamedIndividual,
        math:SectionLevel ;
    rdfs:label "lesson"@en,
        "소단원"@ko ;
    skos:definition "Lesson or section within a unit."@en ;
    skos:notation "lesson" ;
    skos:prefLabel "소단원"@ko .

section_level:unit a owl:NamedIndividual,
        math:SectionLevel ;
    rdfs:label "unit"@en,
        "중단원"@ko ;
    skos:definition "Mid-level textbook unit."@en ;
    skos:notation "unit" ;
    skos:prefLabel "중단원"@ko .

math:solutionKind a owl:ObjectProperty ;
    rdfs:label "solution_kind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:SolutionKind .

solution_kind:answer_only a owl:NamedIndividual,
        math:SolutionKind ;
    rdfs:label "answer_only"@en,
        "정답"@ko ;
    skos:definition "Short answer only."@en ;
    skos:notation "answer_only" ;
    skos:prefLabel "정답"@ko .

solution_kind:hint a owl:NamedIndividual,
        math:SolutionKind ;
    rdfs:label "hint"@en,
        "힌트"@ko ;
    skos:definition "Hint."@en ;
    skos:notation "hint" ;
    skos:prefLabel "힌트"@ko .

solution_kind:other a owl:NamedIndividual,
        math:SolutionKind ;
    rdfs:label "other"@en,
        "기타"@ko ;
    skos:definition "Other solution material."@en ;
    skos:notation "other" ;
    skos:prefLabel "기타"@ko .

solution_kind:rubric a owl:NamedIndividual,
        math:SolutionKind ;
    rdfs:label "rubric"@en,
        "채점 기준"@ko ;
    skos:definition "Scoring rubric."@en ;
    skos:notation "rubric" ;
    skos:prefLabel "채점 기준"@ko .

solution_kind:worked_solution a owl:NamedIndividual,
        math:SolutionKind ;
    rdfs:label "worked_solution"@en,
        "풀이"@ko ;
    skos:definition "Worked solution or explanation."@en ;
    skos:notation "worked_solution" ;
    skos:prefLabel "풀이"@ko .

math:sourceDocument a owl:ObjectProperty ;
    rdfs:label "source_document"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:TextbookSource ;
    skos:definition "The official document that defines the curriculum framework."@en .

math:sourceKind a owl:ObjectProperty ;
    rdfs:label "source_kind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:SourceKind ;
    skos:closeMatch schema:genre .

math:sourceSection a owl:ObjectProperty ;
    rdfs:label "source_section"@en,
        "source_sections"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:TextbookSection ;
    skos:closeMatch dcterms:source .

source_kind:curriculum_document a owl:NamedIndividual,
        math:SourceKind ;
    rdfs:label "curriculum_document"@en,
        "교육과정 문서"@ko ;
    skos:definition "Official curriculum document, such as the national curriculum notice."@en ;
    skos:notation "curriculum_document" ;
    skos:prefLabel "교육과정 문서"@ko .

source_kind:reference_book a owl:NamedIndividual,
        math:SourceKind ;
    rdfs:label "reference_book"@en,
        "개념서"@ko ;
    skos:definition "Commercial reference book that explains concepts with worked examples and exercises."@en ;
    skos:notation "reference_book" ;
    skos:prefLabel "개념서"@ko .

source_kind:textbook a owl:NamedIndividual,
        math:SourceKind ;
    rdfs:label "textbook"@en,
        "교과서"@ko ;
    skos:definition "Authorized school textbook."@en ;
    skos:notation "textbook" ;
    skos:prefLabel "교과서"@ko .

source_kind:workbook a owl:NamedIndividual,
        math:SourceKind ;
    rdfs:label "workbook"@en,
        "문제집"@ko ;
    skos:definition "Commercial workbook organized as graded problem sets."@en ;
    skos:notation "workbook" ;
    skos:prefLabel "문제집"@ko .

math:standardCode a owl:DatatypeProperty ;
    rdfs:label "standard_code"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string ;
    skos:closeMatch dcterms:identifier ;
    skos:definition "Official curriculum standard code (e.g. 10공수1-02-03)."@en .

math:stepText a owl:DatatypeProperty ;
    rdfs:label "step_text"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    skos:definition "What the learner does in this step."@en ;
    math:valueLanguage "ko" .

math:targets a owl:ObjectProperty ;
    rdfs:label "target_concepts"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept ;
    skos:relatedMatch schema:assesses .

math:taughtIn a owl:ObjectProperty ;
    rdfs:label "taught_in"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Course ;
    owl:propertyChainAxiom ( [ owl:inverseOf math:covers ] math:belongsToUnit math:partOf ) ;
    skos:definition "Courses in which the concept is taught. Derived at build time from introduced_in and from achievement standards that cover the concept (see the property chain in src/ontology/axioms.ttl); not authored in YAML."@en ;
    math:derivedAtBuild "true" .

math:textExtractionNote a owl:DatatypeProperty ;
    rdfs:label "text_extraction_note"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range rdf:langString ;
    math:valueLanguage "ko" .

math:belongsToUnit a owl:ObjectProperty ;
    rdfs:label "curriculum_unit"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:CurriculumUnit .

math:covers a owl:ObjectProperty ;
    rdfs:label "covers_concepts"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Concept ;
    skos:relatedMatch schema:teaches .

math:partOf a owl:ObjectProperty ;
    rdfs:label "part_of"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:Course ;
    skos:closeMatch dcterms:isPartOf ;
    skos:definition "The course this curriculum unit is part of."@en .

math:publisher a owl:DatatypeProperty ;
    rdfs:label "publisher"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:string ;
    skos:closeMatch dcterms:publisher .

math:stepOrder a owl:DatatypeProperty ;
    rdfs:label "step_order"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range [ a rdfs:Datatype ;
            owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ;
                        owl:onDatatype xsd:integer ;
                        owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ;
    skos:definition "1-based position of the step within its solution pattern."@en .

math:textbook a owl:ObjectProperty ;
    rdfs:label "textbook"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:TextbookSource ;
    skos:closeMatch prov:wasDerivedFrom .

math:Misconception a owl:Class ;
    rdfs:label "Misconception"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:correctionHint ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:aboutConcept ],
        math:NamedThing ;
    skos:definition "A common student misconception related to a concept."@en ;
    skos:exactMatch math:Misconception .

math:SchoolLevel a owl:Class ;
    rdfs:label "SchoolLevel"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( school_level:middle_school school_level:high_school ) ;
    skos:definition "School level at which a course is taught."@en .

math:SolutionStep a owl:Class ;
    rdfs:label "SolutionStep"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:stepText ],
        [ a owl:Restriction ;
            owl:allValuesFrom [ a rdfs:Datatype ;
                    owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ;
                                owl:onDatatype xsd:integer ;
                                owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ;
            owl:onProperty math:stepOrder ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:stepOrder ] ;
    skos:definition "One ordered step of a solution pattern."@en ;
    skos:exactMatch math:SolutionStep .

math:pageEnd a owl:DatatypeProperty ;
    rdfs:label "page_end"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:integer ;
    skos:exactMatch schema:pageEnd .

math:pageStart a owl:DatatypeProperty ;
    rdfs:label "page_start"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range xsd:integer ;
    skos:definition "1-based page number in the source file (the PDF or its OCR output), not the number printed on the page. A source's text_extraction_note gives the offset to printed page numbers when it is known."@en ;
    skos:exactMatch schema:pageStart .

math:reviewStatus a owl:ObjectProperty ;
    rdfs:label "review_status"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:range math:ReviewStatus .

math:AchievementStandard a owl:Class ;
    rdfs:label "AchievementStandard"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:belongsToUnit ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:standardCode ],
        [ a owl:Restriction ;
            owl:minCardinality 1 ;
            owl:onProperty math:covers ],
        math:NamedThing ;
    skos:closeMatch asn:Statement ;
    skos:definition "An official achievement standard from the national curriculum."@en ;
    skos:exactMatch math:AchievementStandard .

math:CurriculumFramework a owl:Class ;
    rdfs:label "CurriculumFramework"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:issuedYear ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:sourceDocument ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:publisher ],
        math:NamedThing ;
    skos:definition "A national curriculum framework revision (e.g. the 2022 revised mathematics curriculum) that courses belong to."@en ;
    skos:exactMatch math:CurriculumFramework .

math:DifficultyBand a owl:Class ;
    rdfs:label "DifficultyBand"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( difficulty_band:basic difficulty_band:intermediate difficulty_band:advanced ) ;
    skos:definition "Difficulty of a problem type."@en .

math:ProblemFigure a owl:Class ;
    rdfs:label "ProblemFigure"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:figureKind ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:caption ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:assetPath ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:bbox ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:altText ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:page ],
        math:NamedThing ;
    skos:closeMatch schema:ImageObject ;
    skos:definition "A cropped figure, graph, table, or diagram attached to a textbook problem or solution."@en ;
    skos:exactMatch math:ProblemFigure .

math:ReviewStatus a owl:Class ;
    rdfs:label "ReviewStatus"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( review_status:auto_extracted review_status:needs_review review_status:reviewed ) ;
    skos:definition "Curation status of extracted or restructured content."@en .

math:SolutionPattern a owl:Class ;
    rdfs:label "SolutionPattern"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:minCardinality 1 ;
            owl:onProperty math:appliesTo ],
        [ a owl:Restriction ;
            owl:minCardinality 1 ;
            owl:onProperty math:hasStep ],
        math:NamedThing ;
    skos:definition "A reusable, ordered solution strategy applicable to problem types. A pattern is composed of ordered steps and may use one or more skills."@en ;
    skos:exactMatch math:SolutionPattern .

math:TextbookProblem a owl:Class ;
    rdfs:label "TextbookProblem"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:bodyText ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:extractionConfidence ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:sourceSection ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:problemKind ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:problemNumber ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:pageStart ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:textbook ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:problemType ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:reviewStatus ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:pageEnd ],
        math:NamedThing ;
    skos:closeMatch schema:Question ;
    skos:definition "A concrete problem instance extracted from a textbook. Problem text is third-party content; see the rights of its TextbookSource."@en ;
    skos:exactMatch math:TextbookProblem .

math:TextbookSolution a owl:Class ;
    rdfs:label "TextbookSolution"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:reviewStatus ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:problem ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:answerText ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:pageEnd ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:mappingConfidence ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:pageStart ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:solutionKind ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:explanationText ],
        math:NamedThing ;
    skos:closeMatch schema:Answer ;
    skos:definition "An answer or worked solution extracted from a textbook answer section."@en ;
    skos:exactMatch math:TextbookSolution .

math:SourceKind a owl:Class ;
    rdfs:label "SourceKind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( source_kind:curriculum_document source_kind:textbook source_kind:reference_book source_kind:workbook ) ;
    skos:definition "Kind of evidence source."@en .

math:TextbookSection a owl:Class ;
    rdfs:label "TextbookSection"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:partOfCourse ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:canonicalUnit ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:textbook ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:pageStart ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:pageEnd ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:sectionLevel ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:parentSection ],
        math:NamedThing ;
    skos:closeMatch schema:Chapter ;
    skos:definition "A publisher-specific chapter, unit, lesson, activity, or assessment section."@en ;
    skos:exactMatch math:TextbookSection .

math:TextbookSource a owl:Class ;
    rdfs:label "TextbookSource"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:fileName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:printedPageOffset ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:pageCount ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:textExtractionNote ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:sourceKind ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:publisher ],
        math:NamedThing ;
    skos:closeMatch schema:Book ;
    skos:definition "A curriculum document, textbook, reference book, or workbook used as evidence for the ontology. source_kind says which."@en ;
    skos:exactMatch math:TextbookSource .

math:CourseCategory a owl:Class ;
    rdfs:label "CourseCategory"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( course_category:common_curriculum course_category:common_subject course_category:general_elective course_category:career_elective course_category:convergence_elective ) ;
    skos:definition "Course category in the Korean national curriculum."@en .

math:CurriculumUnit a owl:Class ;
    rdfs:label "CurriculumUnit"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:parentUnit ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:partOf ],
        math:NamedThing ;
    skos:definition "A curriculum unit within a course."@en ;
    skos:exactMatch math:CurriculumUnit .

math:ProblemType a owl:Class ;
    rdfs:label "ProblemType"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:minCardinality 1 ;
            owl:onProperty math:targets ],
        [ a owl:Restriction ;
            owl:minCardinality 1 ;
            owl:onProperty math:requiresSkill ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:difficultyBand ],
        math:NamedThing ;
    skos:definition "A category of assessment tasks targeting specific concepts."@en ;
    skos:exactMatch math:ProblemType .

math:SectionLevel a owl:Class ;
    rdfs:label "SectionLevel"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( section_level:chapter section_level:unit section_level:lesson section_level:activity section_level:assessment ) ;
    skos:definition "Structural level of a textbook section."@en .

math:Skill a owl:Class ;
    rdfs:label "Skill"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf math:NamedThing ;
    skos:definition "A procedural or reasoning skill (something a learner can do, such as a manipulation or a check) applied while solving problems."@en ;
    skos:exactMatch math:Skill .

math:SolutionKind a owl:Class ;
    rdfs:label "SolutionKind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( solution_kind:answer_only solution_kind:worked_solution solution_kind:hint solution_kind:rubric solution_kind:other ) ;
    skos:definition "Kind of solution material."@en .

math:Course a owl:Class ;
    rdfs:label "Course"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:curriculumFramework ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:courseCategory ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:schoolLevel ],
        math:NamedThing ;
    skos:definition "A top-level curriculum course (e.g. 공통수학1)."@en ;
    skos:exactMatch schema:Course,
        math:Course .

math:FigureKind a owl:Class ;
    rdfs:label "FigureKind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( figure_kind:graph figure_kind:geometry figure_kind:table figure_kind:photo figure_kind:diagram figure_kind:mixed figure_kind:other ) ;
    skos:definition "Visual kind of a problem figure."@en .

math:ProblemKind a owl:Class ;
    rdfs:label "ProblemKind"@en ;
    rdfs:isDefinedBy math:math_edu ;
    owl:oneOf ( problem_kind:example problem_kind:exercise problem_kind:exploration problem_kind:self_check problem_kind:unit_review problem_kind:final_review problem_kind:appendix problem_kind:assessment problem_kind:other ) ;
    skos:definition "Role of a problem within its textbook."@en .

math:Concept a owl:Class ;
    rdfs:label "Concept"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty math:reviewStatus ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:introducedIn ],
        skos:Concept,
        math:NamedThing ;
    skos:definition "A mathematical concept (object, definition, property, theorem, representation, or proof method) that a learner comes to know. Concepts are course-independent: where a concept is taught is recorded by introduced_in and derived from achievement standards (taught_in). Every Concept is also a skos:Concept in scheme:concepts."@en ;
    skos:exactMatch math:Concept .

math:NamedThing a owl:Class ;
    rdfs:label "NamedThing"@en ;
    rdfs:isDefinedBy math:math_edu ;
    rdfs:subClassOf [ owl:unionOf ( math:AchievementStandard math:Concept math:Course math:CurriculumFramework math:CurriculumUnit math:Misconception math:ProblemFigure math:ProblemType math:Skill math:SolutionPattern math:TextbookProblem math:TextbookSection math:TextbookSolution math:TextbookSource ) ],
        [ a owl:Restriction ;
            owl:cardinality 1 ;
            owl:onProperty math:id ] ;
    skos:definition "Any identified resource in the ontology. Carries the shared labelling, definition, curation, and deprecation slots."@en .

math:math_edu a owl:Ontology ;
    rdfs:label "Korean Mathematics Education Ontology"@en,
        "math_edu"@en ;
    dcterms:creator "Trinity Maths Lab" ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:title "Korean Mathematics Education Ontology" ;
    pav:version "0.2.0" ;
    rdfs:seeAlso <https://github.com/jiwonMe/kmath-ontology> ;
    owl:versionIRI <https://w3id.org/kmath/math_edu/0.2.0> ;
    owl:versionInfo "0.2.0" ;
    skos:definition "LinkML schema for the Korean mathematics education ontology: curriculum frameworks, courses, units, achievement standards, concepts, skills, problem types, solution patterns, misconceptions, and textbook evidence. Concepts are SKOS-style individuals (math:Concept rdfs:subClassOf skos:Concept); OWL is used for the schema layer. Axioms that LinkML cannot express live in src/ontology/axioms.ttl and are merged at build time."@en .

[] a owl:AllDisjointClasses ;
    owl:members ( math:Concept math:Skill math:ProblemType math:SolutionPattern math:SolutionStep math:CurriculumFramework math:Course math:CurriculumUnit math:AchievementStandard math:Misconception math:TextbookSource math:TextbookSection math:TextbookProblem math:TextbookSolution math:ProblemFigure ) .

