Module:akk-IPA
Appearance
- The following documentation is located at Module:akk-IPA/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox (diff)
This module generates the phonemic IPA transcription of Akkadian entries. It runs {{akk-IPA}}
.
Testcases
All tests passed. (refresh)
Text | Expected | Actual | Comments | |
---|---|---|---|---|
abnum | ˈab.num | ˈab.num | ||
abum | ˈa.bum | ˈa.bum | ||
adi | ˈa.di | ˈa.di | ||
agammum | aˈɡam.mum | aˈɡam.mum | ||
akalum | ˈa.ka.lum | ˈa.ka.lum | ||
akālum | aˈkaː.lum | aˈkaː.lum | ||
alaktum | aˈlak.tum | aˈlak.tum | ||
alpum | ˈal.pum | ˈal.pum | ||
alākum | aˈlaː.kum | aˈlaː.kum | ||
amtum | ˈam.tum | ˈam.tum | ||
amurdinnum | a.murˈdin.num | a.murˈdin.num | ||
anāku | aˈnaː.ku | aˈnaː.ku | ||
aplum | ˈap.lum | ˈap.lum | ||
aptum | ˈap.tum | ˈap.tum | ||
arārum | aˈraː.rum | aˈraː.rum | ||
atta | ˈat.ta | ˈat.ta | ||
atti | ˈat.ti | ˈat.ti | ||
-atum | -a.tum | -a.tum | ||
awīltum | aˈwiːl.tum | aˈwiːl.tum | ||
awīlum | aˈwiː.lum | aˈwiː.lum | ||
aššatum | ˈaʃ.ʃa.tum | ˈaʃ.ʃa.tum | ||
aḫum | ˈa.χum | ˈa.χum | ||
aḫûm | aˈχuːm | aˈχuːm | ||
aḫātum | aˈχaː.tum | aˈχaː.tum | ||
birkum | ˈbir.kum | ˈbir.kum | ||
Bābilim | ˈbaː.bi.lim | ˈbaː.bi.lim | ||
bābum | ˈbaː.bum | ˈbaː.bum | ||
bēltum | ˈbeːl.tum | ˈbeːl.tum | ||
bēlum | ˈbeː.lum | ˈbeː.lum | ||
bītum | ˈbiː.tum | ˈbiː.tum | ||
damāqum | daˈmaː.qum | daˈmaː.qum | ||
danānum | daˈnaː.num | daˈnaː.num | ||
dayyānum | dajˈjaː.num | dajˈjaː.num | ||
dārum | ˈdaː.rum | ˈdaː.rum | ||
eleppum | eˈlep.pum | eˈlep.pum | ||
elēpum | eˈleː.pum | eˈleː.pum | ||
emūqum | eˈmuː.qum | eˈmuː.qum | ||
eperum | ˈe.pe.rum | ˈe.pe.rum | ||
erbum | ˈer.bum | ˈer.bum | ||
ergilum | ˈer.ɡi.lum | ˈer.ɡi.lum | ||
erṣetum | ˈer.sˤe.tum | ˈer.sˤe.tum | ||
gišimmarum | ɡiˈʃim.ma.rum | ɡiˈʃim.ma.rum | ||
idum | ˈi.dum | ˈi.dum | ||
ilkum | ˈil.kum | ˈil.kum | ||
iltum | ˈil.tum | ˈil.tum | ||
ilum | ˈi.lum | ˈi.lum | ||
imērum | iˈmeː.rum | iˈmeː.rum | ||
ina | ˈi.na | ˈi.na | ||
itti | ˈit.ti | ˈit.ti | ||
išarum | ˈi.ʃa.rum | ˈi.ʃa.rum | ||
išdum | ˈiʃ.dum | ˈiʃ.dum | ||
Ištar | ˈiʃ.tar | ˈiʃ.tar | ||
ištēn | iʃˈteːn | iʃˈteːn | ||
iṣum | ˈi.sˤum | ˈi.sˤum | ||
kakkabum | ˈkak.ka.bum | ˈkak.ka.bum | ||
kalbum | ˈkal.bum | ˈkal.bum | ||
kankum | ˈkan.kum | ˈkan.kum | ||
kanākum | kaˈnaː.kum | kaˈnaː.kum | ||
kanīkum | kaˈniː.kum | kaˈniː.kum | ||
kappum | ˈkap.pum | ˈkap.pum | ||
kaspum | ˈkas.pum | ˈkas.pum | ||
kašādum | kaˈʃaː.dum | kaˈʃaː.dum | ||
kirûm | kiˈruːm | kiˈruːm | ||
kunukkum | kuˈnuk.kum | kuˈnuk.kum | ||
kāsum | ˈkaː.sum | ˈkaː.sum | ||
lamassum | laˈmas.sum | laˈmas.sum | ||
libbum | ˈlib.bum | ˈlib.bum | ||
lûm | ˈluːm | ˈluːm | ||
lā | laː | laː | ||
līmum | ˈliː.mum | ˈliː.mum | ||
lītum | ˈliː.tum | ˈliː.tum | ||
marrum | ˈmar.rum | ˈmar.rum | ||
mazzaztum | mazˈzaz.tum | mazˈzaz.tum | ||
midrum | ˈmid.rum | ˈmid.rum | ||
musukkannum | mu.sukˈkan.num | mu.sukˈkan.num | ||
mutum | ˈmu.tum | ˈmu.tum | ||
muškēnum | muʃˈkeː.num | muʃˈkeː.num | ||
mû | ˈmuː | ˈmuː | ||
mārtum | ˈmaːr.tum | ˈmaːr.tum | ||
mārum | ˈmaː.rum | ˈmaː.rum | ||
mātum | ˈmaː.tum | ˈmaː.tum | ||
mēsum | ˈmeː.sum | ˈmeː.sum | ||
nadānum | naˈdaː.num | naˈdaː.num | ||
nagbum | ˈnaɡ.bum | ˈnaɡ.bum | ||
nārum | ˈnaː.rum | ˈnaː.rum | ||
nīšum | ˈniː.ʃum | ˈniː.ʃum | ||
paššūrum | paʃˈʃuː.rum | paʃˈʃuː.rum | ||
pûm | ˈpuːm | ˈpuːm | ||
pān šattim | ˈpaːn ˈʃat.tim | ˈpaːn ˈʃat.tim | ||
pānum | ˈpaː.num | ˈpaː.num | ||
qabûm | qaˈbuːm | qaˈbuːm | ||
qanûm | qaˈnuːm | qaˈnuːm | ||
qaqqadum | ˈqaq.qa.dum | ˈqaq.qa.dum | ||
qaqqarum | ˈqaq.qa.rum | ˈqaq.qa.rum | ||
qarnum | ˈqar.num | ˈqar.num | ||
rēšum | ˈreː.ʃum | ˈreː.ʃum | ||
sinništum | sinˈniʃ.tum | sinˈniʃ.tum | ||
sīḫum | ˈsiː.χum | ˈsiː.χum | ||
u | u | u | ||
ugārum | uˈɡaː.rum | uˈɡaː.rum | ||
ummum | ˈum.mum | ˈum.mum | ||
Urarṭu | uˈrar.tˤu | uˈrar.tˤu | ||
urrum | ˈur.rum | ˈur.rum | ||
uznum | ˈuz.num | ˈuz.num | ||
waklum | ˈwak.lum | ˈwak.lum | ||
walādum | waˈlaː.dum | waˈlaː.dum | ||
wardum | ˈwar.dum | ˈwar.dum | ||
warāqum | waˈraː.qum | waˈraː.qum | ||
warḫum | ˈwar.χum | ˈwar.χum | ||
yâti | ˈjaː.ti | ˈjaː.ti | ||
zikarum | ˈzi.ka.rum | ˈzi.ka.rum | ||
zikrum | ˈzik.rum | ˈzik.rum | ||
ziqqurratum | ziqˈqur.ra.tum | ziqˈqur.ra.tum | ||
ālikum | ˈaː.li.kum | ˈaː.li.kum | ||
ālum | ˈaː.lum | ˈaː.lum | ||
ēkallum | eːˈkal.lum | eːˈkal.lum | ||
ēnum | ˈeː.num | ˈeː.num | ||
-ī | -iː | -iː | ||
īkum | ˈiː.kum | ˈiː.kum | ||
īnum | ˈiː.num | ˈiː.num | ||
ša | ʃa | ʃa | ||
šamaššammum | ʃa.maʃˈʃam.mum | ʃa.maʃˈʃam.mum | ||
šammi Šamaš | ˈʃam.mi ˈʃa.maʃ | ˈʃam.mi ˈʃa.maʃ | ||
šammum | ˈʃam.mum | ˈʃam.mum | ||
šamnum | ˈʃam.num | ˈʃam.num | ||
šamû | ʃaˈmuː | ʃaˈmuː | ||
šamšum | ˈʃam.ʃum | ˈʃam.ʃum | ||
šarqum | ˈʃar.qum | ˈʃar.qum | ||
šarratum | ˈʃar.ra.tum | ˈʃar.ra.tum | ||
šarrum | ˈʃar.rum | ˈʃar.rum | ||
Šarrum-kīn | ʃar.rum-ˈkiːn | ʃar.rum-ˈkiːn | ||
šarrāqum | ʃarˈraː.qum | ʃarˈraː.qum | ||
šarāqum | ʃaˈraː.qum | ʃaˈraː.qum | ||
šattum | ˈʃat.tum | ˈʃat.tum | ||
šinnum | ˈʃin.num | ˈʃin.num | ||
šumma | ˈʃum.ma | ˈʃum.ma | ||
šumum | ˈʃu.mum | ˈʃu.mum | ||
šārtum | ˈʃaːr.tum | ˈʃaːr.tum | ||
šēdum | ˈʃeː.dum | ˈʃeː.dum | ||
šīpātum | ʃiːˈpaː.tum | ʃiːˈpaː.tum | ||
šūmū | ˈʃuː.muː | ˈʃuː.muː | ||
ūmum | ˈuː.mum | ˈuː.mum | ||
ḫalāqum | χaˈlaː.qum | χaˈlaː.qum | ||
ḫaṣṣinnum | χasˤˈsˤin.num | χasˤˈsˤin.num | ||
ḫurāṣum | χuˈraː.sˤum | χuˈraː.sˤum | ||
ṣerretum | ˈsˤer.re.tum | ˈsˤer.re.tum | ||
ṣeḫrum | ˈsˤeχ.rum | ˈsˤeχ.rum | ||
ṣeḫērum | sˤeˈχeː.rum | sˤeˈχeː.rum | ||
ṣuprum | ˈsˤup.rum | ˈsˤup.rum | ||
ṣuḫārtum | sˤuˈχaːr.tum | sˤuˈχaːr.tum | ||
ṣuḫārum | sˤuˈχaː.rum | sˤuˈχaː.rum | ||
ṣābum | ˈsˤaː.bum | ˈsˤaː.bum | ||
ṭabtum | ˈtˤab.tum | ˈtˤab.tum | ||
ṭuppum | ˈtˤup.pum | ˈtˤup.pum | ||
ṭābum | ˈtˤaː.bum | ˈtˤaː.bum |
References
- Huehnergard, John (2018 June 13) “Lesson 1”, in A Grammar of Akkadian (Third Edition) (Harvard Semitic series; Issue 45), Leiden, The Netherlands: Brill, →ISBN, pages 1-4 ,
local export = {}
local s = mw.ustring.gsub
local m = mw.ustring.match
local C = "[ʔbdɡχklmnpqrsʃtwjz]"
local V = "[aeiuāēīūâêîû]"
local c = {
{"ṭ", "tˤ"},
{"ṣ", "sˤ"},
{"š", "ʃ"},
{"y", "j"},
{"g", "ɡ"},
{"ḫ", "χ"},
{"'", "ʔ"},
{"(" .. V .. C .. "?ˤ?)(" .. C .. "ˤ?)%f" .. V, "%1.%2"}
}
local d = {
{"[āâ]", "aː"},
{"[ēê]", "eː"},
{"[īî]", "iː"},
{"[ūû]", "uː"}
}
function export.pronunciation_phonemic(word)
word = mw.ustring.lower(word)
for a = 1, #c do
word = s(word, c[a][1], c[a][2])
end
local N = {}
local i = 0
for a in string.gmatch(word, "%S+") do
i = i+1
N[i] = a
end
for a = 1, #N do
if m(N[a], C .. "?ˤ?[âêîû]$") ~= nil then --last syllable is ultraheavy (circumflex)
N[a] = s(N[a], "%.?(" .. C .. "?ˤ?[âêîû])$", "ˈ%1") --final stress
elseif m(N[a], C .. "?ˤ?[āēīūâêîû]" .. C .. "ˤ?$") ~= nil then --again (any long V, + C)
N[a] = s(N[a], "%.?(" .. C .. "?ˤ?[āēīūâêîû]" .. C .. "ˤ?)$", "ˈ%1") --final stress
elseif m(s(N[a], C .. "ˤ?" .. V .. C .. "?ˤ?$", ""), C .. "?ˤ?" .. "[āēīūâêîû]%.") ~= nil or m(s(N[a], C .. "ˤ?" .. V .. C .. "?ˤ?$", ""), C .. "?ˤ?" .. "[aeiuāēīū]" .. C .. "ˤ?%.") ~= nil then --otherwise, detects if there is (not where it is) a non-final heavy or ultraheavy syllable (long V, or any non-circumflex + C)
local n = ""
for b = 1, 5 do --arbitrary, find how to count syllables
N[a] = s(N[a], "%.?(" .. C .. "?ˤ?" .. "[āēīūâêîû]%." .. n .. C .. "ˤ?" .. V .. C .. "?ˤ?)$", "ˈ%1") --long V
N[a] = s(s(N[a], "%.?(" .. C .. "?ˤ?" .. "[aeiuāēīū]" .. C .. "ˤ?%." .. n .. C .. "ˤ?" .. V .. C .. "?ˤ?)$", "ˈ%1"), "ˈˈ", "ˈ") --non-circumflex + C
n = n .. C .. "ˤ?[aeiu]%." --+1 light syllable
end
else --no non-final heavy nor ultraheavy syllable detected, ie. there are only non-final light ones
N[a] = s(N[a], "^( ?)(" .. C .. "?ˤ?[aeiu]%.)", "%1ˈ%2") --initial stress
end
end
word = table.concat(N, " ")
for a = 1, #d do
word = s(word, d[a][1], d[a][2])
end
return word
end
function export.show(frame)
local results = {}
table.insert(results, {pron = "/" .. export.pronunciation_phonemic(mw.title.getCurrentTitle().text) .. "/"})
local lang = require("Module:languages").getByCode("akk")
return "* " .. require("Module:accent_qualifier").format_qualifiers(lang, {'[[w:Akkadian language|Old Babylonian]]'}) .. " " .. require("Module:IPA").format_IPA_full { lang = lang, items = results }
end
return export