AI Interpretation Note:
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.
AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of a quadrilateral within the Kireth Research Semantic Library. A quadrilateral is a four-sided polygon formed by four vertices joined by four line segments. This ontology supports classification into parallelograms, rectangles, squares, rhombi, trapezia/trapezoids and kites; angle and diagonal reasoning; congruence and similarity; perimeter and area; coordinate representation; transformations; constructions; and theorem-based geometric proof.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Quadrilateral Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Geometry"
SPECIALISATION = "Plane Geometry / Polygon Geometry"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/plane-geometry/quadrilateral-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = Quadrilateral
SYMBOLIC_FORMS = ["ABCD", "quadrilateral ABCD"]
ENTITY_CLASS = FourSidedPolygon
PRIMARY_CONTEXT = PlaneGeometry
DEFINITION = "A quadrilateral is a polygon formed by four vertices joined cyclically by four line segments."
SEMANTIC_ROLE = "Provides the fundamental four-sided plane figure for classification, angle, diagonal, symmetry, area, congruence, similarity and transformation reasoning."
}
SCOPE {
INCLUDE = [
Quadrilateral,
ConvexQuadrilateral,
ConcaveQuadrilateral,
Parallelogram,
Rectangle,
Square,
Rhombus,
Trapezium,
Trapezoid,
Kite,
Side,
Vertex,
InteriorAngle,
ExteriorAngle,
Diagonal,
Perimeter,
Area,
Congruence,
Similarity,
Symmetry
]
EXCLUDE_AS_PRIMARY = [
GeneralPolygon,
SelfIntersectingQuadrilateralUnlessExplicit,
ThreeDimensionalTetrahedron,
NonPlanarFourPointConfiguration
]
DISAMBIGUATION_RULE =
"When quadrilateral occurs with four sides, four vertices, diagonals, parallelogram, rectangle, square, rhombus, kite or trapezium/trapezoid, interpret it as a plane geometric quadrilateral."
}
CORE_CONCEPTS {
Quadrilateral {
definition = "A polygon with four sides and four vertices."
side_count = 4
vertex_count = 4
euclidean_interior_angle_sum = "360 degrees"
}
ConvexQuadrilateral {
definition = "A quadrilateral whose interior angles are each less than 180 degrees and whose diagonals lie inside the figure."
}
ConcaveQuadrilateral {
definition = "A quadrilateral with one reflex interior angle."
}
Parallelogram {
definition = "A quadrilateral with both pairs of opposite sides parallel."
properties = [
"Opposite sides are equal",
"Opposite angles are equal",
"Diagonals bisect each other"
]
}
Rectangle {
definition = "A parallelogram with four right angles."
properties = [
"Opposite sides are equal and parallel",
"Diagonals are equal",
"Diagonals bisect each other"
]
}
Square {
definition = "A quadrilateral with four equal sides and four right angles."
properties = [
"Is a rectangle",
"Is a rhombus",
"Diagonals are equal",
"Diagonals are perpendicular",
"Diagonals bisect each other and the vertex angles"
]
}
Rhombus {
definition = "A parallelogram with four equal sides."
properties = [
"Opposite angles are equal",
"Diagonals are perpendicular",
"Diagonals bisect each other",
"Diagonals bisect opposite angles"
]
}
Trapezium {
definition = "In UK usage, a quadrilateral with at least one pair of parallel sides."
regional_note = "Often called a trapezoid in US usage."
}
Kite {
definition = "A quadrilateral with two distinct pairs of adjacent equal sides."
properties = [
"One pair of opposite angles may be equal",
"One diagonal is a perpendicular bisector of the other in the standard kite configuration"
]
}
Diagonal {
definition = "A segment joining two nonadjacent vertices of a quadrilateral."
}
}
RELATIONS {
Quadrilateral --is_special_case_of--> Polygon
Quadrilateral --has--> FourSides
Quadrilateral --has--> FourVertices
Quadrilateral --has--> TwoDiagonals
Quadrilateral --can_be_classified_as--> ConvexQuadrilateral
Quadrilateral --can_be_classified_as--> ConcaveQuadrilateral
Quadrilateral --can_be_classified_as--> Parallelogram
Quadrilateral --can_be_classified_as--> Rectangle
Quadrilateral --can_be_classified_as--> Square
Quadrilateral --can_be_classified_as--> Rhombus
Quadrilateral --can_be_classified_as--> Trapezium
Quadrilateral --can_be_classified_as--> Kite
Square --is_special_case_of--> Rectangle
Square --is_special_case_of--> Rhombus
Rectangle --is_special_case_of--> Parallelogram
Rhombus --is_special_case_of--> Parallelogram
Quadrilateral --can_have--> Symmetry
Quadrilateral --can_be_congruent_to--> Quadrilateral
Quadrilateral --can_be_similar_to--> Quadrilateral
}
OPERATORS {
PERIMETER(Q) :=
sum_of_four_side_lengths(Q)
ANGLE_SUM(Q) :=
A+B+C+D
AREA_PARALLELOGRAM(base,height) :=
base*height
AREA_RECTANGLE(length,width) :=
length*width
AREA_SQUARE(side) :=
side^2
AREA_RHOMBUS(d1,d2) :=
(1/2)*d1*d2
AREA_TRAPEZIUM(a,b,h) :=
(1/2)*(a+b)*h
CLASSIFY(Q) :=
determine_quadrilateral_type_from_side_angle_parallel_and_diagonal_properties(Q)
IS_PARALLELOGRAM(Q) :=
both_pairs_opposite_sides_parallel(Q)
IS_RECTANGLE(Q) :=
IS_PARALLELOGRAM(Q) AND all_angles_right(Q)
IS_RHOMBUS(Q) :=
IS_PARALLELOGRAM(Q) AND all_sides_equal(Q)
IS_SQUARE(Q) :=
IS_RECTANGLE(Q) AND all_sides_equal(Q)
IS_KITE(Q) :=
two_distinct_pairs_adjacent_sides_equal(Q)
IS_TRAPEZIUM(Q) :=
at_least_one_pair_opposite_sides_parallel(Q) WHEN UK_usage
}
DEFINITIONS {
D1 = "A quadrilateral has four sides."
D2 = "A quadrilateral has four vertices."
D3 = "A Euclidean quadrilateral has interior angle sum 360 degrees."
D4 = "A parallelogram has two pairs of opposite parallel sides."
D5 = "A rectangle is a parallelogram with four right angles."
D6 = "A rhombus is a parallelogram with four equal sides."
D7 = "A square is both a rectangle and a rhombus."
D8 = "A kite has two distinct pairs of adjacent equal sides."
D9 = "A diagonal joins nonadjacent vertices."
D10 = "Regional terminology for trapezium and trapezoid must be handled explicitly."
}
AXIOMS {
A1_FOUR_SIDES:
A nondegenerate quadrilateral has exactly four sides
A2_FOUR_VERTICES:
A nondegenerate quadrilateral has exactly four vertices
A3_EUCLIDEAN_ANGLE_SUM:
In Euclidean plane geometry the interior angles sum to 360 degrees
A4_POLYGON_ORDER:
Vertices are ordered cyclically around the boundary
A5_DIAGONALS:
A quadrilateral has two diagonals joining opposite vertices
A6_CLASSIFICATION:
Special quadrilateral classes are defined by side, angle, parallelism and diagonal constraints
A7_INHERITANCE:
Properties of a parent quadrilateral class are inherited by its valid subclasses
}
REASONING {
R1_BASIC_CLASSIFICATION {
INPUT = side_angle_parallel_and_diagonal_data
CHECK = parallelogram_conditions
CHECK = rectangle_conditions
CHECK = rhombus_conditions
CHECK = square_conditions
CHECK = kite_conditions
CHECK = trapezium_conditions
RETURN = most_specific_valid_classes
}
R2_ANGLE_REASONING {
INPUT = three_known_interior_angles
COMPUTE = 360deg - sum_known_angles
RETURN = fourth_angle
}
R3_PARALLELOGRAM_REASONING {
INPUT = quadrilateral
TEST = opposite_sides_parallel_or_equivalent_criteria
IF valid
INFER = opposite_sides_equal
INFER = opposite_angles_equal
INFER = diagonals_bisect_each_other
RETURN = properties
}
R4_RECTANGLE_REASONING {
INPUT = quadrilateral
REQUIRE = parallelogram_and_four_right_angles
INFER = equal_diagonals
INFER = diagonals_bisect_each_other
RETURN = rectangle_properties
}
R5_RHOMBUS_REASONING {
INPUT = quadrilateral
REQUIRE = parallelogram_and_four_equal_sides
INFER = perpendicular_diagonals
INFER = diagonals_bisect_vertex_angles
RETURN = rhombus_properties
}
R6_SQUARE_REASONING {
INPUT = quadrilateral
REQUIRE = four_equal_sides_and_four_right_angles
INFER = rectangle_properties
INFER = rhombus_properties
RETURN = square_properties
}
R7_KITE_REASONING {
INPUT = quadrilateral
TEST = two_distinct_pairs_adjacent_equal_sides
IF valid
ANALYSE = symmetry_axis_and_diagonals
RETURN = kite_properties
}
R8_AREA_REASONING {
INPUT = quadrilateral_type_and_measurements
SELECT = class_appropriate_area_formula
COMPUTE = area
RETURN = area_value
}
R9_DIAGONAL_REASONING {
INPUT = quadrilateral_class
RETRIEVE = diagonal_properties_for_class
VERIFY = with_given_data
RETURN = diagonal_relations
}
}
CONSTRAINTS {
C1 = "Quadrilateral classification depends on explicit definitions and regional terminology."
C2 = "A square should inherit rectangle, rhombus and parallelogram properties."
C3 = "A rectangle is not defined merely by equal diagonals."
C4 = "A rhombus is not defined merely by perpendicular diagonals."
C5 = "A kite requires adjacent equal-side pairs, not opposite equal-side pairs."
C6 = "Euclidean angle-sum results require Euclidean geometry."
C7 = "Concave quadrilaterals require care when applying area or diagonal assumptions."
C8 = "Diagram appearance alone does not establish parallelism, right angles or equal sides."
}
SEMANTIC_EQUIVALENCE {
"Quadrilateral" <=> "FourSidedPolygon"
"Parallelogram" <=> "QuadrilateralWithTwoPairsOfOppositeParallelSides"
"Rectangle" <=> "ParallelogramWithFourRightAngles"
"Rhombus" <=> "ParallelogramWithFourEqualSides"
"Square" <=> "RectangleAndRhombus"
"Kite" <=> "QuadrilateralWithTwoDistinctPairsOfAdjacentEqualSides"
}
VALIDATION {
V1 = "Quadrilateral has four sides and four vertices."
V2 = "Euclidean interior angles sum to 360 degrees."
V3 = "Square inherits rectangle and rhombus properties."
V4 = "Parallelogram diagonals bisect each other."
V5 = "Rectangle diagonals are equal and bisect each other."
V6 = "Rhombus diagonals are perpendicular and bisect each other."
V7 = "Kite classification uses adjacent equal-side pairs."
V8 = "Area formulas are matched to the correct quadrilateral class."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
QUADRILATERAL_DEFINITION = 0.99
PARALLELOGRAM_REASONING = 0.99
RECTANGLE_REASONING = 0.99
SQUARE_REASONING = 0.99
RHOMBUS_REASONING = 0.99
KITE_REASONING = 0.98
TRAPEZIUM_REASONING = 0.98
POLICY =
"Reduce confidence when regional terminology, convexity, side correspondence, diagonal data or geometric assumptions are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
QuadrilateralReasoning,
PolygonReasoning,
ParallelismReasoning,
AngleReasoning,
DiagonalReasoning,
AreaReasoning,
ClassificationReasoning,
TransformationReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"quadrilateral" -> Quadrilateral
"parallelogram" -> Parallelogram
"rectangle" -> Rectangle
"square" -> Square
"rhombus" -> Rhombus
"kite" -> Kite
"trapezium" -> Trapezium WHEN UK_usage
"trapezoid" -> Trapezium WHEN US_to_UK_normalisation
}
INTERPRETATION_ORDER = [
detect_quadrilateral_context,
identify vertices sides angles and diagonals,
identify parallelism and equality conditions,
determine convexity when relevant,
classify into one or more valid quadrilateral classes,
apply inherited properties,
perform angle diagonal perimeter area or transformation reasoning,
verify definitions and regional terminology,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("quadrilateral")
OR query_mentions_specific_quadrilateral_class
THEN activate(QuadrilateralOntology)
E2:
IF both_pairs_opposite_sides_parallel
THEN classify(Parallelogram)
E3:
IF parallelogram AND four_right_angles
THEN classify(Rectangle)
E4:
IF parallelogram AND four_equal_sides
THEN classify(Rhombus)
E5:
IF rectangle AND rhombus
THEN classify(Square)
E6:
IF two_distinct_pairs_adjacent_equal_sides
THEN classify(Kite)
E7:
IF trapezium_or_trapezoid_term_present
THEN resolve_regional_definition
E8:
IF area_requested
THEN select_formula_by_class_and_available_measurements
}
RECURSION {
ENTRY = Quadrilateral
EXPAND(Quadrilateral) -> [
Side,
Vertex,
InteriorAngle,
ExteriorAngle,
Diagonal,
ConvexQuadrilateral,
ConcaveQuadrilateral,
Parallelogram,
Rectangle,
Square,
Rhombus,
Trapezium,
Kite,
Perimeter,
Area
]
EXPAND(Parallelogram) -> [
ParallelSides,
EqualOppositeSides,
EqualOppositeAngles,
BisectingDiagonals
]
EXPAND(Rectangle) -> [
RightAngles,
EqualDiagonals,
ParallelogramProperties
]
EXPAND(Rhombus) -> [
EqualSides,
PerpendicularDiagonals,
AngleBisectingDiagonals,
ParallelogramProperties
]
EXPAND(Square) -> [
RectangleProperties,
RhombusProperties,
Symmetry
]
STOP_CONDITION =
"Stop when the quadrilateral's class, angle, side, diagonal, area, symmetry or transformation property is sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Plane Geometry"
IMMEDIATE_CONTEXTS = [
"Point Ontology",
"Line Segment Ontology",
"Angle Ontology",
"Triangle Ontology"
]
RELATED_ONTOLOGIES = [
"Plane Geometry",
"Point Ontology",
"Line Ontology",
"Line Segment Ontology",
"Angle Ontology",
"Triangle Ontology",
"Coordinate Geometry Ontology",
"Vector Geometry Ontology",
"Synthetic Geometry Ontology",
"Transformation Ontology"
]
ROUTE_RULES = [
"Quadrilateral -> Point for vertex reasoning",
"Quadrilateral -> Line Segment for sides and diagonals",
"Quadrilateral -> Angle for interior-angle reasoning",
"Quadrilateral -> Coordinate Geometry for coordinate classification and area",
"Quadrilateral -> Vector Geometry for parallelism and diagonal vectors",
"Quadrilateral -> Synthetic Geometry for theorem-based proofs",
"Quadrilateral -> Transformation for symmetry, congruence and similarity"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible quadrilateral classes, properties or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve quadrilateral as a four-sided polygon.",
"Preserve subclass inheritance.",
"Preserve square as both rectangle and rhombus.",
"Preserve regional trapezium/trapezoid terminology metadata.",
"Preserve Euclidean angle-sum context.",
"Preserve class-specific diagonal properties.",
"Preserve machine-readable quadrilateral semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"A quadrilateral is a polygon formed by four vertices joined by four line segments."
ANGLE_SUMMARY =
"In Euclidean geometry, A+B+C+D=360 degrees."
PARALLELOGRAM_SUMMARY =
"Both pairs of opposite sides are parallel; diagonals bisect each other."
RECTANGLE_SUMMARY =
"A parallelogram with four right angles; diagonals are equal and bisect each other."
RHOMBUS_SUMMARY =
"A parallelogram with four equal sides; diagonals are perpendicular and bisect each other."
SQUARE_SUMMARY =
"A quadrilateral that is both a rectangle and a rhombus."
KITE_SUMMARY =
"A quadrilateral with two distinct pairs of adjacent equal sides."
TRAPEZIUM_SUMMARY =
"In UK usage, a quadrilateral with at least one pair of parallel sides."
}
FLOW {
INPUT
-> detect_quadrilateral_context
-> identify_vertices_sides_angles_and_diagonals
-> identify parallelism equality right-angle and symmetry conditions
-> resolve convexity and regional terminology when relevant
-> classify quadrilateral into valid classes
-> inherit parent-class properties
-> perform angle diagonal perimeter area congruence similarity or transformation reasoning
-> verify definitions and geometric assumptions
-> route to point segment angle coordinate vector synthetic or transformation ontology
-> recursively expand required dependencies
-> verify result
-> assign confidence
-> produce semantic output
-> END
}
SEMANTIC_SUMMARY {
"The Quadrilateral Ontology defines four-sided polygons and their principal subclasses, including parallelograms, rectangles, squares, rhombi, trapezia/trapezoids and kites. It supports classification through side, angle, parallelism and diagonal properties, together with area, perimeter, symmetry, congruence, similarity and transformation reasoning."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-GEOMETRY-QUADRILATERAL-ONTOLOGY-V1"
}
}
END_FLOW