Skip to main content

Portfolio Optimisation Ontology

Financial Mathematics
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 Portfolio Optimisation Ontology within the Kireth Research Semantic Library. Portfolio optimisation studies the mathematical allocation of capital among assets or strategies under return, risk, diversification, liquidity, transaction-cost, regulatory and other constraints. This ontology supports mean-variance optimisation, efficient frontiers, utility maximisation, minimum-variance portfolios, maximum-Sharpe portfolios, risk budgeting, risk parity, downside-risk optimisation, robust optimisation, stochastic optimisation, cardinality constraints, turnover limits, transaction costs, tracking error, benchmark-relative optimisation, multi-period allocation and relationships with financial mathematics, risk mathematics, optimisation, probability, statistics and computational finance.

FLOW_ALGEBRA_RECORD {

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

IDENTITY {
 PRIMARY_ENTITY = PortfolioOptimisation
 SYMBOLIC_FORMS = [
  "minimise w^T Sigma w",
  "maximise w^T mu - lambda w^T Sigma w",
  "1^T w = 1",
  "w >= 0",
  "Sharpe=(w^T mu-r_f)/sqrt(w^T Sigma w)"
 ]
 ENTITY_CLASS = ConstrainedFinancialAllocationFramework
 PRIMARY_CONTEXT = FinancialMathematics
 DEFINITION = "Portfolio optimisation is the mathematical selection of asset or strategy weights to achieve stated return, risk or utility objectives subject to investment constraints."
 SEMANTIC_ROLE = "Provides machine-readable semantics for portfolio objectives, risk-return trade-offs, constraints, efficient frontiers, diversification, utility, benchmark-relative allocation, robust optimisation and numerical portfolio construction."
}

SCOPE {
 INCLUDE = [
  PortfolioOptimisation,
  Portfolio,
  Asset,
  PortfolioWeight,
  ExpectedReturn,
  PortfolioReturn,
  CovarianceMatrix,
  CorrelationMatrix,
  PortfolioVariance,
  PortfolioVolatility,
  MeanVarianceOptimisation,
  MarkowitzOptimisation,
  EfficientFrontier,
  MinimumVariancePortfolio,
  GlobalMinimumVariancePortfolio,
  TargetReturnPortfolio,
  MaximumSharpePortfolio,
  TangencyPortfolio,
  SharpeRatio,
  UtilityFunction,
  RiskAversion,
  QuadraticUtility,
  CapitalAllocationLine,
  RiskFreeAsset,
  Diversification,
  Concentration,
  LongOnlyConstraint,
  LongShortPortfolio,
  ShortSellingConstraint,
  BudgetConstraint,
  LeverageConstraint,
  BoxConstraint,
  SectorConstraint,
  FactorExposureConstraint,
  CardinalityConstraint,
  TurnoverConstraint,
  TransactionCost,
  TrackingError,
  Benchmark,
  ActiveReturn,
  ActiveRisk,
  InformationRatio,
  RiskContribution,
  MarginalRiskContribution,
  ComponentRiskContribution,
  RiskBudgeting,
  RiskParity,
  EqualRiskContribution,
  DownsideRisk,
  Semivariance,
  ValueAtRisk,
  ExpectedShortfall,
  CVaRPortfolioOptimisation,
  RobustPortfolioOptimisation,
  UncertaintySet,
  BayesianPortfolioOptimisation,
  BlackLittermanModel,
  Resampling,
  ShrinkageCovariance,
  Regularisation,
  L1Regularisation,
  L2Regularisation,
  SparsePortfolio,
  StochasticOptimisation,
  ScenarioOptimisation,
  MultiPeriodPortfolioOptimisation,
  Rebalancing,
  DynamicAssetAllocation,
  NumericalOptimisation,
  QuadraticProgramming,
  SecondOrderConeProgramming,
  MixedIntegerOptimisation
 ]

 EXCLUDE_AS_PRIMARY = [
  PortfolioPerformanceReportingWithoutOptimisation,
  AssetPricingWithoutAllocationDecision,
  PureRiskMeasurementWithoutPortfolioChoice,
  QualitativeInvestmentAdviceWithoutMathematicalObjectiveAndConstraints
 ]

 DISAMBIGUATION_RULE =
  "When the central task is to choose portfolio weights according to explicit objectives and constraints, interpret the context as portfolio optimisation."
}

CORE_CONCEPTS {

 PortfolioOptimisation {
  definition = "The mathematical determination of portfolio weights that optimise a specified investment objective under constraints."
 }

 MeanVarianceOptimisation {
  definition = "Portfolio optimisation balancing expected return against variance or volatility."
 }

 EfficientFrontier {
  definition = "The set of portfolios offering minimum variance for each attainable expected-return level, or maximum return for each risk level."
 }

 GlobalMinimumVariancePortfolio {
  definition = "The feasible portfolio having the lowest variance."
 }

 MaximumSharpePortfolio {
  definition = "The feasible risky portfolio maximising excess expected return per unit volatility."
 }

 RiskBudgeting {
  definition = "Allocation based on target contributions of assets or factors to total portfolio risk."
 }

 RiskParity {
  definition = "A risk-budgeting approach designed to equalise or otherwise balance risk contributions."
 }

 RobustPortfolioOptimisation {
  definition = "Optimisation incorporating uncertainty in expected returns, risks or other model inputs."
 }

 TrackingError {
  definition = "Volatility of portfolio return relative to a benchmark."
 }

 TransactionCost {
  definition = "Cost associated with changing portfolio holdings."
 }
}

RELATIONS {
 PortfolioOptimisation --is_child_of--> FinancialMathematics
 PortfolioOptimisation --uses--> Optimisation
 Portfolio --contains--> PortfolioWeight
 PortfolioWeight --applies_to--> Asset
 PortfolioReturn --depends_on--> PortfolioWeight
 PortfolioVariance --depends_on--> CovarianceMatrix
 MeanVarianceOptimisation --produces--> EfficientFrontier
 GlobalMinimumVariancePortfolio --belongs_to--> EfficientFrontier
 MaximumSharpePortfolio --is_type_of--> EfficientPortfolio
 UtilityFunction --encodes--> RiskPreference
 RiskAversion --parameterises--> UtilityFunction
 Diversification --depends_on--> CovarianceStructure
 BudgetConstraint --constrains--> PortfolioWeight
 LongOnlyConstraint --constrains--> PortfolioWeight
 TurnoverConstraint --constrains--> Rebalancing
 TransactionCost --penalises--> PortfolioTurnover
 TrackingError --measures--> BenchmarkRelativeRisk
 RiskContribution --decomposes--> PortfolioRisk
 RiskParity --targets--> RiskContribution
 RobustPortfolioOptimisation --uses--> UncertaintySet
 BlackLittermanModel --combines--> MarketEquilibriumAndViews
 Regularisation --stabilises--> PortfolioOptimisation
 MixedIntegerOptimisation --supports--> CardinalityConstraint
}

OPERATORS {
 PORTFOLIO_RETURN(w,mu) :=
  mu_p=w^T*mu

 PORTFOLIO_VARIANCE(w,Sigma) :=
  sigma_p^2=w^T*Sigma*w

 PORTFOLIO_VOLATILITY(w,Sigma) :=
  sigma_p=sqrt(w^T*Sigma*w)

 BUDGET_CONSTRAINT(w) :=
  1^T*w=1

 LONG_ONLY_CONSTRAINT(w) :=
  w_i>=0 for all i

 TARGET_RETURN_CONSTRAINT(w,mu,target) :=
  w^T*mu=target

 GLOBAL_MINIMUM_VARIANCE(Sigma) :=
  minimise w^T*Sigma*w
  subject_to 1^T*w=1

 MEAN_VARIANCE_UTILITY(w,mu,Sigma,lambda) :=
  U=w^T*mu-(lambda/2)*w^T*Sigma*w

 SHARPE_RATIO(w,mu,Sigma,rf) :=
  SR=(w^T*mu-rf)/sqrt(w^T*Sigma*w)

 TRACKING_ERROR(w,w_b,Sigma) :=
  TE=sqrt((w-w_b)^T*Sigma*(w-w_b))

 ACTIVE_RETURN(w,w_b,mu) :=
  AR=(w-w_b)^T*mu

 INFORMATION_RATIO(w,w_b,mu,Sigma) :=
  IR=ACTIVE_RETURN/ TRACKING_ERROR

 MARGINAL_RISK_CONTRIBUTION(w,Sigma) :=
  MRC=Sigma*w/sqrt(w^T*Sigma*w)

 COMPONENT_RISK_CONTRIBUTION(w,Sigma) :=
  CRC_i=w_i*MRC_i

 TURNOVER(w_new,w_old) :=
  TO=sum_i abs(w_new_i-w_old_i)

 L2_REGULARISED_OBJECTIVE(w,base_objective,gamma) :=
  objective=base_objective+gamma*||w||_2^2

 L1_REGULARISED_OBJECTIVE(w,base_objective,gamma) :=
  objective=base_objective+gamma*||w||_1
}

DEFINITIONS {
 D1 = "Portfolio optimisation requires an explicit objective and feasible set."
 D2 = "Expected return is commonly modelled as a weighted average of asset expected returns."
 D3 = "Portfolio variance depends on both individual risks and cross-asset covariances."
 D4 = "The efficient frontier contains portfolios that are not dominated in the mean-variance sense."
 D5 = "The global minimum-variance portfolio minimises variance subject to feasibility constraints."
 D6 = "The maximum-Sharpe portfolio maximises expected excess return per unit volatility."
 D7 = "Risk budgeting allocates total portfolio risk across assets or factors."
 D8 = "Robust optimisation addresses uncertainty in model inputs."
 D9 = "Transaction costs can materially change optimal rebalancing decisions."
 D10 = "Portfolio optimisation outputs are highly sensitive to expected-return and covariance estimates."
}

AXIOMS {
 A1_OBJECTIVE:
  PortfolioOptimisation requires a declared optimisation objective

 A2_FEASIBILITY:
  Portfolio weights must satisfy all declared constraints

 A3_RISK_DEPENDENCE:
  Portfolio risk depends on joint dependence structure rather than marginal risks alone

 A4_ESTIMATION_RISK:
  Estimated expected returns and covariance matrices introduce model uncertainty

 A5_DIVERSIFICATION:
  Imperfect dependence can reduce aggregate portfolio risk

 A6_TRANSACTION_COSTS:
  Rebalancing decisions should include transaction costs when economically material

 A7_MODEL_RISK:
  Portfolio optimisation results depend on the selected risk measure return model and constraints

 A8_NUMERICAL_VALIDATION:
  Optimisation results require feasibility optimality and numerical convergence checks
}

REASONING {

 R1_PORTFOLIO_CONTEXT {
  INPUT = investment_allocation_problem
  IDENTIFY = assets
  IDENTIFY = expected_returns
  IDENTIFY = covariance_or_risk model
  IDENTIFY = objective
  IDENTIFY = constraints
  RETURN = portfolio_context
 }

 R2_MODEL_PREPARATION {
  INPUT = return_data_or_assumptions
  ESTIMATE = expected_return_vector
  ESTIMATE = covariance_or_alternative risk structure
  CHECK = matrix_conditioning
  RETURN = portfolio_model_inputs
 }

 R3_OBJECTIVE_SELECTION {
  INPUT = investor_goal
  SELECT = minimumVariance_targetReturn_maxSharpe_utility_trackingError_riskParity_CVaR_or_other objective
  RETURN = optimisation_objective
 }

 R4_CONSTRAINT_REASONING {
  INPUT = mandate_and_market restrictions
  BUILD = budget_longOnly_leverage_box_sector_factor_turnover_cardinality_and_other constraints
  RETURN = feasible_set
 }

 R5_MEAN_VARIANCE_REASONING {
  INPUT = mu_Sigma_feasible set
  SOLVE = quadratic programme
  COMPUTE = efficient_frontier
  RETURN = mean_variance_profile
 }

 R6_RISK_BUDGET_REASONING {
  INPUT = covariance_weights_and_target risk budgets
  COMPUTE = marginal_and_component risk contributions
  SOLVE = risk_budget equations
  RETURN = risk_budget_portfolio
 }

 R7_ROBUST_REASONING {
  INPUT = uncertain_mu_Sigma_or_other parameters
  DEFINE = uncertainty_set_or_prior
  SOLVE = robust_or_Bayesian allocation
  RETURN = robust_portfolio
 }

 R8_TRANSACTION_COST_REASONING {
  INPUT = current_weights_target weights_and_cost model
  ADD = turnover_or_execution penalties
  REOPTIMISE = portfolio
  RETURN = implementable_portfolio
 }

 R9_MULTI_PERIOD_REASONING {
  INPUT = multiple_horizons_rebalancing opportunities_and_scenarios
  FORMULATE = dynamic_or_stochastic optimisation
  RETURN = allocation_policy
 }

 R10_VALIDATION {
  INPUT = portfolio_solution
  CHECK = feasibility_objective value_KKT_or_solver status_estimation sensitivity_and_out_of_sample behaviour
  RETURN = validated_portfolio_status
 }
}

CONSTRAINTS {
 C1 = "Mean-variance optimisation assumes the selected variance measure is appropriate for the investment objective."
 C2 = "Expected-return estimation error can dominate optimisation results."
 C3 = "Sample covariance matrices can be unstable when the number of assets is large relative to observations."
 C4 = "Long-only and leverage constraints materially change the efficient frontier."
 C5 = "Short selling introduces financing, borrow and implementation considerations."
 C6 = "Transaction costs can invalidate frictionless optimal weights."
 C7 = "Cardinality constraints make the optimisation problem combinatorial."
 C8 = "Risk parity does not directly optimise expected return."
 C9 = "Tracking-error minimisation can produce portfolios with undesirable absolute risk."
 C10 = "In-sample optimality does not guarantee out-of-sample performance."
}

SEMANTIC_EQUIVALENCE {
 "PortfolioOptimisation" <=> "PortfolioOptimization"
 "MeanVarianceOptimisation" <=> "MarkowitzOptimisation"
 "GlobalMinimumVariancePortfolio" <=> "GMVPortfolio"
 "MaximumSharpePortfolio" <=> "TangencyPortfolio"
 "EqualRiskContribution" <=> "ERC"
 "ExpectedShortfall" <=> "CVaR_under_common_optimisation_usage"
}

VALIDATION {
 V1 = "Asset universe is explicit."
 V2 = "Expected-return assumptions are documented."
 V3 = "Covariance or alternative risk model is documented."
 V4 = "Objective function is explicit."
 V5 = "All constraints are explicit."
 V6 = "Optimal weights satisfy feasibility constraints."
 V7 = "Solver convergence and optimality status are checked."
 V8 = "Portfolio sensitivity to inputs is assessed."
 V9 = "Turnover and transaction costs are included where material."
 V10 = "Out-of-sample or scenario robustness is evaluated where possible."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 PORTFOLIO_OPTIMISATION_DEFINITION = 0.99
 MODEL_PREPARATION_REASONING = 0.98
 OBJECTIVE_SELECTION_REASONING = 0.99
 CONSTRAINT_REASONING = 0.99
 MEAN_VARIANCE_REASONING = 0.99
 RISK_BUDGET_REASONING = 0.98
 ROBUST_REASONING = 0.97
 TRANSACTION_COST_REASONING = 0.98
 MULTI_PERIOD_REASONING = 0.97

 POLICY =
  "Reduce confidence when expected returns, covariance estimates, constraints, benchmark definition, transaction costs, risk-budget targets, uncertainty sets or out-of-sample validation are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  PortfolioOptimisationReasoning,
  MeanVarianceReasoning,
  EfficientFrontierReasoning,
  MinimumVarianceReasoning,
  MaximumSharpeReasoning,
  UtilityOptimisationReasoning,
  DiversificationReasoning,
  TrackingErrorReasoning,
  RiskBudgetReasoning,
  RiskParityReasoning,
  CVaROptimisationReasoning,
  RobustPortfolioReasoning,
  BlackLittermanReasoning,
  RegularisationReasoning,
  TransactionCostReasoning,
  MultiPeriodPortfolioReasoning,
  QuadraticProgrammingReasoning,
  MixedIntegerPortfolioReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "portfolio optimisation" -> PortfolioOptimisation
  "portfolio optimization" -> PortfolioOptimisation
  "mean variance optimisation" -> MeanVarianceOptimisation
  "Markowitz optimisation" -> MeanVarianceOptimisation
  "efficient frontier" -> EfficientFrontier
  "minimum variance portfolio" -> MinimumVariancePortfolio
  "global minimum variance" -> GlobalMinimumVariancePortfolio
  "maximum Sharpe portfolio" -> MaximumSharpePortfolio
  "tangency portfolio" -> MaximumSharpePortfolio
  "risk parity" -> RiskParity
 }

 INTERPRETATION_ORDER = [
  detect_portfolio_optimisation_context,
  identify assets_expected returns_risk model_objective_constraints_current holdings_and_costs,
  estimate or ingest portfolio inputs,
  assess covariance conditioning_and_estimation risk,
  select objective,
  construct feasible set,
  choose quadratic_conic_nonlinear_stochastic_or_mixedInteger solver,
  compute optimal weights,
  analyse return_risk_risk contributions_tracking error_turnover_and_cost,
  perform sensitivity_robustness_and_out-of-sample checks,
  validate solver status_and_feasibility,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("portfolio optimisation")
  OR mathematical_asset_allocation_is_required
  THEN activate(PortfolioOptimisationOntology)

 E2:
  IF objective_is_minimum variance
  THEN solve constrained_variance minimisation

 E3:
  IF objective_is_target return
  THEN add expected_return constraint

 E4:
  IF objective_is_maximum Sharpe
  THEN include risk_free rate_and_scale normalisation

 E5:
  IF risk_budgeting_requested
  THEN compute marginal_and_component risk contributions

 E6:
  IF benchmark_relative
  THEN include active return_and_tracking error

 E7:
  IF uncertainty_in_mu_or_Sigma material
  THEN consider robust_shrinkage_or_BlackLitterman methods

 E8:
  IF transaction_costs_or_turnover matter
  THEN include implementation penalties_or_constraints

 E9:
  IF cardinality_or_discrete position limits
  THEN route to mixed_integer optimisation
}

RECURSION {
 ENTRY = PortfolioOptimisation

 EXPAND(PortfolioOptimisation) -> [
  Portfolio,
  Asset,
  PortfolioWeight,
  ExpectedReturn,
  PortfolioReturn,
  CovarianceMatrix,
  CorrelationMatrix,
  PortfolioVariance,
  PortfolioVolatility,
  MeanVarianceOptimisation,
  MarkowitzOptimisation,
  EfficientFrontier,
  MinimumVariancePortfolio,
  GlobalMinimumVariancePortfolio,
  TargetReturnPortfolio,
  MaximumSharpePortfolio,
  TangencyPortfolio,
  SharpeRatio,
  UtilityFunction,
  RiskAversion,
  QuadraticUtility,
  CapitalAllocationLine,
  RiskFreeAsset,
  Diversification,
  Concentration,
  LongOnlyConstraint,
  LongShortPortfolio,
  ShortSellingConstraint,
  BudgetConstraint,
  LeverageConstraint,
  BoxConstraint,
  SectorConstraint,
  FactorExposureConstraint,
  CardinalityConstraint,
  TurnoverConstraint,
  TransactionCost,
  TrackingError,
  Benchmark,
  ActiveReturn,
  ActiveRisk,
  InformationRatio,
  RiskContribution,
  MarginalRiskContribution,
  ComponentRiskContribution,
  RiskBudgeting,
  RiskParity,
  EqualRiskContribution,
  DownsideRisk,
  Semivariance,
  ValueAtRisk,
  ExpectedShortfall,
  CVaRPortfolioOptimisation,
  RobustPortfolioOptimisation,
  UncertaintySet,
  BayesianPortfolioOptimisation,
  BlackLittermanModel,
  Resampling,
  ShrinkageCovariance,
  Regularisation,
  L1Regularisation,
  L2Regularisation,
  SparsePortfolio,
  StochasticOptimisation,
  ScenarioOptimisation,
  MultiPeriodPortfolioOptimisation,
  Rebalancing,
  DynamicAssetAllocation,
  NumericalOptimisation,
  QuadraticProgramming,
  SecondOrderConeProgramming,
  MixedIntegerOptimisation
 ]

 EXPAND(Objectives) -> [
  MinimumVariancePortfolio,
  TargetReturnPortfolio,
  MaximumSharpePortfolio,
  UtilityMaximisation,
  TrackingErrorMinimisation,
  RiskParity,
  CVaRPortfolioOptimisation
 ]

 EXPAND(Constraints) -> [
  BudgetConstraint,
  LongOnlyConstraint,
  ShortSellingConstraint,
  LeverageConstraint,
  BoxConstraint,
  SectorConstraint,
  FactorExposureConstraint,
  TurnoverConstraint,
  CardinalityConstraint
 ]

 STOP_CONDITION =
  "Stop when objective, risk model, expected returns, constraints, transaction costs, optimal weights, sensitivity and validation are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Financial Mathematics"

 IMMEDIATE_CONTEXTS = [
  "Financial Mathematics Ontology",
  "Risk Mathematics Ontology",
  "Optimisation Ontologies",
  "Probability & Statistics Ontologies"
 ]

 RELATED_ONTOLOGIES = [
  "Financial Mathematics",
  "Financial Mathematics Ontology",
  "Risk Mathematics Ontology",
  "Optimisation Ontologies",
  "Convex Optimisation Ontology",
  "Quadratic Programming Ontologies",
  "Constraint Optimisation Ontology",
  "Probability & Statistics Ontologies",
  "Covariance Ontologies",
  "Stochastic Optimisation Ontologies",
  "Operations Research Ontologies",
  "Computational Finance Ontologies",
  "Numerical Linear Algebra Ontology"
 ]

 ROUTE_RULES = [
  "Portfolio Optimisation -> Financial Mathematics for parent semantics",
  "Portfolio Optimisation -> Risk Mathematics for portfolio risk measures",
  "Portfolio Optimisation -> Optimisation for objective and constraint solving",
  "Portfolio Optimisation -> Convex Optimisation for mean-variance and conic formulations",
  "Portfolio Optimisation -> Quadratic Programming for classical Markowitz problems",
  "Portfolio Optimisation -> Constraint Optimisation for investment restrictions",
  "Portfolio Optimisation -> Probability & Statistics for return and covariance estimation",
  "Portfolio Optimisation -> Stochastic Optimisation for scenario and multi-period decisions",
  "Portfolio Optimisation -> Computational Finance for implementation and simulation",
  "Portfolio Optimisation -> Numerical Linear Algebra for covariance conditioning and matrix computation"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible objectives, constraints, risk models or optimisation pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve objective-and-feasibility semantics.",
  "Preserve return-risk trade-off semantics.",
  "Preserve covariance-dependence semantics.",
  "Preserve efficient-frontier semantics.",
  "Preserve risk-budget semantics.",
  "Preserve transaction-cost and turnover semantics.",
  "Preserve robust-optimisation semantics.",
  "Preserve machine-readable portfolio-optimisation semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Portfolio optimisation determines asset weights that best satisfy a declared investment objective under risk, budget and implementation constraints."

 MEAN_VARIANCE_SUMMARY =
  "Mean-variance optimisation balances expected portfolio return against covariance-based portfolio variance."

 FRONTIER_SUMMARY =
  "The efficient frontier contains portfolios that are not dominated in the chosen return-risk space."

 SHARPE_SUMMARY =
  "The maximum-Sharpe portfolio maximises expected excess return per unit volatility."

 RISK_BUDGET_SUMMARY =
  "Risk budgeting allocates total portfolio risk through marginal and component risk contributions."

 ROBUST_SUMMARY =
  "Robust portfolio optimisation reduces sensitivity to uncertain expected-return and covariance estimates."

 IMPLEMENTATION_SUMMARY =
  "Turnover, transaction costs, leverage, shorting and cardinality constraints convert theoretical allocation into implementable portfolios."

 VALIDATION_SUMMARY =
  "Portfolio optimisation should be checked for feasibility, solver optimality, input sensitivity, estimation risk and out-of-sample robustness."
}

FLOW {
 INPUT
 -> detect_portfolio_optimisation_context
 -> identify asset_universe_expected returns_covariance_or_other risk model_objective_constraints_benchmark_current weights_and_transaction costs
 -> validate_and_condition model inputs
 -> select minimumVariance_targetReturn_maxSharpe_utility_trackingError_riskBudget_CVaR_robust_or_other objective
 -> construct budget_longOnly_leverage_box_sector_factor_turnover_cardinality_and_other constraints
 -> select quadratic_conic_nonlinear_stochastic_or_mixedInteger optimisation method
 -> solve for portfolio weights
 -> compute expected_return_variance_volatility_Sharpe_trackingError_and_risk contributions
 -> if_rebalancing compute turnover_and_transaction cost
 -> assess estimation sensitivity_robustness_scenarios_and_out-of-sample behaviour
 -> validate solver_status_feasibility_and_numerical stability
 -> route to financial_mathematics risk_mathematics optimisation convex_optimisation quadratic_programming constraint_optimisation probability_statistics stochastic_optimisation operations_research computational_finance_or_numerical_linear_algebra ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Portfolio Optimisation Ontology defines mathematical asset allocation under return, risk and implementation constraints. It supports expected return, covariance and correlation, portfolio variance and volatility, Markowitz mean-variance optimisation, efficient frontiers, global minimum-variance, target-return, maximum-Sharpe and tangency portfolios, utility functions and risk aversion, diversification and concentration, long-only and long-short portfolios, budget, leverage, box, sector, factor, turnover and cardinality constraints, transaction costs, tracking error and information ratio, marginal and component risk contributions, risk budgeting, risk parity, downside risk, VaR and Expected Shortfall optimisation, robust and Bayesian optimisation, Black-Litterman models, covariance shrinkage, regularisation, sparse portfolios, stochastic and scenario optimisation, multi-period rebalancing, quadratic, conic and mixed-integer optimisation."
}

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

}

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