Skip to main content

Torus Ontology

Solid 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 a torus within the Kireth Research Semantic Library. A torus is a surface of revolution generated by rotating a circle around a coplanar axis that does not intersect the circle in the standard ring-torus case. This ontology supports major radius, minor radius, inner and outer radius, surface area, enclosed volume, coordinate equations, parametric representation, cross-sections, symmetry, topology, transformations and relationships with circles, surfaces of revolution and differential geometry.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Torus Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Geometry"
 SPECIALISATION = "Solid Geometry / Surfaces of Revolution"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/solid-geometry/torus-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = Torus
 SYMBOLIC_FORMS = [
  "((sqrt(x^2+y^2)-R)^2+z^2=r^2)",
  "((x^2+y^2+z^2+R^2-r^2)^2=4R^2(x^2+y^2))"
 ]
 ENTITY_CLASS = SurfaceOfRevolution
 PRIMARY_CONTEXT = SolidGeometry
 DEFINITION = "A torus is a surface of revolution generated by rotating a circle around a coplanar axis, with the standard ring torus arising when the axis lies outside the generating circle."
 SEMANTIC_ROLE = "Provides the canonical genus-one surface framework for rotational geometry, topology, coordinate, parametric, area, volume and transformation reasoning."
}

SCOPE {
 INCLUDE = [
  Torus,
  RingTorus,
  HornTorus,
  SpindleTorus,
  MajorRadius,
  MinorRadius,
  GeneratingCircle,
  AxisOfRevolution,
  InnerRadius,
  OuterRadius,
  SurfaceArea,
  EnclosedVolume,
  ParametricTorus,
  ImplicitTorus,
  Meridian,
  ParallelCircle,
  CrossSection,
  Symmetry,
  Genus,
  SurfaceOfRevolution
 ]

 EXCLUDE_AS_PRIMARY = [
  Sphere,
  Cylinder,
  GeneralDonutLikeObjectWithoutTorusGeometry,
  HigherDimensionalTorus,
  PhysicalDoughnutWithoutMathematicalAbstraction
 ]

 DISAMBIGUATION_RULE =
  "When torus occurs with major radius, minor radius, generating circle, donut-shaped surface, genus one, surface of revolution, toroidal coordinates or standard torus equations, interpret it as a geometric torus."
}

CORE_CONCEPTS {

 Torus {
  definition = "A surface generated by revolving a circle around a coplanar axis."
 }

 RingTorus {
  definition = "A torus with major radius R greater than minor radius r."
  condition = "R>r>0"
 }

 HornTorus {
  definition = "A limiting torus where the generating circle is tangent to the axis of revolution."
  condition = "R=r>0"
 }

 SpindleTorus {
  definition = "A self-intersecting or overlapping toroidal surface produced when the axis of revolution intersects the generating circle."
  condition = "0<R<r"
 }

 MajorRadius {
  symbol = "R"
  definition = "Distance from the axis of revolution to the centre of the generating circle."
 }

 MinorRadius {
  symbol = "r"
  definition = "Radius of the generating circle."
 }

 InnerRadius {
  ring_torus_formula = "R-r"
 }

 OuterRadius {
  ring_torus_formula = "R+r"
 }

 AxisOfRevolution {
  definition = "The line about which the generating circle is revolved."
 }

 GeneratingCircle {
  definition = "The circle whose revolution creates the toroidal surface."
 }

 Meridian {
  definition = "A circular cross-section obtained by intersecting the torus with a plane through the axis of revolution."
 }

 ParallelCircle {
  definition = "A circle on the torus generated by fixing the meridional parameter and varying the rotational parameter."
 }

 Genus {
  ring_torus_value = 1
  definition = "Topological number of handles of the surface."
 }
}

RELATIONS {
 Torus --is_special_case_of--> SurfaceOfRevolution
 Torus --is_generated_by--> GeneratingCircle
 GeneratingCircle --revolves_about--> AxisOfRevolution
 Torus --has--> MajorRadius
 Torus --has--> MinorRadius
 RingTorus --is_special_case_of--> Torus
 HornTorus --is_special_case_of--> Torus
 SpindleTorus --is_special_case_of--> Torus
 RingTorus --has--> InnerRadius
 RingTorus --has--> OuterRadius
 Torus --has--> Meridian
 Torus --has--> ParallelCircle
 RingTorus --has_genus--> One
 Torus --can_have--> CrossSection
 Torus --can_be_transformed_by--> ThreeDimensionalTransformation
}

OPERATORS {
 CLASSIFY_TORUS(R,r) :=
  IF R>r>0 THEN RingTorus
  ELSE IF R==r AND r>0 THEN HornTorus
  ELSE IF 0<R<r THEN SpindleTorus
  ELSE InvalidOrDegenerate

 INNER_RADIUS(R,r) :=
  R-r

 OUTER_RADIUS(R,r) :=
  R+r

 SURFACE_AREA_RING_TORUS(R,r) :=
  4*pi^2*R*r

 VOLUME_RING_TORUS(R,r) :=
  2*pi^2*R*r^2

 PARAMETRIC_POINT(R,r,u,v) :=
  (
   (R+r*cos(v))*cos(u),
   (R+r*cos(v))*sin(u),
   r*sin(v)
  )

 IMPLICIT_EQUATION(R,r) :=
  (x^2+y^2+z^2+R^2-r^2)^2=4*R^2*(x^2+y^2)

 MERIDIAN_SECTION(R,r) :=
  two_or_related_circular_profiles_in_axis_plane_depending_on_section_model

 TRANSFORM_TORUS(TORUS,T) :=
  image_of_torus_under_3D_transformation(TORUS,T)
}

DEFINITIONS {
 D1 = "A torus is a surface of revolution."
 D2 = "The major radius measures from the revolution axis to the generating-circle centre."
 D3 = "The minor radius is the radius of the generating circle."
 D4 = "A ring torus satisfies R>r>0."
 D5 = "A horn torus satisfies R=r>0."
 D6 = "A spindle torus satisfies 0<R<r."
 D7 = "A ring torus has topological genus one."
 D8 = "The ring-torus surface area is 4*pi^2*R*r."
 D9 = "The enclosed ring-torus volume is 2*pi^2*R*r^2."
 D10 = "A standard torus centred on the z-axis is rotationally symmetric about that axis."
}

AXIOMS {
 A1_REVOLUTION:
  A standard torus is generated by revolving a circle about a coplanar axis

 A2_MAJOR_RADIUS:
  Major radius is measured from axis of revolution to generating-circle centre

 A3_MINOR_RADIUS:
  Minor radius equals radius of generating circle

 A4_RING_CONDITION:
  Standard non-self-intersecting ring torus requires R>r>0

 A5_ROTATIONAL_SYMMETRY:
  Standard torus is invariant under rotations about its axis of revolution

 A6_SURFACE_AREA_RING:
  Ring-torus surface area equals 4*pi^2*R*r

 A7_VOLUME_RING:
  Ring-torus enclosed volume equals 2*pi^2*R*r^2

 A8_TOPOLOGY_RING:
  Ring-torus surface is a compact orientable genus-one surface
}

REASONING {

 R1_TORUS_CLASSIFICATION {
  INPUT = [R,r]
  REQUIRE = r>0
  IF R>r
   RETURN RingTorus
  ELSE IF R==r
   RETURN HornTorus
  ELSE IF 0<R<r
   RETURN SpindleTorus
  ELSE
   RETURN InvalidOrDegenerate
 }

 R2_PARAMETRIC_REASONING {
  INPUT = [R,r,u,v]
  COMPUTE = standard_parametric_coordinates
  VERIFY = implicit_equation
  RETURN = point_on_torus
 }

 R3_SURFACE_AREA {
  INPUT = [R,r]
  REQUIRE = R>r>0
  APPLY = Pappus_surface_or_direct_parameterisation
  RETURN = 4*pi^2*R*r
 }

 R4_VOLUME {
  INPUT = [R,r]
  REQUIRE = R>r>0
  APPLY = Pappus_centroid_theorem_or_integration
  RETURN = 2*pi^2*R*r^2
 }

 R5_INNER_OUTER_RADIUS {
  INPUT = [R,r]
  REQUIRE = RingTorus
  COMPUTE = inner=R-r
  COMPUTE = outer=R+r
  RETURN = radii
 }

 R6_AXIS_PLANE_SECTION {
  INPUT = [torus,plane_through_axis]
  INTERSECT = torus_with_plane
  CLASSIFY = circular_generating_profiles_or_union_components
  RETURN = meridional_section
 }

 R7_PERPENDICULAR_SECTION {
  INPUT = [torus,plane_perpendicular_to_axis]
  INTERSECT = torus_with_plane
  CLASSIFY = zero_one_or_two_circular_components_depending_on_offset
  RETURN = section
 }

 R8_TOPOLOGY {
  INPUT = standard_ring_torus
  IDENTIFY = one_handle
  RETURN = genus_one_compact_orientable_surface
 }

 R9_TRANSFORMATION {
  INPUT = [torus,T]
  IF rigid_or_similarity
   RETURN torus_with_transformed_axis_and_scaled_radii
  ELSE IF general_affine
   RETURN affine_toroidal_surface_not_generally_standard_torus
 }
}

CONSTRAINTS {
 C1 = "Surface-area and volume formulas 4*pi^2*R*r and 2*pi^2*R*r^2 assume a standard ring torus."
 C2 = "Ring, horn and spindle tori must be distinguished."
 C3 = "A torus surface must be distinguished from the enclosed toroidal solid."
 C4 = "Major and minor radii must not be interchanged."
 C5 = "The standard implicit equation assumes a torus centred around the z-axis."
 C6 = "General affine transformations do not generally preserve standard torus form."
 C7 = "Topological genus-one statements apply to the ordinary ring-torus surface."
 C8 = "Higher-dimensional tori require a different ontology."
}

SEMANTIC_EQUIVALENCE {
 "Torus" <=> "CircularSurfaceOfRevolution"
 "RingTorus" <=> "StandardNonSelfIntersectingTorus"
 "MajorRadius" <=> "AxisToGeneratingCircleCentreDistance"
 "MinorRadius" <=> "GeneratingCircleRadius"
 "DonutSurface" <=> "Torus" WHEN mathematical_context
}

VALIDATION {
 V1 = "Ring torus satisfies R>r>0."
 V2 = "Horn torus satisfies R=r>0."
 V3 = "Spindle torus satisfies 0<R<r."
 V4 = "Inner radius equals R-r for ring torus."
 V5 = "Outer radius equals R+r."
 V6 = "Surface area equals 4*pi^2*R*r for ring torus."
 V7 = "Enclosed volume equals 2*pi^2*R*r^2 for ring torus."
 V8 = "Parametric points satisfy the implicit torus equation."
 V9 = "Ring-torus genus equals one."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 TORUS_DEFINITION = 0.99
 CLASSIFICATION = 0.99
 PARAMETRIC_REASONING = 0.99
 SURFACE_AREA_REASONING = 0.99
 VOLUME_REASONING = 0.99
 TOPOLOGICAL_REASONING = 0.99
 CROSS_SECTION_REASONING = 0.97

 POLICY =
  "Reduce confidence when torus class, major/minor radii, enclosed-solid versus surface meaning, section plane or transformation class are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  TorusReasoning,
  SurfaceOfRevolutionReasoning,
  ParametricReasoning,
  ImplicitSurfaceReasoning,
  SurfaceAreaReasoning,
  VolumeReasoning,
  CrossSectionReasoning,
  TopologicalReasoning,
  SymmetryReasoning,
  TransformationReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "torus" -> Torus
  "ring torus" -> RingTorus
  "horn torus" -> HornTorus
  "spindle torus" -> SpindleTorus
  "major radius" -> MajorRadius
  "minor radius" -> MinorRadius
  "toroidal surface" -> Torus
  "donut" -> Torus WHEN mathematical_geometry_context
 }

 INTERPRETATION_ORDER = [
  detect_torus_context,
  identify axis_of_revolution generating_circle major_radius and minor_radius,
  classify ring horn spindle or degenerate type,
  distinguish surface from enclosed toroidal solid,
  identify area volume coordinate parametric cross_section topology symmetry or transformation goal,
  apply torus_specific formulas_and_theorems,
  verify type_and_parameter_constraints,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("torus")
  AND geometry_context
  THEN activate(TorusOntology)

 E2:
  IF R_and_r_given
  THEN classify ring_horn_or_spindle

 E3:
  IF surface_area_requested
  AND ring_torus_context
  THEN compute 4*pi^2*R*r

 E4:
  IF volume_requested
  AND ring_torus_context
  THEN compute 2*pi^2*R*r^2

 E5:
  IF parametric_representation_requested
  THEN use standard_two_angle_parameterisation

 E6:
  IF implicit_equation_requested
  THEN return standard_z_axis_torus_equation when frame matches

 E7:
  IF topology_requested
  AND ring_torus_context
  THEN return genus_one_structure

 E8:
  IF transformation_context
  THEN classify rigid_similarity_or_affine map
}

RECURSION {
 ENTRY = Torus

 EXPAND(Torus) -> [
  RingTorus,
  HornTorus,
  SpindleTorus,
  MajorRadius,
  MinorRadius,
  GeneratingCircle,
  AxisOfRevolution,
  Meridian,
  ParallelCircle,
  SurfaceArea,
  EnclosedVolume,
  ParametricTorus,
  ImplicitTorus,
  CrossSection,
  Symmetry,
  Genus
 ]

 EXPAND(RingTorus) -> [
  InnerRadius,
  OuterRadius,
  SurfaceArea,
  Volume,
  GenusOne,
  RotationalSymmetry
 ]

 EXPAND(ParametricTorus) -> [
  MeridionalParameter,
  RotationalParameter,
  CoordinateMap,
  SurfaceNormal
 ]

 EXPAND(CrossSection) -> [
  AxisPlaneSection,
  PerpendicularPlaneSection,
  Circle,
  MultipleComponents
 ]

 STOP_CONDITION =
  "Stop when the torus's type, radii, coordinate representation, surface measure, enclosed volume, cross-section, topology, symmetry or transformation property is sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Solid Geometry"

 IMMEDIATE_CONTEXTS = [
  "Solid Geometry Ontology",
  "Circle Ontology",
  "Cylinder Ontology",
  "Parametric Geometry Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Solid Geometry Ontology",
  "Circle Ontology",
  "Cylinder Ontology",
  "Sphere Ontology",
  "Coordinate Geometry Ontology",
  "Analytic Geometry Ontology",
  "Parametric Geometry Ontology",
  "Vector Geometry Ontology",
  "Transformation Ontology",
  "Affine Transformation Ontology",
  "Topology Ontologies"
 ]

 ROUTE_RULES = [
  "Torus -> Solid Geometry Ontology for general three-dimensional semantics",
  "Torus -> Circle for generating-circle geometry",
  "Torus -> Parametric Geometry for two-parameter surface representation",
  "Torus -> Analytic Geometry for implicit quartic representation",
  "Torus -> Vector Geometry for normals and tangent-plane reasoning",
  "Torus -> Transformation for rigid, similarity and affine images",
  "Torus -> Topology for genus-one surface reasoning",
  "Torus -> Cylinder or Sphere for comparative curved-surface reasoning"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible torus classes, formulas, relations or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve torus as a surface of revolution generated by a circle.",
  "Preserve major-versus-minor radius distinction.",
  "Preserve ring-horn-spindle classification.",
  "Preserve surface-versus-enclosed-solid distinction.",
  "Preserve ring-torus area and volume formulas.",
  "Preserve genus-one topology for standard ring torus.",
  "Preserve machine-readable torus semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "A torus is a surface of revolution generated by rotating a circle around a coplanar axis."

 CLASSIFICATION_SUMMARY =
  "R>r: ring torus; R=r: horn torus; 0<R<r: spindle torus."

 INNER_RADIUS_SUMMARY =
  "r_inner=R-r for a ring torus."

 OUTER_RADIUS_SUMMARY =
  "r_outer=R+r."

 SURFACE_AREA_SUMMARY =
  "A=4*pi^2*R*r for a ring torus."

 VOLUME_SUMMARY =
  "V=2*pi^2*R*r^2 for the enclosed ring-torus solid."

 PARAMETRIC_SUMMARY =
  "x=(R+r cos v)cos u, y=(R+r cos v)sin u, z=r sin v."

 TOPOLOGY_SUMMARY =
  "The standard ring-torus surface is compact, orientable and genus one."
}

FLOW {
 INPUT
 -> detect_torus_context
 -> identify axis_of_revolution generating_circle major_radius_and_minor_radius
 -> classify ring_horn_spindle_or_degenerate torus
 -> distinguish torus_surface_from_enclosed_toroidal_solid
 -> identify surface_area volume parametric implicit cross_section topology symmetry or transformation goal
 -> apply torus_specific geometry
 -> verify class_parameter_coordinate_frame_and_transformation constraints
 -> route to solid_geometry circle parametric analytic vector topology or transformation ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Torus Ontology defines the circular surface of revolution generated by rotating a circle around a coplanar axis. It supports ring, horn and spindle classifications, major and minor radii, surface area, enclosed volume, parametric and implicit representations, cross-sections, rotational symmetry, genus-one topology and transformation reasoning."
}

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

}

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