Uma implementação computacional da Teoria Tridimensional do Morfema
A computational implementation of the Three-Dimensional Theory of the Morpheme
O frontend Next.js (TTM Explorer) pode ser implantado na Vercel em minutos.
A configuração de build está declarada em vercel.json na raiz do repositório.
Clique no botão acima ("Deploy with Vercel") ou acesse:
https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmarcabru-tech%2Fteoria-tridimensional-morfema
# 1. Instale a CLI da Vercel (se necessário)
npm i -g vercel
# 2. Na raiz do repositório
vercel login
# 3. Deploy (preview)
vercel
# 4. Deploy para produção
vercel --prod- Acesse vercel.com/new e importe o repositório.
- Deixe Root Directory como
./(raiz do repositório). - O
vercel.jsonna raiz já define o framework, comandos de build e diretório de saída. - Clique em Deploy.
Toda a configuração de build vive em
vercel.json(raiz do repositório). Isso mantém o deploy declarativo via Git e libera a edição pelo dashboard da Vercel.
A versão atual do TTM Explorer não requer variáveis de ambiente para funcionar.
Toda a lógica de análise morfológica roda no servidor Next.js (API Routes em /api/analyze), sem chamadas a um backend externo.
Se você integrar o frontend a uma instância FastAPI externa no futuro, adicione a variável abaixo no painel da Vercel em Project Settings → Environment Variables (Production e Preview):
| Variável | Necessária | Descrição | Exemplo |
|---|---|---|---|
NEXT_PUBLIC_API_URL |
Apenas se usar backend externo | URL base da API FastAPI | https://api.exemplo.com |
Nota: sem um backend FastAPI hospedado, não defina
NEXT_PUBLIC_API_URL. O frontend funciona de forma autônoma com as API Routes do Next.js.
Para validar um deploy de preview ou produção, use o script de smoke:
cd web
# Contra um preview
node tests/smoke/smoke.js https://<seu-preview>.vercel.app
# Ou via npm script
npm run smoke -- https://<seu-preview>.vercel.appO script verifica:
GET /retorna200 OKcomtext/htmlPOST /api/analyzeanalisa corretamente árabe, hebraico e inglês- Entradas inválidas retornam
400 - Assets estáticos em
/_next/static/têmCache-Control: immutable
Este repositório implementa computacionalmente a Teoria Tridimensional do Morfema, desenvolvida no âmbito da Sprachlehre (Doutrina da Língua) pelo projeto Beit Or Ein Sof / Dār Nūr al-Azal (בית אור אין סוף / دار نور الأزل — Casa da Luz Infinita).
A teoria propõe que o morfema, enquanto unidade mínima significativa da linguagem, possui três dimensões analíticas irredutíveis:
ALTURA (eixo Z)
HEIGHT (Z-axis)
Suprassegmental-gráfica
Suprasegmental-graphical
│
│
──────────────────┼──────────────────→ LARGURA (eixo X)
Prefixos RAIZ/ROOT Sufixos WIDTH (X-axis)
Prefixes Suffixes Combinatorial-derivational
│
│
↓
PROFUNDIDADE (eixo Y)
DEPTH (Y-axis)
Hermenêutico-semântica
Hermeneutic-semantic
- Raiz consonantal + afixos (prefixos, sufixos)
- Expansão derivacional
- Contexto sintagmático
- Estratificação de sentidos
- Níveis interpretativos (literal → alegórico → místico)
- Polissemia estruturada
- Diacríticos e sinais vocálicos
- Pontuação hebraica (niqud)
- Vocalização árabe (tashkīl)
- Representação gráfica vertical
- Representação de morfemas em espaço vetorial 3D
- Análise morfológica de línguas semíticas (árabe, hebraico)
- Modelagem de profundidade semântica
- Processamento de diacríticos e altura gráfica
- OCR para manuscritos com aparato diacrítico
- Desambiguação semântica estratificada (WSD)
- Vocalização automática de textos árabes e hebraicos
O projeto agora conta com uma infraestrutura completa para produção:
- API (FastAPI): Endpoints REST para análise morfológica.
- Banco de Dados (Neo4j): Persistência em grafos para relações semânticas.
- Visualização 3D (React + Three.js): Interface interativa para exploração dos morfemas.
- Docker: Containerização completa via
docker-compose.
docker-compose up --buildAcesse:
- Frontend:
http://localhost:3000 - API Docs:
http://localhost:8000/docs - Neo4j:
http://localhost:7474
- ✅ Árabe (Análise Automática Completa)
- ✅ Hebraico (Análise Automática Completa)
- ✅ Português (Análise Morfológica Base)
- ✅ Inglês (Análise Morfológica Base)
- ✅ Russo (Suporte a Aspecto e Acentuação)
- ✅ Mandarim (Suporte a Tons e Pinyin)
- ✅ Sânscrito (Suporte a Raízes e Conjugação)
Python >= 3.8
pip >= 21.0pip install teoria-tridimensional-morfemagit clone https://github.com/marcabru-tech/teoria-tridimensional-morfema.git
cd teoria-tridimensional-morfema
pip install -e ".[dev]"from ttm import MorphemeAnalyzer, Language
# Inicializar analisador
analyzer = MorphemeAnalyzer(language=Language.ARABIC)
# Analisar raiz K-T-B
root = analyzer.analyze_root("ك-ت-ب")
# Explorar largura (derivações)
print(root.width.derivations)
# Output: ['كَتبَ', 'كاتِب', 'مَكْتوب', 'كِتاب', 'مَكْتَبة', ...]
# Explorar profundidade (camadas semânticas)
for level in root.depth.semantic_levels:
print(f"{level.name}: {level.meaning}")
# Output:
# Literal: escrever/escrita
# Cultural: destino (maktūb)
# Teológico: decreto divino
# Explorar altura (vocalizações)
word = analyzer.parse("كتب")
print(word.height.vocalizations)
# Output: ['كَتَبَ (kataba)', 'كُتِبَ (kutiba)', 'كُتُب (kutub)']from ttm import MorphemeAnalyzer, Language
analyzer = MorphemeAnalyzer(language=Language.HEBREW)
root = analyzer.analyze_root("מ-ל-ך")
# Coordenadas 3D do morfema מֶלֶךְ (mélekh, "rei")
melekh = root.get_morpheme("מֶלֶךְ")
print(melekh.coordinates)
# Output: (x=0, y=1, z=5) # x: base, y: literal, z: padrão vocálico
# Comparar com מָלַךְ (malákh, "reinou")
malakh = root.get_morpheme("מָלַךְ")
print(malakh.coordinates)
# Output: (x=0, y=1, z=8) # mesma largura e profundidade, altura diferente# Palavra ambígua sem vocalização
ambiguous = analyzer.parse("מלך")
# Desambiguar por contexto sintagmático (largura)
context = "המלך גדול"
disambiguated = analyzer.disambiguate(ambiguous, context=context)
print(disambiguated.meaning)
# Output: "rei" (não "reinou" ou "reinado")teoria-tridimensional-morfema/
├── ttm/ # Pacote principal
│ ├── __init__.py
│ ├── core/ # Núcleo da biblioteca
│ │ ├── morpheme.py # Classe Morpheme
│ │ ├── dimensions.py # Dimensões X, Y, Z
│ │ └── space.py # Espaço tridimensional
│ ├── analyzers/ # Analisadores por língua
│ │ ├── arabic.py # Analisador árabe
│ │ ├── hebrew.py # Analisador hebraico
│ │ └── indo_european.py # Línguas indo-europeias
│ ├── nlp/ # Processamento de linguagem natural
│ │ ├── disambiguation.py # WSD (desambiguação)
│ │ ├── vocalization.py # Vocalização automática
│ │ └── ocr.py # Reconhecimento ótico
│ └── utils/ # Utilitários
│ ├── transliteration.py # Transliteração
│ └── visualization.py # Visualização 3D
├── tests/ # Testes unitários
├── examples/ # Exemplos de uso
├── docs/ # Documentação
└── data/ # Dados linguísticos
Representa um morfema no espaço tridimensional.
class Morpheme:
def __init__(self, form: str, root: str, language: Language):
self.form = form # Forma superficial
self.root = root # Raiz consonantal
self.language = language # Língua
self.x = Width() # Dimensão X (largura)
self.y = Depth() # Dimensão Y (profundidade)
self.z = Height() # Dimensão Z (altura)
@property
def coordinates(self) -> tuple[int, int, int]:
"""Retorna coordenadas (x, y, z) no espaço morfêmico"""
return (self.x.position, self.y.level, self.z.configuration)Dimensão combinatório-derivacional.
class Width:
def __init__(self):
self.root: str # Raiz nuclear
self.prefixes: list[str] # Prefixos
self.suffixes: list[str] # Sufixos
self.pattern: str # Padrão (mishqal/wazn)
self.syntagmatic_context: str # Contexto frasalDimensão hermenêutico-semântica.
class Depth:
def __init__(self):
self.levels: list[SemanticLevel]
class SemanticLevel:
LITERAL = 1 # Peshat (פשט), Ẓāhir (ظاهر)
ALLUSIVE = 2 # Remez (רמז)
HOMILETIC = 3 # Derash (דרש)
MYSTICAL = 4 # Sod (סוד), Bāṭin (باطن)Dimensão suprassegmental-gráfica.
class Height:
def __init__(self):
self.diacritics: dict # Diacríticos
self.vowels: list[str] # Vogais (niqud/tashkīl)
self.cantillation: list[str] # Sinais de cantilação
self.configuration_id: int # ID da configuração gráficafrom ttm import MorphemeAnalyzer, Visualizer
analyzer = MorphemeAnalyzer(language=Language.ARABIC)
viz = Visualizer()
# Analisar múltiplas derivações da raiz K-T-B
root = analyzer.analyze_root("ك-ت-ب")
morphemes = root.get_all_morphemes()
# Visualizar no espaço 3D
viz.plot_morpheme_space(morphemes, save_path="ktb_space.html")
# Gera visualização interativa com plotlyfrom ttm import BatchProcessor
processor = BatchProcessor(language=Language.HEBREW)
# Analisar texto completo
text = """
בְּרֵאשִׁית בָּרָא אֱלֹהִים אֵת הַשָּׁמַיִם וְאֵת הָאָרֶץ
"""
results = processor.process_text(text)
for morpheme in results:
print(f"{morpheme.form} -> Raiz: {morpheme.root}, "
f"Coordenadas: {morpheme.coordinates}")- Raízes árabes: 10,000+ raízes trilíteras do Lisān al-'Arab
- Raízes hebraicas: 8,000+ raízes do Ben-Yehuda Dictionary
- Padrões derivacionais: 200+ mishqalim/awzān
- Corpus anotado: 50,000+ morfemas com análise tridimensional
Os datasets estão disponíveis no Zenodo com DOI permanente:
https://doi.org/10.5281/zenodo.18662347
Contribuições são bem-vindas! Veja CONTRIBUTING.md para diretrizes.
- Implementação de analisadores para novas línguas
- Expansão dos datasets
- Melhorias no OCR de manuscritos
- Otimização de performance
- Tradução da documentação
Se você usar este projeto em pesquisa acadêmica, por favor cite:
@article{machado2026teoria,
title={A Teoria Tridimensional do Morfema: Uma Contribuição da Sprachlehre à Ciência da Linguagem},
author={Machado, Guilherme Gonçalves},
journal={Beit Or Ein Sof / Dār Nūr al-Azal},
year={2026},
doi={10.5281/zenodo.18662347},
url={https://github.com/marcabru-tech/teoria-tridimensional-morfema}
}Machado, G. G. (2026). A Teoria Tridimensional do Morfema: Uma Contribuição
da Sprachlehre à Ciência da Linguagem. Beit Or Ein Sof / Dār Nūr al-Azal.
https://doi.org/10.5281/zenodo.18662347
Este projeto está licenciado sob CC BY-NC-SA 4.0.
Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional
Você é livre para:
- ✅ Compartilhar — copiar e redistribuir
- ✅ Adaptar — remixar, transformar e criar a partir do material
Sob as seguintes condições:
- 📝 Atribuição — creditar o autor original
- 🚫 Não Comercial — não usar para fins comerciais
- ↩️ CompartilhaIgual — distribuir contribuições sob a mesma licença
Guilherme Gonçalves Machado
- Projeto: Beit Or Ein Sof / Dār Nūr al-Azal (בית אור אין סוף / دار نور الأزل)
- GitHub: marcabru-tech
- Email: guilherme.machado@marcabru.tech
Heterônimos Fundadores:
- Ezra ben Sefarad (עזרא בן ספרד) — Tradição hebraico-sefardita
- Ra'uf ibn Hadi al-Andalusī (رؤوف بن هادي الأندلسي) — Tradição árabe-islâmica
- 📄 Artigo completo: PDF no Zenodo
- 📚 Documentação: https://ttm.readthedocs.io
- 🐛 Issues: GitHub Issues
- 💬 Discussões: GitHub Discussions
Este projeto dialoga com as seguintes tradições intelectuais:
- Pāṇini (पाणिनि, séc. V–IV a.C.) — Aṣṭādhyāyī
- Sībawayhi (سيبويه, séc. VIII) — Al-Kitāb
- Al-Khalīl ibn Aḥmad (الخليل بن أحمد, séc. VIII) — Kitāb al-'Ayn
- Rashi (רש"י, séc. XI) — Exegese talmúdica
- Wilhelm von Humboldt (séc. XIX) — Sprachwissenschaft
בס״ד | بسم الله الرحمن الرحيم
Beit Or Ein Sof / Dār Nūr al-Azal
Casa da Luz Infinita