Skip to main content

Line 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 a geometric line within the Kireth Research Semantic Library. A line is a fundamental one-dimensional geometric entity extending indefinitely in both directions. This ontology supports incidence, collinearity, slope, direction, parallelism, perpendicularity, intersections, equations, constructions, transformations and relationships with points, segments, rays, planes and curves.

FLOW_ALGEBRA_RECORD {

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

IDENTITY {
 PRIMARY_ENTITY = Line
 SYMBOLIC_FORMS = ["l", "AB", "Ax+By+C=0", "y=mx+c", "r=a+t*d"]
 ENTITY_CLASS = OneDimensionalGeometricEntity
 PRIMARY_CONTEXT = Geometry
 DEFINITION = "A line is a one-dimensional straight geometric entity extending indefinitely in both directions."
 SEMANTIC_ROLE = "Provides a fundamental carrier for points, direction, incidence, alignment, intersection, parallelism and perpendicularity."
}

SCOPE {
 INCLUDE = [
  Line,
  StraightLine,
  InfiniteLine,
  CoordinateLine,
  VectorLine,
  HorizontalLine,
  VerticalLine,
  ParallelLine,
  PerpendicularLine,
  SecantLine,
  TangentLine,
  Transversal,
  LineOfSymmetry,
  ConstructibleLine,
  ImageLine,
  FixedLine
 ]

 EXCLUDE_AS_PRIMARY = [
  LineSegment,
  Ray,
  Curve,
  PhysicalStringOrWire,
  TextLine
 ]

 DISAMBIGUATION_RULE =
  "When line occurs with points, slope, coordinates, planes, intersections, parallelism, perpendicularity, tangents, secants or geometric constructions, interpret it as a geometric line."
}

CORE_CONCEPTS {

 Line {
  definition = "A straight one-dimensional geometric object extending without endpoints in both directions."
  intrinsic_dimension = 1
 }

 Direction {
  definition = "The orientation of a line, representable by slope, angle or direction vector."
 }

 Incidence {
  definition = "Relation expressing that a point lies on a line."
 }

 Collinearity {
  definition = "Property of multiple points lying on a common line."
 }

 ParallelLine {
  definition = "A line with the same direction as another line and distinct from it in Euclidean plane geometry."
 }

 PerpendicularLine {
  definition = "A line meeting another line at a right angle."
 }

 TangentLine {
  definition = "A line meeting a curve or surface with first-order contact at a specified point."
 }

 SecantLine {
  definition = "A line intersecting a curve in two or more points in the relevant context."
 }

 Transversal {
  definition = "A line intersecting two or more other lines."
 }

 CoordinateLine {
  definition = "A line represented by an equation in a coordinate system."
 }

 VectorLine {
  definition = "A line represented by a point vector and nonzero direction vector."
  form = "r=a+t*d"
 }
}

RELATIONS {
 Line --is_geometric_entity_of--> Geometry
 Line --has--> Direction
 Line --contains--> Point
 PairOfDistinctPoints --determines--> Line
 Point --can_lie_on--> Line
 Line --can_intersect--> Line
 Line --can_intersect--> Circle
 Line --can_be_parallel_to--> Line
 Line --can_be_perpendicular_to--> Line
 Line --can_be_tangent_to--> Curve
 Line --can_be_secant_to--> Curve
 Line --can_act_as--> Transversal
 Line --can_be_transformed_to--> Line
 Line --can_lie_in--> Plane
 CoordinateLine --can_be_represented_by--> LinearEquation
 VectorLine --can_be_represented_by--> ParametricEquation
}

OPERATORS {
 LINE_THROUGH(A,B) :=
  unique_line_through_distinct_points(A,B)

 IS_INCIDENT(P,L) :=
  P lies_on L

 IS_COLLINEAR(P1,...,Pn) :=
  EXISTS line L SUCH_THAT every Pi lies_on L

 INTERSECT(L1,L2) :=
  common_point_set(L1,L2)

 IS_PARALLEL(L1,L2) :=
  same_direction(L1,L2) AND L1!=L2 WHEN Euclidean_plane_context

 IS_PERPENDICULAR(L1,L2) :=
  angle_between(L1,L2)=pi/2

 SLOPE(L) :=
  gradient_of_nonvertical_coordinate_line(L)

 DIRECTION_VECTOR(L) :=
  any_nonzero_vector_parallel_to(L)

 LINE_EQUATION(P,d) :=
  derive_coordinate_or_vector_equation(P,d)

 TRANSFORM_LINE(L,T) :=
  image_of_line_under_transformation(L,T)

 DISTANCE_POINT_TO_LINE(P,L) :=
  shortest_metric_distance(P,L)
}

DEFINITIONS {
 D1 = "A line is one-dimensional."
 D2 = "A line has no endpoints."
 D3 = "Two distinct points determine a unique Euclidean line."
 D4 = "Points lying on the same line are collinear."
 D5 = "Parallel lines share direction and do not meet in Euclidean plane geometry."
 D6 = "Perpendicular lines meet at a right angle."
 D7 = "A vertical Cartesian line has undefined ordinary slope."
 D8 = "A tangent line has local first-order contact with a curve."
 D9 = "A secant intersects a curve at two or more relevant points."
 D10 = "A line may have multiple equivalent equation forms."
}

AXIOMS {
 A1_ONE_DIMENSION:
  A geometric line has intrinsic dimension one

 A2_NO_ENDPOINTS:
  A line extends indefinitely in both directions

 A3_TWO_POINT_DETERMINATION:
  In Euclidean geometry, two distinct points determine exactly one line

 A4_INCIDENCE:
  A point either lies on a line or does not

 A5_DIRECTION:
  A line possesses a direction up to nonzero scalar multiple in vector representation

 A6_TRANSFORMATION:
  Standard affine transformations map lines to lines

 A7_METRIC_RELATIONS:
  Parallelism and perpendicularity depend on the active geometry and metric structure
}

REASONING {

 R1_LINE_FROM_POINTS {
  INPUT = [A,B]
  REQUIRE = A!=B
  CONSTRUCT_OR_DERIVE = unique_line
  RETURN = Line
 }

 R2_POINT_ON_LINE {
  INPUT = [P,L]
  IF coordinate_context
   SUBSTITUTE = coordinates_of_P_into_equation_of_L
   RETURN = truth_status
  ELSE
   TEST = incidence_relation
 }

 R3_COLLINEARITY {
  INPUT = points
  TEST = common_line_condition
  IF coordinate_context
   USE = determinant_slope_or_rank_test
  RETURN = CollinearOrNot
 }

 R4_INTERSECTION {
  INPUT = [L1,L2]
  IF coordinate_context
   SOLVE = line_equations
  CLASSIFY = intersecting_parallel_or_coincident
  RETURN = relation_and_intersection
 }

 R5_PARALLELISM {
  INPUT = [L1,L2]
  IF slope_context
   COMPARE = slopes_with_vertical_case_handled
  ELSE IF vector_context
   TEST = scalar_multiple_direction_vectors
  RETURN = ParallelStatus
 }

 R6_PERPENDICULARITY {
  INPUT = [L1,L2]
  IF slope_context_and_both_nonvertical
   TEST = m1*m2==-1
  ELSE IF vector_context
   TEST = d1·d2==0
  RETURN = PerpendicularStatus
 }

 R7_TANGENT {
  INPUT = [curve C, point P]
  REQUIRE = P lies_on C
  IF differentiable_context
   DERIVE = tangent_direction_from_derivative_or_gradient
  RETURN = tangent_line
 }

 R8_TRANSFORMATION {
  INPUT = [L,T]
  APPLY = transformation_to_sufficient_points_or_parametric_form
  RETURN = image_line
 }
}

CONSTRAINTS {
 C1 = "A line must not be confused with a segment or ray."
 C2 = "Two coincident points do not determine a unique line direction."
 C3 = "Ordinary slope is undefined for vertical lines."
 C4 = "Parallelism depends on geometry; Euclidean interpretation is not universal."
 C5 = "Perpendicularity depends on angle or inner-product structure."
 C6 = "Coincident lines must be distinguished from parallel distinct lines."
 C7 = "Tangent definitions depend on curve regularity and context."
 C8 = "A transformation may fail to preserve straight lines unless it belongs to a suitable transformation class."
}

SEMANTIC_EQUIVALENCE {
 "Line" <=> "InfiniteStraightOneDimensionalGeometricEntity"
 "CoordinateLine" <=> "LineRepresentedByLinearEquation"
 "VectorLine" <=> "AffineOneParameterSet"
 "ParallelLines" <=> "DistinctLinesWithSameDirection" WHEN Euclidean_plane_context
 "PerpendicularLines" <=> "LinesMeetingAtRightAngle"
}

VALIDATION {
 V1 = "Line is one-dimensional."
 V2 = "Line has no endpoints."
 V3 = "Two distinct Euclidean points determine one line."
 V4 = "Points on a line satisfy its defining equation in coordinate form."
 V5 = "Parallel and coincident lines are distinguished."
 V6 = "Perpendicular lines satisfy right-angle criteria."
 V7 = "Vector direction is nonzero."
 V8 = "Affine transformations preserve linehood."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 LINE_DEFINITION = 0.99
 INCIDENCE_RELATION = 0.99
 COLLINEARITY_RELATION = 0.99
 PARALLELISM_RELATION = 0.99
 PERPENDICULARITY_RELATION = 0.99
 COORDINATE_LINE_RELATION = 0.99
 TRANSFORMATION_RELATION = 0.99

 POLICY =
  "Reduce confidence when geometry type, metric, coordinate frame, line representation or tangency context are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  GeometricEntityResolution,
  IncidenceReasoning,
  CollinearityReasoning,
  ParallelismReasoning,
  PerpendicularityReasoning,
  CoordinateReasoning,
  TangencyReasoning,
  TransformationReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "line" -> Line WHEN geometry_context
  "straight line" -> Line
  "geometric line" -> Line
  "parallel line" -> ParallelLine
  "perpendicular line" -> PerpendicularLine
  "tangent line" -> TangentLine
  "secant line" -> SecantLine
  "transversal" -> Transversal
 }

 INTERPRETATION_ORDER = [
  detect_geometric_line_context,
  identify_geometry_and_dimension,
  identify_points_direction_or_equation,
  classify_line_role,
  identify_incidence_intersection_parallelism_or_perpendicularity_context,
  perform_line_specific_reasoning,
  verify_representation_and_metric_constraints,
  return_semantic_output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("line")
  AND geometry_context
  THEN activate(LineOntology)

 E2:
  IF two_distinct_points_given
  THEN derive_unique_line

 E3:
  IF point_membership_requested
  THEN test_incidence

 E4:
  IF collinearity_requested
  THEN test_common_line_condition

 E5:
  IF parallelism_requested
  THEN compare_direction_with_vertical_case_handling

 E6:
  IF perpendicularity_requested
  THEN use_angle_slope_or_dot_product_criterion

 E7:
  IF tangent_context
  THEN route_to_curve_tangency_reasoning

 E8:
  IF transformation_context
  THEN compute_image_line
}

RECURSION {
 ENTRY = Line

 EXPAND(Line) -> [
  Direction,
  Incidence,
  Collinearity,
  ParallelLine,
  PerpendicularLine,
  TangentLine,
  SecantLine,
  Transversal,
  CoordinateLine,
  VectorLine
 ]

 EXPAND(CoordinateLine) -> [
  LinearEquation,
  Slope,
  Intercept,
  VerticalLine,
  HorizontalLine,
  Intersection
 ]

 EXPAND(VectorLine) -> [
  AnchorPoint,
  DirectionVector,
  Parameter,
  AffineCombination
 ]

 EXPAND(TangentLine) -> [
  Curve,
  ContactPoint,
  Derivative,
  Gradient,
  NormalLine
 ]

 STOP_CONDITION =
  "Stop when the line's role, equation, direction, incidence, intersection, parallelism, perpendicularity, tangency or transformation property is sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Plane Geometry"

 IMMEDIATE_CONTEXTS = [
  "Point Ontology",
  "Geometry Ontology",
  "Coordinate Geometry Ontology",
  "Vector Geometry Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Plane Geometry",
  "Point Ontology",
  "Coordinate Geometry Ontology",
  "Analytic Geometry Ontology",
  "Cartesian Coordinate Ontology",
  "Vector Geometry Ontology",
  "Parametric Geometry Ontology",
  "Geometric Construction Ontology",
  "Transformation Ontology",
  "Affine Transformation Ontology"
 ]

 ROUTE_RULES = [
  "Line -> Point for incidence and two-point determination",
  "Line -> Coordinate Geometry for slope and line equations",
  "Line -> Vector Geometry for direction-vector representation",
  "Line -> Parametric Geometry for r=a+t*d",
  "Line -> Geometric Construction for constructible lines",
  "Line -> Transformation for image-line reasoning",
  "Line -> Geometry for general spatial semantics"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

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

 RULES = [
  "Preserve line as an infinite one-dimensional straight entity.",
  "Preserve distinction among line, segment and ray.",
  "Preserve incidence and collinearity semantics.",
  "Preserve vertical-line slope exception.",
  "Preserve parallel/coincident distinction.",
  "Preserve transformation-specific line preservation.",
  "Preserve machine-readable line semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "A line is a one-dimensional straight geometric entity extending indefinitely in both directions."

 DIMENSION_SUMMARY =
  "dim(Line)=1"

 INCIDENCE_SUMMARY =
  "A point P is incident with line L iff P lies on L."

 TWO_POINT_SUMMARY =
  "Two distinct Euclidean points determine a unique line."

 PARALLEL_SUMMARY =
  "Parallel Euclidean lines have the same direction and are distinct."

 PERPENDICULAR_SUMMARY =
  "Perpendicular lines meet at a right angle."

 VECTOR_SUMMARY =
  "A vector line can be written r=a+t*d with d!=0."
}

FLOW {
 INPUT
 -> detect_geometric_line_context
 -> identify_line_or_candidate_relation
 -> identify_geometry_dimension_coordinate_or_vector_representation
 -> identify_points_direction_equation_or_role
 -> evaluate_incidence_collinearity_intersection_parallelism_perpendicularity_or_tangency
 -> perform_line_specific_reasoning
 -> verify_dimensional_metric_and_representation_constraints
 -> route_to_point_coordinate_vector_construction_or_transformation_ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Line Ontology defines the fundamental one-dimensional straight entity of geometry. A line extends indefinitely in both directions and supports incidence, collinearity, direction, parallelism, perpendicularity, intersections, tangency, coordinate equations, vector representations and geometric transformations."
}

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

}

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