A Neuro-Symbolic AI System for Information Credibility Verification
Project description
Fact Checking System: Information Credibility Verification
PhD Thesis Prototype - Dominique S. Loyer
Citation Key: loyerModelingHybridSystem2025
[!NOTE] New in v2.2 (Jan 29, 2026):
- GraphRAG: Contextual memory from Knowledge Graph.
- Interactive Graph: D3.js visualization with physics and details on click.
- Cloud Ready: Docker & Supabase integration.
๐ Overview
A neuro-symbolic AI system for verifying information credibility that combines:
- Symbolic AI: Rule-based reasoning with OWL ontologies (RDF/Turtle)
- Neural AI: Transformer models for sentiment analysis and NER
- IR Engine: BM25, TF-IDF, and PageRank estimation
The system provides explainable credibility scores (High/Medium/Low) with detailed factor breakdown.
๐ Quick Start (v2.0 - January 2026)
Option 1: Run on Kaggle/Colab (Recommended)
- Click the Kaggle or Colab badge above
- Enable GPU runtime
- Run All cells
Option 2: Local Installation (Docker / Recommended)
# Clone the repository
git clone https://github.com/DominiqueLoyer/systemFactChecking.git
cd systemFactChecking/02_Code
# Run with Startup Script (Mac/Linux)
./start_syscred.sh
# Access at http://localhost:5001
Option 3: Manual Python Run
cd systemFactChecking/02_Code
pip install -r syscred/requirements.txt
python syscred/backend_app.py
Option 3: Python API
from v2_syscred.verification_system import CredibilityVerificationSystem
# Initialize
system = CredibilityVerificationSystem()
# Verify a URL
result = system.verify_information("https://www.lemonde.fr/article")
print(f"Score: {result['scoreCredibilite']} ({result['niveauCredibilite']})")
# Verify text directly
result = system.verify_information(
"According to Harvard researchers, the new study shows significant results."
)
๐ก REST API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/verify |
POST | Full credibility verification |
/api/seo |
POST | SEO analysis only (faster) |
/api/ontology/stats |
GET | Ontology statistics |
/api/health |
GET | Server health check |
Example Request
curl -X POST http://localhost:5000/api/verify \
-H "Content-Type: application/json" \
-d '{"input_data": "https://www.bbc.com/news/article"}'
Example Response
{
"scoreCredibilite": 0.78,
"niveauCredibilite": "HIGH",
"analysisDetails": {
"sourceReputation": "High",
"domainAge": 9125,
"sentiment": {"label": "NEUTRAL", "score": 0.52},
"entities": [{"word": "BBC", "entity_group": "ORG"}]
}
}
๐ Project Structure
systemFactChecking/ โโโ README.md # This file โโโ 01_Presentations/ # Presentations (.pdf, .tex) โโโ 02_Code/ # Source Code & Docker โ โโโ syscred/ # โญ CORE ENGINE (v2.2) โ โ โโโ graph_rag.py # [NEW] GraphRAG Module โ โ โโโ verification_system.py โ โ โโโ database.py # [NEW] Supabase Connector โ โ โโโ ... โ โโโ start_syscred.sh # Startup Script โ โโโ Dockerfile # Deployment Config โ โโโ requirements.txt โโโ 03_Docs/ # Documentation (.pdf) โโโ 04_Bibliography/ # References (.bib, .pdf)
---
## ๐ง Configuration
Set environment variables or edit `02_Code/v2_syscred/config.py`:
```bash
# Optional: Google Fact Check API key
export SYSCRED_GOOGLE_API_KEY=your_key_here
# Server settings
export SYSCRED_PORT=5000
export SYSCRED_DEBUG=true
export SYSCRED_ENV=production # or development, testing
๐ Credibility Scoring
The system uses weighted factors to calculate credibility:
| Factor | Weight | Description |
|---|---|---|
| Source Reputation | 25% | Known credible sources database |
| Domain Age | 10% | WHOIS lookup for domain history |
| Sentiment Neutrality | 15% | Extreme sentiment = lower score |
| Entity Presence | 15% | Named entities (ORG, PER) |
| Text Coherence | 15% | Vocabulary diversity |
| Fact Check | 20% | Google Fact Check API results |
Thresholds:
- HIGH: Score โฅ 0.7
- MEDIUM: 0.4 โค Score < 0.7
- LOW: Score < 0.4
๐ Documentation & Papers
- Modeling and Hybrid System for Verification of Sources Credibility (PDF)
- Ontology of a Verification System (PDF)
- Beamer Presentation - DIC9335 (PDF)
๐ท๏ธ Citation
@software{loyer2025syscred,
author = {Loyer, Dominique S.},
title = {SysCRED: Neuro-Symbolic System for Information Credibility Verification},
year = {2025},
publisher = {GitHub},
url = {https://github.com/DominiqueLoyer/systemFactChecking}
}
๐ License
MIT License - See LICENSE for details.
๐ Version History
| Version | Date | Changes |
|---|---|---|
| v2.0 | Jan 2026 | Complete rewrite with modular architecture, Kaggle/Colab support, REST API |
| v1.0 | Apr 2025 | Initial prototype with basic credibility scoring |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syscred-2.2.0.tar.gz.
File metadata
- Download URL: syscred-2.2.0.tar.gz
- Upload date:
- Size: 55.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ae5bb64880dcee47f73abfbced2cb0dbca3f04bf42da6c50da6de792818f466
|
|
| MD5 |
61c4eee37516575123d51789fe83d2d7
|
|
| BLAKE2b-256 |
35a454993b47cf973bc83a29d1e392a284f68dee969cbad93b976e7930e2fc38
|
File details
Details for the file syscred-2.2.0-py3-none-any.whl.
File metadata
- Download URL: syscred-2.2.0-py3-none-any.whl
- Upload date:
- Size: 60.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
786c283bdeaa3357c148b726f2f30946e1c6622e4785531a7e5b49d69ac2882c
|
|
| MD5 |
8eb459b2675480046fdffbddb3d1d284
|
|
| BLAKE2b-256 |
a92d1682a286ab40dda57c2d50787eb60c0be4ea922996ec1d21a69f27708966
|