# 3. METHODOLOGY

The approach adopted for this project combines the[ Extreme Design Methodology (XD)](https://ceur-ws.org/Vol-516/pap21.pdf) with the [Ontology Development 101 Guide](https://protege.stanford.edu/publications/ontology_development/ontology101.pdf) developed by Natalya F. Noy and Deborah L. McGuinness and published as a technical report by the Stanford University Knowledge Systems Laboratory in 2001.

“Ontology Development 101” guide outlines the following key steps:

1. Determine the domain and scope of the ontology
2. Consider reusing existing ontologies
3. Enumerate important terms in the ontology
4. Define the classes and class hierarchy
5. Define the properties of classes
6. Define the properties constraints
7. Create instances for the classes

Building on the structured framework provided by the Ontology Development 101 guide, our team applied each step to ensure a thorough and precise ontology development process. This guide served as the foundation for our methodology, guiding our decisions and actions throughout the project.

We summarized the workflow of this project as follows:

## 1. Literature State of the Art

This step - which corresponds to Task 1 from XD - involves a thorough review of existing literature and current state-of-the-art practices in ontology design. It sets the foundation for understanding the relevant context in which the ontology will operate, ensuring that design choices are informed by the latest research and applications of the domain.

## 2. Large Language Models

LLMs are leveraged as powerful tools for generating ideas, suggesting ontology structures, and even drafting initial content. They can assist in analyzing vast amounts of text to extract relevant concepts and relationships, which can be particularly beneficial in identifying key terms and patterns that should be represented in the ontology.

In our workflow, LLMs were interrogated with the following three tasks:

1. **Give a definition of "youth subculture".**
2. **Give 10 example scenarios compelling with youth subcultures.** \
   In this step, the role of the customer in the XD was replaced by the LLM.
3. **Give a user story based on one of the previously obtained scenarios.**

From the user scenario proposed by the LLM, we derived competency questions (XD task 4) to understand what the ontology should represent and how it should do so.

## 3. Define Classes and Class Hierarchy

We proceeded tp define classes and their hierarchical relationships. This step involves organizing these terms into a structured class hierarchy, reflecting the domain's conceptual framework and its State-of-the-Art. The hierarchy is revisited in each iteration to ensure it aligns with the evolving understanding of the domain.

## 4. Define Properties and Relationships

Properties of classes are defined, specifying their logical structure and the relationships that characterize each class. This step includes determining the value types, constraints, and other facets of these properties, following the "Ontology Development 101" guide. These are iteratively refined within the XD framework based on practical testing.

## 5. Modules Integration and Alignment

This step focuses on integrating new modules or extensions into the existing ontology framework (XD tasks 8-10). It ensures that any new elements are aligned with the established structure and semantics, maintaining interoperability and consistency across the ontology.

The extensions are modeled together into an OWL file using [Protégé](https://protege.stanford.edu/).

In this stage, we also looked for ontologies that we could possibly reuse and adapt to our own. We didn't find complete ontologies, but some Ontology Design Patterns (ODPs) proved to be useful to solve some of our design problems. In this approach, identifying and integrating relevant ODPs can streamline the development process and enhance the ontology's robustness by ensuring best practices are followed.

## 6. Creating and Refining Instances

Instances of the defined classes are created to populate the ontology with real-world examples. This step ensures that the ontology is grounded in practical applications.

Subsequently, we formalized the competency questions into SPARQL queries, which have been tested in our final ontology design using [Protégé](https://protege.stanford.edu/).
