210 points by metiscus 32 days ago | 34 comments
jnovek 30 days ago
I guess before I roll out questions and criticisms, I just want to say that this is a really cool project. I love it.

Could you make the dots smaller in the updated UI? I didn’t realize at first that you were using an actual map of Roman provinces.

My eyesight isn’t great and it would help if you used a political map rather than terrain. I’m not sure what’s out there for ancient Roman map tiles, though.

I’m not so much of an antiquity scholar AND I’m an American so my European geography isn’t perfect. It would be neat to be able to flip to a modern map, too, so I can see where things are in terms of modern landmarks.

You’re not getting a ton of comments so far, but FWIW these are the kinds of projects I come to HN for. I’ve been getting into opera lately and suddenly classical antiquity is very relevant to my interests. I’m going to keep this in my bookmarks, I’m finding the tangential historical stuff related to opera is drawing me in nearly as much as the music.

I’m also going to pass it on to an academic friend of mine who is working in an unrelated field but might find similar techniques useful.

Finally, when I first opened the map, I recognized the basic shape of the peak Roman Empire in the dots! I love when data does that kind of thing.

Thank you again for sharing this very cool project.

metiscus 29 days ago
The actual code is here https://github.com/metiscus/roman-names/ and it is licensed under MIT, while the datasets are slightly more restrictive, and mentioned in the repo.
cwnyth 30 days ago
Hi, I'm an actual classicist (phd and all), if you wanted to throw any questions my way.
metiscus 29 days ago
I've contacted a Professor in Europe who was doing research in this area and pointed him to the page. What I genuinely need is someone to spot check a few of the attributions. I can send you a list of the ones I think are the most likely to be good.

  1. Laepoca / Laepocus — Piquentum, Venetia et Histria (1–50 AD)
  Three family members: two women (Laepoca Regilia, Laepoca Tuia) and a man (Metellus Laepocus). The nomen appears in both feminine and masculine forms in the same inscription, pointing to a
  genuine local gentilicium, likely of Istrian or Liburnian origin.
  https://new.roman-names.com/#edcs_id=EDCS-04200530
It looks like my auto-translation and summarization layer is hallucinating on this entry, but the extraction appears correct. I'll flag it for the next run.

  2. Tocernius — Eraclea Veneta, Venetia et Histria (3rd c. AD)
  Father (C. Tocernius Hermeros) and son (C. Tocernius Maximianus), the latter a soldier of Legio II Italica. Probably a Venetic name surviving into the imperial period.
  https://new.roman-names.com/#edcs_id=EDCS-04200461
Here, the auto-translate and summary worked as intended. It does garble the dedication into the status.

  3. Laulenia — Thibilis, Numidia
  Two sisters, Laulenia Matrona and Laulenia Naxina, daughters of the same Marcus. The name looks Berber/Numidian in origin. (I should note that our pipeline transcribed the nomen as
  Lauzenia — the raw EDCS text reads Laulenia, which is probably the correct form.)
  https://new.roman-names.com/#edcs_id=EDCS-13500401
The auto-translate and summary layers do not make this error, only the name extraction layer does. I have flagged the entry and am diagnosing it.

  4. Kanulanius / Nansinia — Flavia Solva, Noricum
  Father (C. Kanulanius Eumitus) and son (C. Kanulanius Nepos, a soldier of Ala III Thracum). The K-spelling may reflect local Celtic orthographic convention. The wife's nomen, Nansinia,
  also appears unattested in standard sources and may be a second find in the same inscription.
  https://new.roman-names.com/#edcs_id=EDCS-14500644
Here there is an issue where I think in the processing for the web I am feeding interpreted text into the raw extraction field as my displayed raw text seems to be expanded from EDCS. Mine: Caius Kanulanius Eumitus vivus fecit sibi et Nansiniae Verecundae coniugi et Caio Kanulanio Nepoti filio militi alae III Thracum annorum XXV stipendiorum VI loco et impensa Anni Festi

EDCS:

C(aius) Kanulani/us Eumitus / v(ivus) f(ecit) sibi et / Nansiniae / Verecundae con(iugi) / et C(aio) Kanulanio / Nepoti f(ilio) mil(iti) alae III / Thrac(um) an(norum) XXV stip(endiorum) VI / loco et impensa / Anni Festi

cwnyth 29 days ago
What exactly are you trying to go for with status? It seems it mostly records filiation, but I don't think that's an intuitive use of the word. Knowing what you're actually going for would be helpful.

Also, you might want to include the source from EDCS. #3 above comes from ILAlg, and EDCS has a key for all the collections and their abbreviations. This will help someone be able to track down the original inscription more easily.

1. That first one is rough, and the translation is broken (it doesn't even translate Surus' name), but you got the people down. Regilia is just a guess, though.

3. Yep, Laulenia is the original name. Seems like AI is hallucinating here.

4. Have you thought about code that strips the parenthesis first, instead of letting AI do it? Also, loco et impensa is something like "grave site and expense", not "expense and initiation." Locus means "place", and in epitaphs often just refer to the burial place.

busyant 29 days ago
Very cool. I'd like to explore it, but I'm getting a lot of "page unresponsive" and I can't tell if it's a back-end server being swamped, or if it's something else.

My son just graduated with a double major in classics and molecular biology (doing informatics work), so maybe he could help! lol

metiscus 29 days ago
[dead]
trevoragilbert 30 days ago
This is very cool! For the name extraction, how are you handling false positives across such a large dataset? I’m assuming there are mentions that could be a name but are actually just a noun. For example, Agricola being the word for farmer but also a name.
metiscus 29 days ago
So most inscriptions are somewhat formulary, and I provide examples to the llm to assist it to find the names. I also have a postprocess blacklist that removes some known cases where things slip through. It's never going to be 100% perfect but to my untrained eye, it seems to do okayish. Waiting on some professionals to cross check my data. If that is you, you can search and export the data in csv via the browse button.
thom 29 days ago
Couple of videos from the Roman Society recently, connecting landscapes and Latin epistolography, which may be of interest to those enjoying this map:

https://youtu.be/9aBxIRCGkl4?si=Dh5P6_NGzSasBG_1

https://youtu.be/nxCNrTYQ_ys?si=ngWa94p2KQdri_Fz

doodlesdev 29 days ago
Since you are using LLMs to create the transcriptions, I wonder whether you've measured the difference in precision between the chosen model, Gemini 2.5 Flash-Lite, and newer/larger models such as Gemini 3.5 Flash, Gemini 3.1 Flash-Lite or GPT5.5.

I've read the README in the feat-api branch and, from what I understand, you've already assessed that false negatives are not a model failure, but I'm not sure I understand why (haven't spent that much time looking at it though, just curious to hear from you).

This is a really cool project, by the way! In my opinion this is a place where LLMs shine: produce the work of hundreds of hours of manual human labor much quicker and cheaper, for something that no one else would ever bother to do the work!

metiscus 29 days ago
[dead]
yubblegum 30 days ago
> I have Claude

And just now I am watching I, Claudius.

Insanity 29 days ago
Watching?

I just finished reading “I, Claudius” and “Cladius the God” this month. Didn’t know there was a series / movie, would you recommend it?

(I highly recommend the books FWIW, although I prefer the more modern writing style of the Cicero trilogy)

yubblegum 29 days ago
It's a solid 70s era BBC production. That should tell you everything +/- per your prefs. "Horses for courses" as they say over there!

https://en.wikipedia.org/wiki/I,_Claudius_(TV_series)

daviTeodoro 30 days ago
Very cool! Do you plan to share the final dataset? I've been working with geographic data all my life and I'm building a Carto/Felt alternative. Do you want to have your data their? It is https://cartografo.io/ There is a price tag, but I can host this dataset for free for you. I would love to have this map there to show case. If you are interested send an email, davi@cartografo.io. If you just need some help improving your map I can help you as well.
aspenmartin 30 days ago
This is really wonderful -- One thing that may be really cool if you have the data is to add a time-axis ability (unless I missed it) for a given location. This is such a delightful application of AI!
metiscus 29 days ago
Yeah, I thought about that. The issue is that the date density is poor already and the ranges are pretty broad. Someday I'll give it a try, but the search interface can limit you to date ranges for now, so the infrastructure is all there.
tosti 29 days ago
The map is woefully inaccurate, because it depicts present-day topology.

See e.g. https://upload.wikimedia.org/wikipedia/commons/c/ce/Peace_of...

From: https://commons.wikimedia.org/wiki/Atlas_of_European_history

metiscus 29 days ago
The map tiles themselves come from the Digital Atlas of the Roman Empire. Which you can find here.

https://imperium.ahlfeldt.se/

tosti 27 days ago
That's wrong, too. Seeing reclaimed land in there is a clear sign.
goldfishgold 29 days ago
On the Greek side this has been done, the Greek Lexicon of Personal Names is an effort to find all Greek names down to 600 CE. https://www.lgpn.ox.ac.uk/. You might want to try using that as the basis of your map.

In general the word 'prosopography' might be helpful for you. There's been lots of work over the centuries on analyzing large groups of people in antiquity.

metiscus 32 days ago
I am hoping to push a few fixes to the new web interface later today, so if you looked at this and saw anything off, hopefully by COB today I will have the known issues fixed.
metiscus 29 days ago
And thank you to whomever flagged EDCS-31400647 and EDCS-21700214. The militia militia militia attribution was hilarious, wrong, and has been fixed.
aduwah 29 days ago
I absolutely love this project. Thanks for making my day!
metiscus 29 days ago
Somehow despite writing an essay above, I forgot to mention that the whole codebase and web frontend is on GitHub.

For reasons the main dev right now is on a branch, also the browse feature is live allowing a better search ability.

https://github.com/metiscus/roman-names/

OJFord 29 days ago
This is cool – I'd like a way to click through from a given entry to find out more, appreciate it may not be much, but each one came from somewhere. There's a few in my hometown so just idly interested if they're from somewhere I know about or something that would be new to me.
metiscus 29 days ago
so there should be some links when I have the information available. If you link me the entries I'll see what is going on.
frereubu 30 days ago
This is great. One little bit of UI feedback: the green map clusters when zoomed in quite a bit aren't very obvious on green backgrounds - they merge into the background features a bit (e.g. in the very west of Scotland).
1e1a 29 days ago
This is very cool, but unfortunately it's hard to get a sense of what the actual spatial distribution of people looks like when nearby nodes are grouped into larger dots that obscure the local structure.
metiscus 28 days ago
That is largely an artifact of the source data, sadly. I place the dots where they were found, if the dataset has that information, otherwise I georef them back to the "findsite" in the data, which aggregates many finds at one place. A lot of these were found in the 1800s and just dont have good find lla data.
1e1a 22 days ago
Ah, I was referring to the zoom-level-dependent clustering, which I find makes it hard to see the distribution of points when zoomed out all the way. There's still quite a bit of detail even with many of the points sharing the same location.
Etymon 26 days ago
Five hundred thousand inscriptions and most of the names haven't been seen for centuries. A lovely thing to have built.
ingvay7 30 days ago
Love this. For people who aren’t familiar with Roman history, it would be great to have a short guided tour of how to explore the map. I filtered for 'pompeii' and it gave me 117 dots.
avyeed_desa 30 days ago
Congrats to this great idea! Love it.

The ones around my place all use EDH, which also has a map feature, but not as intuitive as this! Reminds me of vici.org

metiscus 29 days ago
I also used EDH as ground truth but not directly as a source and link out to it and other sources when I have those links available.
andai 30 days ago
Could you elaborate on the multi level LLM workflow? Did you set up a benchmark, and you're having a LLM mutate prompts?
metiscus 29 days ago
But yes, the runbook in the project gives the llm instructions on how to use the scripts and what to modify. I let Claude code read that and tell it to work on a province. It runs a small segment and analyzes the results until it hits 1-2% error with no systemic errors. If it can't get all the errors out then I have it switch to using gemini-flash-lite-latest instead of 2.5, which costs slightly more but performs much better. Basically Claude code runs a self governing loop with my oversight mutating the prompts and data inputs to extract all the names.

EDIT My instructions to the supervising LLM are in here https://github.com/metiscus/roman-names/blob/feature/webapp-...

metiscus 29 days ago
Full code and data available at https://github.com/metiscus/roman-names/

The running version on new. is the webapp branch. Eventually I will get it all fixed up.

tonymet 30 days ago
Great resource for baby names. And a great way to help students better understand historiography.
tonymet 30 days ago
have there been any interesting revelations in understanding the history of the Roman Empire in the past 30 years? Newer manuscripts or artifacts discovered ?
metiscus 29 days ago
The short answer is yes. Successo-Terra has done a lot of work on the preroman history of Italy quite recently.

https://www.successoterra.net/en

The Vesuvius scrolls have been partially decoded with some interesting results. https://www.smithsonianmag.com/smart-news/three-students-dec...

The Vindolanda tablets are constantly being worked on as well https://www.heritagedaily.com/2017/07/roman-tablets-unearthe...

tonymet 28 days ago
This was really insightful thanks!
CodeByBryant 29 days ago
Yo. This is tuff. Curious tho, is your database free or did you have to scrape it from somewhere?
retmarut 26 days ago
I spent more time on this than I should have! WELL DONE.
oezi 30 days ago
Very nice. Are you using the roman roads which were also on HN a couple of weeks ago?
countrymile 30 days ago
There's a lot of new roads being mapped in England. Interesting how the inscriptions on the map are often between roads, suggesting an unmapped pathway:

https://news.ycombinator.com/item?id=44622543

metiscus 29 days ago
So the points are georeferenced when the underlying source data is otherwise I georeference them back to the findspot, which tends to cluster many at one point.
Xotic007 28 days ago
really like this. Do you plan to also connect people to each other like for example "wife of" relationship or smth like that in the inscriptions so you can see who was linked to who?
jdthedisciple 30 days ago
Very nice idea but please, check the performance: I had to close the tab 3 seconds in because it got stuck and my CPU fan got noisy.

So I couldn't even check it out properly.

bvan 29 days ago
This is the kind of application which brings me back to shore as I feel I’m drowning in AI slop. Really well done and thanks for sharing.
ynxshiny 29 days ago
Wait this is so sick, will send to my friend who's super interested in history
bshivarthy 28 days ago
this is very cool
apiorno 27 days ago
nice!
AzizBytes 30 days ago
[dead]
raychis 29 days ago
[dead]
misano 30 days ago
[dead]