My blog, imported from Blogger and converted using Jekyll.

Cornish Standard Written Form review 2014

Apr 17, 2016

I am thinking of developing my Cornish language processing tools further, to include a transliteration tool from Kernewek Kemmyn to Standard Written Form.

The SWF specification is available on the MAGA website, however there were some changes in the 2014 review. The SWF specification includes an appendix which describes the differences between it and Kernewek Kemmyn.

There is also a SWF dictionary available either as a PDF or web-based, the latter having being updated to take account of the review.

I have annotated the pdf of the original specification (specifically appendix C), to have the description of the differences between Kernewek Kemmyn and SWF, and where the further differences between SWF 1.0 and the 2014 reviewed SWF affect this in one place.

I have put a copy of these notes online at

Counting syllables in Cornish text

Apr 17, 2016

I have mentioned here before and at my website a little about Natural Language Processing tools I have created in Python.

One of these seeks to divide a Cornish text into syllables. The actual code is at my Bitbucket account.
I have recently adapted the script to have a mode where it counts the number of syllables in each line, using a '--line' switch at the command line, rather than detail each syllable of each word as the script normally does.

Here it is, applied to the "Creation of the World (Gwreans an Bys)", a Cornish text dating from 1611.

The KDL Kernewek Kemmyn version available at was used, which I stripped down, removing things like line numbers and comments. My stripped down version is here:

Here are the first couple of stanzas:

 Ego sum Alpha et Omega.
 Heb dalleth na diwedhva
 pur wir my yw,
 omma a-ji dhe'n kloudys,
 war fas an dowr yn sertan,
 tri ferson yn unn dywses
 ow kesreynya bys vykken
 yn meur enor ha vertu.
 My ha'w Mab ha'n Spyrys Sans,
 tri yth on yn unn substans,
 komprehendys yn unn Dyw.

 My yw henwys Dyw an Tas,
 ollgalloesek dres pub tra.
 Skon y fydh gwrys der ow ras
 nev, plas rial dhe'm trigva,
 ha'w thron-sedha ow bodh yw
 may fo henna.
 Ha'n nor ynwedh a-woeles
 skon orth kompas a vydh gwrys.
 Honna a vydh ow skavell droes
 rag ow plesour pup-prys,
 ha dhe'm enor maga ta.
 Nev omma yw gwrys genev,
 orth ow dywses yn sertan.
 Hag ynni y fydh gorrys
 neb a'm gordh gans joy ha kan.
 Naw ordyr eledh gloryus
 i a vydh, rial ha splann,
 kannasow dhymm dannvenys
 rag ow servya bys vykken.
 My a vynn may fons nevra.

The result for the text above is:
Linenn 1
Ego:2  sum:1  Alpha:1  et:1  Omega:3 
Niver a sylabellenow yn linenn = 8

Linenn 2
Heb:1  dalleth:2  na:1  diwedhva:3 
Niver a sylabellenow yn linenn = 7

Linenn 3
pur:1  wir:1  my:1  yw:1 
Niver a sylabellenow yn linenn = 4

Linenn 4
omma:2  a-ji:2  dhen:1  kloudys:2 
Niver a sylabellenow yn linenn = 7

Linenn 5
war:1  fas:1  an:1  dowr:1  yn:1  sertan:2 
Niver a sylabellenow yn linenn = 7

Linenn 6
tri:1  ferson:2  yn:1  unn:1  dywses:2 
Niver a sylabellenow yn linenn = 7

Linenn 7
ow:1  kesreynya:3  bys:1  vykken:2 
Niver a sylabellenow yn linenn = 7

Linenn 8
yn:1  meur:1  enor:2  ha:1  vertu:2 
Niver a sylabellenow yn linenn = 7

Linenn 9
My:1  haw:1  Mab:1  han:1  Spyrys:2  Sans:1 
Niver a sylabellenow yn linenn = 7

Linenn 10
tri:1  yth:1  on:1  yn:1  unn:1  substans:2 
Niver a sylabellenow yn linenn = 7

Linenn 11
komprehendys:4  yn:1  unn:1  Dyw:1 
Niver a sylabellenow yn linenn = 7

Linenn 12

Niver a sylabellenow yn linenn = 0

Linenn 13

Niver a sylabellenow yn linenn = 0

Linenn 14
My:1  yw:1  henwys:2  Dyw:1  an:1  Tas:1 
Niver a sylabellenow yn linenn = 7

Linenn 15
ollgalloesek:4  dres:1  pub:1  tra:1 
Niver a sylabellenow yn linenn = 7

Linenn 16
Skon:1  y:1  fydh:1  gwrys:1  der:1  ow:1  ras:1 
Niver a sylabellenow yn linenn = 7

Linenn 17
nev:1  plas:1  rial:2  dhe:1  m:0  trigva:2 
Niver a sylabellenow yn linenn = 7

Linenn 18
haw:1  thron-sedha:3  ow:1  bodh:1  yw:1 
Niver a sylabellenow yn linenn = 7

Linenn 19
may:1  fo:1  henna:2 
Niver a sylabellenow yn linenn = 4

Linenn 20
Han:1  nor:1  ynwedh:2  a-woeles:3 
Niver a sylabellenow yn linenn = 7

Linenn 21
skon:1  orth:1  kompas:2  a:1  vydh:1  gwrys:1 
Niver a sylabellenow yn linenn = 7

Linenn 22
Honna:2  a:1  vydh:1  ow:1  skavell:2  droes:1 
Niver a sylabellenow yn linenn = 8

Linenn 23
rag:1  ow:1  plesour:2  pup-prys:2 
Niver a sylabellenow yn linenn = 6

Linenn 24
ha:1  dhe:1  m:0  enor:2  maga:2  ta:1 
Niver a sylabellenow yn linenn = 7

Linenn 25
Nev:1  omma:2  yw:1  gwrys:1  genev:2 
Niver a sylabellenow yn linenn = 7

Linenn 26
orth:1  ow:1  dywses:2  yn:1  sertan:2 
Niver a sylabellenow yn linenn = 7

Linenn 27
Hag:1  ynni:2  y:1  fydh:1  gorrys:2 
Niver a sylabellenow yn linenn = 7

Linenn 28
neb:1  a:1  m:0  gordh:1  gans:1  joy:1  ha:1  kan:1 
Niver a sylabellenow yn linenn = 7

Linenn 29
Naw:1  ordyr:2  eledh:2  gloryus:2 
Niver a sylabellenow yn linenn = 7

Linenn 30
i:1  a:1  vydh:1  rial:2  ha:1  splann:1 
Niver a sylabellenow yn linenn = 7

Linenn 31
kannasow:3  dhymm:1  dannvenys:3 
Niver a sylabellenow yn linenn = 7

Linenn 32
rag:1  ow:1  servya:2  bys:1  vykken:2 
Niver a sylabellenow yn linenn = 7

Linenn 33
My:1  a:1  vynn:1  may:1  fons:1  nevra:2 
Niver a sylabellenow yn linenn = 7

The results for the full text can be found at

Ebrenn y'n Nos mis-Genver 2016

Feb 14, 2016

The following is a rather delayed version of Ebrenn y'n Nos (Sky at Night in Cornish) that I wrote for January 2016. Apologies that much of the observational infomation is already out of date. I have made a basic recording of it here. I will skip February and hopefully will have a version in time for March.

Dydh da ha bledhen nowydh da. Ottomma rann “Ebrenn y'n nos” mis-Genver.

An dydhyow a wra hirhe dres an mis-ma, wosa howlsav an gwav yn mis-Kevardhu.
Diworth Karn Bre, dy' kalann bledhen howldrevel o 0820 ha'n howlsedhes 1628. Dhe benn mis-Genver y fydh 0758 ha 1714. Y fydh a-dro dhe unn our moy a wolow dhydh.
Hag an nosow hir hwath yma spas lowr yn gorthugher gweles an sterennow.
Y'n ebrenn gorthugher an mis ma, yma rann Fordh Sen Jamys neb yw gelwys “The Milky Way” yn Sowsnek. Mars yw ebrenn tewl genes, y hyll'ta gweles band golow a-dreus an ebrenn, hemm yw milyow a ster y'gan galaksi. 

Yma nebes bagas ster kepar ha M45 (an Pleiades), ha'n Hyades yn ranneves Taurus, M35 yn Gemini, ha M44 yn Cancer. Mars yw diwlagatell dhis, yns i dhe les aga gweles drestans.
Yn ranneves Orion, yma neppyth pur dhe les, yma an Niwl-ster Meur Orion, M42. Yth yw yn rann isella an rannneves, a-dro dhe nebes ster gelwys 'an kledha Orion'. An niwl-ster ma yw 'meythrinva' ster, ha sterennow gwrys a gass hidrogen ha helium. Yth yw gweladow dre dhewlagas nooth, ha gwell yw y semlant dre diwlagatell po pellweler. Y liw yw neb gwyrdh yn pellweler, mes yn skeusennow, yth yw marthus rudh. An diffrans yw drefenn ny yll agan dewlagas gweles an rudh yn ta hag yw hi tewl, mes fylmow, po kameras bysyel a yll gweles an rudh gwell. An liw a dhos diworth elektron dhe movya dhe unn nivel dhe onan arall yn atom hidrojen. Hemm yw “Hydrogen-alpha” orth 656.28nm yn rann rudh spektrum elektromagnetek. 

Skeusenn an Dydh Steronieth

An planetys: 

Yow a wra sevel a-dro dhe deg our ha hanter yn gorthugher ha bos ughel yn ebrenn bora. An gwella mis dh'y weles an blydhen ma yw Meurth hag ev ughel yn soth a-dro dhe hanternos.
Meurth a wra sevel a-dro dhe 2 eur myttin, hag yw yn rannneves Virgo. Ev a wra diskwedhes yn ta mis Me.
Gwener ha Sadorn yw yn ebrenn bora ynwedh mes isella ha moy ogas dhe'n howl. Mergher yw gweladow isel yn bora hag yw possybl gweles pymp planet: Mergher, Gwener, Meurth, Yow ha Sadorn dhe'n keth prys. Henn yw possybl diwettha seythun mis-Genver ha kynsa seythun mis-Hwevrer, Mergher a wra movya uskis hag yw gwelys moy ogas dhe'n howl diwettha yn mis-Hwevrer.

Skeusenn an Dydh Steronieth

An loor:
kwartron diwettha o 2a mis-Genver, loor nowydh 10ves mis-Genver, kwartron kynsa 17ves ha loor leun 24a, ha kwartron diwettha 31ves mis-Genver.

Yth esa lonch fusenn gans negys privedh SpaceX a wra lonchya lorell Jason 3 17ves mis-Genver. Sewen a wrug an lonch hag an loerell a wra musura ughelder an keynvor dre radar. An fusenn y honan o Falcon 9, yth esa an towl dhe dira an fusenn war skath-hir yn Keynvor Hebask, dhe wul an fusenn dasusadow. Soweth na wrug an tirans seweni hag onan an garrow-tira dhe fyllel ha fusenn dhe goedha war-nans.

Yth esa lonch lorell a wra keskomunya gans lorellow erell gans laser. Lorellow yn resegva isel a wra dannvon data dre laser dhe lorell yn resegva dorsevelyek, avel rann “European Data Relay System. Dres henna, y hyll an dehwelyans data diworth lorellow bos gwellhes.

Bys nessa prys

The Bayesian classifier function in the dissertation - Part 4: Constructing and evaulating the classifier

Jan 7, 2016

I made global histograms for all of the HRSC DTM tiles of the feature vector (NDR, DTM, slope, Asp, LgtCrv, CrsCrv) , and also histograms for the zonal statistics (I did this for 'head' areas, 'extent' areas and 'context' areas.)

Histograms for zonal statistics for 'extent' shapefile polygons:

Histograms for all of the HRSC tile area:

This is the area of study, I only used the HRSC tiles that I had already identified as having a Souness object. It would perhaps have been better to got all the HRSC tiles between 25° and 60° in both hemispheres, for a more 'global' set of background.

I made a 4 component gaussian fit to these, and then had analytic functions of feature variables, and then made ratios of the zonal/global as functions of the feature vector.
The abundance of Souness GLFs when expressed as a ratio looks less bimodal than the absolute number, since the bimodality is also present in the underlying elevation distribution (though with a caveat for the 'background' excluding areas where there are no Souness objects)
Slopes of 10-20° are favoured.
Both longitudinal and cross-sectional curvature is favoured to be negative, ie. concave slopes within hollows.

I defined the classifier function K as the product of all of these (excluding NDR since it was locally normalised in the HRSC data), and used ln(K) in my interpretation, and in the dissertation made a basic z-test showing the classifier was better than random at predicting the glaciers locations, but looking at a number of fields, it was clear the classifier was not specific to the particular type of object Souness catalogued, but perhaps could be useful as a search tool.

Souness GLF elevation profiles

Jan 6, 2016

I have decided, despite the general poor quality of code, to put many of my Python scripts that I used to process my dissertation online. It is not likely to be very useful to someone else, because it is particularly built around the dataset that I amassed from HRSC Mars Express DTMs and written in a very ad-hoc way.

The scripts are at

One thing I have developed a little beyond my dissertation is the profile along the midpoint of the glacier. I have extended my script that generated the shapefiles of the glacier extents to do circles following the mid-line all the way from head to terminus.

Souness 1273, 944, 945, 948, 946 and 947 in the north of Greg crater

I used gdallocationinfo called from the command-line via subprocess.check_output in Python to retrive the elevation from the HRSC data for all of the Souness GLFs that have HRSC data available. 

All of the Souness GLFs superplotted on one crowded looking PNG file

The same figure with scaling distance along midline and elevation difference to dimensionless number between 0 and 1

All Posts