A command-line script for analyzing Latin syntax
syntaxer_main.py reads authentication credentials for your LM from your environment and analyzes a passage. It writes the result in to standard output in arsgrammatica’s standard serialization format. Create an .env to configure your LM credentials, like this:
API_BASE=https://localmodel/api
MODEL=litellm/modelname
API_KEY=your-key-hereThen run syntaxer_main.py with a passage argument:
python3 syntaxer_main.py --passage "Gallia est omnis divisa in partes tres."To include a citation reference (e.g. a CTS URN), use the --citation argument:
python3 syntaxer_main.py --passage "Arma virumque canō." --citation "urn:cts:latinLit:phi0690.phi003.perseus:1.1"Redirect the output to a file with standard IO redirection:
python3 syntaxer_main.py --passage "Arma virumque canō."
--citation "urn:cts:latinLit:phi0690.phi003.perseus:1.1" > aeneid_analysis.cexTHe results look like this:
#!sentences
context_begin|first_token|context_end|last_token
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t0|urn:cts:latinLit:phi0690.phi003.perseus:1.1|t4
#!verbal_units
context|token|syntactic_type|semantic_type
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t3|independent|transitive active
#!tokens
context|id|tokentype|text|lemma|verbalunit|related1|relationship1|related2|relationship2
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t0|lexical|Arma|arma||t3|direct object||
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t1|lexical|virum|vir||t3|direct object||
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t2|enclitic|que|que||t0|coordinating conjunction|t1|coordinating conjunction
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t3|lexical|canō|cano|t3|root|unit verb||
urn:cts:latinLit:phi0690.phi003.perseus:1.1|t4|punctuation|.||||||