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
Download Code
Copy to Clipboard