Skip to main content

Prism 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 prism within the Kireth Research Semantic Library. A prism is a polyhedron with two congruent parallel polygonal bases connected by parallelogram lateral faces. This ontology supports right and oblique prisms, base geometry, height, lateral faces, surface area, volume, nets, cross-sections, coordinate representation, symmetry, transformations and relationships with cuboids, cubes and general polyhedra.

FLOW_ALGEBRA_RECORD {

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

IDENTITY {
 PRIMARY_ENTITY = Prism
 SYMBOLIC_FORMS = ["V=A_base*h", "n-gonal prism"]
 ENTITY_CLASS = Polyhedron
 PRIMARY_CONTEXT = SolidGeometry
 DEFINITION = "A prism is a polyhedron with two congruent parallel polygonal bases whose corresponding vertices are joined by parallelogram lateral faces."
 SEMANTIC_ROLE = "Provides the parallel-base polyhedral framework for volume, surface area, cross-sections, nets, coordinate representation and transformation reasoning."
}

SCOPE {
 INCLUDE = [
  Prism,
  RightPrism,
  ObliquePrism,
  RegularPrism,
  TriangularPrism,
  QuadrilateralPrism,
  PentagonalPrism,
  HexagonalPrism,
  RectangularPrism,
  Cuboid,
  Cube,
  Base,
  LateralFace,
  LateralEdge,
  Height,
  SurfaceArea,
  LateralArea,
  Volume,
  Net,
  CrossSection,
  CoordinatePrism
 ]

 EXCLUDE_AS_PRIMARY = [
  Pyramid,
  Cylinder,
  Antiprism,
  GeneralPolyhedronWithoutTwoCongruentParallelBases,
  PhysicalPrismWithoutMathematicalAbstraction
 ]

 DISAMBIGUATION_RULE =
  "When prism occurs with congruent parallel polygonal bases, lateral faces, height, volume, surface area, net or n-gonal base, interpret it as a geometric prism."
}

CORE_CONCEPTS {

 Prism {
  definition = "A polyhedron with two congruent parallel polygonal bases joined by parallelogram lateral faces."
 }

 RightPrism {
  definition = "A prism whose lateral edges are perpendicular to the base planes."
 }

 ObliquePrism {
  definition = "A prism whose lateral edges are not perpendicular to the base planes."
 }

 RegularPrism {
  definition = "A right prism with regular polygonal bases."
 }

 Base {
  definition = "One of the two congruent parallel polygonal faces."
 }

 LateralFace {
  definition = "A parallelogram face joining corresponding base edges."
 }

 LateralEdge {
  definition = "An edge joining corresponding base vertices."
 }

 Height {
  symbol = "h"
  definition = "The perpendicular distance between the base planes."
 }

 BaseArea {
  symbol = "A_base"
  definition = "Area of one polygonal base."
 }

 BasePerimeter {
  symbol = "P_base"
  definition = "Perimeter of one base polygon."
 }

 LateralArea {
  right_prism_formula = "P_base*h"
 }

 SurfaceArea {
  right_prism_formula = "2*A_base + P_base*h"
 }

 Volume {
  formula = "A_base*h"
 }
}

RELATIONS {
 Prism --is_special_case_of--> Polyhedron
 RightPrism --is_special_case_of--> Prism
 ObliquePrism --is_special_case_of--> Prism
 RegularPrism --is_special_case_of--> RightPrism
 RectangularPrism --is_special_case_of--> Prism
 Cuboid --is_special_case_of--> RectangularPrism
 Cube --is_special_case_of--> Cuboid
 Prism --has--> TwoBases
 Prism --has--> LateralFace
 Prism --has--> LateralEdge
 Prism --has--> Height
 Bases --are_parallel_to--> EachOther
 Bases --are_congruent_to--> EachOther
 CorrespondingVertices --are_joined_by--> LateralEdges
 LateralFaces --are--> Parallelograms
 Prism --can_have--> CrossSection
 Prism --can_have--> Net
}

OPERATORS {
 VOLUME(A_base,h) :=
  A_base*h

 LATERAL_AREA_RIGHT_PRISM(P_base,h) :=
  P_base*h

 TOTAL_SURFACE_AREA_RIGHT_PRISM(A_base,P_base,h) :=
  2*A_base + P_base*h

 IS_PRISM(SOLID) :=
  has_two_congruent_parallel_polygonal_bases
  AND corresponding_vertices_joined_by_parallelogram_lateral_faces

 IS_RIGHT_PRISM(PRISM) :=
  lateral_edges_perpendicular_to_base_planes

 IS_REGULAR_PRISM(PRISM) :=
  IS_RIGHT_PRISM(PRISM)
  AND bases_are_regular_polygons

 CROSS_SECTION_PARALLEL_TO_BASE(PRISM,PLANE) :=
  congruent_copy_of_base_when_plane_between_bases_and_parallel

 TRANSFORM_PRISM(P,T) :=
  image_of_prism_under_3D_transformation(P,T)
}

DEFINITIONS {
 D1 = "A prism has two congruent parallel polygonal bases."
 D2 = "Lateral faces are parallelograms."
 D3 = "Height is the perpendicular distance between the base planes."
 D4 = "A right prism has lateral edges perpendicular to the bases."
 D5 = "An oblique prism has nonperpendicular lateral edges."
 D6 = "Prism volume equals base area times perpendicular height."
 D7 = "A right prism has lateral area equal to base perimeter times height."
 D8 = "A right prism total surface area equals twice the base area plus lateral area."
 D9 = "A plane parallel to the bases produces a congruent polygonal cross-section."
 D10 = "Prisms are named by the shape of their bases."
}

AXIOMS {
 A1_PARALLEL_BASES:
  A prism has two bases lying in parallel planes

 A2_CONGRUENT_BASES:
  The two bases are congruent polygons

 A3_LATERAL_FACES:
  Corresponding base edges are joined by parallelogram faces

 A4_HEIGHT:
  Prism height is perpendicular distance between base planes

 A5_VOLUME:
  Prism volume equals base_area*height

 A6_RIGHT_PRISM_LATERAL_AREA:
  For a right prism, lateral area equals base_perimeter*height

 A7_PARALLEL_SECTION:
  A cross-section parallel to the bases is congruent to the bases

 A8_AFFINE_STRUCTURE:
  Nondegenerate affine transformations map prisms to prisms
}

REASONING {

 R1_PRISM_CLASSIFICATION {
  INPUT = solid_properties
  TEST = two_congruent_parallel_polygonal_bases
  TEST = parallelogram_lateral_faces
  IF true
   CLASSIFY = Prism
  ELSE
   RETURN NotPrism
  IF lateral_edges_perpendicular_to_bases
   REFINE = RightPrism
  ELSE
   REFINE = ObliquePrism
  RETURN = classification
 }

 R2_BASE_CLASSIFICATION {
  INPUT = base_polygon
  IDENTIFY = side_count_and_regular_or_irregular_status
  RETURN = triangular_quadrilateral_pentagonal_hexagonal_or_n_gonal_prism
 }

 R3_VOLUME {
  INPUT = [A_base,h]
  REQUIRE = A_base>=0 AND h>=0
  COMPUTE = A_base*h
  RETURN = volume
 }

 R4_RIGHT_PRISM_SURFACE_AREA {
  INPUT = [A_base,P_base,h]
  COMPUTE = lateral=P_base*h
  COMPUTE = total=2*A_base+lateral
  RETURN = requested_area
 }

 R5_PARALLEL_CROSS_SECTION {
  INPUT = [prism,plane_parallel_to_bases]
  INTERSECT = prism_with_plane
  RETURN = polygon_congruent_to_base
 }

 R6_OBLIQUE_PRISM {
  INPUT = [base_area,perpendicular_height,lateral_edge]
  DISTINGUISH = perpendicular_height_from_lateral_edge_length
  COMPUTE = volume_using_perpendicular_height
  RETURN = prism_measurement
 }

 R7_NET_REASONING {
  INPUT = prism
  UNFOLD = two_bases_and_lateral_faces
  VERIFY = edge_correspondence
  RETURN = valid_net_structure
 }

 R8_COORDINATE_PRISM {
  INPUT = base_vertices_and_translation_vector
  GENERATE = translated_second_base
  JOIN = corresponding_vertices
  VERIFY = bases_congruent_and_parallel
  RETURN = coordinate_prism
 }

 R9_TRANSFORMATION {
  INPUT = [prism,T]
  IF affine_nondegenerate
   RETURN prism_with_transformed_bases_and_lateral_faces
  TRACK = metric_invariants_only_when_transformation_supports_them
 }
}

CONSTRAINTS {
 C1 = "Prism height is perpendicular distance, not lateral-edge length in the oblique case."
 C2 = "Lateral area P_base*h applies directly to right prisms."
 C3 = "Volume A_base*h uses perpendicular height for both right and oblique prisms."
 C4 = "The bases must be congruent and parallel."
 C5 = "Lateral faces must be parallelograms."
 C6 = "A cylinder is not a prism because its bases are not polygonal."
 C7 = "A pyramid is not a prism because it has one base and an apex."
 C8 = "General affine transformations preserve prism incidence structure but not lengths or angles."
}

SEMANTIC_EQUIVALENCE {
 "Prism" <=> "PolyhedronWithTwoCongruentParallelPolygonalBases"
 "RightPrism" <=> "PrismWithLateralEdgesPerpendicularToBases"
 "RegularPrism" <=> "RightPrismWithRegularPolygonBases"
 "RectangularPrism" <=> "PrismWithRectangularBasesAndRightStructure" WHEN standard_usage
 "PrismVolume" <=> "BaseAreaTimesPerpendicularHeight"
}

VALIDATION {
 V1 = "Prism has two congruent parallel bases."
 V2 = "Lateral faces are parallelograms."
 V3 = "Volume equals A_base*h."
 V4 = "Right-prism lateral area equals P_base*h."
 V5 = "Right-prism total area equals 2*A_base+P_base*h."
 V6 = "Parallel-to-base cross-section is congruent to base."
 V7 = "Oblique-prism volume uses perpendicular height."
 V8 = "Nondegenerate affine images preserve prism structure."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 PRISM_DEFINITION = 0.99
 CLASSIFICATION = 0.99
 VOLUME_REASONING = 0.99
 SURFACE_AREA_REASONING = 0.99
 CROSS_SECTION_REASONING = 0.99
 NET_REASONING = 0.98
 TRANSFORMATION_REASONING = 0.98

 POLICY =
  "Reduce confidence when base congruence, parallelism, right-versus-oblique status, perpendicular height or transformation class are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  PrismReasoning,
  PolyhedralReasoning,
  VolumeReasoning,
  SurfaceAreaReasoning,
  CrossSectionReasoning,
  NetReasoning,
  CoordinateReasoning,
  TransformationReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "prism" -> Prism
  "right prism" -> RightPrism
  "oblique prism" -> ObliquePrism
  "regular prism" -> RegularPrism
  "triangular prism" -> TriangularPrism
  "rectangular prism" -> RectangularPrism
  "n-gonal prism" -> Prism
 }

 INTERPRETATION_ORDER = [
  detect_prism_context,
  identify base_polygons parallelism congruence and lateral_edges,
  classify right oblique regular and base_type,
  identify volume surface_area cross_section net coordinate or transformation goal,
  apply prism_specific formulas_and_theorems,
  verify perpendicular_height base_congruence and parallelism constraints,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("prism")
  AND geometry_context
  THEN activate(PrismOntology)

 E2:
  IF two_congruent_parallel_polygonal_bases
  AND parallelogram_lateral_faces
  THEN classify(Prism)

 E3:
  IF lateral_edges_perpendicular_to_bases
  THEN classify(RightPrism)

 E4:
  IF volume_requested
  THEN compute base_area*perpendicular_height

 E5:
  IF lateral_area_requested
  AND right_prism_context
  THEN compute base_perimeter*height

 E6:
  IF total_surface_area_requested
  AND right_prism_context
  THEN compute 2*base_area + base_perimeter*height

 E7:
  IF cross_section_plane_parallel_to_bases
  THEN return congruent_base_shape

 E8:
  IF base_is_rectangle_and_right_prism
  THEN route_to(CuboidOntology)
}

RECURSION {
 ENTRY = Prism

 EXPAND(Prism) -> [
  Base,
  LateralFace,
  LateralEdge,
  Height,
  RightPrism,
  ObliquePrism,
  RegularPrism,
  SurfaceArea,
  Volume,
  Net,
  CrossSection,
  CoordinatePrism
 ]

 EXPAND(BaseTypes) -> [
  TriangularPrism,
  QuadrilateralPrism,
  PentagonalPrism,
  HexagonalPrism,
  NGonalPrism
 ]

 EXPAND(RightPrism) -> [
  BaseArea,
  BasePerimeter,
  LateralArea,
  TotalSurfaceArea,
  PerpendicularLateralEdges
 ]

 EXPAND(CrossSection) -> [
  ParallelBaseSection,
  ObliquePlaneSection,
  Polygon
 ]

 STOP_CONDITION =
  "Stop when the prism's type, base structure, height, surface measure, volume, net, cross-section, coordinate representation or transformation property is sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Solid Geometry"

 IMMEDIATE_CONTEXTS = [
  "Solid Geometry Ontology",
  "Cuboid Ontology",
  "Cube Ontology",
  "Polyhedron Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Solid Geometry Ontology",
  "Cuboid Ontology",
  "Cube Ontology",
  "Plane Geometry",
  "Polygon Ontology",
  "Coordinate Geometry Ontology",
  "Cartesian Coordinate Ontology",
  "Vector Geometry Ontology",
  "Transformation Ontology",
  "Affine Transformation Ontology"
 ]

 ROUTE_RULES = [
  "Prism -> Solid Geometry Ontology for general 3D semantics",
  "Prism -> Polygon for base-shape reasoning",
  "Prism -> Cuboid for rectangular right prisms",
  "Prism -> Cube for equal-edge cuboid specialisation",
  "Prism -> Coordinate Geometry for vertex coordinates",
  "Prism -> Vector Geometry for translation vectors and plane relations",
  "Prism -> Transformation for affine images"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

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

 RULES = [
  "Preserve two-congruent-parallel-polygonal-base semantics.",
  "Preserve lateral-face parallelogram structure.",
  "Preserve distinction between right and oblique prisms.",
  "Preserve perpendicular-height meaning.",
  "Preserve volume formula for all prisms.",
  "Preserve right-prism lateral-area conditions.",
  "Preserve machine-readable prism semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "A prism is a polyhedron with two congruent parallel polygonal bases joined by parallelogram lateral faces."

 VOLUME_SUMMARY =
  "V=A_base*h"

 RIGHT_PRISM_LATERAL_AREA_SUMMARY =
  "A_lateral=P_base*h"

 RIGHT_PRISM_TOTAL_AREA_SUMMARY =
  "A_total=2*A_base+P_base*h"

 CROSS_SECTION_SUMMARY =
  "A plane parallel to the bases cuts a prism in a congruent copy of the base."

 CLASSIFICATION_SUMMARY =
  "Prisms may be right or oblique and are named by the shape of their bases."

 TRANSFORMATION_SUMMARY =
  "Nondegenerate affine transformations preserve prism structure."
}

FLOW {
 INPUT
 -> detect_prism_context
 -> identify bases_lateral_faces_lateral_edges_and_height
 -> verify congruent_parallel_base_structure
 -> classify right_oblique_regular_and_base_shape
 -> identify volume_surface_area_net_cross_section_coordinate_or_transformation goal
 -> apply prism_specific geometry
 -> verify perpendicular_height polygonal_base and right_prism constraints
 -> route to solid_geometry polygon cuboid cube coordinate vector or transformation ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Prism Ontology defines polyhedra with two congruent parallel polygonal bases connected by parallelogram lateral faces. It supports right and oblique classification, base-shape specialisation, volume, surface area, nets, cross-sections, coordinate constructions, cuboid and cube relationships, and affine transformation reasoning."
}

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

}

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