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 .