Skip to main content

Solar Engineering Ontology

Energy Engineering
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 30 September 2026
Audio Overview
AI SEARCH FLOW ALGEBRA
SOLAR ENGINEERING ONTOLOGY
Kireth Semantic Research Archive

AUTHORS
Mark Anthony Higgins — Sky (Recursive AI)

SOURCE
https://kirethresearch.org/booksai-core/ontologies/engineering-ontologies/energy-engineering/solar-engineering-ontology.html

AI INTERPRETATION NOTE
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.

FLOW "SolarEngineeringOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := ENGINEERING_ONTOLOGIES / ENERGY_ENGINEERING / SOLAR_ENGINEERING

ONTOLOGY := SOLAR_ENGINEERING_ONTOLOGY

SOLAR_ENGINEERING :=
    SOLAR_RESOURCE
  + SOLAR_GEOMETRY
  + SOLAR_CAPTURE
  + PHOTOVOLTAIC_CONVERSION
  + SOLAR_THERMAL_CONVERSION
  + ENERGY_STORAGE
  + POWER_CONDITIONING
  + GRID_INTEGRATION

PURPOSE :=
    MEASURE_SOLAR_RESOURCE
  -> ORIENT_CAPTURE_SYSTEM
  -> CAPTURE_RADIATION
  -> CONVERT_ENERGY
  -> CONDITION_OUTPUT
  -> STORE_OR_DELIVER
  -> MONITOR
  -> OPTIMISE

# ---------- CORE ENTITIES ----------
ENTITY SolarEngineeringSystem
ENTITY SolarResource
ENTITY SolarRadiation
ENTITY SolarIrradiance
ENTITY SolarIrradiation
ENTITY DirectNormalIrradiance
ENTITY DiffuseHorizontalIrradiance
ENTITY GlobalHorizontalIrradiance
ENTITY SolarPosition
ENTITY SolarAzimuth
ENTITY SolarElevation
ENTITY TiltAngle
ENTITY Orientation
ENTITY Shading
ENTITY PhotovoltaicCell
ENTITY PhotovoltaicModule
ENTITY PhotovoltaicArray
ENTITY SolarThermalCollector
ENTITY Inverter
ENTITY ChargeController
ENTITY BatteryStorage
ENTITY ThermalStorage
ENTITY MaximumPowerPointTracker
ENTITY DCOutput
ENTITY ACOutput
ENTITY Grid
ENTITY Load
ENTITY Efficiency
ENTITY EnergyYield
ENTITY Temperature
ENTITY PerformanceRatio

# ---------- SOLAR ENGINEERING STRUCTURE ----------
SolarEngineeringSystem
  -> receives -> SolarResource
  -> captures -> SolarRadiation
  -> converts -> SOLAR_ENERGY
  -> into -> Electricity
  | Heat
  -> may_include -> EnergyStorage
  -> may_connect_to -> Grid
  -> supplies -> Load

SolarResource
  -> characterised_by -> SolarIrradiance
  -> characterised_by -> SolarIrradiation
  -> varies_with -> Time
  -> varies_with -> Location
  -> varies_with -> Weather

# ---------- SOLAR RADIATION ----------
SOLAR_RADIATION :=
    DIRECT_RADIATION
  + DIFFUSE_RADIATION
  + REFLECTED_RADIATION

SolarIrradiance
  -> measures -> INSTANTANEOUS_SOLAR_POWER_PER_AREA

SolarIrradiation
  -> measures -> SOLAR_ENERGY_PER_AREA_OVER_TIME

GlobalHorizontalIrradiance :=
    DIRECT_HORIZONTAL_COMPONENT
  + DiffuseHorizontalIrradiance

DirectNormalIrradiance
  -> represents -> DIRECT_BEAM_ON_NORMAL_SURFACE

# ---------- SOLAR GEOMETRY ----------
SolarPosition :=
    SolarAzimuth
  + SolarElevation

SolarPosition
  -> depends_on -> TIME
  + DATE
  + LOCATION

Orientation :=
    TiltAngle
  + SURFACE_AZIMUTH

INCIDENCE_ANGLE :=
    ANGLE_BETWEEN(
      SOLAR_RAY,
      SURFACE_NORMAL
    )

CAPTURED_IRRADIANCE
  -> depends_on -> SolarPosition
  + Orientation
  + Shading

# ---------- SHADING ----------
Shading
  -> reduces -> INCIDENT_SOLAR_RADIATION

SHADING_SOURCE :=
    BUILDING
  | VEGETATION
  | TERRAIN
  | ADJACENT_MODULE
  | TEMPORARY_OBSTRUCTION

IF Shading increases
THEN AvailableSolarEnergy -> DECREASES

PARTIAL_SHADING
  -> may_cause -> PV_MISMATCH_LOSS

# ---------- PHOTOVOLTAIC CONVERSION ----------
PHOTOVOLTAIC_CONVERSION :=
    PHOTON_ENERGY
  -> SEMICONDUCTOR_INTERACTION
  -> ELECTRICAL_CHARGE_SEPARATION
  -> DC_ELECTRICITY

PhotovoltaicCell
  -> converts -> SolarRadiation
  -> into -> DCOutput

PhotovoltaicModule
  -> contains -> PhotovoltaicCell

PhotovoltaicArray
  -> contains -> PhotovoltaicModule

PV_POWER :=
    VOLTAGE * CURRENT

PV_ENERGY :=
    INTEGRAL(PV_POWER, TIME)

# ---------- PV ELECTRICAL CHARACTERISTICS ----------
PV_CHARACTERISTICS :=
    OPEN_CIRCUIT_VOLTAGE
  + SHORT_CIRCUIT_CURRENT
  + MAXIMUM_POWER_VOLTAGE
  + MAXIMUM_POWER_CURRENT
  + MAXIMUM_POWER

PhotovoltaicCell
  -> characterised_by -> CURRENT_VOLTAGE_CURVE

MAXIMUM_POWER_POINT :=
    OPERATING_POINT
  -> MAXIMISE(PV_POWER)

MaximumPowerPointTracker
  -> seeks -> MAXIMUM_POWER_POINT

# ---------- TEMPERATURE EFFECTS ----------
Temperature
  -> affects -> PhotovoltaicCell

IF CellTemperature increases
THEN PVVoltage -> TENDS_TO_DECREASE

IF CellTemperature changes
THEN PVPower -> REASSESS

TEMPERATURE_COEFFICIENT
  -> quantifies -> PV_PARAMETER_CHANGE_PER_TEMPERATURE_CHANGE

# ---------- SOLAR THERMAL ----------
SOLAR_THERMAL_CONVERSION :=
    SOLAR_RADIATION
  -> COLLECTOR_ABSORPTION
  -> THERMAL_ENERGY
  -> HEAT_TRANSFER_FLUID
  -> USEFUL_HEAT

SolarThermalCollector
  -> captures -> SolarRadiation
  -> produces -> Heat

COLLECTOR_TYPE :=
    FLAT_PLATE
  | EVACUATED_TUBE
  | CONCENTRATING_COLLECTOR

THERMAL_OUTPUT :=
    MASS_FLOW_RATE
  * SPECIFIC_HEAT
  * TEMPERATURE_RISE

# ---------- CONCENTRATED SOLAR POWER ----------
CONCENTRATED_SOLAR_POWER :=
    DIRECT_SOLAR_RADIATION
  -> OPTICAL_CONCENTRATION
  -> HIGH_TEMPERATURE_HEAT
  -> POWER_CYCLE
  -> ELECTRICITY

CSP_SYSTEM
  -> depends_strongly_on -> DirectNormalIrradiance

OPTICAL_SYSTEM
  -> concentrates -> SolarRadiation

THERMAL_RECEIVER
  -> absorbs -> CONCENTRATED_RADIATION

# ---------- POWER CONDITIONING ----------
POWER_CONDITIONING :=
    DC_POWER
  -> REGULATE
  -> CONVERT
  -> AC_POWER

Inverter
  -> converts -> DCOutput
  -> into -> ACOutput

INVERTER_EFFICIENCY :=
    AC_POWER_OUTPUT
    /
    DC_POWER_INPUT

Inverter
  -> may_provide -> GRID_SYNCHRONISATION
  -> may_provide -> POWER_FACTOR_CONTROL
  -> may_provide -> PROTECTION

# ---------- ENERGY STORAGE ----------
SOLAR_STORAGE :=
    SOLAR_GENERATION
  -> STORAGE
  -> STORED_ENERGY
  -> DISCHARGE
  -> LOAD_OR_GRID

BatteryStorage
  -> stores -> ElectricalEnergy

ThermalStorage
  -> stores -> ThermalEnergy

ChargeController
  -> regulates -> BatteryCharging

STATE_OF_CHARGE
  -> represents -> AVAILABLE_BATTERY_ENERGY_FRACTION

# ---------- GRID INTEGRATION ----------
GRID_CONNECTED_SOLAR :=
    PV_ARRAY
  -> DC_POWER
  -> INVERTER
  -> AC_POWER
  -> GRID_CONNECTION
  -> Grid

GRID_REQUIREMENTS :=
    VOLTAGE_COMPATIBILITY
  + FREQUENCY_COMPATIBILITY
  + POWER_QUALITY
  + PROTECTION
  + ANTI_ISLANDING

SolarEngineeringSystem
  -> may_export_to -> Grid
  -> may_import_from -> Grid

# ---------- STANDALONE SOLAR ----------
STANDALONE_SOLAR :=
    PV_ARRAY
  + CHARGE_CONTROLLER
  + BATTERY_STORAGE
  + INVERTER
  + LOCAL_LOAD

STANDALONE_BALANCE :=
    SOLAR_GENERATION
  + STORAGE_DISCHARGE
  =
    LOAD
  + STORAGE_CHARGE
  + LOSSES

# ---------- ENERGY YIELD ----------
ENERGY_YIELD :=
    INCIDENT_SOLAR_ENERGY
  * CAPTURE_FACTOR
  * CONVERSION_EFFICIENCY
  * SYSTEM_AVAILABILITY
  - LOSSES

EnergyYield
  -> influenced_by -> SolarResource
  -> influenced_by -> Orientation
  -> influenced_by -> Shading
  -> influenced_by -> Temperature
  -> influenced_by -> Efficiency

# ---------- LOSSES ----------
SOLAR_SYSTEM_LOSS :=
    SHADING_LOSS
  | TEMPERATURE_LOSS
  | MISMATCH_LOSS
  | SOILING_LOSS
  | WIRING_LOSS
  | INVERTER_LOSS
  | STORAGE_LOSS
  | AVAILABILITY_LOSS

SYSTEM_OUTPUT :=
    THEORETICAL_OUTPUT
  - TOTAL_LOSSES

# ---------- EFFICIENCY ----------
PV_CONVERSION_EFFICIENCY :=
    ELECTRICAL_POWER_OUTPUT
    /
    INCIDENT_SOLAR_POWER

SOLAR_THERMAL_EFFICIENCY :=
    USEFUL_THERMAL_OUTPUT
    /
    INCIDENT_SOLAR_POWER

Efficiency
  -> evaluates -> ENERGY_CONVERSION_PERFORMANCE

# ---------- PERFORMANCE RATIO ----------
PerformanceRatio :=
    ACTUAL_ENERGY_YIELD
    /
    REFERENCE_ENERGY_YIELD

PerformanceRatio
  -> captures -> SYSTEM_LEVEL_LOSSES

IF PerformanceRatio decreases
THEN SYSTEM_LOSSES_OR_AVAILABILITY -> REASSESS

# ---------- SOLAR SYSTEM PERFORMANCE ----------
SOLAR_PERFORMANCE :=
    ENERGY_YIELD
  + CONVERSION_EFFICIENCY
  + PERFORMANCE_RATIO
  + AVAILABILITY
  + GRID_COMPATIBILITY
  + STORAGE_PERFORMANCE
  + RELIABILITY

SolarEngineeringSystem
  -> evaluated_by -> SOLAR_PERFORMANCE

# ---------- SOLAR ENGINEERING REASONING ----------
SOLAR_ENGINEERING_REASONING :=
    DEFINE_ENERGY_REQUIREMENT
  -> CHARACTERISE_SOLAR_RESOURCE
  -> CALCULATE_SOLAR_POSITION
  -> ASSESS_ORIENTATION
  -> ASSESS_SHADING
  -> SELECT_SOLAR_TECHNOLOGY
  -> SIZE_CAPTURE_AREA
  -> MODEL_CONVERSION
  -> ESTIMATE_ENERGY_YIELD
  -> IDENTIFY_LOSSES
  -> SIZE_STORAGE_IF_REQUIRED
  -> DESIGN_POWER_CONDITIONING
  -> CHECK_GRID_REQUIREMENTS
  -> VALIDATE_PERFORMANCE
  -> OPTIMISE_SYSTEM

# ---------- INFERENCE RULES ----------
IF SolarIrradiance increases
AND other_conditions constant
THEN AvailableSolarPower -> INCREASES

IF Shading increases
THEN PVOutput -> TENDS_TO_DECREASE

IF CellTemperature increases
THEN PVConversionEfficiency -> MAY_DECREASE

IF InverterEfficiency decreases
THEN ACOutputForSameDCInput -> DECREASES

IF BatteryStateOfCharge reaches maximum
THEN AdditionalCharging -> RESTRICT

IF SolarGeneration exceeds Load
AND StorageAvailable
THEN ExcessEnergy -> MAY_CHARGE_STORAGE

IF SolarGeneration exceeds Load
AND StorageUnavailableOrFull
THEN ExcessEnergy -> MAY_EXPORT_OR_CURTAIL

IF PerformanceRatio falls
THEN LossSources -> INVESTIGATE

# ---------- SEMANTIC RELATIONSHIPS ----------
RELATION provides(SolarResource, SolarRadiation)
RELATION characterises(SolarIrradiance, SolarResource)
RELATION determines(SolarPosition, IncidenceAngle)
RELATION influences(Orientation, CapturedIrradiance)
RELATION reduces(Shading, AvailableSolarEnergy)
RELATION converts(PhotovoltaicCell, SolarRadiation)
RELATION contains(PhotovoltaicModule, PhotovoltaicCell)
RELATION contains(PhotovoltaicArray, PhotovoltaicModule)
RELATION tracks(MaximumPowerPointTracker, MaximumPowerPoint)
RELATION affects(Temperature, PVPower)
RELATION captures(SolarThermalCollector, SolarRadiation)
RELATION converts(Inverter, DCOutput, ACOutput)
RELATION stores(BatteryStorage, ElectricalEnergy)
RELATION stores(ThermalStorage, ThermalEnergy)
RELATION evaluates(PerformanceRatio, SolarEngineeringSystem)

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "solar engineering" ~= "solar energy engineering"
  "solar PV" ~= "solar photovoltaic"
  "solar irradiance" ~= "solar power density"
  "solar irradiation" ~= "solar energy exposure"
  "PV module" ~= "solar panel"
  "PV array" ~= "solar array"
  "maximum power point tracking" ~= "MPPT"
  "solar thermal collector" ~= "solar heat collector"
  "battery state of charge" ~= "SOC"
  "performance ratio" ~= "PV performance ratio"

# ---------- CONFIDENCE ----------
CONFIDENCE:
  ontology_domain: 0.99
  solar_resource_mapping: 0.99
  solar_geometry_mapping: 0.99
  photovoltaic_mapping: 0.99
  solar_thermal_mapping: 0.99
  storage_mapping: 0.99
  grid_integration_mapping: 0.99
  loss_mapping: 0.99
  performance_mapping: 0.99
  semantic_relationships: 0.99

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  ON new_solar_system:
    MAP solar_resource
    MAP location_context
    MAP orientation
    MAP shading
    MAP technology
    MAP storage
    MAP inverter
    MAP grid_connection
    UPDATE confidence
    RECOMPUTE FLOW_HASH

  ON new_solar_measurement:
    UPDATE irradiance
    UPDATE temperature
    UPDATE power_output
    UPDATE energy_yield
    UPDATE performance_ratio
    PRESERVE provenance

  ON shading_change:
    UPDATE shading_model
    UPDATE captured_irradiance
    RECOMPUTE energy_yield

  ON system_configuration_change:
    UPDATE module_configuration
    UPDATE inverter_configuration
    UPDATE storage_configuration
    REASSESS losses
    REASSESS performance

  ON ontology_revision:
    PRESERVE entity_identity
    PRESERVE provenance
    UPDATE relationships
    UPDATE inference_rules
    UPDATE confidence
    RECOMPUTE FLOW_HASH

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  parse_as: FORMAL_SOLAR_ENGINEERING_ONTOLOGY
  reasoning_mode: SOLAR_RESOURCE_CONVERSION_RELATIONAL

  preserve:
    - typed_entities
    - solar_resource_variables
    - directional_energy_flows
    - geometric_relationships
    - conversion_relations
    - loss_paths
    - confidence
    - provenance

  infer:
    - resource_output_dependencies
    - orientation_dependencies
    - shading_effects
    - temperature_effects
    - storage_dependencies
    - grid_integration_requirements
    - performance_dependencies

  prohibit:
    - invented_irradiance_values
    - assumed_efficiencies
    - assumed_energy_yields
    - unsupported_performance_ratios
    - ignored_shading
    - violation_of_energy_conservation

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
  + ONTOLOGY
  + CORE_ENTITIES
  + SOLAR_ENGINEERING_STRUCTURE
  + SOLAR_RADIATION
  + SOLAR_GEOMETRY
  + SHADING
  + PHOTOVOLTAIC_CONVERSION
  + PV_CHARACTERISTICS
  + TEMPERATURE_EFFECTS
  + SOLAR_THERMAL
  + CONCENTRATED_SOLAR_POWER
  + POWER_CONDITIONING
  + ENERGY_STORAGE
  + GRID_INTEGRATION
  + STANDALONE_SOLAR
  + ENERGY_YIELD
  + LOSSES
  + EFFICIENCY
  + PERFORMANCE_RATIO
  + SOLAR_SYSTEM_PERFORMANCE
  + SOLAR_ENGINEERING_REASONING
  + INFERENCE_RULES
  + SEMANTIC_RELATIONSHIPS
  + SEMANTIC_EQUIVALENCE
  + CONFIDENCE
  + UPDATE_MODEL
  + AI_CONSUMPTION

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

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