1) Endpoints REST (resumo)
POST /perfis — cria/ingere perfil do aprendiz
PATCH /perfis/{id} — atualiza preferências/metadados
POST /ontologias — registra ontologia (JSON-LD/TTL) com versão
POST /grafos — registra grafo de tópicos/relacionamentos
POST /trilhas — gera trilha adaptativa
POST /oas — registra OA (conteúdo didático)
POST /metricas — armazena métrica/telemetria
POST /publicacoes — publica artefato (web/pdf), gera versão imutável
2) Schema — Perfil (JSON Schema, mínimo)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://lqa.dev/schema/perfil.json",
"type": "object",
"required": ["idExterno", "preferencias", "consentimentos"],
"properties": {
"idExterno": {"type": "string"},
"preferencias": {
"type": "object",
"properties": {
"idioma": {"type": "string", "enum": ["pt-BR", "en-US"]},
"tema": {"type": "string", "enum": ["claro", "escuro"]}
}
},
"objetivos": {"type": "array", "items": {"type": "string"}},
"nivelAtual": {"type": "object", "properties": {"topico": {"type":"string"}, "nivel": {"type":"string"}}},
"consentimentos": {"type": "object", "properties": {"lgpd": {"type": "boolean"}}}
}
}
3) Schema — Ontologia/Grafo (JSON-LD, mínimo)
{
"@context": {"@vocab": "https://schema.org/", "Topico": "https://lqa.dev/topico/"},
"@id": "https://lqa.dev/ontologia/2025-10-31",
"@type": "CreativeWork",
"name": "Ontologia LQA",
"version": "2025.10.31",
"@graph": [
{"@id": "Topico:DesignResponsivo", "@type": "Thing", "name": "Design Responsivo"},
{"@id": "Topico:GridCSS", "@type": "Thing", "name": "Grid CSS"},
{"@id": "_:r1", "@type": "Relationship", "source": "Topico:DesignResponsivo", "target": "Topico:GridCSS", "predicate": "define"}
]
}
4) Schema — Trilha (JSON Schema, mínimo)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://lqa.dev/schema/trilha.json",
"type": "object",
"required": ["aluno", "topicoAlvo", "oAs"],
"properties": {
"aluno": {"type": "string"},
"topicoAlvo": {"type": "string"},
"restricoes": {"type": "object"},
"politicas": {"type": "object"},
"oAs": {
"type": "array",
"items": {"type": "object", "required": ["id", "tipo"],
"properties": {"id": {"type":"string"}, "tipo": {"type":"string"}}}
}
}
}
5) Notas
- Versão: versionamento semântico para ontologias/grafos; publicação gera novos IDs.
- Segurança & LGPD: consentimento obrigatório, escopos por serviço, anonimização/retensão.
- Telemetria: cada endpoint emite eventos (nome, payload mínimo,
traceId).