Aim is to define the way thread counts are specified.
This uses an ebnf specifcation which is elaborated here which includes further references.
Tartan = WarpThreadCountList { "!" WeftThreadCountList } {Pallette}.
Pallette = ColourSpec { ColourSpec}
ColourSpec = ColourThreadCode HexChar ColourHex | ColourThreadCode "~" OKLabColour
HexChar = "#"|"$"
ColourHex = Red Green Blue
Red = Hex
Green = Hex
Blue = Hex
Hex = HexChar HexChar
OKLabColour = LightNess "%" A-Axis "~" B-Axis
LightNess = "1" | "0" {"." Digit {Digit {Digit {Digit}}}}
A-Axis = AxisNumber
B-Axis = AxisNumber
AxisNumber = "0" | {"-"} "1" | {"-"} "0" "." Digit {Digit {Digit {Digit}}}
Digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
HexChar = Digit | "A" | "B" | "C" | "D" | "E" | "F"
WarpThreadCountList = ThreadCountList .
WeftThreadCountList = ThreadCountList .
ThreadCountList = FirstThreadCount {ThreadCount} {LastThreadCount}.
ThreadCount = ColourCode Integer .
FirstThreadCount = ColourCode ReflectiveSettSpecifier Integer | RepeatingSettSpecifier ThreadCount
LastThreadCount = ColourCode ReflectiveSettSpecifier Integer | ThreadCount RepeatingSettSpecifier
ReflectiveSettSpecifier = "/"
RepeatingSettSpecifier = "..."
ColourThreadCode - ColourCode | ColourCode LowercaseChar
CoreColourCode = "W" |"R" | "G" | "B" | "Y" | "K"
ColourCode = CoreColourCode | "LR" | "DR" | "O" | "DO" | "LY" | "DY" |
"LG" | "DG" | "LB" | "DB" | "LP" | "P" | "DP" |
"LN" | "N" | "DN" | "LT" | "T" | "DT".
LowercaseChar = "a" | "b"
| "c" | "d" | "e" | "f" | "g" | "h" | "i"
| "j" | "k" | "l" | "m" | "n" | "o" | "p"
| "q" | "r" | "s" | "t" | "u" | "v" | "w"
| "x" | "y" | "z"
Notes:
- See below for expansion of ColourCode
- Where only a WarpThreadCountList is given then it is assumed that the WeftThreadCountList is the same.
- The default is that the first and last of each part of the pattern are pivots with a mirror reflection. So W2 G4 R6 is woven as:
W2 G4 **R6** G4 **W2** G4 **R6** G4 **W2** G4 R6
aaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeee
- The Tartan Registry specifies reflective setts with ColourCode “/” Integer eg
B/24 W4 B24 R2 K24 G24 W/2
. However it can be elided and is not universally used. - Palette should include all the colours (otherwise the standard palette will be used.)
- Optional separator for warp and weft if specified is ! rather than | to not require escaping as URLs
End points
The Tartan Register uses whole thread counts for each pivot points.
Colours
The tartan register has a series of abbreviated colour codes each of which may have a range of colours associated with it.
Colour Code | SVG Colour name |
---|---|
LR | lightred |
R | red |
DR | darkred |
O | orange |
DO | darkorange |
LY | lightyellow |
Y | yellow |
DY | darkyellow |
LG | lightreen |
G | green |
DG | darkreen |
LB | lightblue |
B | blue |
DB | darkblue |
LP | lightpurple |
P | purple |
DP | darkpurple |
W | white |
LN | lightgray |
N | gray |
DN | darkgray |
K | black |
LT | lightbrown |
T | brown |
DT | darkbrown |
URL composition
Tartans are comprised so that their URL’s are unique. Each threadcount may have a number of colour variations of which one will be specified as the major version with more information than the others. Sometimes the choice of this major version will be arbitrary.
So the Drummond of Megginch tartan is: https://tartandictionary.org/tc/R/14DB2R4DB4R70LB4R4DB20R4G4R4G74R6DB4R/12/
A particular pallette would be: https://tartandictionary.org/tc/R/14DB2R4DB4R70LB4R4DB20R4G4R4G74R6DB4R/12/DB#000064G#004c00LB#98c8e8R#c80000/
The URLs of each colour variation also have a unique reference. They have the following relationship.
The tartan family is a slightly more abstract concept. Eg in the Wikipedia entry on tartan the following quote from a letter to Sir Walter Scott is the following which shows how vague a concept can be:
MacLeod (of Dunvegan) has got a sketch of this splendid tartan, three black stryps upon ain yellow fylde.
The interesting thing is that concept gets replicated and modified over time, eg larger setts for plaids, small setts for a child’s kilt and simple mistakes in copying when new tartan gets woven.
Threadcount numbers
A tartan variant thread count is normalised to a minimum of two in order to preserve a 2x2 twill pattern. This means that all the numbers are even. Larger setts are possible by multiplying the threadcount by an integer number. You can also have approximatations eg by multiplying by 1.4 and rounding to even numbers.