Backend for the Cadmus TES project.
🐋 Quick Docker image build:
docker buildx create --use
docker buildx build . --platform linux/amd64,linux/arm64,windows/amd64 -t vedph2020/cadmus-tes-api:0.0.4 -t vedph2020/cadmus-tes-api:latest --push(replace with the current version).
This part lists the resources present in a site. Each resource can contain tag, type, any number of features, location, date, counts, and a free note.
resources(SiteResource[]):eid(string): the resource's entity identifier.type* (string, 📚site-resource-types): the type of the resource, e.g. "quarry", "mine", "water source", etc.tag(string, 📚site-resource-tags): an optional tag or label associated with the object, e.g. "cava A", "pozzo B".features(string[], 📚site-resource-featureshierarchical): the list of features for this resource, including evidences in their own branch.location(AssertedLocation: see brick and its demo):eid(string)label* (string)latitude* (double)longitude* (double)altitude(double) in mt.radius(double): uncertainty radius in mt.geometry(string) in WKT.
date(AssertedHistoricalDate):tag(string📚asserted-historical-date-tags)a* (🧱 Datation):value* (int): the numeric value of the point. Its interpretation depends on other points properties: it may represent a year or a century, or a span between two consecutive Gregorian years.isCentury(boolean): true if value is a century number; false if it's a Gregorian year.isSpan(boolean): true if the value is the first year of a pair of two consecutive years. This is used for calendars which span across two Gregorian years, e.g. 776/5 BC.slide(int): a "slide" delta to be added to value. For instance, value=1230 and slide=10 means 1230-1240; this is not a range in the sense ofHistoricalDatewith its A and B points; it's just a relatively undeterminated point, allowed to move between 1230 and 1240. This means that we can still have a range, like A=1230-1240 and B=1290. A slide is represented by the end year/century value prefixed by:in its parsable string. So, we can have strings like1230:1240--1290for range A=1230-1240 and B=1290, or even1230:1240--1290:1295; all combinations are possible. With negative (BC) values we have e.g.810:805 BCimplying slide=5.month(short): the month number (1-12) or 0.day(short): the day number (1-31) or 0.isApproximate(boolean): true if the point is approximate ("about").isDubious(boolean): true if the point is dubious ("perhaphs").hint(string): a short textual hint used to better explain or motivate the datation point.
b(🧱 Datation)assertion(Assertion):tag(string)rank(short)references(🧱 DocReference[]):type(string📚doc-reference-types)tag(string📚doc-reference-tags)citation(string)note(string)
counts(DecoratedCount[]): collection of decorated counts associated with the resource, e.g. the estimated income in talents, the number of marble blocks found in a quarry, etc.id* (string📚site-resource-count-ids)tag(string📚site-resource-count-tags)value* (int)note(string)
note(string)
| part | inscription | lit. source | artifact | site | cult | iconography |
|---|---|---|---|---|---|---|
| categories | ins-fn ins-lng | art-type art-mat art-ctx | site-type site-feats | cult-type cult-gods cult-feats | ico-sub | |
| comment | X | X | X | X | X | |
| dates | X | X | X | |||
| fragments | X | |||||
| links | X | X | X | X | X | X |
| locations | X | X | X | |||
| metadata | X | X | X | X | X | X |
| support | X | |||||
| techniques | X | |||||
| toponyms | X | |||||
| note | X transl | X transl | X | X | X | X |
| references | X | X | X | X | X | X |
| resources | site-res site-prod | |||||
| states | X | |||||
| scripts | X | |||||
| signs | X | |||||
| text | X | X | ||||
| apparatus= | X | X | ||||
| comment= | X | X | ||||
| chronology= | X | X | ||||
| orthography= | X | |||||
| ligatures= | X | |||||
| links= | X | X |
The CLI app tes-tool in this solution is used to import inscriptions from an Excel file via the Proteus framework. Source Excel files have the following columns (
(1) A (ID)*: the ISicily inscription ID (e.g. ISic000822) links: add an external metadata link.
(2) B (Date notBefore)*: a numeric value representing a year for the from-date, negative if BC. This is imported together with C.
(3) C (Date notAfter)*: a numeric value representing a year for the to-date, negative if BC. dates as a range B-C.
(4) D (Site of origin (ancient name))*: the ancient name of the site of origin (e.g. Syracusae). This is imported together with E and F.
(5) E (Site of origin (modern name))*: the modern name of the site of origin (e.g. Siracusa). This is imported together with E and F.
(6) F (Pleiades ID): the Pleiades ID of the site of origin (e.g. places/579570) links: add an external metadata link for the ancient name and another one for the modern name, both referring to the same Pleiades ID.
(7) F (Origin latitude)*: latitude. This is imported together with G.
(8) G (Origin longitude)*: longitude locations together with F. F-G are the first location which refers to origin.
(9) H (Provenance latitude): latitude. This is imported together with I.
(10) I (Provenance longitude): longitude locations together with H. H-I are the second location which refers to provenance.
(11) J (Material)*: support.material mapped to thesaurus 📚 epi-support-materials.
(12) K (Object type): when not specified the value is N/A. support.objectType mapped to thesaurus 📚 epi-support-object-types.
(13) L (Type): when not specified the value is N/A. categories:ins-fn mapped to thesaurus 📚 categories_ins-fn.
(14) M (Execution type 1): e.g. chiselled technique.techniques mapped to thesaurus 📚 epi-technique-types.
(15) N (Execution type 2): as for M.
(16) O (Language)*: categories:ins-lng mapped to thesaurus 📚 categories_ins-lng.
(17) P (Repository name): repository name (e.g. Antiquarium di Megara Hyblaia) metadata.preservation-place.
(18) Q (Inventory number): inventory number (e.g. 104387) metadata.inventory-nr.
(19) R (Edition (interpretive)): text (Leiden)
List of target thesauri:
- categories part:
categories_ins-fncategories_ins-lng
- epigraphic support part:
epi-support-materialsepi-support-object-types
- epigraphic technique part:
epi-technique-types
- 2026-07-21: updated packages.
- 2026-06-10: updated packages, with adjustments for Proteus-related components.
- 2026-03-23: added literary sources.
- 2026-03-22:
- updated packages.
- added
settingsto profile for facet editing.
- 2026-03-19: updated packages.
- 2026-03-12: updated packages.
- 2026-03-10: updated packages.
- 2026-03-03: updated packages.