A high-performance, feature-rich desktop application designed for the computational analysis of Arabic prose. This system provides researchers and linguists with a centralized platform to manage literary corpora and perform deep morphological excavations.
- Authors: Profile management with detailed biographies and historical context.
- Books & Chapters: Structured organization of literary works, allowing for granular analysis at the chapter level.
- Sentences: Automatic and manual sentence-level segmentation and tracking.
The system integrates state-of-the-art Arabic NLP libraries:
- Lemmatization: Accurate lemma extraction using the ADAT-Lemmatization engine.
- Stemming: Light and heavy stemming via ADAT-Stemmer.
- Morphological Analysis: Comprehensive decomposition of words into roots, prefixes, and suffixes using AlkhalilMorphSys2.
- Root Extraction: Advanced algorithms for identifying the triliteral or quadriliteral roots of Arabic words.
- Contextual Search: Rapidly locate specific phrases or morphological patterns across your entire library.
- Frequency Tracking: Visualize word distributions and statistical frequency patterns in prose.
- Database Persistence: All analyses are stored in a robust MySQL schema for future reference.
- Built with JavaFX 21, featuring a modern, responsive design.
- Includes loading screens, full-screen overlays, and intuitive navigation.
- Localized support for Arabic script with proper RTL (Right-to-Left) rendering.
The project follows a rigorous Layered Architecture to ensure scalability and maintainability:
com.arabicprose.presentation: The UI layer (JavaFX). Manages views, controllers, and user interactions.com.arabicprose.bll(Business Logic Layer): Contains the core processing logic and facades that coordinate between the UI and data layers.com.arabicprose.dal(Data Access Layer): Directly interfaces with the MySQL database using optimized SQL queries and the MySQL Connector.com.arabicprose.dto(Data Transfer Objects): Simple objects used to pass data between layers without exposing logic.com.arabicprose.util: Utility classes for logging (SLF4J/Logback), string manipulation, and database connection pooling.
- JDK 21 or higher.
- Maven 3.x installed and configured.
- MySQL Server 8.0+ running locally or on a server.
- Local JARs: Ensure the
lib/directory containsADAT-Lemmatization.jar,ADAT-Stemmer.jar, andAlkhalilMorphSys2.jar.
Update your database credentials in the following file:
src/main/java/com/arabicprose/dal/DBConnection.java
private static final String USER = "your_username";
private static final String PASS = "your_password";Navigate to the root directory and run:
mvn clean installRun the main launcher:
mvn exec:java -Dexec.mainClass="com.arabicprose.presentation.Launcher"Arabic-Prose/
├── lib/ # Proprietary NLP JAR files
├── src/
│ ├── main/
│ │ ├── java/com/arabicprose/
│ │ │ ├── bll/ # Business Logic Layer
│ │ │ ├── dal/ # Data Access Layer
│ │ │ ├── dto/ # Data Transfer Objects
│ │ │ ├── presentation/ # JavaFX Controllers & Views
│ │ │ └── util/ # Common Utilities
│ │ └── resources/ # FXML files and Assets
│ └── test/ # JUnit & TestFX unit/UI tests
├── pom.xml # Maven Configuration
└── README.md
This project utilizes the following research tools:
- ADAT: For Lemmatization and Stemming.
- Alkhalil Morphology System: For advanced segmentation and POS tagging.
Developed by Muhammad Anas. 🚀