AI INTERPRETATION NOTE
This Flow Algebra defines the mathematical ontology of angle measurement within the Kireth Research Semantic Library. Angle measurement quantifies rotation or directional separation between rays, lines, vectors, curves and geometric features. This ontology supports radians, degrees, gradians, directed and undirected angles, acute/right/obtuse/reflex classifications, central and inscribed angles, vector angles, coordinate methods, angular conversion, trigonometric relationships, orientation, scaling invariance, precision and relationships with geometry, trigonometry and measurement units.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Angle Measurement Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Geometry"
SPECIALISATION = "Geometric Measurement / Angle Measurement"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/geometry-ontologies/geometric-measurement/angle-measurement-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = AngleMeasurement
SYMBOLIC_FORMS = [
"theta",
"angle ABC",
"rad",
"deg"
]
ENTITY_CLASS = AngularGeometricMeasure
PRIMARY_CONTEXT = GeometricMeasurement
DEFINITION = "Angle measurement assigns a quantitative magnitude to the rotation or directional separation between rays, lines, vectors or geometric directions."
SEMANTIC_ROLE = "Provides the quantitative framework for angular size, orientation, trigonometric reasoning, coordinate geometry, rotation and unit conversion."
}
SCOPE {
INCLUDE = [
AngleMeasurement,
Angle,
DirectedAngle,
UndirectedAngle,
Radian,
Degree,
Gradian,
Revolution,
AcuteAngle,
RightAngle,
ObtuseAngle,
StraightAngle,
ReflexAngle,
FullAngle,
ComplementaryAngles,
SupplementaryAngles,
CentralAngle,
InscribedAngle,
VectorAngle,
AngleBetweenLines,
AngleBetweenVectors,
AngleBetweenPlanes,
PolarAngle,
BearingAngle,
AngularConversion,
TrigonometricAngle,
PrincipalAngle,
CoterminalAngle,
MeasurementPrecision,
ErrorBound
]
EXCLUDE_AS_PRIMARY = [
SolidAngleUnlessExplicit,
PhaseAngleWithoutGeometricContext,
ComplexArgumentUnlessExplicitlyGeometric,
PhysicalAngularVelocity
]
DISAMBIGUATION_RULE =
"When angle refers to geometric rotation, separation of rays or directions, vector orientation, line inclination, central or inscribed angle, interpret it as geometric angle measurement."
}
CORE_CONCEPTS {
AngleMeasurement {
definition = "A numerical measure of rotational separation."
}
Radian {
symbol = "rad"
definition = "The angle subtended at the centre of a circle by an arc equal in length to the radius."
}
Degree {
symbol = "deg"
definition = "One three-hundred-and-sixtieth of a full revolution."
}
Gradian {
symbol = "gon"
definition = "One four-hundredth of a full revolution."
}
DirectedAngle {
definition = "An angle carrying orientation, often interpreted modulo a full turn."
}
UndirectedAngle {
definition = "A non-oriented angular separation, commonly restricted to a principal range."
}
AcuteAngle {
condition = "0 < theta < pi/2"
}
RightAngle {
relation = "theta=pi/2=90 degrees"
}
ObtuseAngle {
condition = "pi/2 < theta < pi"
}
StraightAngle {
relation = "theta=pi=180 degrees"
}
ReflexAngle {
condition = "pi < theta < 2*pi"
}
FullAngle {
relation = "theta=2*pi=360 degrees"
}
VectorAngle {
definition = "The angle determined from the inner product of two nonzero vectors."
}
}
RELATIONS {
AngleMeasurement --is_measure_of--> RotationOrDirectionalSeparation
Radian --is_unit_of--> AngleMeasurement
Degree --is_unit_of--> AngleMeasurement
Gradian --is_unit_of--> AngleMeasurement
Revolution --equals--> FullAngle
AcuteAngle --is_special_case_of--> Angle
RightAngle --is_special_case_of--> Angle
ObtuseAngle --is_special_case_of--> Angle
ReflexAngle --is_special_case_of--> Angle
ComplementaryAngles --sum_to--> RightAngle
SupplementaryAngles --sum_to--> StraightAngle
CentralAngle --subtends--> Arc
InscribedAngle --subtends--> Arc
VectorAngle --is_derived_from--> InnerProduct
AngleBetweenLines --can_be_derived_from--> DirectionVectors
PolarAngle --is_measured_from--> ReferenceAxis
AngularConversion --maps_between--> AngleUnits
}
OPERATORS {
DEGREES_TO_RADIANS(theta_deg) :=
theta_deg*pi/180
RADIANS_TO_DEGREES(theta_rad) :=
theta_rad*180/pi
GRADIANS_TO_RADIANS(theta_gon) :=
theta_gon*pi/200
RADIANS_TO_GRADIANS(theta_rad) :=
theta_rad*200/pi
NORMALISE_DIRECTED_ANGLE(theta) :=
theta modulo 2*pi
PRINCIPAL_UNDIRECTED_ANGLE(theta) :=
value_in_[0,pi]
VECTOR_ANGLE(u,v) :=
arccos((u dot v)/(norm(u)*norm(v)))
WHEN u!=0 AND v!=0
DIRECTED_VECTOR_ANGLE_2D(u,v) :=
atan2(det(u,v),u dot v)
LINE_ANGLE(m1,m2) :=
arctan(abs((m2-m1)/(1+m1*m2)))
WHEN denominator_nonzero
WITH vertical_case_handled_separately
CENTRAL_ANGLE_FROM_ARC(s,r) :=
s/r
WHEN theta_in_radians AND r>0
ARC_LENGTH_FROM_ANGLE(r,theta_rad) :=
r*theta_rad
SECTOR_AREA_FROM_ANGLE(r,theta_rad) :=
0.5*r^2*theta_rad
COMPLEMENT(theta) :=
pi/2-theta
SUPPLEMENT(theta) :=
pi-theta
}
DEFINITIONS {
D1 = "A full revolution equals 2*pi radians."
D2 = "A full revolution equals 360 degrees."
D3 = "A full revolution equals 400 gradians."
D4 = "Radians are dimensionless in SI dimensional analysis but semantically represent angle."
D5 = "Vector-angle formulas require nonzero vectors."
D6 = "Directed angles depend on orientation convention."
D7 = "Undirected line angles usually select the smaller angular separation."
D8 = "Central angle in radians equals arc length divided by radius."
D9 = "Complementary angles sum to 90 degrees."
D10 = "Supplementary angles sum to 180 degrees."
}
AXIOMS {
A1_FULL_ROTATION:
2*pi radians = 360 degrees = 400 gradians
A2_RADIAN_ARC:
theta=s/r for central angle theta in radians
A3_VECTOR_INNER_PRODUCT:
u dot v = ||u|| ||v|| cos(theta)
A4_RIGHT_ANGLE:
Perpendicular Euclidean directions have angle pi/2
A5_DIRECTED_PERIODICITY:
Directed angles differing by integer multiples of 2*pi are coterminal
A6_COMPLEMENT:
Complementary angles sum to pi/2
A7_SUPPLEMENT:
Supplementary angles sum to pi
A8_SCALE_INVARIANCE:
Uniform similarity scaling does not change angle measure
}
REASONING {
R1_ANGLE_CLASSIFICATION {
INPUT = angle_value_and_unit
CONVERT = to_radians_if_needed
NORMALISE = according_to_directed_or_undirected_context
CLASSIFY = zero_acute_right_obtuse_straight_reflex_or_full
RETURN = angle_class
}
R2_UNIT_CONVERSION {
INPUT = value_source_unit_target_unit
CONVERT = through_radians_or_exact_ratio
RETURN = converted_angle
}
R3_VECTOR_ANGLE {
INPUT = nonzero_vectors_u_v
COMPUTE = dot_product
COMPUTE = norms
CLAMP = numerical_cosine_to_[-1,1] when approximate
COMPUTE = arccos
RETURN = angle
}
R4_DIRECTED_2D_ANGLE {
INPUT = vectors_u_v
COMPUTE = determinant_and_dot
APPLY = atan2
NORMALISE = desired_interval
RETURN = directed_angle
}
R5_LINE_ANGLE {
INPUT = line_directions_or_slopes
PREFER = direction_vector_method_for_vertical_robustness
COMPUTE = principal_angle
RETURN = line_angle
}
R6_CENTRAL_ARC {
INPUT = two_of_[radius_arc_length_angle]
APPLY = s=r*theta
REQUIRE = radians_for_direct_formula
SOLVE = missing_quantity
RETURN = result
}
R7_COMPLEMENT_SUPPLEMENT {
INPUT = angle
IF complement_requested
COMPUTE = pi/2-theta
ELSE IF supplement_requested
COMPUTE = pi-theta
RETURN = requested_angle
}
R8_TRIGONOMETRIC_RECOVERY {
INPUT = sine_cosine_tangent_or_triangle_data
IDENTIFY = quadrant_or_principal_range
APPLY = inverse_trigonometric_function
RESOLVE = ambiguity
RETURN = angle
}
R9_PRECISION {
INPUT = approximate_angle
TRACK = decimal_places_significant_figures_or_error_bound
RETURN = precision_aware_angle
}
}
CONSTRAINTS {
C1 = "Angle units must be explicit when formulas depend on radians."
C2 = "Degrees and radians must not be mixed without conversion."
C3 = "Vector-angle formulas are undefined for zero vectors."
C4 = "arccos returns a principal angle and does not encode orientation."
C5 = "atan2 requires an orientation convention."
C6 = "Line-angle calculations must handle vertical lines robustly."
C7 = "Inverse trigonometric functions may produce multiple geometric solutions."
C8 = "Directed and undirected angles must not be conflated."
C9 = "Uniform scale does not alter angle."
C10 = "Approximate trigonometric inputs can create numerical domain errors near +/-1."
}
SEMANTIC_EQUIVALENCE {
"AngleMeasurement" <=> "AngularMeasure"
"Radian" <=> "SICompatibleAngularUnit"
"Degree" <=> "OneOver360Revolution"
"RightAngle" <=> "QuarterTurn"
"StraightAngle" <=> "HalfTurn"
"FullAngle" <=> "FullRevolution"
"CoterminalAngle" <=> "AngleDifferingByIntegerFullTurns"
}
VALIDATION {
V1 = "Angle unit is identified."
V2 = "Radian-dependent formulas convert units first."
V3 = "Vector norms are nonzero."
V4 = "Cosine argument is within [-1,1] numerically."
V5 = "Directed-angle orientation convention is consistent."
V6 = "Classification interval matches selected normalisation."
V7 = "Complement and supplement remain within intended geometric context."
V8 = "Inverse-trigonometric ambiguity is resolved."
V9 = "Precision status is preserved."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
ANGLE_MEASUREMENT_DEFINITION = 0.99
UNIT_CONVERSION_REASONING = 0.99
VECTOR_ANGLE_REASONING = 0.99
DIRECTED_ANGLE_REASONING = 0.98
LINE_ANGLE_REASONING = 0.99
CENTRAL_ANGLE_REASONING = 0.99
TRIGONOMETRIC_RECOVERY_REASONING = 0.98
PRECISION_REASONING = 0.98
POLICY =
"Reduce confidence when angle unit, directed-versus-undirected interpretation, orientation convention, quadrant, vector nonzeroness or approximation precision are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch,
OntologyGrounding,
AngleMeasurementReasoning,
GeometricMeasurementReasoning,
DegreeRadianConversion,
AngleClassification,
VectorAngleReasoning,
LineAngleReasoning,
CentralAngleReasoning,
TrigonometricReasoning,
RotationReasoning,
CoordinateGeometryReasoning,
UnitConversionReasoning,
KnowledgeGraphConstruction,
RetrievalAugmentation,
RecursiveInference
]
NORMALISE {
"angle measurement" -> AngleMeasurement
"angle" -> Angle WHEN geometry_context
"radian" -> Radian
"degree" -> Degree
"gradian" -> Gradian
"right angle" -> RightAngle
"straight angle" -> StraightAngle
"reflex angle" -> ReflexAngle
"vector angle" -> VectorAngle
"directed angle" -> DirectedAngle
"coterminal angle" -> CoterminalAngle
}
INTERPRETATION_ORDER = [
detect_angle_measurement_context,
identify rays_lines_vectors_circle_or_rotation context,
identify units_direction_orientation_and_principal_range,
classify conversion_measurement_vector_line_central_or_trigonometric goal,
apply valid angular formula,
normalise result according_to_context,
verify unit_orientation_domain_and_precision constraints,
return semantic output
]
}
EXECUTION_RULES {
E1:
IF query_mentions("angle measurement")
OR geometry_context_with_degrees_radians_or_angular_separation
THEN activate(AngleMeasurementOntology)
E2:
IF degree_radian_conversion_requested
THEN use exact_pi ratios
E3:
IF vector_angle_requested
THEN require nonzero_vectors
AND use dot_product_formula
E4:
IF directed_2D_angle_requested
THEN use atan2(det,dot)
E5:
IF angle_between_lines_requested
THEN prefer direction_vectors_over_slope_only method
E6:
IF central_angle_arc_length_problem
THEN use s=r*theta with theta_in_radians
E7:
IF inverse_trigonometric_reasoning
THEN resolve principal_value_and_quadrant ambiguity
E8:
IF uniform_similarity_scaling
THEN preserve angle_measure
E9:
IF approximate_numeric_input
THEN apply safe_clamping_and_precision tracking
}
RECURSION {
ENTRY = AngleMeasurement
EXPAND(AngleMeasurement) -> [
Angle,
DirectedAngle,
UndirectedAngle,
Radian,
Degree,
Gradian,
Revolution,
AcuteAngle,
RightAngle,
ObtuseAngle,
StraightAngle,
ReflexAngle,
FullAngle,
ComplementaryAngles,
SupplementaryAngles,
CentralAngle,
InscribedAngle,
VectorAngle,
AngleBetweenLines,
AngleBetweenPlanes,
PolarAngle,
CoterminalAngle,
TrigonometricAngle,
MeasurementPrecision
]
EXPAND(AngularUnits) -> [
Radian,
Degree,
Gradian,
Revolution,
AngularConversion
]
EXPAND(VectorAngle) -> [
DotProduct,
Determinant,
Orientation,
Arccos,
Atan2
]
EXPAND(CircleAngle) -> [
CentralAngle,
InscribedAngle,
ArcLength,
SectorArea
]
STOP_CONDITION =
"Stop when the requested angle, unit, classification, orientation, trigonometric relation, exactness and precision status are sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Geometric Measurement"
IMMEDIATE_CONTEXTS = [
"Geometric Measurement",
"Angle Ontology",
"Trigonometry Ontology",
"Vector Geometry Ontology"
]
RELATED_ONTOLOGIES = [
"Geometric Measurement",
"Angle Ontology",
"Trigonometry Ontology",
"Sine Ontology",
"Cosine Ontology",
"Tangent Ontology",
"Inverse Trigonometric Function Ontology",
"Unit Circle Ontology",
"Triangle Trigonometry Ontology",
"Vector Geometry Ontology",
"Coordinate Geometry Ontology",
"Circle Ontology",
"Rotation Ontology",
"Measurement & Units Ontologies"
]
ROUTE_RULES = [
"Angle Measurement -> Geometric Measurement for parent quantitative semantics",
"Angle Measurement -> Angle Ontology for geometric angle structure",
"Angle Measurement -> Trigonometry for sine, cosine and tangent relationships",
"Angle Measurement -> Vector Geometry for dot-product and determinant methods",
"Angle Measurement -> Coordinate Geometry for slopes and polar angles",
"Angle Measurement -> Circle for central, inscribed and arc relationships",
"Angle Measurement -> Rotation for directed angular transformation",
"Angle Measurement -> Measurement & Units for degree-radian-gradian conversion"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible angular units, classifications, formulas or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve angular-measure semantics.",
"Preserve exact degree-radian conversion.",
"Preserve directed-versus-undirected distinction.",
"Preserve radian requirement for arc and sector formulas.",
"Preserve vector nonzero requirement.",
"Preserve periodic coterminal-angle semantics.",
"Preserve similarity-scale invariance.",
"Preserve machine-readable angle-measurement semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION =
"Angle measurement quantifies rotational or directional separation between rays, lines, vectors or geometric directions."
FULL_TURN_SUMMARY =
"2*pi radians = 360 degrees = 400 gradians."
CONVERSION_SUMMARY =
"theta_rad=theta_deg*pi/180 and theta_deg=theta_rad*180/pi."
RIGHT_ANGLE_SUMMARY =
"A right angle is pi/2 radians or 90 degrees."
STRAIGHT_ANGLE_SUMMARY =
"A straight angle is pi radians or 180 degrees."
VECTOR_SUMMARY =
"For nonzero vectors, theta=arccos((u dot v)/(||u||||v||))."
DIRECTED_SUMMARY =
"In two dimensions, directed angle can be computed with atan2(det(u,v),u dot v)."
ARC_SUMMARY =
"For a central angle in radians, theta=s/r."
SCALE_SUMMARY =
"Uniform similarity scaling preserves angle measure."
}
FLOW {
INPUT
-> detect_angle_measurement_context
-> identify geometric_objects_units_direction_orientation_scale_and_precision
-> classify conversion_angle_type_vector_line_circle_rotation_or_trigonometric goal
-> select valid_angular_formula
-> convert_to_required_units
-> compute_and_normalise angle
-> verify domain_orientation_unit_principal_range_and_precision constraints
-> route to geometric_measurement angle trigonometry vector coordinate circle rotation_or_units ontology
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Angle Measurement Ontology defines quantitative angular geometry and supports radians, degrees, gradians, directed and undirected angles, geometric angle classes, vector and line angles, central-angle and arc relationships, trigonometric recovery, coterminal angles, unit conversion, scale invariance and precision-aware reasoning."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-GEOMETRY-ANGLE-MEASUREMENT-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard