ConceptioArchivearXiv CS
arXiv CSopen access

Explaining Weather Bulletins via ILP

Unknown · 2026 · arxiv_cs
arXiv CS · Papers · License: Open Access · 2026
Open Source ↗Direct PDF ↓
machine learning, deep learning, neural networks

Explaining Weather Bulletins via ILP * Enrico Santi

Alessandro Dal Palù

University of Udine, DMIF, Udine, Italy [email protected]

Agostino Dovier

University of Parma, SMFI, Parma, Italy [email protected]

Talissa Dreossi

Andrea Formisano

University of Udine, DMIF, Udine, Italy [email protected]

Inductive Logic Programming (ILP) originated within the Logic Programming community in the Nineties as a framework for combining symbolic learning with declarative knowledge representation. Nowadays, mature ILP frameworks exist and they are capable of learning complex, non-monotonic hypotheses, thus broadening both the modeling capabilities and the scope of real-world applications of ILP. This work is primarily based on the FastLAS2 framework and aims to generate simple, interpretable hypotheses to help clarify the weather bulletins issued by OSMER FVG, the Regional Meteorological Observatory of the Italian region of Friuli Venezia-Giulia. In this paper we present a pipeline that, starting from simulated meteorological raw data and from OSMERs’ bulletins (used as ground truth), extracts data as ASP facts and generates ILP examples. From such examples an explanatory hypothesis is then inferred via FastLAS2. Such a hypothesis (translated into natural language) explains the weather forecast issued by human experts, and in particular the rationale behind experts’ choices of specific symbols in the bulletin pictogram (the symbol-annotated meteorological map of the forecast). The proposed approach is general, not specific to any particular region and it can equally be applied to bulletins from other sources and to different regions.

1

Introduction

Weather forecasting is essential for anticipating and reducing the impact of severe weather events. It plays a key role in several fields, from agriculture to transportation. People use forecast reports and bulletins for planning their routines, vacations, and taking informed decisions. Forecast bulletins are required to be concise and clear. They typically present a well-defined structure that arranges graphical elements, tables and short explanatory text related to the forecast of a geographic region. As an example, Figure 1 shows the structure of an OSMER (OSservatorio MEteorologico Regionale del Friuli Venezia-Giulia) weather report for a single day. Traditional approaches to weather forecasting, such as numerical weather prediction (NWP) models [21], are based on mathematical formulations that simulate atmospheric fluid dynamics, which, unfortunately, can be computationally expensive. To mitigate this limitation, NWP models [12] are increasingly complemented by statistical and machine learning techniques [19, 16, 15, 24, 23]. OSMER’s workflow for issuing weather forecasts and bulletins also benefits from the integration of deep learning techniques. The process, summarized in Figure 2, involves a number of deep learning models that are used as “black boxes” to generate a set of (not necessarily agreeing) predictions about * Research partially supported by Interdepartment Project on AI (Strategic Plan UniUD–22-25).

A.Dal Palù, A.Dovier, T.Dreossi, A.Formisano, and E.Santi are members of GNCS-INdAM, Gruppo Nazionale per il Calcolo Scientifico. E.Santi is supported by FSE/FVG PhD Grant on “XAI-FVG Explainability of Weather Forecasting in FVG” (G23C23001130008). W. Faber, L. Giordano, R. Rocha, V. Santos Costa (Eds.): 42nd International Conference on Logic Programming (ICLP 2026) EPTCS 450, 2026, pp. 15–28, doi:10.4204/EPTCS.450.2

© Santi, Dal Palù, Dovier, Dreossi, Formisano This work is licensed under the Creative Commons Attribution License.

16

Explaining Weather Bulletins via ILP

General Info The high-pressure ridge influencing the region will gradually weaken. On Monday, a weak frontal system will affect the Alpine area. From Tuesday onward, an Atlantic low will move toward France, advecting increasingly humid southwesterly air at upper levels over northern Italy. Monday, April 1, 2019 Clear to partly cloudy skies, with moderate Bora winds over the plains and along the coast. In the mountainous areas, variable cloudiness; brief and light precipitation cannot be ruled out in the afternoon.

Figure 1: The bulletin for the 1st of April 2019 for the FVG region issued by OSMER. It includes a pictogram describing the sky coverage and precipitation in different key locations. The report also includes a brief textual description summing up some of the reasons the domain experts considered for the forecast. English translation is reported in the right box.

the weather in a specific geographical zone. A group of communications experts and physicists with expertise in weather forecasting examines and evaluates such predictions to synthesize them into a single forecast. They then decide on the labels for the map areas and draft the text that will accompany the bulletin. Exploiting deep learning techniques, such as neural networks, in weather forecasting achieves high predictive accuracy but lacks explainability and interpretability. This limits user trust and makes domain experts a crucial component for validating and refining models’ outputs when producing the final weather reports [8, 18, 1, 20]. This work explores FastLAS2 [14], an Inductive Logic Programming framework [17], as a mean to generate rules that explain weather bulletins. FastLAS2 is a fast and relatively scalable framework that has been proven to be able handle some large datasets and complex background knowledge, using a scoring function to identify optimal solutions [10, 13]. It has also been used with the help of neural networks [9, 5]. In particular, in our previous work [8], we investigated the use of FastLAS, for explainable weather forecasting. The proposed approach leverages FastLAS to learn rules for predicting rain levels. An empirical evaluation conducted on real data (from OSMER) demonstrated that FastLAS is capable of learning models that explain rainfalls from relatively small datasets, achieving performances similar to classical machine learning baselines (SVM, decision tree, random forest). Note that the previous work [8] employed FastLAS for a prediction task, as the rain data were not generated by any black-box model. In contrast, the use of FastLAS in the proposed approach is aimed at an explanatory task, i.e., not at predicting what has happened, but rather at learning rules that explain why black-box models produced such predictions. Moreover, [8] considers single, unrelated cities, whereas the approach described in this paper integrates data from multiple nearby locations. This is motivated by the fact that weather conditions in surrounding areas may help explain the weather observed at a given location.

Santi, Dal Palù, Dovier, Dreossi, Formisano

17

Figure 2: The overall aim of the proposed work. The current OSMER weather forecasting process includes several Deep Learning models that are used for prediction (as black boxes). After the predictions, a group of experts (physicist experts in weather forecast and experts in communication) decides how to label the map and creates the sentences to be written in the bulletin. Our tool SERGIO (Simulating Explanation of ReGIOnal weather forecast) could replace this final stage. Besides FastLAS, another ILP framework, FOLD-RM [22], was initially considered for use with the data extracted from the pipeline. However, we decided not to report the details because, although FOLD-RM is very intuitive to use, it lacks support for user-defined cost functions to guide the hypothesis search. More importantly for our scenario, it does not allow the use of rules as background knowledge. The paper is organized as follows: Section 2 recalls some background on ILP, focusing specifically on the FastLAS2 framework [14]. Section 3 describes the implementation of the pipeline which extracts ASP facts from raw simulations on meteorological data and the bulletin. Section 4 presents the ILP model implemented in FastLAS2 in order to derive for a pictogram our hypothesis, then the experiments we ran to train and validate our model are discussed. Lastly, in Section 5 we draw our conclusions. Source code, test instances, and results are available from https://clp.dimi.uniud.it/sw.

2

Inductive Logic Programming

The main goal of the machine learning branch of Inductive Logic Programming is to learn logical rules from examples and background knowledge. The process of learning consist of searching an hypothesis space for rules that are coherent with prior knowledge and that best explain the instances (examples) provided. The work presented in this paper is based on the Learning from Answer Sets (LAS) ILP framework called FastLAS2 [14], as it uses ASP which is especially useful for learning non-monotonic logical rules. In LAS, a learning problem is called a task, which is formalized by the tuple T = ⟨B, SM , E⟩, where B denotes the background knowledge, namely a set of ASP rules, SM is the hypothesis space, i.e. the set of rules that can possibly be learned, and E which is the set of examples that must be explained by the knowledge base extended with learned rules. The hypothesis space can be either explicitly provided as input (that is, a set of hypotheses formalized as rules to be filtered/checked) or implicitly defined using mode bias. A mode bias is a pair ⟨Mh , Mb ⟩, where Mh and Mb are sets of so-called “mode declarations” for the heads and bodies of rules. Mh defines the name of the predicates that can be used as head, the number of arguments, and the scope of the arguments. Mb lists the names and the arguments of the predicates that can be used as body atoms. If Mb contains h predicates and Mh involves a single predicate, then they describe an exponential number (2h ) of rules in the hypothesis space SM . The LAS solver is also

18

Explaining Weather Bulletins via ILP

permitted to explore the insertion, in the body of the learned rules, of comparison predicates (e.g., X < 5 or Y != Z) among variables occurring in the body. Example 2.1 Suppose we would like to infer the predicate forecasted_sky/2 with the first argument defined by a predicate location/1 (for example, by the facts location(gorizia), location(udine), ...) and having as second argument a numerical value bounded by the predicate coverage/1 (as in, for instance, coverage(0..6)). Thus, we express Mh as: # modeh ( forecasted_sky ( const ( location ) , const ( coverage ) ) ) .

Suppose, moreover, we conjecture that the predicate forecasted_sky/2 might depend on the predicate city_covered_less_than/2 (that can be extracted from the data generated by the numerical weather simulations by counting the number of hours a cloud covers a location) and on the predicate wind_blowing/3 that has to do with the direction and speed of the wind at a given location (direction and speed have bounds defined by the predicates const(w_dir) and const(w_speed)). This can be expressed by including the following modes in Mb : # modeb ( c i t y _ c o v e r e d _ l e s s _ t h a n ( const ( location ) , const ( hours ) ) ) # modeb ( wind_blowing ( const ( location ) , const ( w_dir ) , const ( w_speed ) ) )

Examples are partial interpretations: a partial interpretation e pi is a pair of sets of ground atoms e pi = ⟨einc , eexc ⟩, where einc represents the inclusions, that is, atoms that must be true, and eexc represents the exclusions, or atoms that must be false when inclusions are true. When a candidate interpretation I satisfies the conditions einc ⊆ I and eexc ∩ I = 0, / it is said to extend the partial interpretation e pi . In FastLAS2 examples can be also context-dependent. Precisely, a context-dependent partial interpretation (CDPI) is a tuple ecd pi = ⟨e pi , ectx ⟩, where ectx is an ASP program that represents the context in which the example should be considered and e pi is a partial interpretation. If there is at least one stable model A of P ∪ ectx such that A extends e pi , then a program P is said to accept the CDPI ecd pi . FastLAS2 also permits to define a score function which is used, along with example’s penalty, to calculate the total cost of a solution. In particular, the score function is user-defined by specifying penalties for predicates in the head or in the body of the learned rules. Real-world data is inherently noisy, in the LAS framework, noise can be modeled by associating examples with weights, referred to as penalties. A weighted context-dependent partial interpretation (WCDPI) e is defined as a tuple ⟨eid , e pen , ecd pi ⟩, where eid is an identifier for e, e pen is a positive integer denoting the penalty, and ecd pi is a context-dependent partial interpretation. A LAS task is said to be noisy when its examples are WCDPIs. Definition 2.1 (Inductive solution) A noisy LAS task is a tuple T noise = ⟨B, SM , E⟩ where B is an ASP program, SM is the hypothesis space, and E is a finite set of WCDPIs. A hypothesis H ⊆ SM is an inductive solution of T noise iff ∀e ∈ E, B ∪ H accepts e. Let T noise denote the set of all noisy LAS tasks. If an hypothesis does not accept an example, it pays the penalty associated with that example. Informally, penalties are used to compute the cost incurred by a hypothesis for failing to explain given examples. The overall cost function of a hypothesis is defined as the sum of the penalties of all examples not accepted by the hypothesis, augmented by a user defined scoring function. A scoring function is a function S : ASP × T noise → R>0 , where ASP denotes the set of all possible ASP programs which can be generated by rules in SM . The objective of a noisy LAS task is to identify a hypothesis that minimizes the overall cost function over a given hypothesis space with respect to a set of WCDPI examples. Such a hypothesis is referred to as optimal. FastLAS2 is a noisy LAS system that supports user-defined scoring functions, enabling domain-specific optimization criteria to guide the search process.

Santi, Dal Palù, Dovier, Dreossi, Formisano

3

19

From Meteorological Data to ASP Facts

This section describes the automated pipeline that processes raw data (simulation data and pictograms from bulletins provided by experts). We describe how to identify and convert to ASP facts relevant features that are at the basis of experts’ reasoning for crafting a weather prediction. The facts obtained will constitute the knowledge base provided to FastLAS2 for the learning phase. As recalled in Section 2, an example, i.e. a WCDPI, is composed of the partial interpretation and a context. In our application, such facts can be derived from different data sources. For each day of analysis, the context facts (ectx ) are computed by abstracting some of the data from the Copernicus European Regional ReAnalysis (CERRA) dataset, which contains simulated data that match the meteorological evolution of physical measurements for the specific day. The atmospheric variables considered, as well as generated facts, are described in Section 3.2. Another source of data is the daily OSMER bulletins. We extrapolate pictograms and produce high level facts that feed the partial interpretation e pi = ⟨einc , eexc ⟩. The dataset used in our work, as a proof of concept of a general methodology, focuses on the region Friuli Venezia-Giulia (FVG), in the north-east of Italy. The overall pipeline is shown in Figure 3 and described in what follows.

3.1

Ground Truth, Pictogram Facts Extraction

In order to generate the WCDPI for each daily example, we process bulletins provided by OSMER1 . In detail, we extract the pictogram describing the overall situation for the day in the FVG region (see Figure 1). We identify, through image analysis, nine icons located across the maps and extract the qualitative sky coverage (e.g., clear, partly cloudy, variable, . . . ) and precipitations (from 0 to 6 water droplets) in the area. Given a date, in order to derive einc , a multi-scale template matching algorithm on the pictogram is applied. The templates include all possible icons which can be used in the pictograms. For each of the nine locations, two predicates are generated, forecasted_sky/3 which describes the predicted cloud coverage and forecasted_rain/3 describing the predicted rain level. The rain level ranges from 0 (no rain at the location) to 6 according to the number of droplets in the icon at the location. The coverage argument of the forecasted sky predicate can be one in {cloudy, partly_cloudy, mostly_cloudy, mostly_clear, sunny} according to the type of icon at the location. The last parameter of both predicates is the season (the reason for this choice is discussed in Section 4). Figure 4 presents an example of the analysis: on the left the result of the multi-scale template matching on a pictogram and on the right the derived ASP facts.

3.2

CERRA Facts Extraction

CERRA (CERRA sub-daily regional reanalysis data for Europe on pressure levels2 ) is a high-resolution regional reanalysis dataset providing reconstruction of different atmospheric and surface meteorological variables over Europe. While sharing the same format of weather simulation models, this dataset aims at reproducing a-posteriori the most likely data that evolved in the observed events. It is considered to be more reliable than simulations and it represents a convenient test bench for our purposes. This dataset is encoded with the format GRIB (General Regularly-distributed Information in Binary form), a standardized operational meteorological data format, designed to store grid data generated by numerical 1 Available at:https://www.osmer.fvg.it/archivio.php. 2 Available at: https://cds.climate.copernicus.eu/datasets/reanalysis-cerra-pressure-levels.

20

Explaining Weather Bulletins via ILP

Figure 3: An activity diagram describing the process used to generate each WCDPI example. Note that for the WCDPIs the context facts (ectx ) and the partial interpretations e pi can be computed independently since they are derived from different data sources. weather forecast models [2]. Each GRIB file contains one or more independent records, each consisting of metadata and binary data values for a specific variable on a defined grid and time step. The CERRA dataset contains several atmospheric variables such as cloud cover, relative humidity and temperature at different heights, from 1000hPa to 1hPa. Such data is provided at multiple spatial and temporal resolutions. In this work, we use the high-resolution reanalysis, which is available at a horizontal resolution of 5.5 km and a temporal resolution of 1 hour. To derive the context of each example we considered the following variables, at six different height levels: 1000hPa (≃ 100/110m) 925hPa (≃ 750/900m) 850hPa (≃ 1500m) 700hPa (≃ 3000m) 500hPa (≃ 5500m) 300hPa (≃ 9000m) • Cloud coverage: Percentage value of cloud coverage within a grid box. • Relative humidity: Value describing the water vapor pressure as a percentage of the value at which the air becomes saturated. • Temperature: The air temperature in Kelvin. • U-component of wind: The East-West component of the horizontal wind velocity. • V-component of wind: The North-South component of the horizontal wind velocity. All the variables considered were extracted over the area bounded by 10 and 15 degrees of East longitude and 44.5 and 48 degrees of North latitude. Such a choice was driven by the need to capture the whole FVG region, together with a surrounding context area (a portion of the Veneto region at East, a portion of Austria, including Salzburg and Graz, at North, and part of Slovenia at West). We process raw data and retrieve planar rectified images for each scalar variable and two maps for wind, represented by a 2D vectorial information (U and V components). Data is sampled at each hour of the day, therefore we collect 24 heatmaps for each of the 6 heights.

Santi, Dal Palù, Dovier, Dreossi, Formisano

21

Figure 4: On the left the result of the multi-scale template matching on an OSMER pictogram. On the right the extracted facts for the different locations. The facts included describe sky coverage and precipitation levels at the locations depicted by the pictogram, also including the season. Following common practices, we analyze those images and identify blob-like regions that differentiate from the adjacent regions. Such features are an abstraction of coherent configurations of meteorological variables that can be exploited in higher level reasoning. We focus on clouds concentrations, high humidity and temperature blobs. As further abstraction, after detection of blobs we also track their movements across time at the same altitude, by means of the framework TOBAC 1.2 that is capable of detecting and tracking individual clouds from different image sources, such as images from cloudresolving model simulations and geostationary satellite retrievals [11]. In order to cope with noise in the images, which causes TOBAC to deal with hundreds of noisy blobs, we quantize the values of each image to a few discrete levels (e.g., 5). The smoothed version of the new image has fewer features, while preserving the ones that range over larger spatial scale. Domain experts suggested that fronts (large and elongated blobs) are more relevant than small blobs (even if more intense), when considering humidity and temperature heatmaps. Therefore, for those images we quantized 5 levels but filtered out small blobs. For cloud coverage, we instead quantized only 3 levels but retained also smaller blobs. Figure 5 (resp., 6) presents an example of a cloud (resp., humidity) heatmap extracted from a GRIB file and the corresponding image after quantization and Gaussian filtering, to which TOBAC was applied. GRIB data for wind is sampled at very coarse resolution. Therefore we interpolate the data to match the same resolution associated to the other maps, we then generate the images containing directions and magnitudes of the wind vectors. Facts extraction is based on the analysis of images (classified by time and height) and the output of TOBAC tracking. We collect the coordinates of the nine target locations in the images to extract punctual details. Moreover, front analysis is performed. We describe how each type of facts is retrieved: • Facts cloud_at_H_covers/2 (where H is a height level) describe cloud coverage at each location: the first argument is one of the nine locations while the second is the hour (0..23) at which the cloud (at level H) has been detected over the location. • Two facts wind_blowing_morning/3 and wind_blowing_afternoon/3 summarize wind data at each location. For both predicates the arguments are a location, a direction ("N", "NW", "W","SW", "S", "SE", "E", or "NE") and integer speed (km/h). The speed (resp., direction) is an average (resp., weighted average) of the values extracted from GRIB data at different heights during the morning or afternoon hours.

22

Explaining Weather Bulletins via ILP • For temperature and humidity we model additional predicates. First, for each location the predicates temperature_at_morning/2, temperature_at_afternoon/2, humidity_at_morning/2, and humidity_at_afternoon/2 are generated. The arguments of such predicates are a location name and an integer value. For the temperature the value is the average temperature over a location, while for the humidity it describes the percentage of humidity. Such values are extracted from raw GRIB data, to avoid loss of information. Additional facts describe the daily trend of temperature and humidity: temperature_increased_at_afternoon/1, temperature_decrease_at_afternoon/1, humidity_increased_at_afternoon/1, humidity_decreased_at_afternoon/1. The argument of these last facts is a location. • For both temperature and humidity we generate facts about fronts: hum_front_morning_at_H/2, hum_front_afternoon_at_H/2, temp_front_morning_at_H/2, and temp_front_afternoon_at_H/2 (where H is a height level). They are generated when TOBAC detects, for more than two consecutive hours, a humidity or temperature difference sufficiently widespread to be considered a front. Both parameters are locations: we keep track of the same front that traverse pairs of locations cities during morning/afternoon.

The following is an example of a generated ectx , that is, the set of facts that make up the context of a day. Note that all data present in each context is automatically derived from CERRA GRIBs. % cloud coverage : c l o u d_at_100m_covers ( pontebba_tarvisio , 1) . c l o u d_at_100m_covers ( pontebba_tarvisio , 2) . c l o u d_at_750m_covers ( pontebba_tarvisio , 1) . ... c l o u d_at_ 1_4km_ cover s ( pontebba_tarvisio , 0) . c l o u d_at_ 1_4km_ cover s ( pontebba_tarvisio , 1) . c l o u d_at_ 1_4km_ cover s ( pontebba_tarvisio , 2) . ... c lo u d_at_3km_covers ( pontebba_tarvisio , 5) . c lo u d_at_3km_covers ( gemona_stolvizza , 6) . ... c lo u d_at_9km_covers ( trieste , 2) . % summing up temperature and humidity facts ( one per location ) : t e m p era tur e_ at_ mo rni ng ( sappada_forni_villa , 278) . t e m p e r at u r e_ a t _a f t er n o on ( sappada_forni_villa , 279) . t e m p era tur e_ at_ mo rni ng ( pontebba_tarvisio , 279) . t e m p e r at u r e_ a t _a f t er n o on ( pontebba_tarvisio , 277) . ... t e m p era tur e_ at_ mo rni ng ( pordenone , 277) . t e m p e r at u r e_ a t _a f t er n o on ( pordenone , 276) . h um i dity_at_morning ( sappada_forni_villa , 34) . h u m i dity_ at_aft ernoo n ( sappada_forni_villa , 27) . ... h um i dity_at_morning ( pordenone , 47) . h u m i dity_ at_aft ernoo n ( pordenone , 66) . % summing up winds and fronts : w i n d _blowing_morning ( sappada_forni_villa , " SW " , 4) . w i n d _bl owi ng _af te rno on ( sappada_forni_villa , " S " , 4) . ... w i n d _bl owi ng _af te rno on ( pordenone , " S " , 3) . t e m p _ f r o n t _ a f t e r n o o n _ a t _ 7 5 0 m ( gemona_stolvizza , pontebba_tarvisio ) .

Santi, Dal Palù, Dovier, Dreossi, Formisano

23

Figure 5: On the left a heatmap, related to cloud coverage data extracted from a GRIB file. On the right the same heatmap where a three level quantization and a Gaussian filter has been applied. The regions (clouds) detected by TOBAC are outlined in black, each cloud presents an id. For geographical reference location names and political borders have been added on top.

t e m p _ f r o n t _ a f t e r n o o n _ a t _ 7 5 0 m ( gorizia , pontebba_tarvisio ) . t e m p _ f ro n t _ m o r n i n g_ a t _ 3 k m ( pontebba_tarvisio , sappada_forni_villa ) . ... h u m _ f r on t _ m o r n i n g _a t _ 1 0 0 m ( sappada_forni_villa , udine_palmanova ) . h u m _ f r on t _ m o r n i n g _a t _ 1 0 0 m ( lignano_grado , pordenone ) .

4

ILP Model and Results

We now present the background knowledge crafted to be used by FastLAS2 to learn the hypothesis. Some implementation choices will be addressed and the obtained results will be discussed. Background Knowledge The background knowledge is a crucial part in ILP since it allows to intensionally define (through the mode biases—see Section 2) the search space of the hypotheses and, possibly, to define auxiliary predicates which infer additional facts from each example. By modifying the background knowledge several variations of the model (i.e., different final hypotheses) have been considered, many of which, during the learning of the hypothesis itself, lead to a learning process exceeding 128GB of RAM, and, consequently, killed. This serious memory issue forced us to aggregate data over the different height levels (e.g., the facts related to humidity and temperature—see Section 3.2). For the same reason, in preparing the partial interpretation (einc , eexc ) of each example, we used single locations and not the set of 9 locations, even if we allowed to use also facts concerning the whole region. Namely, even though each e pi is related to a single location, the context of each example, ectx , carries all the facts extracted over the whole region for that day. This choice has been made so that FastLAS, when learning the rules for a specific location, could also leverage facts concerning neighboring locations, if relevant. Let us focus on the auxiliary predicates that arose after meetings with domain experts that, in order to predict the sky coverage of a given location, keep into account the sunlight hours, which vary from

24

Explaining Weather Bulletins via ILP

Figure 6: On the left a heatmap, related to humidity data extracted from a GRIB file. On the right the same heatmap where a five level quantization and a gaussian filter has been applied. The high humidity front detected by TOBAC is outlined in black, note that smaller blobs are not detected due to the higher threshold used for humidity and temperature. For geographical reference location names and political borders have been added on top. season to season. Thus, we included in the background knowledge a predicate to define the range of sunlight hours for each season as well as a predicate deriving the season from a given date (present in the context of each example). Such an information, which also shows up in the predicates in einc , allows us to learn more precise hypotheses since for a given location, an explanation for the sky can keep into account alongside the number of hours covered by a cloud also the total number of sunlight hours. For this reason the predicates forecasted_sky/3 and forecasted_rain/3 present a season argument. Mb contains the predicates listed in Section 3.2. Consider a LAS example e, the inclusion einc will describe the forecast for a specific location ℓ. The predicates in Mb distinguish (with different weights) whether they are used on the location ℓ on a neighboring location. Such a choice was made to enable different costs for the predicates, making FastLAS preferring local explanations before considering the neighboring locations. The following example presents the FastLAS commands to specify a cost of 1 for including in a body of a rule the temperature_increased_at_afternoon on the location presented in the head of the same rule and a cost of 2 for including the predicate on a neighboring location: # bias ( " penalty (2 , tmp_inc_n ( X ) ) : in_body ( t e m p e r a t u r e _ i n c r e a s e d _ a t _ a f t e r n o o n _ n e i g h b o u r ( X ) ) . " ) . # bias ( " penalty (1 , tmp_inc ( X ) ) : in_body ( t e m p e r a t u r e _ i n c r e a s e d _ a t _ a f t e r n o o n ( X ) ) . " ) .

Training The training (and evaluation) dataset comprises 70 days of data selected in consultation with the domain experts from OSMER. The selected days span 2025 and cover all four seasons, specifically incorporating relevant seasonal phenomena (e.g., scirocco winds and spring cold fronts). This expertguided selection ensures that the learned hypothesis accurately accounts for such phenomena. We limited the dataset to 70 days for two primary reasons: First, the FVG region is relatively small and, therefore, a period of 70 days provides sufficient data to capture common seasonal phenomena in the region. Second, even within a small geographical area, 70 days of GRIB data require hundreds of gigabytes of storage.

Santi, Dal Palù, Dovier, Dreossi, Formisano

25

Fold no.

1

2

3

4

5

Accuracy Recall

0.842 0.848

0.845 0.853

0.835 0.823

0.842 0.856

0.835 0.813

Table 1: The accuracy and recall values obtained on the training set with the 5-fold cross-validation. Fold no.

1

2

3

4

5

Accuracy Recall

0.628 0.344

0.576 0.331

0.543 0.278

0.53 0.302

0.572 0.33

Table 2: The accuracy and recall values obtained on the different validation folds. This volume strains the capacity of our prototype pipeline, which must process the entire dataset offline in a single batch. All the folds were executed on a system equipped with an Intel Core i7-13700KF at base clock 3.4 GHz (up to 5.4 GHz in boost), 128 GB of DDR4 RAM, and a NVIDIA RTX4090. All the data preprocessing leading to the generation of the LAS examples (for 70 days) took four and a half hours. The data preprocessing (see Figure 3) can scale on multiple threads to extract the data and can offload to the GPU (if present) the heatmap clustering task. The training used a 5-fold cross-validation approach, by doing so, each fold was composed by 14 days of data (126 examples), leaving enough data for the test fold to cover different seasons. The overall cross-validation took roughly half an hour not exceeding the 10GB of RAM used. The LAS task of each fold was noisy, meaning that the framework was not forced to learn a hypothesis covering all examples. As mentioned earlier, uncovered examples contribute a penalty to the final hypothesis score. Specifically, each uncovered example incurs a penalty of 1000. The remaining portion of the hypothesis score, provided through the #bias directive. As mentioned in Section 4, it is designed according to the locality principle, favoring explanations based on humidity, cloud coverage, and temperature at the same location before considering information from neighboring locations. Such a scoring function remains general and can be easily adapted to new regions by defining the notion of neighboring locations accordingly. Considering this, on the training set our hypotheses covered an average of 98.3% of the examples across all folds, providing a sufficient accuracy (an average of 85% over all the folds). Accuracy and recall are reported in Table 1. Results On average, the hypotheses on each validation fold resulted in an accuracy of 57%. While the predictive accuracy may not yet fully satisfactory, the results remain promising given that our main focus is on the explainability provided by the learned rules rather than on performance. In contrast to neural networks, which use high-dimensional representations, logic-based models require an explicit abstraction of the input data, leading to a loss of representational detail. Moreover, due to current scalability limitations, FastLAS can be trained only on relatively small datasets, unlike neural approaches that typically benefit from millions of training examples. Nevertheless, despite these constraints, the learned rules already demonstrate strong explanatory capabilities suggesting that improvements to the model will enhance its accuracy. The precision and recall values obtained on each validation fold are reported in Table 2. Alongside the metrics obtained by the cross validation, it is relevant to notice that, while present in the search space, none of the five learned hypotheses used facts related to the wind speed

26

Explaining Weather Bulletins via ILP

(e.g., wind_blowing_morning_speed/2.). While such facts were not considered relevant by FastLAS to explain the forecast, in every hypotheses it used facts concerning the wind direction (especially to derive the predicate forecasted_rain/2). As an example consider the following two rules, taken from a learned hypothesis: forecasted_sky ( trieste , mostly_clear , summer ) : ci t y _ c o v e r e d _ l e s s _ t h a n ( trieste ,3) , h u m i d i t y _ d e c r e a s e d _ a t _ a f t e r n o o n ( trieste ) , wi n d _ b l o w i ng _ m o r n i n g ( trieste , " E " ) . forecasted_rain ( gorizia ,1 , winter ) : ci t y _ c o v e r e d _ l e s s _ t h a n ( gorizia ,3) , h u m i d i t y _ d e c r e a s e d _ a t _ a f t e r n o o n ( gorizia ) , h u m i d i t y _ i n c r e a s e d _ a t _ a f t e r n o o n _ n e i g h b o u r ( trieste ) .

The first it states that in Trieste, during summer, if the prediction says that there are less than 3 hours of cloud cover and other info on wind and humidity over the city, then we can safely assert, as a summary, that it would be “mostly clear”. The second rule, states that during winter time in Gorizia, a prediction of light rain (rain of level 1) can be justified by a prediction of not many hours of cloud cover (less than 3) and by predicted humidity variations in the towns (locations) of Gorizia and Trieste.

5

Conclusions

In this paper we presented a pipeline which, starting from simulated meteorological raw data and from weather bulletins, is able to retrieve ASP facts and generate ILP examples. From such examples we have been able to learn, via FastLAS2, explanatory hypothesis that can be used by readers of the bulletin to better understand some of the reasoning carried out by human experts who produced the actual forecast. Moreover, the hypothesis can also provide high level insights about experts different experience and evaluations of the same scenario. Future work will focus on optimizing and generalizing the proposed pipeline. Key refinements will be restructuring the background knowledge base to minimize memory footprint, and leveraging GPU data-parallelism to speed up the hypothesis learning phase [6, 7]. These optimizations will enable the pipeline to process larger/richer datasets. Consequently, system’s capabilities will be expanded by a) using datasets that include facts for multi-level temperature and humidity data to infer more precise, height-stratified explanations; and b) using training (and evaluation) datasets that span homologous periods across multiple consecutive years, to account for recurrent multi-year patterns of seasonal phenomena and improve the accuracy of the learned hypothesis. Additional effort will be put in extending the pipeline to also incorporate additional data sources, and developing it into a fullyfledged framework that can be applied with minimal effort to different geographical regions and types of weather bulletins. We also plan to extend this framework to a complete explainable pipeline, taking into account the final stage that converts concepts (learned rules) to natural language, with a Prolog-based engine as described in [3, 4]. The ultimate goal is to produce automated bulletins that can ease expert’s evaluations (see Figure 2). Acknowledgments The authors would like to thank all the members of OSMER team, in particular Sergio Nordio, Agostino Manzato, Federico Bonaldo, and Francesco Sioni, and the developers of FastLAS Mark Law, Matthew Tait, and Alessandra Russo for their kindness and guidance.

Santi, Dal Palù, Dovier, Dreossi, Formisano

27

References [1] Anja Belz (2008): Automatic generation of weather forecast texts using comprehensive probabilistic generation-space models. Nat. Lang. Eng. 14(4), pp. 431–455, doi:10.1017/S1351324907004664. [2] Jean Claude Bergès (2002): Support of WMO binary format (BUFR and GRIB). In: Proc. of the Open source GIS-GRASS user conference, Trento, Italy, 11, University of Trento, Trento, p. 13, doi:10.5446/21758. [3] Flavio Bertini, Alessandro Dal Palù, Francesco Fabiano, Andrea Formisano & Federica Zaglio (2024): Concept2Text: An Explainable Multilingual Rewriting of Concepts into Natural Language. In Emanuele De Angelis & Maurizio Proietti, editors: Proceedings of the 39th Italian Conference on Computational Logic, Rome, Italy, June 26-28, 2024, CEUR Workshop Proceedings 3733, CEUR-WS.org. Available at https: //ceur-ws.org/Vol-3733/paper14.pdf. [4] Flavio Bertini, Alessandro Dal Palù, Federica Zaglio, Francesco Fabiano & Andrea Formisano (2024): Data2Concept2Text: An Explainable Multilingual Framework for Data Analysis Narration. In Pedro Cabalar, Francesco Fabiano, Martin Gebser, Gopal Gupta & Theresa Swift, editors: Proceedings 40th International Conference on Logic Programming, ICLP 2024, EPTCS 416, pp. 139–152, doi:10.4204/EPTCS.416.13. [5] Theo Charalambous, Yaniv Aspis & Alessandra Russo (2023): NeuralFastLAS: Fast Logic-Based Learning from Raw Data. arXiv:2310.05145. [6] Agostino Dovier, Andrea Formisano, Gopal Gupta, Manuel V. Hermenegildo, Enrico Pontelli & Ricardo Rocha (2022): Parallel Logic Programming: A Sequel. Theory Pract. Log. Program. 22(6), pp. 905–973, doi:10.1017/S1471068422000059. [7] Agostino Dovier, Andrea Formisano & Flavio Vella (2019): GPU-Based Parallelism for ASP-Solving. In Petra Hofstedt, Salvador Abreu, Ulrich John, Herbert Kuchen & Dietmar Seipel, editors: Declarative Programming and Knowledge Management - Conference on Declarative Programming, DECLARE 2019, Revised Selected Papers, LNCS 12057, Springer, pp. 3–23, doi:10.1007/978-3-030-46714-2_1. [8] Talissa Dreossi, Agostino Dovier, Andrea Formisano, Mark Law, Agostino Manzato, Alessandra Russo & Matthew Tait (2024): Towards Explainable Weather Forecasting Through FastLAS. In Carmine Dodaro, Gopal Gupta & Maria Vanina Martinez, editors: Logic Programming and Nonmonotonic Reasoning - 17th International Conference, LPNMR 2024, Dallas, TX, USA, October 11-14, 2024, Proceedings, Lecture Notes in Computer Science 15245, Springer, Cham, pp. 262–275, doi:10.1007/978-3-031-74209-5_20. [9] Talissa Dreossi, Agostino Dovier, Susy Urli, Francesca Corte Pause & Martina Crociati (2025): Explainable AI for Sperm Morphology: Integrating YOLO with FastLAS. In Dario Guidotti, Laura Pandolfo & Luca Pulina, editors: Proceedings of the 40th Italian Conference on Computational Logic, Alghero, Italy, June 2527, 2025, CEUR Workshop Proceedings 4003, CEUR-WS.org, Aachen. Available at https://ceur-ws. org/Vol-4003/paper12.pdf. [10] Arthur Drozdov, Mark Law, Jorge Lobo, Alessandra Russo & Mercion Wilathgamuwage Don (2021): Online Symbolic Learning of Policies for Explainable Security. In: 3rd IEEE International Conference on Trust, Privacy and Security in Intelligent Systems and Applications, TPS-ISA 2021, Atlanta, GA, USA, December 13-15, 2021, IEEE, USA, pp. 269–278, doi:10.1109/TPSISA52974.2021.00030. [11] Max Heikenfeld, Peter J. Marinescu, Matthew Christensen, Duncan Watson-Parris, Fabian Senf, Susan C. van den Heever & Philip Stier (2019): tobac 1.2: towards a flexible framework for tracking and analysis of clouds in diverse datasets. Geoscientific Model Development 12(11), pp. 4551–4570, doi:10.5194/gmd-124551-2019. [12] Eugenia Kalnay (2002): Atmospheric Modeling, Data Assimilation and Predictability. Cambridge University Press, UK. ISBN:9780511802270. [13] Mark Law, Krysia Broda & Alessandra Russo (2022): Search Space Expansion for Efficient Incremental Inductive Logic Programming from Streamed Data. In Luc De Raedt, editor: Proceedings of the ThirtyFirst International Joint Conference on Artificial Intelligence, IJCAI 2022, Vienna, Austria, 23-29 July 2022, ijcai.org, USA, pp. 2697–2704, doi:10.24963/IJCAI.2022/374.

28

Explaining Weather Bulletins via ILP

[14] Mark Law, Alessandra Russo, Elisa Bertino, Krysia Broda & Jorge Lobo (2020): FastLAS: Scalable Inductive Logic Programming Incorporating Domain-Specific Optimisation Criteria. In: The Thirty-Fourth AAAI Conference on Artificial Intelligence, AAAI 2020, The Thirty-Second Innovative Applications of Artificial Intelligence Conference, IAAI 2020, The Tenth AAAI Symposium on Educational Advances in Artificial Intelligence, EAAI 2020, New York, NY, USA, February 7-12, 2020, AAAI Press, USA, pp. 2877–2885, doi:10.1609/AAAI.V34I03.5678. [15] Yunxiang Liu & Shixuan Cai (2024): Advancements in Weather Forecasting: A Review of Satellite Imagery and AI Integration. In: 9th International Conference on Intelligent Informatics and Biomedical Sciences (ICIIBMS 2024), 9, IEEE, USA, pp. 340–344, doi:10.1109/ICIIBMS62405.2024.10792824. [16] Amy McGovern, Kimberly L. Elmore, David John Gagne, Sue Ellen Haupt, Christopher D. Karstens, Ryan Lagerquist, Travis Smith & John K. Williams (2017): Using artificial intelligence to improve real-time decision-making for high-impact weather. Bulletin of the American Meteorological Society 98(10), pp. 2073–2090, doi:10.1175/BAMS-D-16-0123.1. [17] Stephen H. Muggleton (1991): Inductive Logic Programming. New Gener. Comput. 8(4), pp. 295–318, doi:10.1007/BF03037089. [18] Soichiro Murakami, Sora Tanaka, Masatsugu Hangyo, Hidetaka Kamigaito, Kotaro Funakoshi, Hiroya Takamura & Manabu Okumura (2021): Generating weather comments from meteorological simulations. In: Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics: Main Volume, pp. 1462–1473, doi:10.18653/v1/2021.eacl-main.125. [19] Stephan Rasp, Michael S. Pritchard & Pierre Gentine (2018): Deep learning to represent subgrid processes in climate models. Proceedings of the national academy of sciences 115(39), pp. 9684–9689, doi:10.1073/pnas.1810286115. [20] Daniil Sukhorukov, Andrei Zakharov, Nikita Glazkov, Katsiaryna Yanchanka, Vladimir Kirilin, Maxim Dubovitsky, Roman Sultimov, Yuri Maksimov & Ilya Makarov (2025): Hierarchical AI-Meteorologist: LLMAgent System for Multi-Scale and Explainable Weather Forecast Reporting. arXiv:2511.23387. [21] Juanzhen Sun, Ming Xue, James W. Wilson, Isztar Zawadzki, Sue P. Ballard, Jeanette Onvlee-Hooimeyer, Paul Joe, Dale M. Barker, Ping-Wah Li, Brian Golding, Mei Xu & James Pinto (2014): Use of NWP for Nowcasting Convective Precipitation: Recent Progress and Challenges. Bulletin of the American Meteorological Society 95(3), pp. 409–426, doi:10.1175/BAMS-D-11-00263-1. [22] Huaduo Wang, Farhad Shakerin & Gopal Gupta (2022): FOLD-RM: A Scalable, Efficient, and Explainable Inductive Learning Algorithm for Multi-Category Classification of Mixed Data. Theory Pract. Log. Program. 22(5), pp. 658–677, doi:10.1017/S1471068422000205. [23] Fengyuan Zhang (2024): Weather Forecasting and Analysis with LSTM Based on Deep learning. In: Proc. of the 2024 2nd International Conference on Image, Algorithms and Artificial Intelligence (ICIAAI 2024), Atlantis Press, Springer Nature, Heidelberg, Germany, pp. 165–172, doi:10.2991/978-94-6463-540-9_19. [24] Kanghui Zhou, Yongguang Zheng, Bo Li, Wansheng Dong & Xiaoling Zhang (2019): Forecasting different types of convective weather: A deep learning approach. Journal of Meteorological Research 33, pp. 797–809, doi:10.1007/s13351-019-8162-6.

Record · ID 394424 · SHA-256 1dc6baef6ca7e356
Retrieved via Conceptio — every document is proof-bundled with source, license, and retrieval metadata.