Skip to main content

Projective Transformation Ontology

Transformational 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 projective transformation within the Kireth Research Semantic Library. A projective transformation is a mapping of projective space induced by an invertible linear transformation on homogeneous coordinates, preserving incidence, collinearity and cross-ratio while allowing parallel lines to meet at points at infinity. This ontology supports homogeneous coordinates, projective matrices, points and lines at infinity, perspective mappings, homographies, cross-ratio invariance, composition, inverses, fixed points, conic mappings and relationships with affine, linear and transformational geometry.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Projective Transformation Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Geometry"
 SPECIALISATION = "Transformational Geometry / Projective Geometry"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/transformational-geometry/projective-transformation-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = ProjectiveTransformation
 SYMBOLIC_FORMS = [
  "[x'] = H[x]",
  "p' ~ H p",
  "H in PGL(n+1)"
 ]
 ENTITY_CLASS = ProjectiveCollineation
 PRIMARY_CONTEXT = TransformationalGeometry
 DEFINITION = "A projective transformation is a bijective mapping of projective space induced by an invertible linear map on homogeneous coordinates, with coordinate representatives defined up to nonzero scalar multiple."
 SEMANTIC_ROLE = "Provides the incidence-preserving framework for homographies, perspective mappings, points at infinity, cross-ratio invariance, projective conics and projective coordinate reasoning."
}

SCOPE {
 INCLUDE = [
  ProjectiveTransformation,
  Homography,
  ProjectiveMap,
  Collineation,
  HomogeneousCoordinates,
  ProjectiveMatrix,
  PointAtInfinity,
  LineAtInfinity,
  HyperplaneAtInfinity,
  CrossRatio,
  PerspectiveTransformation,
  Image,
  Preimage,
  FixedPoint,
  FixedLine,
  InverseProjectiveTransformation,
  CompositionOfProjectiveTransformations,
  ProjectiveConic,
  ProjectiveInvariant
 ]

 EXCLUDE_AS_PRIMARY = [
  ArbitraryNonlinearMap,
  PureAffineTransformationWhenNoProjectiveExtensionIsRelevant,
  TopologicalHomeomorphismWithoutProjectiveStructure
 ]

 DISAMBIGUATION_RULE =
  "When a transformation is represented by a nonsingular homogeneous matrix, preserves incidence and collinearity, permits points at infinity, or acts as a planar homography, interpret it as a projective transformation."
}

CORE_CONCEPTS {

 ProjectiveTransformation {
  definition = "A projective-space automorphism induced by an invertible linear transformation on homogeneous coordinates."
 }

 HomogeneousCoordinates {
  definition = "Coordinate tuples representing projective points up to multiplication by a nonzero scalar."
  equivalence = "[x] ~ [lambda*x] for lambda!=0"
 }

 ProjectiveMatrix {
  definition = "An invertible matrix representing a projective transformation, itself defined up to nonzero scalar multiple."
 }

 Homography {
  definition = "A projective transformation, especially in the projective plane."
 }

 PointAtInfinity {
  definition = "A projective point corresponding to a direction of parallel affine lines."
 }

 LineAtInfinity {
  definition = "The projective line containing the points at infinity of an affine plane."
 }

 CrossRatio {
  definition = "A projective invariant of four collinear points."
 }

 PerspectiveTransformation {
  definition = "A projective map arising from central projection between planes."
 }

 ProjectiveInvariant {
  definition = "A property preserved under projective transformations."
 }

 ProjectiveConic {
  definition = "A conic considered up to projective equivalence."
 }
}

RELATIONS {
 ProjectiveTransformation --is_special_case_of--> GeometricTransformation
 AffineTransformation --embeds_into--> ProjectiveTransformation
 ProjectiveTransformation --uses--> HomogeneousCoordinates
 ProjectiveTransformation --represented_by--> ProjectiveMatrix
 ProjectiveTransformation --preserves--> Incidence
 ProjectiveTransformation --preserves--> Collinearity
 ProjectiveTransformation --preserves--> CrossRatio
 ProjectiveTransformation --maps--> Line
 ProjectiveTransformation --maps--> ProjectiveConic
 ParallelAffineLines --meet_at--> PointAtInfinity
 PointAtInfinity --lies_on--> LineAtInfinity
 ProjectiveTransformation --can_have--> FixedPoint
 ProjectiveTransformation --can_have--> FixedLine
 ProjectiveTransformation --can_compose_with--> ProjectiveTransformation
 InvertibleProjectiveTransformation --has_inverse--> InverseProjectiveTransformation
}

OPERATORS {
 APPLY_PROJECTIVE(H,p) :=
  H*p up_to_nonzero_scalar

 NORMALISE_HOMOGENEOUS(p) :=
  choose_affine_chart_or_scale_representative(p)

 COMPOSE_PROJECTIVE(H2,H1) :=
  H2*H1 up_to_nonzero_scalar

 INVERSE_PROJECTIVE(H) :=
  H^-1 up_to_nonzero_scalar
  WHEN det(H)!=0

 FIXED_POINTS(H) :=
  projective_eigenvectors_of(H)

 MAP_LINE(H,l) :=
  H^(-T)*l up_to_nonzero_scalar
  WHEN line_is_dual_homogeneous_vector

 CROSS_RATIO(A,B,C,D) :=
  projective_cross_ratio(A,B,C,D)

 MAP_CONIC(H,Q) :=
  H^(-T)*Q*H^-1
  up_to_nonzero_scalar

 IS_AFFINE_SUBCASE(H) :=
  line_or_hyperplane_at_infinity_is_invariant_under_H
}

DEFINITIONS {
 D1 = "Projective points are homogeneous coordinate classes."
 D2 = "Projective matrices are defined up to nonzero scalar."
 D3 = "Projective transformations preserve incidence."
 D4 = "Projective transformations preserve collinearity."
 D5 = "Projective transformations preserve cross-ratio."
 D6 = "Parallel affine lines meet at a projective point at infinity."
 D7 = "An affine transformation is a projective transformation preserving the hyperplane at infinity."
 D8 = "A projective transformation is invertible iff its homogeneous matrix is nonsingular."
 D9 = "Projective transformations map nondegenerate conics to nondegenerate conics."
 D10 = "Euclidean lengths and angles are not projective invariants."
}

AXIOMS {
 A1_HOMOGENEOUS_EQUIVALENCE:
  Projective point representatives differing by nonzero scalar are equivalent

 A2_MATRIX_ACTION:
  A projective transformation is induced by an invertible homogeneous linear map

 A3_INCIDENCE:
  Incidence relations between projective points and hyperplanes are preserved

 A4_COLLINEARITY:
  Collinear projective points map to collinear projective points

 A5_CROSS_RATIO:
  Cross-ratio of four collinear points is invariant

 A6_COMPOSITION:
  Composition of projective transformations is projective

 A7_INVERSE:
  Every nonsingular projective transformation has a projective inverse

 A8_PROJECTIVE_CONICS:
  Nondegenerate conics remain nondegenerate conics under projective transformations
}

REASONING {

 R1_CLASSIFY_PROJECTIVE {
  INPUT = transformation_rule_or_matrix
  TEST = homogeneous_linear_representation
  TEST = matrix_nonsingularity
  IF valid
   RETURN ProjectiveTransformation
  ELSE
   RETURN NotEstablishedProjective
 }

 R2_POINT_IMAGE {
  INPUT = [H,p]
  COMPUTE = H*p
  NORMALISE = homogeneous_representation_if_affine_chart_requested
  RETURN = projective_image
 }

 R3_PREIMAGE {
  INPUT = [H,q]
  REQUIRE = det(H)!=0
  COMPUTE = H^-1*q
  RETURN = projective_preimage
 }

 R4_COMPOSITION {
  INPUT = [H1,H2]
  MULTIPLY = H2*H1
  NORMALISE = projective_matrix_scale_if_desired
  RETURN = composite_homography
 }

 R5_INVERSE {
  INPUT = H
  REQUIRE = det(H)!=0
  COMPUTE = H^-1
  RETURN = inverse_projective_transformation
 }

 R6_FIXED_POINTS {
  INPUT = H
  SOLVE = H*p=lambda*p
  RETURN = projective_eigenpoints
 }

 R7_LINE_MAPPING {
  INPUT = [H,line l]
  COMPUTE = H^(-T)*l
  RETURN = image_line
 }

 R8_CROSS_RATIO_INVARIANCE {
  INPUT = [A,B,C,D,H]
  VERIFY = collinearity
  COMPUTE = cross_ratio_before
  COMPUTE = cross_ratio_after
  RETURN = equality_status
 }

 R9_AFFINE_SUBCASE {
  INPUT = H
  TEST = hyperplane_at_infinity_invariant
  IF true
   RETURN AffineTransformationSubcase
  ELSE
   RETURN ProperProjectiveTransformation
 }

 R10_CONIC_MAPPING {
  INPUT = [H,Q]
  COMPUTE = H^(-T)*Q*H^-1
  VERIFY = nondegeneracy_if_required
  RETURN = image_conic
 }
}

CONSTRAINTS {
 C1 = "Homogeneous vectors differing by nonzero scale represent the same projective point."
 C2 = "Projective matrices themselves are defined only up to nonzero scalar."
 C3 = "Euclidean distance is not generally preserved."
 C4 = "Euclidean angle is not generally preserved."
 C5 = "Parallelism is not generally preserved as an affine relation."
 C6 = "Affine normalisation fails for points on the hyperplane at infinity."
 C7 = "Matrix must be nonsingular for a genuine projective automorphism."
 C8 = "Line and conic transformation formulas use dual or quadratic-form conventions that must remain basis-consistent."
}

SEMANTIC_EQUIVALENCE {
 "ProjectiveTransformation" <=> "ProjectiveCollineation"
 "Homography" <=> "ProjectiveTransformationOfProjectivePlane"
 "PointAtInfinity" <=> "ProjectiveDirectionPoint"
 "AffineTransformation" <=> "ProjectiveTransformationPreservingHyperplaneAtInfinity"
 "ProjectiveMatrix" <=> "NonsingularHomogeneousMatrixModuloScale"
}

VALIDATION {
 V1 = "Homogeneous-point equivalence is respected."
 V2 = "Matrix is nonsingular."
 V3 = "Incidence is preserved."
 V4 = "Collinearity is preserved."
 V5 = "Cross-ratio is preserved."
 V6 = "Composition uses homogeneous matrix multiplication."
 V7 = "Inverse exists iff matrix is nonsingular."
 V8 = "Affine subcase preserves hyperplane at infinity."
 V9 = "Euclidean metric invariants are not assumed."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 PROJECTIVE_DEFINITION = 0.99
 HOMOGENEOUS_REASONING = 0.99
 MATRIX_REASONING = 0.99
 CROSS_RATIO_REASONING = 0.99
 AFFINE_SUBCASE_REASONING = 0.98
 CONIC_MAPPING_REASONING = 0.98
 FIXED_POINT_REASONING = 0.98

 POLICY =
  "Reduce confidence when homogeneous-coordinate convention, matrix scaling, affine chart, dimension, line duality convention or projective versus affine interpretation are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  ProjectiveReasoning,
  HomographyReasoning,
  HomogeneousCoordinateReasoning,
  MatrixReasoning,
  IncidenceReasoning,
  CrossRatioReasoning,
  FixedPointReasoning,
  ConicReasoning,
  AffineSubcaseReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "projective transformation" -> ProjectiveTransformation
  "projective map" -> ProjectiveTransformation
  "homography" -> Homography
  "perspective transformation" -> PerspectiveTransformation
  "homogeneous coordinates" -> HomogeneousCoordinates
  "point at infinity" -> PointAtInfinity
  "line at infinity" -> LineAtInfinity
  "cross ratio" -> CrossRatio
 }

 INTERPRETATION_ORDER = [
  detect_projective_transformation_context,
  identify projective_dimension_and_homogeneous_coordinate_convention,
  identify homogeneous_matrix,
  test nonsingularity,
  identify point_line_conic_cross_ratio_fixed_point_affine_subcase_or_composition goal,
  perform projective_specific reasoning,
  verify scale_equivalence_chart_and_duality constraints,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("projective transformation")
  OR query_mentions("homography")
  THEN activate(ProjectiveTransformationOntology)

 E2:
  IF homogeneous_matrix_and_point_given
  THEN compute H*p
  AND normalise only when affine_chart_is_valid

 E3:
  IF composition_requested
  THEN multiply homogeneous matrices in function-composition order

 E4:
  IF inverse_requested
  THEN require det(H)!=0
  AND use H^-1 up_to_scale

 E5:
  IF fixed_points_requested
  THEN solve projective_eigenvector equation H*p=lambda*p

 E6:
  IF cross_ratio_requested
  THEN require four_collinear_points
  AND compare invariant_before_after

 E7:
  IF affine_subcase_requested
  THEN test hyperplane_at_infinity invariance

 E8:
  IF conic_mapping_requested
  THEN use Q'=H^(-T)QH^-1 under compatible homogeneous convention

 E9:
  IF Euclidean_length_or_angle_requested
  THEN do_not_assume_projective_invariance
}

RECURSION {
 ENTRY = ProjectiveTransformation

 EXPAND(ProjectiveTransformation) -> [
  HomogeneousCoordinates,
  ProjectiveMatrix,
  Homography,
  PointAtInfinity,
  LineAtInfinity,
  CrossRatio,
  Image,
  Preimage,
  Composition,
  InverseProjectiveTransformation,
  FixedPoint,
  FixedLine,
  ProjectiveConic,
  ProjectiveInvariant
 ]

 EXPAND(HomogeneousCoordinates) -> [
  ScaleEquivalence,
  AffineChart,
  PointAtInfinity,
  HyperplaneAtInfinity
 ]

 EXPAND(ProjectiveMatrix) -> [
  Nonsingularity,
  MatrixModuloScale,
  Eigenvectors,
  Composition,
  Inverse
 ]

 EXPAND(ProjectiveInvariants) -> [
  Incidence,
  Collinearity,
  CrossRatio,
  ConicClassUnderProjectiveEquivalence
 ]

 STOP_CONDITION =
  "Stop when the projective map's matrix, image, preimage, incidence structure, fixed set, cross-ratio, conic action, affine subcase or inverse/composition property is sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Transformational Geometry"

 IMMEDIATE_CONTEXTS = [
  "Transformation Ontology 2",
  "Affine Transformation Ontology 2",
  "Coordinate Geometry Ontology",
  "Matrix Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Transformational Geometry",
  "Transformation Ontology 2",
  "Affine Transformation Ontology 2",
  "Linear Transformation Ontology",
  "Coordinate Geometry Ontology",
  "Analytic Geometry Ontology",
  "Vector Geometry Ontology",
  "Matrix Ontology",
  "Determinant Ontology",
  "Conic Section Ontology",
  "Projective Geometry Ontologies"
 ]

 ROUTE_RULES = [
  "Projective Transformation -> Transformation Ontology 2 for general mapping semantics",
  "Projective Transformation -> Affine Transformation for hyperplane-at-infinity-preserving subcases",
  "Projective Transformation -> Linear Transformation for homogeneous linear representatives",
  "Projective Transformation -> Coordinate Geometry for affine charts and coordinate normalisation",
  "Projective Transformation -> Matrix for homogeneous computation",
  "Projective Transformation -> Determinant for nonsingularity",
  "Projective Transformation -> Conic Section for conic mappings",
  "Projective Transformation -> Projective Geometry for incidence and infinity structure"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

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

 RULES = [
  "Preserve homogeneous-coordinate scale equivalence.",
  "Preserve nonsingular matrix modulo scalar semantics.",
  "Preserve incidence and collinearity invariance.",
  "Preserve cross-ratio invariance.",
  "Preserve affine subcase via hyperplane-at-infinity invariance.",
  "Preserve nonmetric character of general projective transformations.",
  "Preserve machine-readable projective-transformation semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "A projective transformation is a bijective map of projective space induced by a nonsingular linear transformation on homogeneous coordinates."

 HOMOGENEOUS_FORM_SUMMARY =
  "p' ~ H p, with H nonsingular and defined up to nonzero scalar."

 COMPOSITION_SUMMARY =
  "H_composite ~ H2*H1."

 INVERSE_SUMMARY =
  "H^-1 represents the inverse projective transformation when det(H)!=0."

 FIXED_POINT_SUMMARY =
  "Fixed projective points satisfy H*p=lambda*p."

 AFFINE_SUBCASE_SUMMARY =
  "An affine transformation is a projective transformation that preserves the hyperplane at infinity."

 INVARIANT_SUMMARY =
  "Projective transformations preserve incidence, collinearity and cross-ratio, but not generally Euclidean lengths or angles."
}

FLOW {
 INPUT
 -> detect_projective_transformation_context
 -> identify projective_dimension_homogeneous_coordinates_and_matrix
 -> verify matrix_nonsingularity_and_scale_equivalence
 -> identify point_line_conic_cross_ratio_fixed_point_composition_inverse_or_affine_subcase goal
 -> perform projective_specific reasoning
 -> verify affine_chart_duality_matrix_order_and_nonmetric constraints
 -> route to transformation affine linear coordinate analytic matrix determinant conic_or_projective_geometry ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Projective Transformation Ontology defines homographies and projective collineations through nonsingular homogeneous matrices. It supports points and lines at infinity, incidence and collinearity preservation, cross-ratio invariance, image and preimage reasoning, composition, inverses, fixed points, conic mappings and affine transformations as the hyperplane-at-infinity-preserving subcase."
}

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

}

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