Skip to content

MuhammadAnas4774/Arabic-Prose-

Repository files navigation

📖 Arabic Prose Analysis System

Java Version JavaFX Maven MySQL

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.


🌟 Key Features

🏛️ Corpus Management

  • 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.

🔬 Advanced Linguistic Engines

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.

📊 Data Insights & Search

  • 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.

🎨 Premium UI/UX

  • 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.

🛠️ Technical Architecture

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.

⚙️ Installation & Setup

Prerequisites

  • 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 contains ADAT-Lemmatization.jar, ADAT-Stemmer.jar, and AlkhalilMorphSys2.jar.

1. Database Configuration

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";

2. Build the Project

Navigate to the root directory and run:

mvn clean install

3. Launch the Application

Run the main launcher:

mvn exec:java -Dexec.mainClass="com.arabicprose.presentation.Launcher"

📂 Project Structure

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

🤝 Acknowledgements

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. 🚀

About

A comprehensive desktop application built with Java 21 and JavaFX for managing and analyzing Arabic literary texts. This system integrates powerful Arabic NLP libraries (ADAT & Alkhalil) to provide deep morphological insights, including lemmatization, stemming, and POS tagging.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages