Skip to content

Latest commit

 

History

History
77 lines (63 loc) · 5.21 KB

README.md

File metadata and controls

77 lines (63 loc) · 5.21 KB

PaleoCodage

A paleographic description system for the creation of cuneiform characters.

Why a digital machine-readable paleographic description?

Shapes of cuneiform characters could previously to PaleoCodage not be digitally described in terms of

  • Position
  • Wedge size
  • Relations to each other in order for a computer to reconstruct a cuneiform character.

For a scholar, this provides a method to describe a cuneiform shape in a digital way and to share this machine-readable representation for example in linked open data dictionaries. The computer can figure out sign variants and partial signs based on the encoding alone, leading to a better understanding for scholars.

Implementation

This repository hosts the JavaScript implementation of PaleoCodage, a system to describe the shape of cuneiform characters. The system is described in detail in the following short paper publication: Paleo Codage - A machine-readable way to describe cuneiform characters paleographically

At the Github Pages version, a user is able to define the shape of a cuneiform character using the PaleoCodage operators:

Wedge Types:

  • a Vertical Stroke (a)Big (A) Small (sa)
  • b Horizontal Stroke (b) Big (B)Small (sb)
  • c Diagonal Stroke1 (c) Big (C)Small (sc)
  • d Diagonal Stroke2 (d) Big (D)Small (sd)
  • e Diagonal Stroke3 (e) Big (E)Small (se)
  • f Diagonal Stroke4 (f) Big (F)Small (sf)
  • w Winkelhaken (w)Big (W)
  • - right of the current stroke passing through other strokes
  • _ right of the current stroke NOT passing through other strokes
  • : under the current stroke passing through other strokes
  • ; under the current stroke NOT passing through other strokes
  • / half the distance of : under the current stroke passing through other strokes
  • . diagonal right under the current stroke
  • , diagonal left above the current stroke
  • s smaller version of the stroke (e.g. sb, sc)
  • ! mirrored version of the stroke (e.g. !a, !A, !sa)
  • Whitespace Enough distance to start a new character

Results

PaleoCodage encodings can produce a variety of results as can be shown below.

Image Representations

The results of the description can be saved as a PNG image or as SVG and can therefore be used to share cuneiform character representations without much effort.

OpenType Font

In addition, an export as an OpenType font is possible. This is useful for various reasons

  • The font can be used in any program to represent cuneiform characters
  • The font can encode cuneiform characters which have not yet been added to Unicode
  • The font can encode ligatures which can be used to describe cuneiform sign variants
Ligature Example

In the Unicode Definition of cuneiform characters, signs included in Borgers sign list have been collected and encoded. However, this definition is a semantic one, as the meaning of one sign e.g. E has been taken to describe the respective character. In fact the sign E might be represented in a multitude of sign variants throughout time or even within the same period of time. Using PaleoCodage, a unique description for each cuneiform sign can be created and subsequently assigned an ID. For example we could define:

  • E
  • E_v1
  • E_v2

each representing E, but with a different PaleoCodage description i.e. shape.

Next, the defined IDs can be added to the OpenType font as ligatures. A ligature, when type, would let the font replace e.g. E_v1 with the respective sign variant encoded in the private unicode section of the font or in any other non-alphabetic part of the font.

An example of such ligature substitutions is given by https://symbolset.com which replaces text with emoji. The concept is the same, only here we would replace modified transliterations with cuneiform characters. http://pomax.github.io/CFF-glyphlet-fonts/ provides some more insights into ligatures.