# Similarity-Based Decision Support for Improving Agricultural Practices and Plant Growth
## 2 Materials and Methods
### Data Gathering  
For this purpose, a synthetic dataset was programmatically generated using a custom Java application (AgricultureDatasetGenerator.java). This dataset simulates agricultural practices by combining realistic values sampled from predefined, literature-supported ranges. The full implementation, including the data generation code and CSV samples used in the experiments, is publicly available in the repository linked in the Data Availability section. The dataset includes 13 attributes that reflect key factors influencing agricultural decisions, such as the following:Soil Type;
* Fertilizer Type;
* Climate Data;
* Humidity Level;
* Pest Disease Management;
* Plant Time;
* Crop Harvested;
* Water Temperature;
* Harvest Colour;
* Seed Supplier;
* Season;
* Distance to Retailer;
* Harvest Yield (%). Each feature captures elements influencing crop growth, resilience, and agricultural efficiency, establishing a robust basis for recognising commonalities among farming profiles. To ensure ease of use and minimise the burden on the farmer, the system is designed with future automation in mind, aiming to reduce user input through pre-populated data from reliable online sources. Although the current implementation relies largely on manual inputs and predefined ranges sourced from agricultural literature and validated datasets, each attribute has been carefully evaluated to determine the most appropriate and user-friendly input method. This design balances flexibility and usability, acknowledging that farmers are primarily focused on crop management and productivity rather than on time-consuming data entry. For this proof of concept, many of the input values were manually inserted or defined using fixed ranges derived from agricultural literature and validated datasets. This approach ensured that the system operated with realistic parameters that accurately reflect farming scenarios. While automated and real-time data retrieval is planned for future iterations, the current method offers a reliable baseline and facilitates testing under practical and representative conditions. Soil Type--Indicates the main soil category (e.g., clay, loamy, sandy), affecting moisture retention, nutrient levels, and crop suitability. This attribute informs soil-based crop and fertiliser recommendations, grounded in realistic values from agricultural sources [21; 22]. Fertilizer Type--Identifies the fertilizer class most effective for a given soil and crop type (e.g., nitrogen-rich for leafy crops) [23]. Climate Data--By using historical and manually curated climate data, the system identifies crops best suited for specific weather conditions, helping reduce the risks associated with weather variability by aligning crop choices with climate patterns [24]. Humidity Level--Indicates atmospheric moisture, which affects disease risk and irrigation scheduling. High humidity increases fungal risk, while low humidity raises water demand [25]. Pest and Disease Management--Covers approaches like chemical (synthetic or organic) and biological controls. Combining multiple strategies improves crop resilience and supports targeted pest control [26]. Plant Time--Indicates the crop's sowing period (month/week), which strongly influences yield. Timely planting can increase productivity, while delays often reduce it [27]. Crop Harvested--Identifies the harvested crop type (e.g., tomatoes, wheat), enabling tracking of yield trends and refinement of recommendations based on interactions between crop type, soil, and fertilisers. Water Temperature--Affects crop development and disease vulnerability. Slightly elevated temperatures can stimulate plant growth, but excessive heat may reduce chlorophyll level and increase susceptibility to disease [28]. Harvest Colour--Indicates crop ripeness at harvest and helps determine market readiness. Especially important for crops like bananas and tomatoes, this assists in optimising harvest timing. Seed Supplier--Identifies the source of seeds used.