+
diff --git a/ling508/demos/demo_clex_importer.ipynb b/ling508/demos/demo_clex_importer.ipynb
index 39b94dd..12c6fed 100644
--- a/ling508/demos/demo_clex_importer.ipynb
+++ b/ling508/demos/demo_clex_importer.ipynb
@@ -10,8 +10,8 @@
"source": [
"# Demonstration of STIX-D's Clex Importer Tool\n",
"\n",
- "Slides & Speaker Notes available at\n",
- " - https://github.com/ciioprof0/stixd/raw/main/ling508/demos/\n"
+ "- Main Project Repository: https://github.com/ciioprof0/stixd\n",
+ "- Slides & Speaker Notes: https://github.com/ciioprof0/stixd/raw/main/ling508/demos/\n"
]
},
{
@@ -85,7 +85,10 @@
"source": [
"## Use Case\n",
"\n",
- "TODO: Add Bulleted List or Diagram"
+ "- **Objective**: Seed lexicon table with ACE common lexicon entries\n",
+ "- **Actors**: Database Administrator\n",
+ "- **Input**: Clex lexicon file\n",
+ "- **Output**: Populated `lexicon` table and summary report"
]
},
{
@@ -111,7 +114,11 @@
"source": [
"## Project Design\n",
"\n",
- "TODO: Add Bulleted List or Diagram\n"
+ "- **Project Overview**\n",
+ "- **OOP Principles**\n",
+ " - **Key Components**\n",
+ "\n",
+ " Explore the subslides in this section by clicking on the down arrow.\n"
]
},
{
@@ -124,61 +131,148 @@
"source": [
"**Speaker Notes for the Project Design Slide:**\n",
"\n",
- "***Project Overview***\n",
+ "In this section of the demonstration, we'll explore the object-oriented design principles and key components of the Clex Importer tool. Click on the down arrow to reveal the subslides and delve deeper into the project's architecture.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "source": [
+ "### Project Overview\n",
"\n",
- "The Clex Importer tool imports lexical entries from the Attempto Controlled English (ACE) lexicon file, stored as Prolog facts, into the `lexicon` table of the STIX-D MySQL database. This tool is accessible via the command line or a web form served by a Flask API, where users input a URL pointing to an ACE lexicon file. The system then parses each Prolog fact, maps it to the appropriate attributes in the `lexicon` table, and creates relevant entries in the `stix_objects` table (i.e., source documents) and the `obj_lex_jt` junction table.\n",
+ "- Imports lexical entries\n",
+ "- Takes a URI as input\n",
+ "- Parses Prolog facts\n",
+ "- Populates `lexicon` table in corpus database\n",
+ "- Accessible via CLI or web interface- \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "notes"
+ }
+ },
+ "source": [
+ "**Speaker Notes for the Project Overview Slide:**\n",
"\n",
- "***OOP Principles in the Project***\n",
+ "The Clex Importer tool imports lexical entries from the Attempto Controlled English (ACE) lexicon file, stored as Prolog facts, into the `lexicon` table of the STIX-D MySQL database. This tool is accessible via the command line or a web form served by a Flask API, where users input a URL pointing to an ACE lexicon file. The system then parses each Prolog fact, maps it to the appropriate attributes in the `lexicon` table, and creates relevant entries in the `stix_objects` table (i.e., source documents) and the `obj_lex_jt` junction table.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "source": [
+ "### OOP Principles\n",
+ "\n",
+ "- Abstraction\n",
+ "- Encapsulation\n",
+ "- Inheritance\n",
+ "- Polymorphism"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**Speaker Notes for the OOP Principles Slide:**\n",
"\n",
"This project employs object-oriented programming (OOP) principles to create a modular, extensible, and maintainable system. Key OOP principles include:\n",
"\n",
- "- **Abstraction**: The project uses abstract classes and methods to define interfaces and enforce a common structure. For example, the `Repository` class defines abstract methods for database interactions, implemented by `MySQLRepository`.\n",
- "- **Encapsulation**: Each class is responsible for a specific aspect of the project, encapsulating related data and behavior. For example, `ClexImporter` encapsulates the logic for importing Clex entries, while `MySQLRepository` encapsulates database interactions.\n",
- "- **Inheritance**: The project uses inheritance to create a hierarchy of classes with shared behavior. For example, `MySQLRepository` inherits from `Repository` to reuse common database interaction methods.\n",
- "- **Polymorphism**: The project uses polymorphism to allow different classes to be used interchangeably. For example, the `Repository` interface allows different types of repositories to be used with the `ClexImporter`.\n",
- "\n",
- "***Key Modules and Their OOP Design***\n",
- "\n",
- "The project consists of the following key modules, each designed using OOP principles:\n",
- "\n",
- "- **`ClexImporter` Class in `clex_importer.py`**: \n",
- " - **Responsibility**: Manages the importation of Clex entries into the database.\n",
- " - **Attributes**:\n",
- " - `db_repo`: Represents the database repository where Clex entries will be stored.\n",
- " - `uri`: The location of the Clex file to be imported.\n",
- " - **Methods**:\n",
- " - `import_clex_entries()`: Imports Clex entries from the specified file into the database.\n",
- " - `parse_clex_entry()`: Parses a single Clex entry from the file.\n",
- " - `map_clex_entry_to_lexicon()`: Maps the parsed Clex entry to the `lexicon` table schema.\n",
- "\n",
- "- **`MySQLRepository` Class in `mysql_repository.py`**: \n",
- " - **Responsibility**: Abstracts the database interactions for MySQL databases.\n",
- " - **Attributes**:\n",
- " - `connection`: Represents the connection to the MySQL database.\n",
- " - `table_name`: The name of the table in the database.\n",
- " - **Methods**:\n",
- " - `save_stix_object()`: Inserts metadata about the Clex import into the `stix_objects` table.\n",
- " - `save_entry()`: Inserts lexicon entries into the `lexicon` table.\n",
- " - `link_entry_with_stix()`: Links lexicon entries with STIX objects in the `obj_lex_jt` table.\n",
- " - `find_entry_by_id()`: Checks if a given entry already exists in the `lexicon` table.\n",
- "\n",
- "- **`generate_stix_uuid` Method**:\n",
- " - **Responsibility**: Generates a UUID for each Clex entry based on its word tag and form.\n",
- " - **Methods**:\n",
- " - `generate_uuid()`: Generates a UUID for the Clex entry based on its word tag and form.\n"
+ "- The project uses abstract classes and methods to define interfaces and enforce a common structure. For example, the `Repository` class defines abstract methods for database interactions, implemented by `MySQLRepository`.\n",
+ "- Each class is responsible for a specific aspect of the project, encapsulating related data and behavior. For example, `ClexImporter` encapsulates the logic for importing Clex entries, while `MySQLRepository` encapsulates database interactions.\n",
+ "- The project uses inheritance to create a hierarchy of classes with shared behavior. For example, `MySQLRepository` inherits from `Repository` to reuse common database interaction methods.\n",
+ "- It also uses polymorphism to allow different classes to be used interchangeably. For example, the `Repository` interface allows different types of repositories to be used with the `ClexImporter`.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "slide"
+ "slide_type": "subslide"
+ }
+ },
+ "source": [
+ "### Key Modules\n",
+ "\n",
+ "- `ClexImporter` Class in `clex_importer.py`:\n",
+ " - Responsibility\n",
+ " - Attributes: `db_repo`, `uri`\n",
+ " - Methods: \n",
+ " - `import_clex_entries()`\n",
+ " - `parse_clex_entry()`\n",
+ " - `map_clex_entry_to_lexicon()`\n",
+ "\n",
+ "- `MySQLRepository` Class in `mysql_repository.py`: \n",
+ " - Responsibility\n",
+ " - Attributes:\n",
+ " - `connection`, `table_name`\n",
+ " - Methods:\n",
+ " - `save_stix_object()`\n",
+ " - `save_entry()`\n",
+ " - `link_entry_with_stix()`\n",
+ " - `find_entry_by_id()`\n",
+ "\n",
+ "- `generate_stix_uuid` Method:\n",
+ " - Responsibility\n",
+ " - Methods:\n",
+ " - `generate_uuid()`"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "notes"
+ }
+ },
+ "source": [
+ "**Speaker Notes for the Key Modules Slide:**\n",
+ "\n",
+ "This slide highlights the key modules of the project:\n",
+ "\n",
+ "1. **ClexImporter Class (`clex_importer.py`)**:\n",
+ " - Manages the importation of Clex entries into the database.\n",
+ " - Main methods include `import_clex_entries`, `parse_clex_entry`, and `map_clex_entry_to_lexicon`, handling the entire process from reading the Clex file to inserting data into the database.\n",
+ "\n",
+ "2. **MySQLRepository Class (`mysql_repository.py`)**:\n",
+ " - Abstracts database interactions for MySQL, providing a clean interface for operations like inserting records and linking lexicon entries with STIX objects.\n",
+ " - Key methods are `save_stix_object`, `save_entry`, `link_entry_with_stix`, and `find_entry_by_id`.\n",
+ "\n",
+ "3. **generate_stix_uuid Method**:\n",
+ " - Generates unique identifiers for Clex entries based on specific attributes, ensuring consistency with STIX standards.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "subslide"
}
},
"source": [
"## Interaction with the Database\n",
"\n",
- "TODO: Add Bulleted List or Diagram\n"
+ "- `ClexImporter` Class\n",
+ " - Purpose\n",
+ " - Workflow\n",
+ "\n",
+ "- `MySQLRepository` \n",
+ " - Purpose\n",
+ " - Services Provided\n",
+ " - Inserting STIX Objects and Lexicon Entries\n",
+ " - Checking for Existing Entries\n",
+ "\n",
+ "Examples of interaction with the database provided in Code Execution section.\n"
]
},
{
@@ -189,39 +283,15 @@
}
},
"source": [
+ "\n",
"**Speaker Notes for the Data Interaction Slide:**\n",
"\n",
- "***Database Interaction via `clex_importer.py` and the `MySQLRepository` Class***\n",
- "\n",
- "The `clex_importer.py` module interacts with the STIX-D Corpus Database through the `MySQLRepository` class, which abstracts the complexities of SQL operations and provides a streamlined interface for database tasks. This interaction ensures that lexicon entries are accurately imported and managed within the database, leveraging both services and abstraction layers.\n",
- "\n",
- "A. **The `ClexImporter` Class as a Service Layer:**\n",
- " - **Purpose**: The `ClexImporter` class is responsible for reading and processing the ACE Common Lexicon (Clex) file and inserting or updating entries in the database.\n",
- " - **Workflow**:\n",
- " - The process begins by reading the Clex file and parsing each entry to extract relevant data.\n",
- " - `ClexImporter` interacts with the `MySQLRepository` to insert new records or update existing ones based on the parsed data.\n",
- "\n",
- "B. **The `MySQLRepository` Class as an Abstraction Layer:**\n",
- " - **Purpose**: The `MySQLRepository` class abstracts the SQL operations needed to interact with the MySQL database, providing a clean interface for essential tasks like inserting records, querying data, and linking entries across tables.\n",
- " - **Services Provided**:\n",
- " - **Inserting STIX Objects**: The `save_stix_object` method inserts metadata about the Clex import into the `stix_objects` table, helping track the provenance and context of the lexicon entries.\n",
- " - **Inserting Lexicon Entries**: The `save_entry` method inserts lexicon entries into the `lexicon` table. It accepts a dictionary of entry data and ensures it is correctly stored in the database.\n",
- " - **Linking Entries**: The `link_entry_with_stix` method associates lexicon entries with STIX objects by inserting records into the `obj_lex_jt` junction table, maintaining relationships between different data entities.\n",
- " - **Checking for Existing Entries**: The `find_entry_by_id` method checks the `lexicon` table to determine if an entry (identified by a unique hash) already exists, helping to avoid duplicates and maintain data integrity.\n",
- "\n",
- "C. **Abstract Layers and Their Benefits:**\n",
- " - **Separation of Concerns**: By utilizing the `MySQLRepository` class, the `clex_importer.py` module does not directly handle SQL queries or database connections. Instead, it relies on high-level methods provided by the repository, allowing for easier modification or extension of database interactions without altering the core business logic.\n",
- " - **Reusability and Maintainability**: The abstraction provided by `MySQLRepository` facilitates the reuse of database interaction methods across different parts of the application, reducing code duplication and enhancing maintainability.\n",
- " - **Error Handling**: The repository class encapsulates error handling for database operations. If a SQL operation fails, the class handles exceptions gracefully, enabling `ClexImporter` to focus on the overall import process rather than the intricacies of database management.\n",
- "\n",
- "D. **Example Workflow:**\n",
- " - **Inserting a New Lexicon Entry**:\n",
- " - `ClexImporter` processes a line from the Clex file, generating a unique hash for the entry.\n",
- " - It uses `find_entry_by_id` to check if the entry already exists in the `lexicon` table.\n",
- " - If the entry is new, `ClexImporter` calls `save_entry` to insert the data into the `lexicon` table.\n",
- " - The entry is then linked to the corresponding STIX object via the `link_entry_with_stix` method.\n",
- "\n",
- "In summary, `clex_importer.py` efficiently manages database interactions through the `MySQLRepository` class, benefiting from the abstraction and services provided by the repository. This design enhances the code’s modularity, maintainability, and clarity, making it easier to handle complex database operations in a structured and efficient manner.\n"
+ "This slide explains how the `clex_importer.py` module interacts with the STIX-D Corpus Database through the `MySQLRepository` class, which abstracts SQL operations. The `ClexImporter` class reads and processes the Clex file, then works with `MySQLRepository` to insert or update database entries, ensuring accurate data management. \n",
+ "\n",
+ "- **ClexImporter**: Acts as a service layer that processes the Clex file and communicates with the database.\n",
+ "- **MySQLRepository**: Serves as an abstraction layer, handling the actual SQL operations while offering a clean interface for tasks like inserting records, linking entries, and checking for existing data.\n",
+ "\n",
+ "The separation of concerns between these layers improves maintainability, reusability, and error handling, making the codebase easier to manage and extend.\n"
]
},
{
diff --git a/ling508/demos/demo_clex_importer.pdf b/ling508/demos/demo_clex_importer.pdf
index accfa405bd47ffd42aff18a2678197cb9f87c769..404bfe06e9811a5ba7d154db76766396ceb436b9 100644
GIT binary patch
delta 62339
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
hMX9ZLRot5BDI*xsKM
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