An open API service indexing awesome lists of open source software.

https://github.com/situx/paleocodage

A paleographic description system for the creation of cuneiform characters
https://github.com/situx/paleocodage

Last synced: 5 months ago
JSON representation

A paleographic description system for the creation of cuneiform characters

Awesome Lists containing this project

README

        

# 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.