Text only | Skip links
Skip links||IT Services, University of Oxford

1. Summary

Elaine Matthews, Editor, Lexicon of Greek Personal Names, Classics Faculty, Oxford

Sebastian Rahtz, Information Manager, Oxford University Computing Services

  • What is the Lexicon?
  • How do we record data?
  • Moving to XML and semantic markup
  • Web services from the Lexicon
  • Interaction with other classical projects

2. What is the LGPN?

The Lexicon of Greek Personal Names was established in 1972 as a Major Research Project of the British Academy.

The overall objective of the LGPN project is to create a comprehensive and authoritative record of the names of all individuals attested in Greek (or with Greek names attested in Latin) in the ancient Greek-speaking world, and so provide the classical research community world-wide with a unique and fundamental resource for the study of all aspects of the ancient Greek world.

3. Lexicon data categories

The LGPN records
  1. Normalized primary name form
  2. Sex of person named
  3. Place of attestation
  4. Date of the attestation (which can vary wildly in precision)
  5. Bibliographical references
  6. Assorted other data:
    • placename variations e.g. alternative places of birth or citizenship
    • name variants (orthography, dialect), corrections etc
    • parent/child relationships to other people)
    • status or profession
    • editorial corrections/alterations to the record

4. Example data

In the compact text form of the Lexicon data, a record looks like this:
Nani1s (f) @ Athens? @ F4B @ +IG II<2> 12229 @ (%_Na!nei1s!)
Which says that there is a record of someone called Νανίς, a woman, probably from Athens, in the first half of the 4th century BC, with a bibliographical reference (publication of an inscription). The name is normalized from the attested form which has the syllable νείς.

5. Mapping LGPN to TEI

The major data categories present in the Lexicon map cleanly to TEI elements as follows:
Lexicon TEI
Name<nym>
Person<person>
Name form<persName>
Sex<sex>
DateFormally, notBefore and notAfter attributes on <birth>; informally in <floruit>
Status <socecStatus>
Reference<bibl>

6. The TEI customization — people

The TEI format designed for the Lexicon makes use mainly of the <person> element to contain a Lexicon record.

Long-form XML record for the Lexicon data example:
<person xml:id="V2-60057">
 <sex value="2"/>
 <persName type="fullnymRef="#Nani1s">
  <forename>Νανίς</forename>
 </persName>
 <birth notAfter="-0350notBefore="-0399">
  <placeName key="Athenscert="?">Athens</placeName>
 </birth>
 <floruit>f.iv BC</floruit>
 <persName type="namevariantxml:lang="grc">Να
 <seg type="orth">νείς</seg>
 </persName>
 <bibl>
  <title>IG</title> II<hi rend="sup">2</hi> 12229</bibl>
</person>

7. Names

Names themselves are stored in a set of <nym> records, providing for the name as a first class object distinct from the <person>. For example:
<listNym>
 <nym xml:id="Eueidhs">
  <form xml:lang="el-grc">Εὐείδης</form>
  <form xml:lang="el-grc-x-lgpnno">Eueidhs</form>
  <form xml:lang="el-grc-x-lgpn">E'uei1dhs</form>
  <form xml:lang="el-grc-x-perseus">Eu)ei/dhs</form>
 </nym>
</listNym>
We store variants of the main name in different encodings, in order to make searching easier.

8. A longer example, short form

The Athenian general Themistocles, about whom a fair amount is attested, in short form:
Qemistoklh3s (m) @ Phrearrhioi @ C524-459BC @ +Ag. XXV 664-1049; +AM 106 (1991) p. 151; +IG II<2> 1035;= +SEG XXVI 121, 33, 45;& +PA/APF 6669; +RE (1) @ (%_Qemi!sqokle3s!, %_Qemi!sqokle1e8s!, %_Qemi!ssqokle3s!, %_Qemisto!kle3s! - ostraka: I s. %Neoklh3s I, f. (nat.) %Dioklh3s (Alopeke), f. %Neoklh3s II, %Arce1ptolis, %Polu1euktos, %Kleo1fantos, %Mnhsiptole1ma, %Nikoma1ch, %Itali1a, %Su1baris: archon epon. - 493/2BC)

9. A longer example, XML form

<person xml:id="V2-29950rend="volume2">
 <sex value="1"/>
 <persName type="fullnymRef="#Qemistoklh3s">
  <forename>Θεμιστοκλῆς</forename>
 </persName>
 <birth notAfter="-0459notBefore="-0524">
  <placeName key="Phrearrhioi">Phrearrhioi</placeName>
 </birth>
 <floruit>c.524-459BC</floruit>
 <persName type="namevariantxml:lang="el-grc">
  <forename>Θεμιστο<seg type="orth">κλε3ς</seg>
  </forename>
  <note> — ostraka</note>
 </persName>
 <state key="#relationship">
  <label>s. <persName xml:lang="el-grcnymRef="#Neoklh3s">Νεοκλῆς I</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. (nat.) <persName xml:lang="el-grcnymRef="#Dioklh3s">Διοκλῆς (Alopeke)</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Neoklh3s">Νεοκλῆς II</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Arce1ptolis">Ἀρχέπτολις</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Polu1euktos">Πολύευκτος</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Kleo1fantos">Κλεόφαντος</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Mnhsiptole1ma">Μνησιπτολέμα</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Nikoma1ch">Νικομάχη</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Itali1a">Ἰταλία</persName>
  </label>
 </state>
 <state key="#relationship">
  <label>f. <persName xml:lang="el-grcnymRef="#Su1baris">Σύβαρις</persName>
  </label>
 </state>
 <socecStatus key="archon_epon.notBefore="-0493notAfter="-0492">archon epon. — <date>493/2{BC</date>
 </socecStatus>
 <bibl>
  <title>Ag.</title> XXV 664-1049</bibl>
 <bibl>
  <title>AM</title> 106 (1991) p. 151</bibl>
 <bibl>
  <title>IG</title> II<hi rend="sup">2</hi> 1035</bibl>
 <bibl>= <title>SEG</title> XXVI 121, 33, 45</bibl>
 <bibl>&amp; <title>PA/APF</title> 6669</bibl>
 <bibl>
  <title>RE</title> (1)</bibl>
</person>

10. Places

Places are modelled using the TEI <place> element, pointed to by the key attribute on <placeName>. This allows us to maintain a single hierarchical <listPlace> containing all place names used by the Lexicon. Thus
<listPlace>
 <place type="regionn="place33003xml:id="Achaia">
  <placeName>
   <region>Achaia</region>
  </placeName>
  <place type="settlementn="place33915xml:id="Aiga">
   <placeName>
    <settlement>Aiga</settlement>
   </placeName>
  </place>
  <place type="settlementn="place33003xml:id="Aigeira">
   <placeName>
    <settlement>Aigeira</settlement>
   </placeName>
  </place>
  <place type="settlementn="place33917xml:id="Aigeira_Hyperesia">
   <placeName>
    <settlement>Aigeira (Hyperesia)</settlement>
   </placeName>
  </place>
 </place>
</listPlace>

11. Data interchange

The Lexicon has defined five levels of data interchange:
1. Character interchange
ASCII text version of data separately from the binary format used by any database system. This was the minimal form of interchange supported in the initial stages of the project.
2. Character encoding
The Lexicon defined its own transliteration for Greek, independly of e.g. TLG betacode, and continues to use it for internal purposes. Converted to Unicode UTF-8 for interchange.
3. Standardized structural markup
Data relationships follow the schema defined in 1983. We have reimplemented this hierarchical and network structure using XML records to represent the relationships.

12. Data interchange (continued)

4. Standardized semantic markup
The XML representation of the Lexicon is aligned with the vocabulary and semantics for XML elements of the Text Encoding Initiative. The TEI elements are themselves in the process of alignment with the CIDOC CRM, allowing even wider understanding and a serious ontology within this field.
5. Information linking
For most categories of data (name, sex, data, bibliography), the Lexicon can be fully linked to comparable data. Places are work in progress … see later.

13. Conventional interface

  • search form to enter name, or partial name (regular expression)
  • results interlinked by place, date, name etc
  • browseable list of places and statuses
  • display mimicking typeset books

14. search example 1

15. search example 2

16. search example 3

17. search example 4

18. Moving on, delivering Lexicon data as a web service

Some people would like to see the raw XML data:

19. Why stop at TEI XML?

What about other formats? Some people would like to retrieve the data as
  • KML (Keyhole Markup Language), for display in Google Maps or Earth
  • Atom, for distribution as RSS
  • JSON, for consumption by Javascript

20. KML output

21. KML in Google Maps

22. Atom RSS

23. Packaging it up: consistent cool URLs

Queries can take the form http://clas-lgpn2.class.ox.ac.uk/type/query/format, where type is one of
  1. name: transliterated name with accents
  2. lexname: transliterated name without accents (can include regular expressions in query)
  3. greekname: name in UTF-8 Greek
  4. status: status from Lexicon list (visible at http://clas-lgpn2.class.ox.ac.uk/status)
  5. date: date in the form yeartoyear
  6. place: place name from Lexicon authority list (visible at http://clas-lgpn2.class.ox.ac.uk/place)
  7. summary: any name, but returns a summary record not a full list
  8. batlas: reference to grid square in Barrington Atlas

24. Consistent URLs (2)

…and format is one of
  1. html: human-readable page
  2. xml: TEI XML
  3. kml: KML for display in Google Earth or Maps (This will not work for most records until we add more geo locations).
  4. timeline: JSON code suitable for consuming by Simile Timeline
  5. exhibit: JSON code suitable for consuming by Simile Exhibit
  6. atom: Atom RSS

25. Examples of consistent URLs

Search by name, return HTML
/lexname/Paramonos
Search by name, return XML
/lexname/Paramonos/xml
Search by name, return KML
/lexname/Paramonos/kml
Search by status, return timeline JSON
/status/potter/timeline
Search by date, return Atom RSS
/date/250to265/atom

26. Javascript display technologies

From MIT's Semantic Interoperability of Metadata and Information in unLike Environments (SIMILE, http://simile.mit.edu/) project, we have used as well as Google Maps and Google Earth.

27. Timemap

28. Exhibit

29. Geolocating

How do we find the latitude and longitude of the 3000 places referenced in the Lexicon?
  • Looking them up in Wikipedia? No, not really …
  • Visiting all the sites with a GPS? Nice idea, but impractical
  • Finding them in Google Earth and reading off figures? In theory, but how do you find the place?
  • Finding them in the Barrington Atlas

30. The Barrington Atlas

31. Pleiades and Concordia

The Pleiades project (http://pleiades.stoa.org/) is gradually digitizing all the material from Barrington.

Thanks to Tom Elliott, we were able to make a trial digitization of c.60 places ourselves, ahead of Pleiades schedule.

That's an awful lot of places yet to geolocate …

32. The Barrington URL

But what if we simply mark all our places with the name, page number and grid reference in the Atlas?
<place type="regionxml:id="Boiotia">
 <placeName>
  <region>Boiotia</region>
 </placeName>
 <place type="settlementxml:id="Akraiphia">
  <placeName>
   <settlement>Akraiphia</settlement>
  </placeName>
  <location type="batlas">
   <label>akraiphiai-55-e4</label>
  </location>
  <location>
   <geo>23.216 38.453</geo>
  </location>
 </place>
</place>

33. The Barrington URL (2)

Now we can offer Lexicon data to other services who have done a similar job of annotating places.

Credit for this brilliant notion to the Concordia project!

34. And where do all these formats come from?

… simply a series of XSL transformations of the TEI XML file …

35. The Lexicon microformat

Can we do the Lexicon lookup behind the screens and enhance an HTML page?
<p> Greek Unicode names:
<span class="lgpn">Θεόδοτος</span>
 <br/>
and <span class="lgpn">᾿Ανθύλος</span>
</p>
<script type="text/javascriptsrc="greeknames.js"/>

36. What does that Javascript do?

  • go over the document looking for <span class="lgpn"> elements.
  • take the name and send it off to LGPN as a summary request
  • get back (eg)
    lexnames({
    "names" : [
    { "query": "Paramonos",
    "id": "Paramonos",
    "greek": "Παράμονος",
    "notBefore": "-0999",
    "notAfter": "0999",
    "number": "732"
    }
    ]
    });
  • insert extra information in the web page using that data
  • set the data to display when you move the mouse over the relevant place

37. A simple test

38. Interoperability with Aphrodisias

Aphrodisias TEI XML source:
<persName type="aphrodisianfull="yes">
 <name reg="Ζαχαρίας">Ζαχαρίας</name>
 <w lemma="μονοπώλης">
  <expan>
   <abbr>μονο</abbr>
   <supplied reason="abbreviation">πώλης</supplied>
  </expan>
 </w>
</persName>
can be rendered as
<span class="lgpn">Ζαχαρίας</span>μονοπώλης

39. Aphrodisias example

40. What makes that possible?

  • shared semantic XML markup
  • common encoding system (Unicode)
  • powerful browser-based processing

Not anything clever, but appropriate use of standards

41. Linking on bibliography

For interaction with the Beazley Archive in Oxford, they support linking via bibliography:

42. The future

We are still at a very early stage, and these demonstrations are still only proof of concept. Work to be done includes:
  • Checking data integrity of XML, and output formats
  • Establishing a production service
  • Linking places to Barrington Atlas
  • Geolocating all the places mentioned in LGPN
  • Establishing usage and copyright guidelines


Elaine Matthews and Sebastian Rahtz . Date: 2008-07-21
Copyright University of Oxford