Skip to main content

Computational Experiment Ontology

Computational Scientific Workflows
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 Computational Experiment Ontology within the Kireth Research Semantic Library. A computational experiment is a controlled, parameterised and reproducible execution of a computational model, algorithm or scientific workflow designed to test a hypothesis, compare methods, measure behaviour, estimate uncertainty or evaluate outcomes under declared conditions. This ontology supports experiment design, hypotheses, factors, controls, parameter sweeps, baselines, randomisation, replication, simulation campaigns, metrics, statistical analysis, provenance, verification, validation, reproducibility and evidence-based conclusions.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Computational Experiment Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Computational Scientific Workflows / Computational Experiment"
 CANONICAL_PAGE = "https://kirethframeworkold.co.uk/books/semantic-library/ai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/computational-scientific-workflows/computational-experiment-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = ComputationalExperiment
 ENTITY_CLASS = ControlledComputationalInvestigationFramework
 PRIMARY_CONTEXT = ComputationalScientificWorkflow
 DEFINITION = "A computational experiment is a controlled and reproducible execution of a computational model, algorithm or workflow designed to test hypotheses, compare alternatives or measure system behaviour."
 SYMBOLIC_FORMS = [
  "E = (H,F,C,R,M)",
  "result_i = run(model,configuration_i,seed_i)",
  "effect = metric(treatment)-metric(control)",
  "conclusion = analyse(results,uncertainty,criteria)"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for computational hypotheses, experiment design, factors, controls, treatments, replications, metrics, statistical analysis, provenance and reproducibility."
}

SCOPE {
 INCLUDE = [
  ComputationalExperiment,
  ScientificExperimentRelationship,
  NumericalExperiment,
  SimulationExperiment,
  AlgorithmExperiment,
  SolverExperiment,
  ModelExperiment,
  BenchmarkExperiment,
  AblationExperiment,
  SensitivityExperiment,
  ParameterExperiment,
  RobustnessExperiment,
  ScalabilityExperiment,
  PerformanceExperiment,
  ValidationExperiment,
  VerificationExperiment,
  ReproducibilityExperiment,
  ComparativeExperiment,
  ControlledExperiment,
  FactorialExperiment,
  ScreeningExperimentRelationship,
  DesignOfExperiments,
  DOE,
  ExperimentDesign,
  ExperimentalPlan,
  ExperimentalProtocol,
  Hypothesis,
  NullHypothesis,
  AlternativeHypothesis,
  ResearchQuestion,
  ExperimentalQuestion,
  Objective,
  ExperimentObjective,
  ExpectedOutcomeRelationship,
  Variable,
  ExperimentalVariable,
  IndependentVariable,
  DependentVariable,
  ResponseVariable,
  Factor,
  FactorLevel,
  Treatment,
  Control,
  ControlGroupRelationship,
  ExperimentalCondition,
  Configuration,
  Baseline,
  BaselineConfiguration,
  ReferenceMethod,
  Comparator,
  Parameter,
  ParameterSet,
  HyperparameterRelationship,
  ParameterRange,
  SearchSpace,
  FactorSpace,
  DesignSpace,
  OperatingDomain,
  Constraint,
  FixedFactor,
  RandomFactorRelationship,
  CovariateRelationship,
  NuisanceVariableRelationship,
  Confounder,
  BlockingFactorRelationship,
  Block,
  Randomisation,
  RandomAssignmentRelationship,
  RandomSeed,
  SeedControl,
  Replication,
  Replicate,
  RepeatedRun,
  Trial,
  Run,
  ExperimentRun,
  RunIdentifier,
  TrialIdentifier,
  ReplicateIdentifier,
  Batch,
  ExperimentalBatch,
  Scenario,
  ExperimentScenario,
  ParameterSweep,
  GridSweep,
  RandomSweep,
  LatinHypercubeRelationship,
  LatinHypercubeSamplingRelationship,
  FullFactorialDesign,
  FractionalFactorialDesignRelationship,
  OneFactorAtATimeRelationship,
  OFATrelationship,
  ResponseSurfaceRelationship,
  ResponseSurfaceMethodologyRelationship,
  AdaptiveExperimentRelationship,
  SequentialExperimentRelationship,
  BayesianExperimentalDesignRelationship,
  ActiveLearningRelationship,
  ExperimentalBudget,
  ComputeBudget,
  TimeBudget,
  RunBudget,
  ResourceBudget,
  CostConstraint,
  Model,
  ComputationalModel,
  SimulationModel,
  Algorithm,
  Solver,
  NumericalMethod,
  Workflow,
  ScientificWorkflow,
  NumericalWorkflow,
  SimulationWorkflow,
  DataPipeline,
  ComputationalScientificWorkflow,
  InputData,
  OutputData,
  ExperimentalData,
  SimulationData,
  ResultData,
  IntermediateData,
  Metric,
  EvaluationMetric,
  PerformanceMetric,
  AccuracyMetric,
  ValidationMetric,
  VerificationMetric,
  ResponseMetric,
  Runtime,
  MemoryUsage,
  Throughput,
  Latency,
  ErrorMetric,
  ResidualMetric,
  ConvergenceMetric,
  ObjectiveValue,
  SuccessRate,
  FailureRate,
  RobustnessMetric,
  StabilityMetric,
  ScalabilityMetric,
  EffectSize,
  AbsoluteDifference,
  RelativeDifference,
  Ratio,
  Speedup,
  Efficiency,
  StatisticalAnalysis,
  DescriptiveStatistics,
  Mean,
  Median,
  Variance,
  StandardDeviation,
  Quantile,
  ConfidenceInterval,
  BootstrapConfidenceIntervalRelationship,
  HypothesisTest,
  StatisticalSignificance,
  PValueRelationship,
  EffectSizeRelationship,
  ANOVArelationship,
  RegressionAnalysisRelationship,
  CorrelationAnalysisRelationship,
  Distribution,
  ProbabilityDistribution,
  SamplingDistribution,
  Uncertainty,
  NumericalUncertainty,
  StatisticalUncertainty,
  ParameterUncertainty,
  InputUncertainty,
  ModelUncertainty,
  MeasurementUncertaintyRelationship,
  UncertaintyQuantification,
  SensitivityAnalysis,
  LocalSensitivity,
  GlobalSensitivity,
  SobolAnalysisRelationship,
  PerturbationAnalysis,
  RobustnessAnalysis,
  Ablation,
  AblationStudy,
  ComponentRemovalRelationship,
  FeatureRemovalRelationship,
  ParameterAblationRelationship,
  MethodVariant,
  ArchitectureVariantRelationship,
  AlgorithmVariant,
  SolverVariant,
  ModelVariant,
  ControlledChange,
  TreatmentEffect,
  InteractionEffect,
  MainEffect,
  ConfoundingEffect,
  Reproducibility,
  Repeatability,
  ReplicabilityRelationship,
  Determinism,
  Nondeterminism,
  StochasticExperiment,
  DeterministicExperiment,
  SeedSweepRelationship,
  Environment,
  ExecutionEnvironment,
  SoftwareEnvironment,
  HardwareEnvironment,
  CPU,
  GPU,
  Accelerator,
  Memory,
  Storage,
  Network,
  OperatingSystem,
  Compiler,
  Library,
  Framework,
  Container,
  VirtualEnvironment,
  EnvironmentCapture,
  ResourceAllocation,
  ParallelExecution,
  DistributedExecution,
  HighPerformanceComputing,
  ParallelComputing,
  DistributedComputing,
  GPUComputing,
  ExperimentScheduler,
  WorkflowScheduler,
  TaskScheduler,
  Orchestration,
  ExperimentOrchestration,
  JobScheduler,
  Provenance,
  ExperimentProvenance,
  ComputationalProvenance,
  DataProvenance,
  ModelProvenance,
  WorkflowProvenance,
  Lineage,
  AuditTrail,
  Traceability,
  ExperimentManifest,
  RunManifest,
  ExecutionLog,
  ResultLog,
  ErrorLog,
  ConfigurationRecord,
  VersionControl,
  ExperimentVersion,
  ModelVersion,
  DatasetVersion,
  SolverVersion,
  MethodVersion,
  LibraryVersion,
  CompilerVersion,
  ImplementationVersion,
  Verification,
  Validation,
  NumericalVerification,
  ComputationalValidation,
  ErrorAnalysis,
  Benchmark,
  RegressionTesting,
  VerificationMetrics,
  ValidationMetrics,
  AcceptanceCriterion,
  PassCriterion,
  FailCriterion,
  DecisionRule,
  ExperimentConclusion,
  Evidence,
  EvidenceStrength,
  Confidence,
  Limitation,
  DomainOfApplicability,
  ScientificSimulation,
  ComputationalStatistics,
  NumericalLinearAlgebra,
  DifferentialEquationSolver,
  ComputationalOptimisation,
  SymbolicComputation,
  AIComputationalMathematics,
  ComputationalDataStructures,
  GraphAlgorithms
 ]
 EXCLUDE_AS_PRIMARY = [
  PhysicalLaboratoryExperimentWithoutComputationalExecution,
  SingleProductionRunWithoutExperimentalQuestionOrControlSemantics,
  BenchmarkingWithoutExperimentalDesignOrHypothesisContext,
  ParameterTuningWhenOptimisationRatherThanExperimentalInferenceIsPrimary
 ]
 DISAMBIGUATION_RULE = "When computational runs are deliberately designed, controlled and compared to answer a scientific or algorithmic question, interpret the context as a computational experiment."
}

CORE_CONCEPTS {
 ComputationalExperiment = "Controlled computational investigation using planned model or algorithm executions."
 Hypothesis = "Testable proposition evaluated using computational evidence."
 Factor = "Controlled variable whose effect is being studied."
 Treatment = "Specific experimental condition or intervention."
 Baseline = "Reference configuration used for comparison."
 Replication = "Repeated execution used to estimate variability or confirm consistency."
 Metric = "Quantitative measure used to evaluate experiment outcomes."
 ExperimentConclusion = "Evidence-based interpretation of computational experiment results."
}

RELATIONS {
 ComputationalExperiment --is_child_of--> ComputationalScientificWorkflow
 ComputationalExperiment --tests--> Hypothesis
 ExperimentDesign --defines--> FactorsAndConditions
 Factor --has--> FactorLevels
 Treatment --changes--> ExperimentalCondition
 Baseline --provides--> ReferenceComparison
 ExperimentRun --instantiates--> ExperimentalCondition
 Replication --repeats--> ExperimentRun
 Metric --evaluates--> ExperimentOutcome
 StatisticalAnalysis --analyses--> ExperimentResults
 UncertaintyQuantification --qualifies--> ExperimentConclusion
 Provenance --records--> ExperimentConfigurationAndExecution
 Verification --checks--> ComputationalCorrectness
 Validation --checks--> ScientificAdequacy
}

OPERATORS {
 RUN(model,config,seed) := execute(model,config,seed)
 EFFECT(treatment,control,metric) := metric(treatment)-metric(control)
 REL_EFFECT(treatment,control,metric) := (metric(treatment)-metric(control))/metric(control)
 AGGREGATE(runs) := statistical_summary(runs)
 TEST(H0,results) := hypothesis_test(H0,results)
 CONFIDENCE(results) := confidence_interval(results)
 COMPARE(A,B,metric) := declared_comparison(metric(A),metric(B))
}

AXIOMS {
 A1 = "A computational experiment requires a defined question, controlled conditions and measurable outcomes."
 A2 = "Replication is required when stochastic or nondeterministic variability is material."
 A3 = "Changing multiple uncontrolled factors weakens causal interpretation."
 A4 = "A baseline provides a reference but does not guarantee fairness unless budgets and conditions are comparable."
 A5 = "Statistical significance and practical significance are distinct."
 A6 = "Experiment conclusions are limited to the tested model, data, parameter and environment domain."
 A7 = "A reproducible experiment can still support an incorrect scientific conclusion if design or interpretation is flawed."
 A8 = "Computational-experiment conclusions require explicit design, factors, metrics, uncertainty, provenance and scope semantics."
}

REASONING {
 R1_CONTEXT = identify(scientific_question,hypothesis,model_or_algorithm,factors,responses,budget_and_validation_needs)
 R2_DESIGN = choose_control_treatment_factor_levels_replications_randomisation_and_blocking)
 R3_PROTOCOL = define_inputs_data_seeds_environment_metrics_stopping_rules_and_acceptance_criteria)
 R4_EXECUTE = schedule_and_run_experiment_conditions_under_controlled_resources)
 R5_COLLECT = gather_outputs_metrics_failures_logs_and_provenance)
 R6_ANALYSE = compute_descriptive_statistics_effects_uncertainty_and_hypothesis_tests)
 R7_ROBUSTNESS = assess_sensitivity_confounding_distribution_shift_and_failure_modes)
 R8_VERIFY = confirm_numerical_computational_and_regression_correctness)
 R9_CONCLUDE = interpret_results_with_practical_significance_limitations_and_domain_of_applicability)
 R10_REPRODUCE = package_design_configuration_data_versions_logs_and_environment)
}

CONSTRAINTS {
 C1 = "One run is insufficient to characterise stochastic variability."
 C2 = "Uncontrolled configuration changes can confound treatment effects."
 C3 = "Hyperparameter tuning on the evaluation set can bias conclusions."
 C4 = "A statistically significant effect can be too small to matter practically."
 C5 = "A large effect can be unreliable when sample size is too small."
 C6 = "Changing hardware can alter both runtime and floating-point behaviour."
 C7 = "Failed runs must be reported rather than silently excluded."
 C8 = "Multiple hypothesis testing can inflate false-positive rates."
 C9 = "Extrapolating beyond tested parameter or data ranges requires reduced confidence."
 C10 = "Experiment automation does not remove the need for sound experimental design."
}

SEMANTIC_EQUIVALENCE {
 "DesignOfExperiments" <=> "DOE"
 "OneFactorAtATime" <=> "OFAT"
 "HighPerformanceComputing" <=> "HPC"
}

VALIDATION {
 V1 = "Experimental question and hypothesis are documented."
 V2 = "Factors, levels, controls and treatments are explicit."
 V3 = "Metrics and decision criteria are defined before interpretation."
 V4 = "Random seeds and replication strategy are documented."
 V5 = "Compute, data and tuning budgets are documented."
 V6 = "Failed and incomplete runs are retained in the evidence record."
 V7 = "Statistical uncertainty is reported where relevant."
 V8 = "Confounding and domain limitations are discussed."
 V9 = "Model, data, code and environment versions are documented."
 V10 = "Results are reproducible under documented experiment configuration and execution conditions."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 COMPUTATIONAL_EXPERIMENT_DEFINITION = 0.99
 EXPERIMENT_DESIGN_REASONING = 0.99
 REPLICATION_REASONING = 0.99
 EFFECT_REASONING = 0.98
 STATISTICAL_ANALYSIS_REASONING = 0.98
 CAUSAL_INTERPRETATION_REASONING = 0.96
 REPRODUCIBILITY_REASONING = 0.99
 POLICY = "Reduce confidence when controls, replication, randomisation, factor independence, statistical power, tuning budget or provenance are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,OntologyGrounding,ComputationalExperimentReasoning,
  HypothesisReasoning,ExperimentDesignReasoning,
  FactorReasoning,TreatmentReasoning,BaselineReasoning,
  ReplicationReasoning,RandomisationReasoning,
  ParameterSweepReasoning,AblationReasoning,
  StatisticalAnalysisReasoning,EffectSizeReasoning,
  UncertaintyReasoning,RobustnessReasoning,
  VerificationReasoning,ValidationReasoning,
  ReproducibilityReasoning,ProvenanceReasoning,
  KnowledgeGraphConstruction,RetrievalAugmentation,RecursiveInference
 ]
 NORMALISE {
  "computational experiment" -> ComputationalExperiment
  "design of experiments" -> DesignOfExperiments
  "DOE" -> DesignOfExperiments
  "OFAT" -> OneFactorAtATime
  "HPC" -> HighPerformanceComputing
 }
}

EXECUTION_RULES {
 E1 = "If computational runs are intentionally designed to test a scientific or algorithmic question, activate ComputationalExperimentOntology."
 E2 = "Define hypothesis, factors, responses and baseline before execution."
 E3 = "Control or document all material configuration differences between conditions."
 E4 = "Use replication and seed control for stochastic or nondeterministic experiments."
 E5 = "Use comparable compute, data and tuning budgets for fair method comparisons."
 E6 = "Report failed runs, variance and uncertainty rather than only successful averages."
 E7 = "Separate practical importance from statistical significance."
 E8 = "Apply numerical verification and model validation where conclusions depend on correctness or adequacy."
 E9 = "Record complete experiment design, versions, configuration, environment and provenance for reproducibility."
}

RECURSION {
 ENTRY = ComputationalExperiment
 EXPAND(ComputationalExperiment) -> [
  NumericalExperiment,SimulationExperiment,AlgorithmExperiment,
  SolverExperiment,ModelExperiment,BenchmarkExperiment,
  AblationExperiment,SensitivityExperiment,RobustnessExperiment,
  ScalabilityExperiment,ControlledExperiment,DesignOfExperiments,DOE,
  ExperimentDesign,Hypothesis,NullHypothesis,AlternativeHypothesis,
  ExperimentalVariable,IndependentVariable,DependentVariable,
  Factor,FactorLevel,Treatment,Control,Baseline,
  Parameter,ParameterSet,ParameterRange,DesignSpace,
  Randomisation,RandomSeed,Replication,Replicate,RepeatedRun,
  ExperimentRun,ParameterSweep,GridSweep,RandomSweep,
  FullFactorialDesign,FractionalFactorialDesignRelationship,
  OneFactorAtATimeRelationship,OFATrelationship,
  ExperimentalBudget,ComputationalModel,Algorithm,Solver,
  ScientificWorkflow,NumericalWorkflow,SimulationWorkflow,
  EvaluationMetric,PerformanceMetric,AccuracyMetric,
  Runtime,MemoryUsage,ErrorMetric,RobustnessMetric,
  StatisticalAnalysis,Mean,Variance,ConfidenceInterval,
  HypothesisTest,EffectSize,UncertaintyQuantification,
  SensitivityAnalysis,AblationStudy,MethodVariant,
  DeterministicExperiment,StochasticExperiment,
  EnvironmentCapture,ParallelExecution,DistributedExecution,
  ExperimentScheduler,ExperimentProvenance,RunManifest,
  NumericalVerification,ComputationalValidation,ErrorAnalysis,
  Benchmark,RegressionTesting,Reproducibility,
  VerificationMetrics,ValidationMetrics,ExperimentConclusion
 ]
 EXPAND(ComputationalExperimentFamilies) -> [
  HypothesisAndExperimentalQuestionSemantics,
  FactorsControlsTreatmentsAndDesignSpace,
  ReplicationRandomisationAndExperimentalBudgets,
  ParameterSweepFactorialAndAblationExperiments,
  MetricsStatisticsAndUncertaintyAnalysis,
  VerificationValidationAndRobustnessAssessment,
  ParallelExperimentExecutionAndScheduling,
  ProvenanceReproducibilityAndEvidenceReporting
 ]
 STOP_CONDITION = "Stop when hypothesis, design, controls, factors, replication, metrics, uncertainty, conclusions and provenance are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Computational Scientific Workflows"
 RELATED_ONTOLOGIES = [
  "Computational Scientific Workflows",
  "Scientific Workflow Ontology",
  "Data Pipeline Ontology",
  "Numerical Workflow Ontology",
  "Simulation Workflow Ontology",
  "Verification & Validation",
  "Numerical Verification Ontology",
  "Computational Validation Ontology",
  "Error Analysis Ontology",
  "Benchmark Ontology",
  "Regression Testing Ontology",
  "Reproducibility Ontology",
  "Verification Metrics Ontology",
  "Validation Metrics Ontology",
  "Computational Statistics Ontology",
  "Scientific Simulation Ontology",
  "AI Computational Mathematics Ontology",
  "High Performance Computing Ontology 2",
  "Parallel Computing Ontology",
  "Distributed Computing Ontology",
  "GPU Computing Ontology"
 ]
 ROUTE_RULES = [
  "Computational Experiment -> Computational Scientific Workflows for parent orchestration semantics",
  "Computational Experiment -> Scientific Workflow for task and dependency semantics",
  "Computational Experiment -> Data Pipeline for experiment input and output data handling",
  "Computational Experiment -> Numerical Workflow and Simulation Workflow for method-specific experimental execution",
  "Computational Experiment -> Verification & Validation for correctness and adequacy evidence",
  "Computational Experiment -> Numerical Verification, Computational Validation and Error Analysis for error and evidence semantics",
  "Computational Experiment -> Benchmark and Regression Testing for comparative and change-detection experiments",
  "Computational Experiment -> Reproducibility for rerun and provenance semantics",
  "Computational Experiment -> Computational Statistics for design, uncertainty and statistical inference",
  "Computational Experiment -> AI Computational Mathematics for learned-model experiments",
  "Computational Experiment -> HPC, Parallel, Distributed and GPU Computing for large experiment campaigns"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible experimental designs, metrics or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve experiment-versus-production-run distinction.",
  "Preserve factor-versus-response distinction.",
  "Preserve baseline-versus-treatment distinction.",
  "Preserve replication-versus-duplicate-record distinction.",
  "Preserve statistical-significance-versus-practical-significance distinction.",
  "Preserve experiment-result-versus-experiment-conclusion distinction.",
  "Preserve reproducibility-versus-validity distinction.",
  "Preserve machine-readable computational-experiment semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "A computational experiment is a controlled and reproducible set of computational runs designed to answer a scientific or algorithmic question."
 DESIGN_SUMMARY = "Hypotheses, factors, controls, treatments, replications and budgets define the experiment design."
 EXECUTION_SUMMARY = "Runs should use controlled configurations, explicit seeds, comparable resources and preserved failure evidence."
 ANALYSIS_SUMMARY = "Metrics, effect sizes, uncertainty and statistical analysis support interpretation of computational outcomes."
 ROBUSTNESS_SUMMARY = "Sensitivity, ablation and scenario analyses test whether conclusions persist under controlled changes."
 VALIDATION_SUMMARY = "Computational experiment conclusions should be verification-aware, validation-aware, provenance-linked, scope-limited and reproducible."
}

FLOW {
 INPUT
 -> detect_computational_experiment_context
 -> identify_scientific_question_hypothesis_model_or_algorithm_factors_responses_budget_and_validation_needs
 -> choose_control_treatment_factor_levels_replications_randomisation_and_blocking
 -> define_inputs_data_seeds_environment_metrics_stopping_rules_and_acceptance_criteria
 -> schedule_experiment_conditions_under_controlled_resources
 -> execute_runs_and_capture_outputs_metrics_failures_logs_and_provenance
 -> aggregate_replicates_and_compute_effects_variability_uncertainty_and_hypothesis_tests
 -> assess_sensitivity_confounding_distribution_shift_and_failure_modes
 -> apply_numerical_verification_computational_validation_and_regression_checks
 -> interpret_results_with_practical_significance_limitations_and_domain_of_applicability
 -> document_experiment_design_configuration_data_versions_environment_and_provenance
 -> package_artifacts_for_reproducible_rerun
 -> route_to_related_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-SCIENTIFIC-WORKFLOWS-COMPUTATIONAL-EXPERIMENT-ONTOLOGY-V1"
}

}

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