E065ERROTEMPLATE não declaradoAdicione TEMPLATE "…"
E061ERROAnotações sem INCLUDEAdicione INCLUDE ANNOTATIONS
E062ERROOntologia sem INCLUDEAdicione INCLUDE ONTOLOGY
E066ERROBloco PROJECT duplicadoMantenha somente um PROJECT
Invariante: saídas (JSON, CSV, Excel) geradas somente se zero ERROs. AVISOs não bloqueiam. Compilação sempre determinística.
.syntTemplate / ContratoDefine quais campos existem, seus tipos e se são obrigatórios. É a única fonte da verdade.
Sintaxe — FIELDS e FIELD
SOURCE FIELDSOPTIONAL description
END SOURCE FIELDSITEM FIELDSREQUIRED citation, note, code
END ITEM FIELDSONTOLOGY FIELDSREQUIRED definition, group
END ONTOLOGY FIELDSFIELD citation TYPEQUOTATIONSCOPEITEMDESCRIPTION Excerto textual da fonte
GUIDELINES
Extraia um excerto completo e autocontido.
Preserve a redação original. Não parafraseie.
END GUIDELINESEND FIELDFIELD code TYPECODESCOPEITEMGUIDELINES
Use códigos existentes na ontologia.
Evite sinônimos redundantes.
END GUIDELINESEND FIELD
Tipos de campo (TYPE)
TYPE
Escopo
Notas obrigatórias
QUOTATION
ITEM
Excerto da fonte
MEMO
ITEM
Nota analítica do pesquisador
CODE
ITEM
Deve existir na ontologia
CHAIN
ITEM
Avançado: exige ARITY. RELATIONS opcional
TEXT
qualquer
Texto livre genérico
DATE
SOURCE
Formato YYYY-MM-DD
SCALE
qualquer
Exige FORMAT [min..max]
ENUMERATED
qualquer
Exige VALUES. Lista fechada sem ordem
ORDERED
qualquer
Exige VALUES com índice [1] [2]…
TOPIC
ONTOLOGY
Agrupamento dinâmico, valor aberto
Contrato e instruções
REQUIRED
Obrigatório — erro se ausente no bloco
OPTIONAL
Pode ser omitido
GUIDELINES
Instruções livres para anotadores e IA. O compilador exporta, mas não interpreta
REQUIRED BUNDLE
Avançado: campos co-ocorrem em igual quantidade
Erros frequentes
E047ERROCHAIN sem ARITYAdicione ARITY >= 2
E039ERROCampo em FIELDS sem bloco FIELDCrie o bloco FIELD correspondente
E042AVISOFIELD definido mas não em FIELDSAdicione ao bloco *FIELDS ou remova
E049ERROORDERED sem VALUESAdicione bloco VALUES com índices
E051ERROSCALE sem FORMATAdicione FORMAT [min..max]
E069ERROCampo definido duas vezesRemova definição duplicada
Projeto Basic: usa somente TEXT, QUOTATION, MEMO, CODE e TOPIC. CHAIN, BUNDLE, VALUES e FORMAT são extensões opcionais para templates mais avançados.
.bibReferências BibTeXCada @bibref usado em .syn deve existir aqui como chave BibTeX.
Sintaxe mínima
# A chave é o @bibref dos blocos SOURCE
@article{smith2024,
author = {Smith, Jane},
title = {Understanding Community Resilience},
journal = {Journal of Social Research},
year = {2024},
volume = {12},
pages = {45--67}
}
Regras
Chave
Case-insensitive. O compilador normaliza para minúsculas internamente
@bibref
O identificador usado no SOURCE e ITEM deve bater exatamente com esta chave (após normalização)
Tipos BibTeX
article, book, inproceedings, misc, etc. O compilador aceita qualquer tipo válido
Arquivo ativo
Use um único INCLUDE BIBLIOGRAPHY. A implementação atual lê o primeiro .bib declarado
O compilador usa bibtexparser para leitura. O campo _original_key preserva a grafia original para uso nos exports, mesmo após normalização.
Erros frequentes
E001ERRO@bibref do SOURCE não existe no .bibAdicione entrada BibTeX com a chave
E063ERROArquivo .bib não encontradoVerifique o caminho no .synp
E070ERRO@bibref duplicado em SOURCEsMantenha somente um SOURCE por @bibref no projeto
smith2024, Smith2024 e SMITH2024 são tratados como a mesma chave. Use uma grafia consistente para evitar confusão.
.synAnotaçõesSOURCE declara a fonte. ITEM contém os recortes analíticos. Um SOURCE pode ter vários ITEMs.
Bloco SOURCE
SOURCE@smith2024
description: Qualitative study on community
resilience strategies in urban contexts.
END SOURCE
Bloco ITEM — projeto Basic
ITEM@smith2024
citation: "People here look out for each other. When the flood came, nobody waited for official help — neighbors just organized themselves."
note: Participant describes spontaneous
collective action as a resilience mechanism.
code: Social_Cohesion, Collective_Action
END ITEM
Linkagem: a relação ITEM → SOURCE é estabelecida pelo compilador via @bibref compartilhado — não por aninhamento. SOURCE e ITEM podem estar em arquivos .syn diferentes.
Erros frequentes
E002ERROITEM sem SOURCE correspondenteCrie um SOURCE @bibref incluído no projeto
E004AVISOCódigo não definido na ontologiaAdicione ONTOLOGY no .syno
E020ERROCampo REQUIRED ausenteVer REQUIRED no .synt
E023ERROBloco ITEM vazioAdicione pelo menos um campo
E022ERROCampo desconhecido no blocoDefina FIELD no .synt ou corrija o nome
E003AVISOSOURCE sem ITEMsAdicione pelo menos um ITEM
Keywords case-insensitive: SOURCE, source e Source são equivalentes.
.synoOntologiaDefine o vocabulário controlado. Todo code: usado nas anotações deve existir aqui.
Bloco ONTOLOGY
ONTOLOGYSocial_Cohesion
definition: The degree to which community members
trust, support, and cooperate with one another.
group: Community_Resilience
END ONTOLOGYONTOLOGYCollective_Action
definition: Coordinated efforts by community members
to address shared challenges.
group: Community_Resilience
END ONTOLOGY
Regras de nomenclatura e GROUP
Espaços
Proibidos no nome do conceito. Use _ como separador: Solar_Energy
group
Campo TYPE TOPIC: valor aberto, sem aspas e sem espaços
Cypher-safe
Nomes compatíveis com Neo4j por convenção
Duplicatas
Mesmo conceito definido 2× → E068
Agrupamento via TYPE TOPIC
# group usa TYPE TOPIC no templateONTOLOGYSocial_Cohesion
group: Community_ResilienceEND ONTOLOGYONTOLOGYCollective_Action
group: Community_ResilienceEND ONTOLOGY# Ambos aparecem no mesmo agrupamento temático
Erros frequentes
E004AVISOcode: usa conceito inexistenteAdicione ONTOLOGY conceito aqui
E032ERROValor TOPIC com espaçoUse _ em vez de espaço no valor
E068ERROConceito definido duas vezesRemova a definição duplicada
W071AVISOdefinition duplicada entre conceitosRevise se conceitos são realmente distintos
E005ERROProjeto inclui .syno mas template sem ONTOLOGY FIELDSAdicione ONTOLOGY FIELDS no .synt
Dependência crítica: todo code: do projeto Basic deve existir como ONTOLOGY nome aqui. Em templates avançados, referências em chain: seguem a mesma regra.
Como os arquivos e blocos se conectam
Leitura: a chave BibTeX liga a referência ao SOURCE; o mesmo @bibref liga cada ITEM ao SOURCE; cada valor de code: aponta para um bloco ONTOLOGY; e o campo group, declarado como TYPE TOPIC, reúne conceitos no mesmo tema.
Ver código Mermaid
flowchart LR
B["references.bib<br/>@article{smith2024}"]
S["SOURCE @smith2024"]
I["ITEM @smith2024"]
O["ONTOLOGY conceito"]
T["TOPIC / group<br/>Community_Resilience"]
B -- "chave BibTeX" --> S
S -- "@bibref" --> I
I -- "code:" --> O
O -- "group: TYPE TOPIC" --> T
# JSON canônico v3.0synesis compile project.synp --json basic_out.json
# Dataset Alpaca JSONL para fine-tuningsynesis compile project.synp --alpaca basic_alpaca.jsonl
# Os dois artefatos podem ser gerados na mesma execuçãosynesis compile project.synp \
--json basic_out.json \
--alpaca basic_alpaca.jsonl
Execute os comandos dentro de case-studies/Basic. O JSON preserva o projeto compilado; o arquivo Alpaca contém pares de instrução e resposta derivados dos dados validados.