Skip to main content

Ellipse Ontology

Plane Geometry
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of an ellipse within the Kireth Research Semantic Library. An ellipse is a plane conic defined as the locus of points whose sum of distances from two fixed foci is constant. This ontology supports major and minor axes, semi-axes, eccentricity, focal relations, directrix properties, coordinate equations, parametric representation, area, tangents, transformations and conic classification.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Ellipse Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Geometry"
 SPECIALISATION = "Plane Geometry / Conic Geometry"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/plane-geometry/ellipse-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = Ellipse
 SYMBOLIC_FORMS = ["x^2/a^2+y^2/b^2=1", "(x-h)^2/a^2+(y-k)^2/b^2=1"]
 ENTITY_CLASS = ConicSection
 PRIMARY_CONTEXT = PlaneGeometry
 DEFINITION = "An ellipse is the locus of points in a plane for which the sum of distances to two fixed points called foci is constant."
 SEMANTIC_ROLE = "Provides the closed noncircular conic framework for focal, axial, coordinate, parametric and transformation reasoning."
}

SCOPE {
 INCLUDE = [
  Ellipse,
  Focus,
  Foci,
  Centre,
  MajorAxis,
  MinorAxis,
  SemiMajorAxis,
  SemiMinorAxis,
  Vertex,
  CoVertex,
  Eccentricity,
  Directrix,
  LatusRectum,
  FocalDistance,
  StandardEquation,
  ParametricEquation,
  Tangent,
  Normal,
  Area,
  ConicSection
 ]

 EXCLUDE_AS_PRIMARY = [
  Circle,
  Parabola,
  Hyperbola,
  GeneralOvalWithoutEllipseDefinition,
  ThreeDimensionalEllipsoid
 ]

 DISAMBIGUATION_RULE =
  "When ellipse occurs with foci, major axis, minor axis, eccentricity, directrix, conic equation or focal-distance sum, interpret it as a plane geometric ellipse."
}

CORE_CONCEPTS {

 Ellipse {
  definition = "The locus of points P satisfying PF1+PF2=2a for fixed foci F1 and F2."
 }

 Centre {
  definition = "The midpoint of the segment joining the two foci and the intersection of the major and minor axes."
 }

 Focus {
  definition = "One of two fixed points used in the constant-distance-sum definition."
 }

 SemiMajorAxis {
  symbol = "a"
  definition = "Half the length of the major axis."
 }

 SemiMinorAxis {
  symbol = "b"
  definition = "Half the length of the minor axis."
 }

 FocalDistance {
  symbol = "c"
  relation = "c^2=a^2-b^2"
 }

 Eccentricity {
  symbol = "e"
  definition = "Ratio c/a for a noncircular ellipse."
  range = "0<=e<1"
 }

 MajorAxis {
  definition = "The longest diameter through both foci."
 }

 MinorAxis {
  definition = "The diameter through the centre perpendicular to the major axis."
 }

 Vertex {
  definition = "An endpoint of the major axis."
 }

 CoVertex {
  definition = "An endpoint of the minor axis."
 }

 Directrix {
  definition = "A line associated with a focus such that PF/PD=e for points P on the ellipse."
 }

 LatusRectum {
  definition = "A chord through a focus perpendicular to the major axis."
 }

 StandardEquation {
  horizontal_major_axis = "(x-h)^2/a^2+(y-k)^2/b^2=1 with a>=b>0"
  vertical_major_axis = "(x-h)^2/b^2+(y-k)^2/a^2=1 with a>=b>0"
 }
}

RELATIONS {
 Ellipse --is_special_case_of--> ConicSection
 Ellipse --has--> Centre
 Ellipse --has--> TwoFoci
 Ellipse --has--> MajorAxis
 Ellipse --has--> MinorAxis
 Ellipse --has--> SemiMajorAxis
 Ellipse --has--> SemiMinorAxis
 Ellipse --has--> Eccentricity
 Ellipse --has--> Directrix
 Ellipse --can_have--> Tangent
 Centre --is_midpoint_of--> FociSegment
 MajorAxis --passes_through--> Foci
 MinorAxis --is_perpendicular_to--> MajorAxis
 SemiMajorAxis --determines--> ConstantDistanceSum
 Eccentricity --relates--> FocusAndDirectrix
 Circle --is_limiting_special_case_of--> Ellipse WHEN e=0_and_a=b
}

OPERATORS {
 IS_ON_ELLIPSE(P,F1,F2,a) :=
  distance(P,F1)+distance(P,F2)==2*a

 FOCAL_DISTANCE(a,b) :=
  sqrt(a^2-b^2)

 ECCENTRICITY(a,b) :=
  sqrt(a^2-b^2)/a

 AREA(a,b) :=
  pi*a*b

 MAJOR_AXIS_LENGTH(a) :=
  2*a

 MINOR_AXIS_LENGTH(b) :=
  2*b

 STANDARD_EQUATION(h,k,a,b,orientation) :=
  construct_axis_aligned_ellipse_equation(h,k,a,b,orientation)

 PARAMETRIC_POINT(h,k,a,b,t) :=
  (h+a*cos(t), k+b*sin(t))

 DIRECTRIX_DISTANCE(a,e) :=
  a/e WHEN e!=0

 LATUS_RECTUM_LENGTH(a,b) :=
  2*b^2/a

 CLASSIFY_CONIC(E) :=
  identify_ellipse_when_quadratic_form_is_positive_definite_and_nondegenerate
}

DEFINITIONS {
 D1 = "An ellipse is a closed conic section."
 D2 = "The sum of focal distances is constant."
 D3 = "The major axis is the longest axis through the centre."
 D4 = "The minor axis is perpendicular to the major axis."
 D5 = "For a standard ellipse, c^2=a^2-b^2."
 D6 = "Ellipse eccentricity satisfies 0<=e<1."
 D7 = "A circle is the special case a=b and e=0."
 D8 = "The area of an ellipse is pi*a*b."
 D9 = "The standard parameterisation is x=h+a cos t, y=k+b sin t."
 D10 = "Each focus has a corresponding directrix."
}

AXIOMS {
 A1_FOCAL_SUM:
  Every point P on an ellipse satisfies PF1+PF2=constant

 A2_CENTRAL_SYMMETRY:
  An ellipse is centrally symmetric about its centre

 A3_AXIS_ORTHOGONALITY:
  Major and minor axes are perpendicular

 A4_FOCAL_RELATION:
  c^2=a^2-b^2 for standard semi-axis parameters

 A5_ECCENTRICITY_RANGE:
  0<=e<1

 A6_STANDARD_AREA:
  Area=pi*a*b

 A7_CONIC_CLASSIFICATION:
  A nondegenerate real ellipse corresponds to an appropriate positive-definite quadratic form after affine coordinate normalisation
}

REASONING {

 R1_FOCAL_MEMBERSHIP {
  INPUT = [P,F1,F2,a]
  COMPUTE = PF1+PF2
  IF sum==2a
   RETURN PointOnEllipse
  ELSE
   RETURN PointNotOnEllipse
 }

 R2_FROM_STANDARD_EQUATION {
  INPUT = ellipse_equation
  IDENTIFY = centre(h,k)
  IDENTIFY = larger_denominator_as_a^2
  IDENTIFY = smaller_denominator_as_b^2
  COMPUTE = c=sqrt(a^2-b^2)
  COMPUTE = e=c/a
  RETURN = ellipse_parameters
 }

 R3_AREA {
  INPUT = [a,b]
  REQUIRE = a>0 AND b>0
  RETURN = pi*a*b
 }

 R4_PARAMETRIC_REASONING {
  INPUT = [h,k,a,b,t]
  COMPUTE = x=h+a*cos(t)
  COMPUTE = y=k+b*sin(t)
  VERIFY = standard_equation
  RETURN = point_on_ellipse
 }

 R5_DIRECTRIX_REASONING {
  INPUT = [a,e,orientation]
  REQUIRE = e!=0
  COMPUTE = directrix_distance=a/e
  PLACE = pair_of_directrices
  RETURN = directrix_equations
 }

 R6_TANGENT_REASONING {
  INPUT = point_on_ellipse_and_equation
  DERIVE = tangent_via_gradient_or_standard_formula
  VERIFY = first_order_contact
  RETURN = tangent_line
 }

 R7_CONIC_CLASSIFICATION {
  INPUT = general_quadratic_equation
  ANALYSE = quadratic_part_discriminant_and_degeneracy
  IF real_nondegenerate_closed_conic
   RETURN Ellipse
 }

 R8_TRANSFORMATION {
  INPUT = [ellipse,T]
  IF rigid_or_similarity_transformation
   RETURN ellipse_with_preserved_eccentricity_under_similarity
  ELSE IF general_affine_transformation
   RETURN conic_image_typically_ellipse_if_nondegenerate
 }
}

CONSTRAINTS {
 C1 = "For standard axis-aligned notation, a>=b>0."
 C2 = "The focal relation c^2=a^2-b^2 requires real nondegenerate ellipse parameters."
 C3 = "Eccentricity must satisfy 0<=e<1."
 C4 = "Directrix distance a/e is undefined in the circle case e=0."
 C5 = "General quadratic equations must be checked for degeneracy."
 C6 = "Rotated ellipses require cross-term or rotated-coordinate handling."
 C7 = "A general affine transformation does not preserve metric lengths or eccentricity."
 C8 = "Do not confuse ellipse with arbitrary oval curves."
}

SEMANTIC_EQUIVALENCE {
 "Ellipse" <=> "ClosedConicWithEccentricityLessThanOne"
 "SemiMajorAxis" <=> "HalfMajorAxis"
 "SemiMinorAxis" <=> "HalfMinorAxis"
 "FocalDistance" <=> "CentreToFocusDistance"
 "Circle" <=> "EllipseWithEqualSemiAxes"
}

VALIDATION {
 V1 = "Points satisfy the constant focal-distance sum."
 V2 = "c^2=a^2-b^2."
 V3 = "e=c/a and 0<=e<1."
 V4 = "Area equals pi*a*b."
 V5 = "Standard parametric points satisfy the ellipse equation."
 V6 = "Major axis length is 2a."
 V7 = "Minor axis length is 2b."
 V8 = "General conic classification excludes degenerate cases."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 ELLIPSE_DEFINITION = 0.99
 FOCAL_RELATION = 0.99
 ECCENTRICITY_RELATION = 0.99
 AREA_RELATION = 0.99
 STANDARD_EQUATION_REASONING = 0.99
 PARAMETRIC_REASONING = 0.99
 CONIC_CLASSIFICATION = 0.98

 POLICY =
  "Reduce confidence when axis orientation, rotation, degeneracy, parameter ordering or affine transformation context are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  EllipseReasoning,
  ConicClassification,
  FocalReasoning,
  CoordinateReasoning,
  ParametricReasoning,
  TangentReasoning,
  TransformationReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "ellipse" -> Ellipse
  "elliptical conic" -> Ellipse
  "major axis" -> MajorAxis
  "minor axis" -> MinorAxis
  "semi-major axis" -> SemiMajorAxis
  "semi-minor axis" -> SemiMinorAxis
  "focus" -> Focus WHEN ellipse_context
  "eccentricity" -> Eccentricity
 }

 INTERPRETATION_ORDER = [
  detect_ellipse_context,
  identify centre semi_axes orientation and equation,
  identify foci eccentricity directrices or tangent data,
  classify standard rotated or general conic representation,
  apply focal coordinate parametric area or tangent reasoning,
  verify nondegeneracy and eccentricity constraints,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("ellipse")
  THEN activate(EllipseOntology)

 E2:
  IF standard_equation_present
  THEN extract_centre_a_b_orientation

 E3:
  IF a_and_b_known
  THEN compute c=sqrt(a^2-b^2)
  AND e=c/a

 E4:
  IF area_requested
  THEN compute pi*a*b

 E5:
  IF focal_membership_requested
  THEN test PF1+PF2=2a

 E6:
  IF parametric_point_requested
  THEN use x=h+a*cos(t), y=k+b*sin(t)

 E7:
  IF directrix_requested
  THEN require e!=0
  AND compute a/e

 E8:
  IF general_quadratic_equation_present
  THEN classify_conic_and_test_degeneracy
}

RECURSION {
 ENTRY = Ellipse

 EXPAND(Ellipse) -> [
  Centre,
  Focus,
  SemiMajorAxis,
  SemiMinorAxis,
  MajorAxis,
  MinorAxis,
  Eccentricity,
  Directrix,
  Vertex,
  CoVertex,
  LatusRectum,
  Tangent,
  ParametricEquation
 ]

 EXPAND(FocalStructure) -> [
  Focus,
  FocalDistance,
  ConstantDistanceSum,
  Directrix,
  Eccentricity
 ]

 EXPAND(CoordinateRepresentation) -> [
  StandardEquation,
  RotatedEquation,
  GeneralQuadraticEquation,
  ParametricEquation
 ]

 EXPAND(Tangent) -> [
  ContactPoint,
  Gradient,
  Normal,
  FocalReflectionProperty
 ]

 STOP_CONDITION =
  "Stop when the ellipse's defining data, focal structure, equation, area, tangent, parametric or transformation property is sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Plane Geometry"

 IMMEDIATE_CONTEXTS = [
  "Circle Ontology",
  "Coordinate Geometry Ontology",
  "Analytic Geometry Ontology",
  "Parametric Geometry Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Plane Geometry",
  "Circle Ontology",
  "Polygon Ontology",
  "Coordinate Geometry Ontology",
  "Analytic Geometry Ontology",
  "Cartesian Coordinate Ontology",
  "Parametric Geometry Ontology",
  "Vector Geometry Ontology",
  "Transformation Ontology",
  "Affine Transformation Ontology"
 ]

 ROUTE_RULES = [
  "Ellipse -> Plane Geometry for core two-dimensional semantics",
  "Ellipse -> Circle for special case a=b",
  "Ellipse -> Coordinate Geometry for standard equations",
  "Ellipse -> Analytic Geometry for conic classification",
  "Ellipse -> Parametric Geometry for parameterisations",
  "Ellipse -> Vector Geometry for tangent and normal reasoning",
  "Ellipse -> Transformation for affine and similarity mappings"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible ellipse properties, representations or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve ellipse as a constant focal-distance-sum locus.",
  "Preserve major/minor axis semantics.",
  "Preserve c^2=a^2-b^2.",
  "Preserve eccentricity range 0<=e<1.",
  "Preserve circle as special case a=b.",
  "Preserve distinction between rigid/similarity and general affine invariants.",
  "Preserve machine-readable ellipse semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "An ellipse is the locus of points for which the sum of distances to two fixed foci is constant."

 STANDARD_EQUATION_SUMMARY =
  "(x-h)^2/a^2+(y-k)^2/b^2=1 for an axis-aligned horizontal-major-axis ellipse with a>=b>0."

 FOCAL_SUMMARY =
  "c^2=a^2-b^2"

 ECCENTRICITY_SUMMARY =
  "e=c/a, with 0<=e<1"

 AREA_SUMMARY =
  "A=pi*a*b"

 PARAMETRIC_SUMMARY =
  "x=h+a*cos(t), y=k+b*sin(t)"

 CIRCLE_SPECIAL_CASE_SUMMARY =
  "If a=b, then c=0 and the ellipse is a circle."
}

FLOW {
 INPUT
 -> detect_ellipse_context
 -> identify_centre_axes_orientation_and_representation
 -> identify semi_major_axis semi_minor_axis foci eccentricity or directrices
 -> classify standard rotated or general conic form
 -> perform focal coordinate parametric area tangent or transformation reasoning
 -> verify a>=b>0 nondegeneracy and eccentricity constraints
 -> route to circle coordinate analytic parametric vector or transformation ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Ellipse Ontology defines the closed conic whose points have a constant sum of distances from two foci. It organises the ellipse around its centre, major and minor axes, semi-axis lengths, foci, eccentricity, directrices, standard and parametric equations, area, tangents and transformation behaviour."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-GEOMETRY-ELLIPSE-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ