diff --git a/scripts/bcp47-transformrule2kbv.xslt b/scripts/bcp47-transformrule2kbv.xslt
new file mode 100644
index 000000000..95e51bb5a
--- /dev/null
+++ b/scripts/bcp47-transformrule2kbv.xslt
@@ -0,0 +1,30 @@
+
+
+ https://id.kb.se/i18n/bcp47/transform/m0/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scripts/create_i18n_datasets.py b/scripts/create_i18n_datasets.py
index b63b2667a..0278df448 100644
--- a/scripts/create_i18n_datasets.py
+++ b/scripts/create_i18n_datasets.py
@@ -17,6 +17,7 @@
('grc', 'Grek', 'x0-skr-1980'),
('mn', 'Cyrl', 'x0-lessing'),
+ # TODO: keep code, but link to specific: iso-1995/Cyrl-t-Latn
('be', 'Cyrl', 'm0-iso-1995'),
('bg', 'Cyrl', 'm0-iso-1995'),
('kk', 'Cyrl', 'm0-iso-1995'),
@@ -36,8 +37,16 @@
('mn', 'Mong', 'm0-alaloc'),
('ar', 'Arab', 'm0-alaloc'),
+ ('kk', 'Arab', 'm0-alaloc'),
+
+ # TODO: do we have tables for these? (Actually, TODO: collect the ones we have tables for.)
+ ('ja', 'Hira', 'm0-alaloc'),
+ ('ja', 'Kana', 'm0-alaloc'),
+ # Hrkt (broader of the two above) too?
]
+# TODO: Cyrl for VariantTitle can also be according to x0-kr76
+
ALA_LOC_NO_SCRIPT = ['am', 'chu', 'ka', 'hy']
ALA_LOC_NON_SLAVIC_CYRILLIC = [
diff --git a/source/i18n/collections.ttl b/source/i18n/collections.ttl
index 57d96b8be..09dfb8aca 100644
--- a/source/i18n/collections.ttl
+++ b/source/i18n/collections.ttl
@@ -1,7 +1,11 @@
prefix :
base
- a :Collection ;
+# TODO: link to specific rules (combos of language and rule) instead? E.g. ...
+# ... Or link specific (our selected) forms to the collection? E.g. like:
+# :inCollection .
+
+ a :TermCollection ;
:label "Libris urval av translittereringsregler"@sv, "Libris selection of transliteration rules"@en ;
:collectionItem ,
,
diff --git a/source/i18n/rules.ttl b/source/i18n/rules.ttl
index 28eb68215..9113f8706 100644
--- a/source/i18n/rules.ttl
+++ b/source/i18n/rules.ttl
@@ -1,6 +1,16 @@
+# See also:
+#
prefix :
base
+ a :TermCollection ;
+ :code "m0";
+ :label "Standardiserade språktransformationsregler enligt BCP47"@sv .
+
+ a :TermCollection ;
+ :code "x0";
+ :label "Libris-specifika språktransformationsregler"@sv .
+
a :LanguageTransformRules ;
:label "Translitterering enligt Ferdinand Lessings schema"@sv ;
:code "lessing" ;
@@ -11,11 +21,47 @@ base
:code "skr-1980" ;
:inCollection .
+ a :LanguageTransformRules ; # :LanguageTranscriptionRules
+ :label "Transkribering enligt KR76 (Kjellberg)"@sv ;
+ :code "x0-kr76" ;
+ :inCollection ;
+ :languageFormSpecification [ a :TransformedLanguageForm ;
+ :inLangScript ;
+ :fromLangScript ] ;
+ :seeAlso .
+
+# TODO: form OK?
+ a :LanguageTransformRules ;
+ :broader ;
+ :inCollection ;
+ :languageFormSpecification [ a :TransformedLanguageForm ;
+ :inLangScript ;
+ :fromLangScript ] ;
+ :label "Translitterering enligt LC:s tabell, utskrivning av korta vokaler enligt Farhang-i buzurg-i sukhan (1. uppl.)"@sv .
+
+ a :LanguageTransformRules ;
+ :code "iso" ;
+ :label "Translitterering enligt ISO-standard"@sv ;
+ :inCollection .
+
a :LanguageTransformRules ;
- :label "Translitterering enligt ISO 9:1995"@sv ;
:code "iso-1995" ;
+ :label "Translitterering enligt ISO-standard från 1995"@sv ;
+ :broader ;
:inCollection .
+ a :LanguageTransformRules ;
+ # NOTE: no :inCollection , since this specialization can be found by:
+ # { ?tlang :langTransformAccordingTo ?rule ; ?p ?o .
+ # ?rule :languageFormSpecification [ ?p ?o ] . }
+ :broader ;
+ :label "Translitterering av kyrillisk till latinsk skrift enligt ISO 9:1995"@sv ;
+ :languageFormSpecification [ a :TransformedLanguageForm ;
+ :inLangScript ;
+ :fromLangScript ] ;
+ :seeAlso ,
+ .
+
a :LanguageTransformRules ;
:label "Transkribering enligt Btj:s praxis för folkbiblioteken"@sv ;
:code "btj" ;
diff --git a/source/i18n/scripts.ttl b/source/i18n/scripts.ttl
index d84dbe30c..994588f3d 100644
--- a/source/i18n/scripts.ttl
+++ b/source/i18n/scripts.ttl
@@ -1,4 +1,19 @@
-# Start here:
+# Find codes here:
+# SCRIPTCODE=<...>
+# curl -s -L -HAccept:text/turtle https://query.wikidata.org/sparql --data-urlencode "query=
+# prefix :
+# construct {
+# ?s a :LanguageScript ;
+# :code '$SCRIPTCODE' ;
+# :exactMatch ?item ;
+# :prefLabel ?label .
+# } where {
+# ?item # wdt:P31 wd:Q182133 ;
+# rdfs:label ?label ; wdt:P506 '$SCRIPTCODE' .
+# bind(IRI(concat('https://id.kb.se/i18n/script/', '$SCRIPTCODE')) as ?s)
+# }
+# "
+
prefix :
base
@@ -32,11 +47,21 @@ base
:exactMatch ;
skos:prefLabel "传统汉字"@zh-hans , "傳統漢字"@zh-hant , "傳統漢字"@zh-hk , "传统汉字"@zh-cn , "传统汉字"@zh-sg , "傳統漢字"@zh-tw , "Aksara Cina tradhisional"@jv , "tradycyjne pismo chińskie"@pl , "Txinera tradizional"@eu , "Nkárí asụsụ China nke óménàlà"@ig , "sinogramme traditionnel"@fr , "정체자"@ko , "caracteres chinos tradicionales"@es , "Kinezo tradisional"@lad , "Tradisionele Sjinese karakters"@af , "Tulisan Cina Tradisional"@ms , "Caratteri cinesi tradizionali"@it , "Hanzi tradisional"@id , "Langzeichen"@de , "繁体字"@ja , "chữ Hán phồn thể"@vi , "傳統字"@yue , "traditional Chinese characters"@en , "Tradicionalno kinesko pismo"@sh , "حروف صينية تقليدية"@ar , "traditionella kinesiska tecken"@sv , "traditionele Chinese karakters"@nl , "पारम्परिक चीनी वर्ण"@hi , "传统汉字"@wuu , "Chinês tradicional"@pt , "Hefðbundið kínverskt tákn"@is , "традиционные китайские иероглифы"@ru , "Tradicionalno kinesko pismo"@sr-el , "Традиционално кинеско писмо"@sr-ec , "Chinu tradicional"@ast , "Geleneksel Çin yazısı"@tr , "อักษรจีนตัวเต็ม"@th , "xinès tradicional"@ca , "Perinteiset merkit"@fi , "Tradisjonell kinesisk skrift"@nn , "Традиционен китайски"@bg , "जुनी चिनी लिपी"@mr , "نویسههای چینی سنتی"@fa , "ვრცელი (ტრადიციული) ნიშნები"@ka , "Tradisyunal na panitik ng wikang Intsik"@tl , "traditionelt kinesisk"@da , "ٴداستۇرلى قىتاي جازۋى"@kk-arab , "ٴداستۇرلى قىتاي جازۋى"@kk-cn , "Dästürli qıtaý jazwı"@kk-tr , "Дәстүрлі қытай жазуы"@kk-kz , "Дәстүрлі қытай жазуы"@kk-cyrl , "Dästürli qıtaý jazwı"@kk-latn , "传统汉字"@zh , "Дәстүрлі қытай жазуы"@kk , "традиционално кинеско писмо"@sr , "Традиционално кинеско писмо"@mk , "Tradisjonell kinesisk"@nb , "字"@lzh , "традиційні китайські ієрогліфи"@uk , "روایتی چینی حروف"@ur , "hagyományos kínai írás"@hu , "Diòng-tūng Háng-cê"@cdo , "Chèng-thé-jī"@nan , "karkarakter a tradisional nga Insik"@ilo , "Tradicia ĉina skribo"@eo , "প্রথাগত চীনা অক্ষর"@bn , "Παραδοσιακοί κινεζικοί χαρακτήρες"@el , "סינית מסורתית"@he , "традицион кытай язуы"@tt , "روایتی چینی"@pnb , "ਰਵਾਇਤੀ ਚੀਨੀ ਵਰਣਮਾਲਾ"@pa , "Minat-an nga agi Tsinino"@war , "සම්ප්රදායික චීන අක්ෂර"@si , "سونتی چین یازیسی"@azb , "Tradisjonele Sineeske karakters"@fy , "ənənəvi Çin heroqrifləri"@az , "tradicionālās ķīniešu rakstzīmes"@lv , "caractere chineze traditionale"@ro , "ရိုးရာတရုတ်"@my , "ավանդական չինարեն հիերոգլիֆներ"@hy , "традыцыйныя кітайскія герогліфы"@be-tarask , "arwyddlun Tsieinëaidd traddodiadol"@cy , "cinezo tradisionałe"@vec , "ғәҙәти ҡытай иероглифтары"@ba , "tradiční čínské znaky"@cs , "តួអក្សរចិនបុរាណ"@km .
+ a :LanguageScript ;
+ :code "Hira" .
+ :exactMatch ;
+ :prefLabel "හිරගනා"@si , "Bìng Gā-miàng"@cdo , "хирагана"@udm , "ហ៊ីរ៉ាហ្កាណា"@km , "hiragana"@vec , "Hiragana"@bs , "Hiragana"@crh , "平假名"@zh-tw , "hiragana"@hu , "平假名"@zh-hk , "hiragana"@cs , "히라가나"@ko , "Hiragana"@ace , "Hiragana"@af , "هيراغانا"@ar , "هيراجانا"@arz , "hiragana"@ast , "Hiraqana əlifbası"@az , "Hiragana"@bcl , "Хірагана"@be , "хірагана"@be-tarask , "Хирагана"@bg , "Hiragana"@bjn , "হিরাগানা"@bn , "Hiragana"@br , "hiragana"@ca , "ھیراگانا"@ckb , "Hiragana"@cy , "Hiragana"@da , "Hiragana"@de , "Χιραγκάνα"@el , "hiragana"@en , "rondaj kanaoj"@eo , "hiragana"@es , "hiragana"@et , "Hiragana"@eu , "هیراگانا"@fa , "hiragana"@fi , "hiragana"@fit , "hiragana"@fr , "Hiragana"@gl , "Hiragana"@gv , "היראגאנה"@he , "हिरागाना"@hi , "Hiragana"@hr , "Հիրագանա"@hy , "hiragana"@id , "Hiragana"@is , "hiragana"@it , "平仮名"@ja , "Hiragana"@jv , "ჰირაგანა"@ka , "Hiragana"@lb , "Hiragana"@lfn , "Hiragana"@lt , "Hiragana"@lv , "平假名"@lzh , "Hiragana"@mg , "хирагана"@mhr , "хирагана"@mk , "ഹിരഗാന"@ml , "Хирагана"@mn , "Hiragana"@ms , "ဟိရဂန"@my , "Hiragana"@nah , "hiragana"@nb , "Hiragana"@nl , "hiragana"@nn , "Hiragana"@oc , "ਹੀਰਾਗਾਨਾ"@pa , "hiragana"@pl , "hiragana"@pt , "hiragana"@rmf , "Hiragana"@ro , "хирагана"@ru , "ᱦᱤᱨᱟᱜᱟᱱᱟ ᱪᱤᱠᱤ"@sat , "Hiragana"@sco , "hiragana"@se , "хирагана"@sjd , "hiragana"@sje , "hiragana"@sju , "Hiragana"@sk , "Hiragana"@sl , "hiragana"@sma , "hiragana"@smj , "hiragana"@smn , "hiragana"@sms , "хирагана"@sr , "Hiragana"@su , "hiragana"@sv , "ஹிரகனா எழுத்துக்கள்"@ta , "ฮิระงะนะ"@th , "Hiragana"@tl , "Hiragana"@tr , "хіраґана"@uk , "ہیراگانا"@ur , "Hiragana"@vi , "Hiragana"@war , "平假名"@wuu , "平假名"@yue , "平假名"@zh , "平假名"@zh-hans , "平假名"@zh-hant .
+
a :Script ;
:code "Deva" ;
:exactMatch ;
:prefLabel "天城文"@zh , "Aksara Déwanagari"@jv , "pismo dewanagari"@pl , "Diwanaqri siq'i llumpa"@qu , "devanagari"@es , "தேவநாகரி"@ta , "Devanagari"@af , "Devanagari"@oc , "Devanāgarī"@ms , "dévanágari írás"@hu , "Devanagari"@sw , "Devanaagari kiri"@et , "দেবনাগরী লিপি"@bn , "Devanāgarī"@br , "δεβαναγαρικό αλφάβητο"@el , "دیوناگری"@pnb , "Devanagari"@nl , "ديوناكري"@ar , "devanāgarī"@sv , "Devanágari"@pt , "nagario"@eo , "Devanagari"@is , "देवनागरी लिपि"@new , "деванагари"@ru , "деванагари"@sr , "Devanagari"@tr , "Devanagari"@se , "деванагари"@mk , "devanagari"@fi , "деванаґарі"@uk , "ਦੇਵਨਾਗਰੀ ਲਿਪੀ"@pa , "devanagari"@nn , "દેવનાગરી"@gu , "Devanagari alfabeto"@io , "देवनागरी"@ne , "Devanagari"@hr , "Devanāgarī"@tl , "Деванагари"@kk , "devanagari"@da , "devanagari"@fr , "אלפבית דוונאגרי"@he , "дэванагары"@be , "데바나가리 문자"@ko , "Dewanagari"@bjn , "Devanagari"@bar , "dēvanāgarī"@lv , "alfabeto devanagari"@it , "Devanagri"@hif , "Devanāgarī"@gl , "Aksara Dewanagari"@id , "Devanagari"@de , "ദേവനാഗരി"@ml , "デーヴァナーガリー"@ja , "Devanagari"@vi , "Devanagari script"@en , "देवनागरी"@sa , "देवनागरी"@hi , "Dévanágarí"@sk , "девоногарӣ"@tg , "Devanāgarī"@ku , "ದೇವನಾಗರಿ ಲಿಪಿ"@kn , "devanagari"@ro , "อักษรเทวนาครี"@th , "devanagari"@ca , "Devanagari"@la , "Devanagari"@mg , "Devanāgarī"@cy , "Devnagrī"@rmy , "Dévanágarí"@cs , "دیواناگری"@fa , "देवनागरी"@mr , "деванагари"@bg , "దేవనాగరి"@te , "დევანაგარი"@ka , "Devanagari raštas"@lt , "devanagari"@nb , "დევანაგარი"@xmf , "Devanagari"@eu , "Devanagari"@sh , "Devanagari"@az , "دیوناگری"@ur , "дэванагары"@be-tarask , "Devanāgarī"@gd , "Devanagari"@uz , "ଦେବନାଗରୀ"@or , "devanagari"@bs , "alfabbetu devanagari"@scn , "Դևանագարի"@hy , "دېوناگري"@ps , "देवनागरी लिपि"@bho , "देवनागरी लिपी"@gom , "देवनागरी"@pi , "Devanagari"@frr , "دیوناگري"@sd , "देवनागरी"@mai , "דעוואנאגארי"@yi , "देवनागरि"@dty , "alfabeta devanagari"@lfn , "devanágari"@ast , "天城文"@wuu , "天城字"@yue , "Dêvenagerki"@diq , "Dewanágarí"@pam , "Деванагари"@tt , "දේවනාගරී"@si , "អក្សរទេវនគរី"@km , "ᱫᱮᱵᱽᱱᱟᱜᱽᱨᱤ"@sat , "ꯗꯦꯚꯅꯥꯒꯔꯤ ꯃꯌꯦꯛ"@mni , "alfabeto devanagari"@vec , "دیوناگری"@ks , "ဒေဝနာဂရီအက္ခရာ"@my .
+ a :LanguageScript ;
+ :code "Kana" .
+ :exactMatch ;
+ :prefLabel "काना"@hi , "Kana"@bs , "Kana"@de , "Κάνα"@el , "Kana"@it , "Kana"@nl , "Kana"@et , "Kana"@gl , "Kana"@ro , "仮名"@ja , "Кана"@tg , "кана"@ru , "كانا"@ar , "คะนะ"@th , "kana"@fi , "假名"@zh , "假名"@zh-hant , "假名"@zh-tw , "Kana"@af , "কানা"@bn , "Kana"@hr , "Kana"@mg , "Kana"@oc , "Kana"@sk , "Kana"@vi , "Kana"@nan , "kana"@en , "کانا"@ur , "假名"@wuu , "kana"@ast , "kana"@ca , "kanao"@eo , "קאנה"@he , "кана"@be-tarask , "kana"@cs , "kana"@da , "kana"@fr , "kana"@hu , "가나"@ko , "kana"@sv , "კანა"@ka , "Kana"@jv , "Kana"@su , "kana"@pl , "Kana"@bcl , "Кана"@be , "кана"@bg , "Kana"@cdo , "کانا"@ckb , "kana"@es , "kana"@eu , "کانا"@fa , "Kana"@fo , "Kana"@hak , "կանա"@hy , "Aksara kana"@id , "ponslakyle'u"@jbo , "Kana"@la , "假名"@lzh , "кана"@mk , "Tulisan Kana"@ms , "ခန"@my , "kana"@nb , "kana"@nn , "kana"@pt , "ᱠᱟᱱᱟ ᱪᱤᱠᱤ"@sat , "kana"@sco , "кана"@sr , "Kana"@szl , "Kana"@tg-latn , "Kana"@tl , "Hiragana ve Katakana"@tr , "кана"@uk , "假名"@yue , "假名"@zh-cn , "假名"@zh-hans , "假名"@zh-hk , "假名"@zh-sg , "Kana (yapon alifbosi)"@uz , "кана"@udm .
+
a :Script ;
:code "Latn" ;
:exactMatch ;
diff --git a/source/i18n/tlangs.ttl b/source/i18n/tlangs.ttl
index 1c8f85ffb..99f3cdca1 100644
--- a/source/i18n/tlangs.ttl
+++ b/source/i18n/tlangs.ttl
@@ -28,49 +28,49 @@ base
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "bg-Latn-t-bg-Cyrl-m0-iso-1995"^^:BCP47 ;
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "kk-Latn-t-kk-Cyrl-m0-iso-1995"^^:BCP47 ;
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "mk-Latn-t-mk-Cyrl-m0-iso-1995"^^:BCP47 ;
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "ru-Latn-t-ru-Cyrl-m0-iso-1995"^^:BCP47 ;
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "sr-Latn-t-sr-Cyrl-m0-iso-1995"^^:BCP47 ;
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "uk-Latn-t-uk-Cyrl-m0-iso-1995"^^:BCP47 ;
:inLanguage ;
:inLangScript ;
:fromLangScript ;
- :langTransformAccordingTo .
+ :langTransformAccordingTo .
a :TransformedLanguageForm ;
:code "hi-Latn-t-hi-Deva-m0-alaloc"^^:BCP47 ;
@@ -142,6 +142,27 @@ base
:fromLangScript ;
:langTransformAccordingTo .
+ a :TransformedLanguageForm ;
+ :code "kk-Latn-t-kk-Arab-m0-alaloc"^^:BCP47 ;
+ :inLanguage ;
+ :inLangScript ;
+ :fromLangScript ;
+ :langTransformAccordingTo .
+
+ a :TransformedLanguageForm ;
+ :code "ja-Latn-t-ja-Hira-m0-alaloc"^^:BCP47 ;
+ :inLanguage ;
+ :inLangScript ;
+ :fromLangScript ;
+ :langTransformAccordingTo .
+
+ a :TransformedLanguageForm ;
+ :code "ja-Latn-t-ja-Kana-m0-alaloc"^^:BCP47 ;
+ :inLanguage ;
+ :inLangScript ;
+ :fromLangScript ;
+ :langTransformAccordingTo .
+
a :TransformedLanguageForm ;
:code "am-Latn-t-am-m0-alaloc"^^:BCP47 ;
:inLanguage ;
diff --git a/source/vocab/concepts.ttl b/source/vocab/concepts.ttl
index 8850111cf..c07ee101e 100644
--- a/source/vocab/concepts.ttl
+++ b/source/vocab/concepts.ttl
@@ -77,6 +77,11 @@
rdfs:label "Språktransformationsregler"@sv, "Language transform rules"@en;
rdfs:subClassOf :ConceptScheme .
+:specifiesLanguageForm a owl:ObjectProperty ;
+ rdfs:label "specificerar språkform"@sv, "specifies language form"@en;
+ rdfs:domain :LanguageTransformRules ;
+ rdfs:range :TransformedLanguageForm .
+
:Nationality a owl:Class ;
rdfs:label "Nationality"@en, "Nationalitet"@sv .