Skip to main content

Convex Optimisation Ontology

Optimisation
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 Convex Optimisation Ontology within the Kireth Research Semantic Library. Convex optimisation studies optimisation problems in which the objective function is convex for minimisation and the feasible set is convex. This structure provides powerful guarantees: every local optimum is global, first-order conditions often become globally meaningful, duality theory is especially strong, and many numerical algorithms admit rigorous convergence guarantees. This ontology supports convex functions, convex sets, epigraphs, subgradients, smooth and nonsmooth convex optimisation, linear and quadratic programming, second-order cone programming, semidefinite programming, proximal methods, projected methods, interior-point methods, Fenchel duality, KKT conditions, Slater’s condition, strong duality, optimality certificates and relationships with convex geometry, linear algebra, numerical analysis and operations research.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Convex Optimisation Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Optimisation / Convex Optimisation"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/optimisation/convex-optimisation-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = ConvexOptimisation
 SYMBOLIC_FORMS = [
  "min_x f(x) subject to x in C",
  "f(theta x + (1-theta)y) <= theta f(x)+(1-theta)f(y)",
  "min f(x) subject to g_i(x)<=0, Ax=b"
 ]
 ENTITY_CLASS = ConvexMathematicalProgrammingFramework
 PRIMARY_CONTEXT = Optimisation
 DEFINITION = "Convex optimisation is the minimisation of a convex objective over a convex feasible set, including equivalent maximisation of concave objectives."
 SEMANTIC_ROLE = "Provides the machine-readable framework for convex functions, convex feasible sets, global optimality, subgradient conditions, duality, conic formulations, proximal algorithms and optimality certificates."
}

SCOPE {
 INCLUDE = [
  ConvexOptimisation,
  ConvexFunction,
  StrictlyConvexFunction,
  StronglyConvexFunction,
  ConcaveFunction,
  ConvexSet,
  AffineSet,
  ConvexCone,
  Epigraph,
  Hypograph,
  Subgradient,
  Subdifferential,
  Gradient,
  Hessian,
  LipschitzGradient,
  StrongConvexity,
  SmoothConvexOptimisation,
  NonsmoothConvexOptimisation,
  ConstrainedConvexOptimisation,
  UnconstrainedConvexOptimisation,
  LinearProgramming,
  ConvexQuadraticProgramming,
  SecondOrderConeProgramming,
  SemidefiniteProgramming,
  ConicOptimisation,
  ProjectedGradientMethod,
  SubgradientMethod,
  ProximalGradientMethod,
  ProximalPointMethod,
  AcceleratedGradientMethod,
  NesterovAcceleration,
  CoordinateDescent,
  InteriorPointMethod,
  BarrierMethod,
  Lagrangian,
  DualFunction,
  ConvexDuality,
  FenchelDuality,
  WeakDuality,
  StrongDuality,
  SlaterCondition,
  KarushKuhnTuckerConditions,
  ComplementarySlackness,
  OptimalityCertificate,
  PrimalDualGap
 ]

 EXCLUDE_AS_PRIMARY = [
  NonconvexOptimisation,
  ArbitraryIntegerProgrammingWithoutConvexRelaxationContext,
  RootFindingWithoutOptimisationStructure,
  GenericLinearAlgebraWithoutObjectiveOrFeasibleSet
 ]

 DISAMBIGUATION_RULE =
  "When the objective is convex in minimisation form and the feasible region is convex, interpret the problem as convex optimisation."
}

CORE_CONCEPTS {

 ConvexOptimisation {
  definition = "Optimisation over convex structure with global optimality guarantees."
 }

 ConvexFunction {
  definition = "A function whose graph lies below chords connecting any two points in its domain."
 }

 StrictlyConvexFunction {
  definition = "A convex function for which the convexity inequality is strict for distinct points and interior convex combinations."
 }

 StronglyConvexFunction {
  definition = "A convex function possessing a positive quadratic lower-curvature bound."
 }

 ConvexSet {
  definition = "A set containing the full line segment between any two of its points."
 }

 ConvexCone {
  definition = "A convex set closed under multiplication by nonnegative scalars."
 }

 Epigraph {
  definition = "The set of points lying on or above a function graph."
 }

 Subgradient {
  definition = "A vector defining a global affine lower bound to a convex function at a point."
 }

 Subdifferential {
  definition = "The set of all subgradients of a convex function at a point."
 }

 ProximalOperator {
  definition = "The minimiser of a function plus a quadratic proximity penalty."
 }

 ConicOptimisation {
  definition = "Optimisation where constraints are represented using membership in convex cones."
 }

 SlaterCondition {
  definition = "A strict-feasibility condition that commonly guarantees strong duality for convex problems."
 }
}

RELATIONS {
 ConvexOptimisation --is_special_case_of--> Optimisation
 ConvexOptimisation --has--> ConvexObjective
 ConvexOptimisation --has--> ConvexFeasibleSet
 ConvexFunction --has--> Epigraph
 ConcaveFunction --has--> Hypograph
 StrictlyConvexFunction --is_type_of--> ConvexFunction
 StronglyConvexFunction --is_type_of--> StrictlyConvexFunction
 Subgradient --is_element_of--> Subdifferential
 LinearProgramming --is_special_case_of--> ConvexOptimisation
 ConvexQuadraticProgramming --is_special_case_of--> ConvexOptimisation
 SecondOrderConeProgramming --is_special_case_of--> ConicOptimisation
 SemidefiniteProgramming --is_special_case_of--> ConicOptimisation
 ConicOptimisation --is_special_case_of--> ConvexOptimisation
 ProjectedGradientMethod --solves--> ConstrainedConvexOptimisation
 ProximalGradientMethod --uses--> ProximalOperator
 InteriorPointMethod --uses--> BarrierMethod
 ConvexDuality --relates--> PrimalProblem
 ConvexDuality --relates--> DualProblem
 SlaterCondition --supports--> StrongDuality
 KarushKuhnTuckerConditions --characterise--> ConvexOptimality
 PrimalDualGap --certifies--> ApproximateOptimality
}

OPERATORS {
 CONVEXITY_TEST(f,x,y,theta) :=
  f(theta*x+(1-theta)*y) <= theta*f(x)+(1-theta)*f(y)
  for theta in [0,1]

 SET_CONVEXITY_TEST(C,x,y,theta) :=
  theta*x+(1-theta)*y in C
  for x,y in C and theta in [0,1]

 FIRST_ORDER_CONVEXITY(f,x,y) :=
  f(y) >= f(x)+grad_f(x)^T*(y-x)
  for differentiable convex f

 HESSIAN_CONVEXITY_TEST(H) :=
  H positive_semidefinite
  on convex domain

 SUBGRADIENT_CONDITION(f,x,g) :=
  f(y) >= f(x)+g^T*(y-x)
  for all y

 PROXIMAL_OPERATOR(f,v,lambda) :=
  argmin_x f(x)+(1/(2*lambda))*||x-v||^2

 PROJECTED_GRADIENT_STEP(x,alpha,C) :=
  projection_C(x-alpha*grad_f(x))

 PROXIMAL_GRADIENT_STEP(x,alpha,f,g) :=
  prox_{alpha*g}(x-alpha*grad_f(x))

 LAGRANGIAN(f,g,h,lambda,nu) :=
  f(x)+sum_i lambda_i*g_i(x)+sum_j nu_j*h_j(x)

 DUAL_FUNCTION(lambda,nu) :=
  inf_x L(x,lambda,nu)

 PRIMAL_DUAL_GAP(primal_value,dual_value) :=
  primal_value-dual_value
  for minimisation

 KKT_CHECK(x,lambda,nu) :=
  primal_feasibility
  AND dual_feasibility
  AND complementary_slackness
  AND stationarity
}

DEFINITIONS {
 D1 = "Convex optimisation minimises a convex objective over a convex feasible set."
 D2 = "Every local optimum of a convex optimisation problem is global."
 D3 = "Strict convexity can imply uniqueness of the optimum."
 D4 = "Strong convexity provides quantitative curvature and often faster convergence guarantees."
 D5 = "Subgradients generalise gradients to nonsmooth convex functions."
 D6 = "Projection maps a point to the nearest point in a convex feasible set under the chosen norm."
 D7 = "Proximal operators handle nonsmooth convex terms through regularised local minimisation."
 D8 = "Slater's condition commonly guarantees strong duality in convex problems."
 D9 = "KKT conditions can become necessary and sufficient under convexity and appropriate regularity."
 D10 = "Primal-dual gaps provide practical optimality certificates."
}

AXIOMS {
 A1_CONVEX_OBJECTIVE:
  ConvexOptimisation in minimisation form has a convex objective

 A2_CONVEX_FEASIBILITY:
  FeasibleSet is convex

 A3_LOCAL_GLOBAL:
  Every local optimum is global

 A4_STRICT_UNIQUENESS:
  Strict convexity over a convex feasible set implies at most one minimiser

 A5_SUBGRADIENT_OPTIMALITY:
  For unconstrained convex f, x_star is optimal iff 0 belongs to subdifferential(f,x_star)

 A6_KKT_SUFFICIENCY:
  For convex differentiable problems, KKT conditions are sufficient for global optimality

 A7_SLATER_STRONG_DUALITY:
  Under Slater-type conditions, strong duality holds for broad convex problem classes

 A8_GAP_CERTIFICATION:
  A small valid primal-dual gap certifies near-optimality
}

REASONING {

 R1_CONVEXITY_IDENTIFICATION {
  INPUT = optimisation_problem
  CHECK = objective_convexity
  CHECK = each_inequality_constraint_convexity
  CHECK = equality_constraints_affine
  RETURN = convex_or_not
 }

 R2_OBJECTIVE_CONVEXITY {
  INPUT = objective
  IF differentiable_twice
   CHECK = Hessian_positive_semidefinite
  ELSE
   CHECK = convexity_definition_or_known composition rules
  RETURN = convexity_profile
 }

 R3_FEASIBLE_SET_CONVEXITY {
  INPUT = constraints
  CHECK = affine_equalities
  CHECK = convex_inequalities
  CHECK = cone_or_set memberships
  RETURN = convex_feasible_set_status
 }

 R4_FIRST_ORDER_OPTIMALITY {
  INPUT = unconstrained_convex_problem_and_candidate
  IF smooth
   CHECK = gradient_zero
  ELSE
   CHECK = zero_in_subdifferential
  RETURN = global_optimality_status
 }

 R5_CONSTRAINED_KKT {
  INPUT = constrained_convex_problem
  CHECK = primal_feasibility
  CHECK = constraint_qualification
  FORM = Lagrangian
  SOLVE_OR_TEST = KKT_system
  RETURN = global_optimality_status
 }

 R6_DUALITY_REASONING {
  INPUT = primal_convex_problem
  FORM = Lagrangian
  DERIVE = dual_function
  CONSTRUCT = dual_problem
  CHECK = Slater_or_other regularity
  RETURN = weak_or_strong_duality profile
 }

 R7_ALGORITHM_SELECTION {
  INPUT = convex_problem_structure
  IF smooth_unconstrained
   CONSIDER = gradient_accelerated_gradient_Newton
  IF simple_convex_constraints
   CONSIDER = projected_gradient
  IF composite_smooth_plus_nonsmooth
   CONSIDER = proximal_gradient
  IF conic_structure
   CONSIDER = interior_point_or_first_order conic method
  RETURN = solver_strategy
 }

 R8_PROXIMAL_REASONING {
  INPUT = composite_objective f_plus_g
  COMPUTE = gradient_of_smooth_part
  APPLY = proximal_operator_of_nonsmooth_part
  RETURN = proximal_gradient_iterate
 }

 R9_ACCELERATED_REASONING {
  INPUT = smooth_convex_problem
  APPLY = momentum_or_Nesterov acceleration
  MONITOR = objective_and_gradient behaviour
  RETURN = accelerated_sequence
 }

 R10_CERTIFICATION {
  INPUT = primal_candidate_dual_candidate
  CHECK = feasibility
  COMPUTE = primal_dual_gap
  RETURN = exact_or_approximate_optimality certificate
 }
}

CONSTRAINTS {
 C1 = "Convexity claims require a convex domain."
 C2 = "Equality constraints must be affine in standard convex programming form."
 C3 = "A local optimum is globally optimal only when convexity assumptions hold."
 C4 = "Strict convexity is sufficient for uniqueness but not necessary."
 C5 = "Subgradient methods may converge slowly."
 C6 = "Projection must be onto the correct feasible set and norm."
 C7 = "Proximal operators must correspond to the intended nonsmooth term."
 C8 = "Strong duality requires appropriate regularity conditions."
 C9 = "Interior-point methods require numerically stable linear algebra."
 C10 = "A numerical solver's termination status is not a certificate unless feasibility and optimality conditions are verified."
}

SEMANTIC_EQUIVALENCE {
 "ConvexOptimisation" <=> "ConvexOptimization"
 "ConvexFunction" <=> "FunctionWithConvexEpigraph"
 "ConvexSet" <=> "SetClosedUnderLineSegments"
 "Subgradient" <=> "GlobalAffineUnderestimatorSlope"
 "ProximalGradientMethod" <=> "ForwardBackwardSplitting"
 "PrimalDualGap" <=> "ConvexOptimalityGapCertificate"
}

VALIDATION {
 V1 = "Objective convexity is established."
 V2 = "Feasible-set convexity is established."
 V3 = "Equality constraints are affine where required."
 V4 = "Candidate feasibility is checked."
 V5 = "Gradient or subgradient conditions are applied correctly."
 V6 = "Constraint qualification is considered."
 V7 = "Dual formulation uses consistent conventions."
 V8 = "Primal-dual gap is nonnegative under weak-duality conventions."
 V9 = "Solver structure matches smooth, nonsmooth or conic form."
 V10 = "Global-optimality claim is grounded in convexity and valid conditions."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 CONVEX_OPTIMISATION_DEFINITION = 0.99
 CONVEXITY_IDENTIFICATION_REASONING = 0.99
 FIRST_ORDER_REASONING = 0.99
 KKT_REASONING = 0.99
 DUALITY_REASONING = 0.99
 PROXIMAL_REASONING = 0.98
 ACCELERATED_REASONING = 0.98
 CERTIFICATION_REASONING = 0.99

 POLICY =
  "Reduce confidence when domain convexity, Hessian definiteness, subgradient structure, constraint qualification, dual feasibility, cone representation or solver tolerances are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  ConvexOptimisationReasoning,
  ConvexityChecking,
  ConvexSetReasoning,
  ConvexFunctionReasoning,
  SubgradientReasoning,
  KKTReasoning,
  ConvexDualityReasoning,
  SlaterConditionReasoning,
  ProjectedGradientReasoning,
  ProximalGradientReasoning,
  NesterovAccelerationReasoning,
  ConicOptimisationReasoning,
  InteriorPointReasoning,
  OptimalityCertification,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "convex optimisation" -> ConvexOptimisation
  "convex optimization" -> ConvexOptimisation
  "convex function" -> ConvexFunction
  "convex set" -> ConvexSet
  "subgradient" -> Subgradient
  "subdifferential" -> Subdifferential
  "proximal gradient" -> ProximalGradientMethod
  "projected gradient" -> ProjectedGradientMethod
  "Slater's condition" -> SlaterCondition
  "primal-dual gap" -> PrimalDualGap
 }

 INTERPRETATION_ORDER = [
  detect_convex_optimisation_context,
  identify objective_feasible_set_constraints_domains_smoothness_and_conic structure,
  verify objective_and_feasible_set convexity,
  classify smooth_nonsmooth_constrained_unconstrained_linear_quadratic_conic_or_semidefinite problem,
  derive gradient_subgradient_KKT_or_dual optimality conditions,
  select gradient_projected_proximal_accelerated_interior_point_or_conic solver pathway,
  compute_or_assess candidate_solution,
  derive dual_certificate_and_primal_dual gap,
  assign global_optimality_or_approximate certificate,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("convex optimisation")
  OR convex_objective_with_convex_feasible_set
  THEN activate(ConvexOptimisationOntology)

 E2:
  IF twice_differentiable_objective
  THEN use Hessian_positive_semidefinite test where appropriate

 E3:
  IF nonsmooth_convex_objective
  THEN use subgradient_or_proximal reasoning

 E4:
  IF simple_convex_constraint_set
  THEN consider projected_gradient

 E5:
  IF objective_is_smooth_plus_proximable_nonsmooth
  THEN consider proximal_gradient

 E6:
  IF constrained_problem
  THEN assess Slater_condition_or_other qualification

 E7:
  IF primal_and_dual_feasible
  THEN compute primal_dual gap

 E8:
  IF KKT_conditions_hold_under_convexity_and_valid qualification
  THEN certify global_optimality

 E9:
  IF solver_reports_local_optimum_in_convex_problem
  THEN reinterpret as global only after verifying convexity assumptions
}

RECURSION {
 ENTRY = ConvexOptimisation

 EXPAND(ConvexOptimisation) -> [
  ConvexFunction,
  StrictlyConvexFunction,
  StronglyConvexFunction,
  ConcaveFunction,
  ConvexSet,
  AffineSet,
  ConvexCone,
  Epigraph,
  Hypograph,
  Subgradient,
  Subdifferential,
  Gradient,
  Hessian,
  SmoothConvexOptimisation,
  NonsmoothConvexOptimisation,
  LinearProgramming,
  ConvexQuadraticProgramming,
  SecondOrderConeProgramming,
  SemidefiniteProgramming,
  ConicOptimisation,
  ProjectedGradientMethod,
  SubgradientMethod,
  ProximalGradientMethod,
  ProximalPointMethod,
  AcceleratedGradientMethod,
  NesterovAcceleration,
  CoordinateDescent,
  InteriorPointMethod,
  BarrierMethod,
  Lagrangian,
  DualFunction,
  FenchelDuality,
  SlaterCondition,
  KarushKuhnTuckerConditions,
  ComplementarySlackness,
  OptimalityCertificate,
  PrimalDualGap
 ]

 EXPAND(ConvexFunctionStructure) -> [
  Epigraph,
  Gradient,
  Hessian,
  Subgradient,
  StrongConvexity,
  LipschitzGradient
 ]

 EXPAND(ConicOptimisation) -> [
  LinearProgramming,
  SecondOrderConeProgramming,
  SemidefiniteProgramming,
  ConeConstraint,
  DualCone,
  PrimalDualInteriorPointMethod
 ]

 EXPAND(FirstOrderMethods) -> [
  GradientDescent,
  ProjectedGradientMethod,
  SubgradientMethod,
  ProximalGradientMethod,
  AcceleratedGradientMethod,
  CoordinateDescent
 ]

 STOP_CONDITION =
  "Stop when convexity, feasible-set geometry, optimality conditions, solver pathway, duality, primal-dual gap and global optimality status are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Optimisation"

 IMMEDIATE_CONTEXTS = [
  "Optimisation Ontology",
  "Linear Programming Ontology",
  "Convex Geometry Ontology",
  "Numerical Analysis Ontologies"
 ]

 RELATED_ONTOLOGIES = [
  "Optimisation Ontology",
  "Optimisation",
  "Linear Programming Ontology",
  "Nonlinear Optimisation Ontology",
  "Convex Geometry Ontology",
  "Linear Algebra Ontologies",
  "Calculus & Analysis Ontologies",
  "Numerical Analysis Ontologies",
  "Operations Research Ontologies",
  "Probability & Statistics Ontologies",
  "Scientific Computing Ontologies"
 ]

 ROUTE_RULES = [
  "Convex Optimisation -> Optimisation Ontology for formal optimisation semantics",
  "Convex Optimisation -> Linear Programming for polyhedral convex problems",
  "Convex Optimisation -> Nonlinear Optimisation for smooth nonlinear convex problems",
  "Convex Optimisation -> Convex Geometry for feasible-set and cone structure",
  "Convex Optimisation -> Linear Algebra for quadratic forms and semidefinite constraints",
  "Convex Optimisation -> Calculus & Analysis for convexity, gradients and Hessians",
  "Convex Optimisation -> Numerical Analysis for convergence and solver stability",
  "Convex Optimisation -> Operations Research for resource allocation and conic models",
  "Convex Optimisation -> Probability & Statistics for convex estimation objectives",
  "Convex Optimisation -> Scientific Computing for large-scale first-order and interior-point implementations"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible convex problem classes, duality results or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve convex-objective and convex-feasible-set semantics.",
  "Preserve local-equals-global semantics under convexity.",
  "Preserve subgradient semantics.",
  "Preserve Slater and strong-duality semantics.",
  "Preserve primal-dual-gap certification.",
  "Preserve conic optimisation structure.",
  "Preserve nonsmooth proximal semantics.",
  "Preserve machine-readable convex-optimisation semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Convex optimisation minimises a convex objective over a convex feasible set."

 GLOBAL_OPTIMALITY_SUMMARY =
  "Every local optimum of a convex optimisation problem is global."

 CONVEXITY_SUMMARY =
  "Convexity can be established through definitions, composition rules, epigraphs or positive-semidefinite Hessians when twice differentiable."

 SUBGRADIENT_SUMMARY =
  "For unconstrained convex problems, zero in the subdifferential characterises global optimality."

 KKT_SUMMARY =
  "Under convexity and suitable regularity, KKT conditions are necessary and sufficient for global optimality."

 DUALITY_SUMMARY =
  "Convex duality provides strong lower bounds and, under regularity such as Slater's condition, zero duality gap."

 PROXIMAL_SUMMARY =
  "Proximal methods efficiently handle composite objectives containing nonsmooth convex terms."

 CONIC_SUMMARY =
  "Linear, second-order cone and semidefinite programmes are major convex conic optimisation classes."

 CERTIFICATION_SUMMARY =
  "Primal-dual feasibility and a small primal-dual gap provide a practical certificate of near-optimality."
}

FLOW {
 INPUT
 -> detect_convex_optimisation_context
 -> identify objective_decision_variables_domains_constraints_cones_smoothness_and_nonsmooth structure
 -> verify convexity_of_objective_and_feasible set
 -> classify unconstrained_constrained_smooth_nonsmooth_linear_quadratic_SOCP_SDP_or_general conic problem
 -> derive gradient_subgradient_KKT_Fenchel_or_primal_dual optimality conditions
 -> select gradient_projected_subgradient_proximal_accelerated_coordinate_descent_interior_point_or_conic method
 -> compute_or_assess primal_candidate
 -> derive dual_candidate_and_bounds
 -> evaluate primal_feasibility_dual_feasibility_complementary_slackness_and_primal_dual gap
 -> certify global_or_approximate optimality
 -> route to optimisation_ontology linear_programming nonlinear_optimisation convex_geometry linear_algebra calculus numerical_analysis operations_research probability_statistics_or_scientific_computing ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Convex Optimisation Ontology defines globally structured optimisation over convex objectives and feasible sets. It supports convex and strongly convex functions, convex sets and cones, epigraphs, subgradients, smooth and nonsmooth optimisation, linear, quadratic, second-order cone and semidefinite programming, projected, subgradient, proximal and accelerated methods, interior-point algorithms, KKT conditions, Slater's condition, Fenchel and Lagrangian duality, complementary slackness, primal-dual gaps and global optimality certification."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-CONVEX-OPTIMISATION-ONTOLOGY-V1"
}

}

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