Skip to main content

Singular Value Decomposition Ontology

Linear Algebra Computation
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Singular Value Decomposition Ontology within the Kireth Research Semantic Library. SVD factors a real or complex matrix into orthogonal or unitary singular-vector factors and a diagonal matrix of nonnegative singular values.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Singular Value Decomposition Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Linear Algebra Computation / Singular Value Decomposition"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/linear-algebra-computation/singular-value-decomposition-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = SingularValueDecomposition
 ENTITY_CLASS = OrthogonalDiagonalMatrixFactorisationFramework
 PRIMARY_CONTEXT = MatrixDecomposition
 DEFINITION = "Singular value decomposition is a factorisation A=U Sigma V^* in which U and V are orthogonal or unitary and Sigma contains the nonnegative singular values of A."
 SYMBOLIC_FORMS = ["A=U*Sigma*V^T","A=U*Sigma*V^*","A_k=U_k*Sigma_k*V_k^*","A^+=V*Sigma^+*U^*"]
 SEMANTIC_ROLE = "Provides machine-readable semantics for singular values, singular vectors, numerical rank, condition numbers, pseudoinverses, least-squares solutions and low-rank approximation."
}

SCOPE {
 INCLUDE = [SingularValueDecomposition,SVD,FullSVD,ThinSVD,ReducedSVD,EconomySVD,CompactSVD,TruncatedSVD,PartialSVD,SparseSVD,DenseSVD,RandomisedSVD,GeneralisedSVD,GSVD,UFactor,SigmaFactor,VFactor,LeftSingularVector,RightSingularVector,SingularValue,SingularValueSpectrum,LargestSingularValue,SmallestSingularValue,MatrixRank,ExactRank,NumericalRank,EffectiveRank,RankDeficiency,RankTolerance,SpectralGap,NullSpace,ColumnSpace,RowSpace,Range,Kernel,OrthogonalMatrix,UnitaryMatrix,DiagonalMatrix,BidiagonalMatrix,Bidiagonalisation,GolubKahanBidiagonalisation,HouseholderTransformation,QRIteration,DivideAndConquerSVD,JacobiSVD,OneSidedJacobiSVD,LanczosBidiagonalisation,KrylovSubspace,SubspaceIteration,Pseudoinverse,MoorePenrosePseudoinverse,LeastSquaresProblem,MinimumNormSolution,OverdeterminedSystem,UnderdeterminedSystem,IllConditionedSystem,ConditionNumber,SpectralNorm,FrobeniusNorm,NuclearNorm,LowRankApproximation,BestRankKApproximation,EckartYoungTheorem,MatrixCompression,DimensionalReduction,PrincipalComponentAnalysis,PCA,Regularisation,TruncatedSVDRegularisation,TikhonovRegularisation,SingularValueDecay,PerturbationAnalysis,ReconstructionError,OrthogonalityError,Residual,ForwardError,BackwardError,NumericalStability,FloatingPointArithmetic,MachinePrecision,RoundOffError,Scaling,RandomisedLinearAlgebra,RandomProjection,Sketching,Oversampling,PowerIterationEnhancement,BlockSVD,ParallelSVD,DistributedSVD,GPUSVD,MixedPrecisionSVD,ComputationalComplexity,MemoryComplexity,CommunicationCost,Verification,Benchmarking,Reproducibility]
 EXCLUDE_AS_PRIMARY = [EigenDecompositionWithoutSingularValueStructure,QRDecompositionWithoutSingularValues,TensorDecompositionWithoutMatrixSVDContext]
 DISAMBIGUATION_RULE = "When a matrix is factorised into left singular vectors, nonnegative singular values and right singular vectors, interpret the context as singular value decomposition."
}

CORE_CONCEPTS {
 SingularValueDecomposition = "Factorisation A=U Sigma V^* exposing orthogonal singular-vector bases and nonnegative singular values."
 SingularValue = "Nonnegative square root of an eigenvalue of A^*A."
 LeftSingularVector = "Column of U associated with a singular value."
 RightSingularVector = "Column of V associated with a singular value."
 NumericalRank = "Effective rank determined relative to singular-value magnitude and a declared tolerance."
 TruncatedSVD = "Approximation retaining selected dominant singular triplets."
 Pseudoinverse = "Generalised inverse formed by reciprocating nonzero singular values under a declared tolerance."
 ConditionNumber = "Ratio of largest to smallest relevant singular value for the 2-norm condition number."
}

RELATIONS {
 SingularValueDecomposition --is_child_of--> MatrixDecomposition
 SingularValueDecomposition --produces--> LeftSingularVector
 SingularValueDecomposition --produces--> SingularValue
 SingularValueDecomposition --produces--> RightSingularVector
 SingularValue --is_square_root_of--> EigenvalueOfAStarA
 LargestSingularValue --equals--> SpectralNorm
 SingularValueSpectrum --reveals--> NumericalRank
 ZeroSingularValue --indicates--> RankDeficiency
 Pseudoinverse --is_constructed_from--> SingularValueDecomposition
 TruncatedSVD --produces--> LowRankApproximation
 BestRankKApproximation --is_characterised_by--> EckartYoungTheorem
 ConditionNumber --depends_on--> ExtremeSingularValues
 Bidiagonalisation --precedes--> DenseSVDAlgorithms
 LanczosBidiagonalisation --supports--> PartialSVD
 RandomisedSVD --approximates--> DominantSingularSubspaces
}

OPERATORS {
 SVD_FACTOR(A) := A=U*Sigma*V^*
 TRUNCATED_SVD(A,k) := A_k=U_k*Sigma_k*V_k^*
 PSEUDOINVERSE(A,tau) := A_plus=V*Sigma_plus(tau)*U^*
 SPECTRAL_NORM(A) := sigma_max(A)
 TWO_NORM_CONDITION(A) := sigma_max(A)/sigma_min(A)
 NUMERICAL_RANK(A,tau) := count_i(sigma_i>tau)
 BEST_RANK_K_ERROR_2(A,k) := sigma_(k+1)
 BEST_RANK_K_ERROR_F(A,k) := sqrt(sum_(i>k) sigma_i^2)
 RECONSTRUCTION_ERROR(A,U,S,V) := ||A-U*S*V^*||/||A||
 ORTHOGONALITY_ERROR(U) := ||U^*U-I||
}

AXIOMS {
 A1 = "Every finite real or complex matrix has a singular value decomposition."
 A2 = "Singular values are real and nonnegative."
 A3 = "The number of nonzero singular values equals exact matrix rank."
 A4 = "Numerical rank requires an explicit tolerance or scale criterion."
 A5 = "Truncated SVD gives an optimal rank-k approximation in standard 2-norm and Frobenius-norm senses."
 A6 = "Small singular values indicate sensitive directions in inverse problems."
 A7 = "Singular vectors for repeated singular values are not individually unique."
 A8 = "SVD results require reconstruction, orthogonality, rank and reproducibility validation."
}

REASONING {
 R1_CONTEXT = identify(matrix_shape,sparsity,precision,target_use,desired_rank)
 R2_VARIANT = choose(full,thin,compact,truncated,partial,randomised_or_generalised_SVD)
 R3_REDUCTION = if_dense reduce_to_bidiagonal_form_when_appropriate
 R4_SOLVE = compute_singular_values_and_vectors_using_selected_algorithm
 R5_RANK = determine_exact_or_numerical_rank_using_declared_tolerance
 R6_APPLICATION = if_required compute(pseudoinverse,least_squares,minimum_norm_or_low_rank_approximation)
 R7_STABILITY = analyse(singular_value_separation,conditioning,orthogonality,roundoff_and_residuals)
 R8_LARGE_SCALE = if_sparse_or_large choose(Lanczos,randomised,partial_or_distributed_method)
 R9_REGULARISATION = if_inverse_problem assess_small_singular_values_and_filtering
 R10_VALIDATION = check(reconstruction,orthogonality,singular_value_order,rank,error_bounds,reproducibility)
}

CONSTRAINTS {
 C1 = "Numerical rank depends on tolerance, scaling and arithmetic precision."
 C2 = "Full SVD can be unnecessarily expensive when only a few singular triplets are needed."
 C3 = "Forming A^*A explicitly can square the condition number and lose accuracy."
 C4 = "Small singular values can be highly sensitive to perturbations."
 C5 = "Singular vectors associated with clustered or repeated singular values are not individually unique."
 C6 = "Truncated SVD is an approximation rather than an exact factorisation."
 C7 = "Randomised SVD quality depends on target rank, oversampling, spectral decay and power iterations."
 C8 = "Sparse matrices can lose practical sparsity if dense singular vectors are explicitly formed."
 C9 = "Pseudoinverse thresholds materially affect rank and solution behaviour."
 C10 = "Distributed SVD can be limited by communication and orthogonalisation costs."
}

SEMANTIC_EQUIVALENCE {
 "SingularValueDecomposition" <=> "SVD"
 "ReducedSVD" <=> "ThinSVD"
 "EconomySVD" <=> "ThinSVD"
 "MoorePenrosePseudoinverse" <=> "Pseudoinverse"
 "PrincipalComponentAnalysis" <=> "PCA"
 "GeneralisedSVD" <=> "GSVD"
}

VALIDATION {
 V1 = "Matrix dimensions are explicit."
 V2 = "SVD variant and requested singular triplets are documented."
 V3 = "Singular values are nonnegative and consistently ordered."
 V4 = "Reconstruction error is checked."
 V5 = "Left and right orthogonality are checked where factors are explicitly formed."
 V6 = "Numerical-rank tolerance is documented."
 V7 = "Pseudoinverse threshold is documented where applicable."
 V8 = "Low-rank approximation error is reported."
 V9 = "Randomised methods document rank, oversampling and iteration parameters."
 V10 = "Results are reproducible under documented arithmetic and algorithm settings."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 SVD_DEFINITION = 0.99
 SINGULAR_VALUE_REASONING = 0.99
 NUMERICAL_RANK_REASONING = 0.99
 PSEUDOINVERSE_REASONING = 0.99
 LOW_RANK_REASONING = 0.99
 CONDITIONING_REASONING = 0.99
 RANDOMISED_SVD_REASONING = 0.98
 POLICY = "Reduce confidence when rank tolerance, singular-value separation, scaling, target rank, randomisation parameters or arithmetic precision are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [SemanticSearch,OntologyGrounding,SingularValueDecompositionReasoning,SingularValueReasoning,SingularVectorReasoning,NumericalRankReasoning,PseudoinverseReasoning,LeastSquaresReasoning,MinimumNormReasoning,ConditionNumberReasoning,LowRankApproximationReasoning,MatrixCompressionReasoning,RegularisationReasoning,BidiagonalisationReasoning,LanczosReasoning,RandomisedSVDReasoning,PCAReasoning,StabilityReasoning,KnowledgeGraphConstruction,RetrievalAugmentation,RecursiveInference]
 NORMALISE {
  "singular value decomposition" -> SingularValueDecomposition
  "SVD" -> SingularValueDecomposition
  "thin SVD" -> ThinSVD
  "truncated SVD" -> TruncatedSVD
  "pseudoinverse" -> MoorePenrosePseudoinverse
  "PCA" -> PrincipalComponentAnalysis
  "GSVD" -> GeneralisedSVD
 }
}

EXECUTION_RULES {
 E1 = "If a matrix is factorised into singular-vector factors and nonnegative singular values, activate SingularValueDecompositionOntology."
 E2 = "If only dominant singular triplets are required, prefer partial or truncated methods."
 E3 = "If numerical rank is required, use singular values with an explicit scale-aware tolerance."
 E4 = "If a least-squares or minimum-norm problem is rank deficient, consider SVD-based solution."
 E5 = "If a pseudoinverse is required, threshold small singular values explicitly."
 E6 = "If low-rank approximation is required, retain singular triplets according to rank or error target."
 E7 = "If the matrix is very large or sparse, consider Lanczos or randomised methods."
 E8 = "If the problem is ill-posed, interpret small singular values through regularisation semantics."
 E9 = "Validate reconstruction, orthogonality, rank, approximation error and reproducibility."
}

RECURSION {
 ENTRY = SingularValueDecomposition
 EXPAND(SingularValueDecomposition) -> [SVD,FullSVD,ThinSVD,CompactSVD,TruncatedSVD,PartialSVD,SparseSVD,DenseSVD,RandomisedSVD,GeneralisedSVD,UFactor,SigmaFactor,VFactor,LeftSingularVector,RightSingularVector,SingularValue,SingularValueSpectrum,MatrixRank,NumericalRank,RankDeficiency,RankTolerance,SpectralGap,NullSpace,ColumnSpace,RowSpace,OrthogonalMatrix,UnitaryMatrix,Bidiagonalisation,GolubKahanBidiagonalisation,DivideAndConquerSVD,JacobiSVD,LanczosBidiagonalisation,KrylovSubspace,Pseudoinverse,LeastSquaresProblem,MinimumNormSolution,ConditionNumber,SpectralNorm,FrobeniusNorm,NuclearNorm,LowRankApproximation,BestRankKApproximation,EckartYoungTheorem,MatrixCompression,PrincipalComponentAnalysis,Regularisation,TruncatedSVDRegularisation,SingularValueDecay,PerturbationAnalysis,ReconstructionError,OrthogonalityError,NumericalStability,FloatingPointArithmetic,MachinePrecision,RandomisedLinearAlgebra,Sketching,Oversampling,ParallelSVD,DistributedSVD,GPUSVD,MixedPrecisionSVD,Verification,Benchmarking,Reproducibility]
 STOP_CONDITION = "Stop when SVD variant, singular spectrum, rank, target application, stability, approximation quality and validation are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Matrix Decomposition Ontology 2"
 RELATED_ONTOLOGIES = ["Matrix Decomposition Ontology 2","Numerical Linear Algebra Ontology 2","Matrix Computation Ontology","Sparse Matrix Ontology 2","Dense Matrix Ontology","QR Decomposition Ontology","Numerical Analysis Ontology 2","Numerical Stability Ontology 2","Numerical Approximation Ontology","High Performance Computing Ontologies"]
 ROUTE_RULES = [
  "SVD -> Matrix Decomposition for parent factorisation semantics",
  "SVD -> Numerical Linear Algebra for rank, least-squares and conditioning theory",
  "SVD -> Sparse Matrix for large sparse partial SVD",
  "SVD -> Dense Matrix for dense bidiagonal algorithms",
  "SVD -> Numerical Approximation for low-rank approximation",
  "SVD -> Numerical Analysis for perturbation and error",
  "SVD -> HPC for parallel, distributed and GPU computation"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible SVD variants, algorithms or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = ["Preserve left-versus-right singular-vector distinction.","Preserve exact-rank-versus-numerical-rank distinction.","Preserve full-versus-truncated SVD distinction.","Preserve exact-versus-randomised approximation distinction.","Preserve singular-value-versus-eigenvalue distinction.","Preserve reconstruction-error-versus-solution-error distinction.","Preserve machine-readable SVD semantics."]
}

OUTPUT {
 CANONICAL_DEFINITION = "Singular value decomposition factors a matrix into orthogonal or unitary singular-vector factors and nonnegative singular values."
 RANK_SUMMARY = "The singular spectrum reveals exact and numerical rank, null spaces and conditioning."
 PSEUDOINVERSE_SUMMARY = "SVD provides a stable framework for pseudoinverse, least-squares and minimum-norm solutions."
 LOW_RANK_SUMMARY = "Truncated SVD gives optimal standard-norm rank-k approximations."
 REGULARISATION_SUMMARY = "Filtering small singular values stabilises ill-posed inverse problems."
 LARGE_SCALE_SUMMARY = "Lanczos, partial and randomised methods target dominant singular subspaces without computing a full SVD."
 VALIDATION_SUMMARY = "SVD results should be checked for reconstruction, orthogonality, rank tolerance, approximation error and reproducibility."
}

FLOW {
 INPUT
 -> detect_SVD_context
 -> identify_matrix_shape_sparsity_precision_target_use_and_desired_rank
 -> choose_full_thin_compact_truncated_partial_randomised_or_generalised_SVD
 -> if_dense_reduce_to_bidiagonal_form_when_appropriate
 -> compute_singular_values_and_required_singular_vectors
 -> determine_exact_or_numerical_rank
 -> if_required_compute_pseudoinverse_least_squares_minimum_norm_or_low_rank_approximation
 -> analyse_conditioning_singular_value_separation_orthogonality_roundoff_and_residuals
 -> if_large_or_sparse_use_Lanczos_partial_randomised_or_distributed_method
 -> if_inverse_problem_apply_regularisation_semantics
 -> validate_reconstruction_orthogonality_rank_error_bounds_and_reproducibility
 -> route_to_related_matrix_numerical_approximation_analysis_and_HPC_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Singular Value Decomposition Ontology defines SVD factorisation and its computational semantics. It supports full, thin, compact, truncated, partial, sparse, dense, randomised and generalised SVD, left and right singular vectors, singular spectra, exact and numerical rank, null, column and row spaces, bidiagonalisation, divide-and-conquer, Jacobi and Lanczos methods, pseudoinverses, least-squares and minimum-norm solutions, condition numbers, best rank-k approximation, matrix compression, PCA, regularisation, perturbation analysis, reconstruction and orthogonality error, randomised linear algebra, parallel, distributed, GPU and mixed-precision SVD, verification, benchmarking and reproducibility."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-SINGULAR-VALUE-DECOMPOSITION-ONTOLOGY-V1"
}

}

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