Skip to main content

Curve Ontology

Differential 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 curves within the Kireth Research Semantic Library. A curve is a one-dimensional geometric object that may be represented parametrically, implicitly, explicitly or intrinsically. In differential geometry, smooth curves carry tangent vectors, arc length, curvature, torsion and Frenet-frame structure and may lie in Euclidean space or on manifolds. This ontology supports regularity, parameterisation, reparameterisation, tangent and normal vectors, arc length, curvature, torsion, geodesic curves, planar and spatial curves and relationships with manifolds, vector geometry and calculus.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Curve Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Geometry"
 SPECIALISATION = "Differential Geometry / Curves"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/differential-geometry/curve-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = Curve
 SYMBOLIC_FORMS = [
  "gamma:I->M",
  "r(t)",
  "(x(t),y(t),z(t))"
 ]
 ENTITY_CLASS = OneDimensionalGeometricObject
 PRIMARY_CONTEXT = DifferentialGeometry
 DEFINITION = "A curve is a continuous or smooth mapping from an interval into a geometric space, with differential geometry focusing on smooth and regular curves."
 SEMANTIC_ROLE = "Provides the one-dimensional smooth-geometry framework for tangent direction, arc length, curvature, torsion, Frenet frames, geodesics and parameterisation."
}

SCOPE {
 INCLUDE = [
  Curve,
  ParametricCurve,
  SmoothCurve,
  RegularCurve,
  PlanarCurve,
  SpaceCurve,
  ClosedCurve,
  SimpleCurve,
  PiecewiseSmoothCurve,
  Parameter,
  Reparameterisation,
  TangentVector,
  UnitTangent,
  NormalVector,
  BinormalVector,
  FrenetFrame,
  ArcLength,
  Speed,
  Curvature,
  Torsion,
  GeodesicCurve,
  CurveOnSurface,
  CurveOnManifold
 ]

 EXCLUDE_AS_PRIMARY = [
  Surface,
  GeneralOneDimensionalTopologicalSetWithoutCurveStructure,
  DiscretePointSequence,
  FractalCurveUnlessExplicit,
  AlgebraicCurveWithoutDifferentialContext
 ]

 DISAMBIGUATION_RULE =
  "When curve occurs with parameterisation, tangent, arc length, curvature, torsion, Frenet frame, geodesic or smooth map from an interval, interpret it as a differential-geometric curve."
}

CORE_CONCEPTS {

 Curve {
  definition = "A map gamma:I->M from an interval I into a geometric space M."
 }

 ParametricCurve {
  definition = "A curve represented by coordinate functions depending on a parameter."
 }

 SmoothCurve {
  definition = "A curve whose coordinate representation is smooth."
 }

 RegularCurve {
  definition = "A smooth curve with nonzero velocity vector throughout the interval."
  condition = "gamma'(t)!=0"
 }

 PlanarCurve {
  definition = "A curve contained in a plane."
 }

 SpaceCurve {
  definition = "A curve embedded in three-dimensional or higher-dimensional space."
 }

 ClosedCurve {
  definition = "A curve whose endpoint coincides with its starting point under an appropriate parameter interval."
 }

 SimpleCurve {
  definition = "A curve without self-intersections except possibly matching endpoints in the closed case."
 }

 TangentVector {
  definition = "The derivative gamma'(t), representing instantaneous direction and velocity."
 }

 UnitTangent {
  symbol = "T"
  definition = "The normalised tangent vector gamma'/|gamma'|."
 }

 ArcLength {
  definition = "The integral of curve speed over the parameter interval."
 }

 Curvature {
  symbol = "kappa"
  definition = "The rate of change of the unit tangent with respect to arc length."
 }

 Torsion {
  symbol = "tau"
  definition = "The rate at which a space curve departs from its osculating plane."
 }

 FrenetFrame {
  definition = "The orthonormal moving frame consisting of tangent, normal and binormal vectors where defined."
 }
}

RELATIONS {
 Curve --is_special_case_of--> GeometricObject
 SmoothCurve --is_special_case_of--> Curve
 RegularCurve --is_special_case_of--> SmoothCurve
 PlanarCurve --is_special_case_of--> Curve
 SpaceCurve --is_special_case_of--> Curve
 Curve --has--> Parameter
 SmoothCurve --has--> TangentVector
 RegularCurve --has--> UnitTangent
 RegularCurve --has_measure--> ArcLength
 RegularCurve --can_have--> Curvature
 SpaceCurve --can_have--> Torsion
 FrenetFrame --contains--> UnitTangent
 FrenetFrame --contains--> NormalVector
 FrenetFrame --contains--> BinormalVector
 CurveOnManifold --maps_into--> SmoothManifold
 GeodesicCurve --is_special_case_of--> CurveOnManifold
 Reparameterisation --changes--> Parameter
 Reparameterisation --preserves--> GeometricTrace
}

OPERATORS {
 CURVE_POINT(gamma,t) :=
  gamma(t)

 VELOCITY(gamma,t) :=
  gamma'(t)

 SPEED(gamma,t) :=
  norm(gamma'(t))

 IS_REGULAR(gamma,t) :=
  gamma'(t)!=0

 UNIT_TANGENT(gamma,t) :=
  gamma'(t)/norm(gamma'(t))
  WHEN gamma'(t)!=0

 ARC_LENGTH(gamma,a,b) :=
  integral_a^b norm(gamma'(t)) dt

 ARC_LENGTH_PARAMETER(s) :=
  reparameterise_curve_by_arc_length

 CURVATURE_GENERAL(gamma,t) :=
  norm(dT/ds)

 CURVATURE_PLANE_OR_SPACE(gamma,t) :=
  norm(gamma'(t) × gamma''(t))/norm(gamma'(t))^3
  WHEN ambient_dimension=3 AND gamma'(t)!=0

 TORSION_SPACE_CURVE(gamma,t) :=
  ((gamma' × gamma'') · gamma''') / norm(gamma' × gamma'')^2
  WHEN denominator!=0

 FRENET_NORMAL(gamma,t) :=
  (dT/ds)/norm(dT/ds)
  WHEN curvature!=0

 BINORMAL(T,N) :=
  T × N

 REPARAMETERISE(gamma,phi,u) :=
  gamma(phi(u))
}

DEFINITIONS {
 D1 = "A differential-geometric curve is typically a smooth map from an interval into a manifold."
 D2 = "A regular curve has nonzero derivative."
 D3 = "The tangent vector depends on parameter speed; the unit tangent depends only on orientation."
 D4 = "Arc length is invariant under orientation-preserving regular reparameterisation."
 D5 = "Curvature measures bending."
 D6 = "Torsion measures twisting out of the osculating plane."
 D7 = "Planar curves have zero torsion where the Frenet data is regular."
 D8 = "A geodesic has zero covariant acceleration."
 D9 = "Reparameterisation changes the parameter but not the geometric image of the curve."
 D10 = "Arc-length parameterisation has unit speed."
}

AXIOMS {
 A1_PARAMETERISATION:
  A curve is represented by a map from an interval into a geometric space

 A2_SMOOTHNESS:
  A smooth curve has differentiable coordinate components to the required order

 A3_REGULARITY:
  A regular curve satisfies gamma'(t)!=0

 A4_ARC_LENGTH:
  Length equals integral of speed

 A5_UNIT_SPEED:
  Arc-length parameterisation satisfies norm(dgamma/ds)=1

 A6_CURVATURE:
  For unit-speed curves, curvature equals norm(dT/ds)

 A7_FRENET_FRAME:
  When curvature is nonzero, T,N,B form an orthonormal frame for a regular space curve

 A8_REPARAMETERISATION_INVARIANCE:
  Geometric trace and intrinsic length are preserved under regular monotone reparameterisation
}

REASONING {

 R1_CURVE_CLASSIFICATION {
  INPUT = curve_representation
  IDENTIFY = parameter_domain
  TEST = smoothness
  TEST = regularity
  TEST = planar_or_spatial_embedding
  RETURN = curve_type
 }

 R2_TANGENT_REASONING {
  INPUT = [gamma,t]
  DIFFERENTIATE = gamma'(t)
  IF gamma'(t)!=0
   NORMALISE = unit_tangent
  RETURN = tangent_information
 }

 R3_ARC_LENGTH {
  INPUT = [gamma,a,b]
  COMPUTE = speed
  INTEGRATE = speed_over_interval
  RETURN = length
 }

 R4_REPARAMETERISATION {
  INPUT = [gamma,phi]
  VERIFY = phi smooth_and_monotone_when_regular_reparam_required
  COMPUTE = gamma∘phi
  TRACK = orientation_and_speed
  RETURN = reparameterised_curve
 }

 R5_CURVATURE {
  INPUT = curve_derivatives
  IF unit_speed
   COMPUTE = norm(gamma''(s))
  ELSE IF ambient_R3
   COMPUTE = norm(gamma'×gamma'')/norm(gamma')^3
  RETURN = curvature
 }

 R6_FRENET_FRAME {
  INPUT = regular_space_curve_with_nonzero_curvature
  COMPUTE = T
  COMPUTE = N
  COMPUTE = B=T×N
  RETURN = FrenetFrame
 }

 R7_TORSION {
  INPUT = first_three_derivatives
  REQUIRE = gamma'×gamma'' != 0
  COMPUTE = ((gamma'×gamma'')·gamma''')/norm(gamma'×gamma'')^2
  RETURN = torsion
 }

 R8_PLANAR_TEST {
  INPUT = space_curve
  IF torsion==0 on connected regular interval AND additional_regular_conditions
   INFER = locally_planar
  ELSE
   RETURN = not_established_planar
 }

 R9_GEODESIC_CURVE {
  INPUT = curve_on_manifold_and_connection
  COMPUTE = covariant_acceleration
  IF zero
   RETURN GeodesicCurve
  ELSE
   RETURN NonGeodesicCurve
 }
}

CONSTRAINTS {
 C1 = "Curve trace and curve parameterisation are not identical concepts."
 C2 = "Regularity requires nonzero derivative."
 C3 = "Curvature formulas depend on sufficient differentiability."
 C4 = "Frenet normal is undefined where curvature is zero."
 C5 = "Torsion formula requires nonzero gamma'×gamma''."
 C6 = "Arc length is parameterisation invariant under suitable regular reparameterisations."
 C7 = "Closed and simple are independent curve properties."
 C8 = "A zero torsion condition requires care at curvature-zero points."
 C9 = "Geodesic status depends on the ambient connection, not merely the visual shape of the curve."
}

SEMANTIC_EQUIVALENCE {
 "Curve" <=> "OneDimensionalParametrisedGeometricObject"
 "RegularCurve" <=> "SmoothCurveWithNonzeroVelocity"
 "UnitTangent" <=> "NormalisedVelocityVector"
 "ArcLength" <=> "IntegralOfSpeed"
 "Curvature" <=> "RateOfTurningOfUnitTangent"
 "Torsion" <=> "RateOfTwistOfFrenetFrame"
}

VALIDATION {
 V1 = "Curve domain is an interval or compatible one-dimensional parameter domain."
 V2 = "Regularity test checks gamma'(t)!=0."
 V3 = "Unit tangent has norm one."
 V4 = "Arc length is nonnegative."
 V5 = "Curvature is nonnegative."
 V6 = "Frenet frame vectors are orthonormal where defined."
 V7 = "Torsion denominator is nonzero before use."
 V8 = "Reparameterisation preserves geometric trace."
 V9 = "Geodesic test uses covariant rather than ordinary acceleration on a manifold."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 CURVE_DEFINITION = 0.99
 REGULARITY_REASONING = 0.99
 TANGENT_REASONING = 0.99
 ARC_LENGTH_REASONING = 0.99
 CURVATURE_REASONING = 0.99
 TORSION_REASONING = 0.98
 FRENET_REASONING = 0.98
 GEODESIC_REASONING = 0.98

 POLICY =
  "Reduce confidence when differentiability class, parameter interval, ambient dimension, regularity, orientation or connection are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  CurveReasoning,
  DifferentialGeometryReasoning,
  TangentReasoning,
  ArcLengthReasoning,
  CurvatureReasoning,
  TorsionReasoning,
  FrenetFrameReasoning,
  GeodesicReasoning,
  ReparameterisationReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "curve" -> Curve WHEN differential_geometry_context
  "smooth curve" -> SmoothCurve
  "regular curve" -> RegularCurve
  "planar curve" -> PlanarCurve
  "space curve" -> SpaceCurve
  "arc length" -> ArcLength
  "curvature" -> Curvature WHEN curve_context
  "torsion" -> Torsion WHEN curve_context
  "Frenet frame" -> FrenetFrame
 }

 INTERPRETATION_ORDER = [
  detect_curve_context,
  identify parameterisation_domain_and_ambient_space,
  determine smoothness_and_regularity,
  identify tangent_length_curvature_torsion_frenet_or_geodesic goal,
  differentiate_or_reparameterise_as_required,
  apply curve_specific formulas,
  verify differentiability_regularities_and_denominator constraints,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("curve")
  AND differential_geometry_context
  THEN activate(CurveOntology)

 E2:
  IF regularity_requested
  THEN compute gamma'(t)
  AND test nonzero_velocity

 E3:
  IF tangent_requested
  THEN differentiate parameterisation

 E4:
  IF arc_length_requested
  THEN integrate norm(gamma'(t))

 E5:
  IF curvature_requested
  THEN choose unit_speed_or_general_formula based_on_parameterisation

 E6:
  IF Frenet_frame_requested
  THEN require regularity_and_nonzero_curvature

 E7:
  IF torsion_requested
  THEN require sufficient_derivatives_and_nonzero_cross_product

 E8:
  IF geodesic_requested
  THEN route to manifold_connection_reasoning
  AND compute covariant_acceleration

 E9:
  IF reparameterisation_requested
  THEN preserve curve_trace_and_track_orientation
}

RECURSION {
 ENTRY = Curve

 EXPAND(Curve) -> [
  ParametricCurve,
  SmoothCurve,
  RegularCurve,
  PlanarCurve,
  SpaceCurve,
  ClosedCurve,
  SimpleCurve,
  Parameter,
  Reparameterisation,
  TangentVector,
  UnitTangent,
  ArcLength,
  Curvature,
  Torsion,
  FrenetFrame,
  GeodesicCurve,
  CurveOnManifold
 ]

 EXPAND(FrenetFrame) -> [
  UnitTangent,
  PrincipalNormal,
  Binormal,
  Curvature,
  Torsion,
  FrenetSerretEquations
 ]

 EXPAND(CurveOnManifold) -> [
  TangentVector,
  CovariantDerivative,
  GeodesicCurve,
  ParallelTransport
 ]

 EXPAND(PlanarCurve) -> [
  SignedCurvature,
  NormalVector,
  OsculatingCircle,
  RadiusOfCurvature
 ]

 STOP_CONDITION =
  "Stop when the curve's parameterisation, regularity, tangent, arc length, curvature, torsion, Frenet frame, planarity or geodesic property is sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Differential Geometry"

 IMMEDIATE_CONTEXTS = [
  "Differential Geometry Ontology",
  "Vector Geometry Ontology",
  "Parametric Geometry Ontology",
  "Calculus & Analysis Ontologies"
 ]

 RELATED_ONTOLOGIES = [
  "Differential Geometry",
  "Differential Geometry Ontology",
  "Vector Geometry Ontology",
  "Parametric Geometry Ontology",
  "Coordinate Geometry Ontology",
  "Smooth Manifold Ontologies",
  "Riemannian Geometry Ontologies",
  "Calculus & Analysis Ontologies",
  "Transformation Ontology"
 ]

 ROUTE_RULES = [
  "Curve -> Differential Geometry Ontology for parent smooth-geometry semantics",
  "Curve -> Parametric Geometry for coordinate parameterisations",
  "Curve -> Vector Geometry for tangent, normal and binormal vectors",
  "Curve -> Calculus for derivatives and arc-length integration",
  "Curve -> Manifold Ontologies for curves on manifolds",
  "Curve -> Riemannian Geometry for geodesics and covariant acceleration",
  "Curve -> Transformation for reparameterisation and diffeomorphic image reasoning"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

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

 RULES = [
  "Preserve curve-as-map semantics.",
  "Preserve distinction between trace and parameterisation.",
  "Preserve regularity requirement.",
  "Preserve arc-length invariance.",
  "Preserve curvature and torsion definitions.",
  "Preserve Frenet-frame domain restrictions.",
  "Preserve geodesic dependence on ambient connection.",
  "Preserve machine-readable curve semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "A differential-geometric curve is a smooth map from an interval into a geometric space or manifold."

 REGULARITY_SUMMARY =
  "A curve is regular where gamma'(t)!=0."

 TANGENT_SUMMARY =
  "The tangent vector is gamma'(t); the unit tangent is gamma'/|gamma'|."

 ARC_LENGTH_SUMMARY =
  "L=integral |gamma'(t)| dt."

 CURVATURE_SUMMARY =
  "kappa=|dT/ds|; in R3, kappa=|gamma'×gamma''|/|gamma'|^3."

 TORSION_SUMMARY =
  "tau=((gamma'×gamma'')·gamma''')/|gamma'×gamma''|^2 where defined."

 FRENET_SUMMARY =
  "The Frenet frame consists of tangent T, normal N and binormal B."

 GEODESIC_SUMMARY =
  "A geodesic satisfies nabla_gamma_dot(gamma_dot)=0."
}

FLOW {
 INPUT
 -> detect_curve_context
 -> identify parameterisation_interval_ambient_space_and_smoothness
 -> test regularity
 -> identify tangent_arc_length_curvature_torsion_frenet_reparameterisation_or_geodesic goal
 -> perform derivative_integral_or_covariant reasoning
 -> verify differentiability_regularities_orientation_and_denominator constraints
 -> route to differential_geometry vector parametric calculus manifold_or_riemannian ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Curve Ontology defines one-dimensional smooth geometric objects through parameterised maps. It supports smoothness and regularity, tangent and unit-tangent vectors, arc length, curvature, torsion, Frenet frames, planar and spatial curve structure, reparameterisation and geodesic reasoning on manifolds."
}

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

}

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