Closed webdev778 closed 11 months ago
We should develop a data model in LutaML for this: https://github.com/lutaml/lutaml-uml
i.e.
STANDARD_STRING_KEYS = %i{authority_id id
language source_script destination_script
name url creation_date adoption_date description
character source confirmation_date}
STANDARD_ARRAY_KEYS = %i{notes}
NONSTANDARD_KEYS = %i{special_rules original_description original_notes
implementation_notes}
NECESSARY_KEYS = %i{name language source_script destination_script}
=> in LutaML syntax:
class SystemMetadata {
definition {
Describes metadata of a script conversion system.
}
authority_id: String {
definition {
Authority identifier.
}
}
id: String {
definition {
Identifier of this system.
}
}
language: Iso639Code[0..*] {
definition {
Language that the system processes expressed as an ISO 639 code.
}
}
sourceScript: Iso15924Code {
definition {
Script system of the input text, expressed as an ISO 15924 code.
}
}
destinationScript: Iso15924Code {
definition {
Script system of the output text, expressed as an ISO 15924 code.
}
}
name: LocalizedStrings {
definition {
Name of the system.
}
}
url: String {
definition {
URL of the source document.
}
}
creationDate: Iso8601Date {
definition {
Date on which this system was first created.
}
}
adoptionDate: Iso8601Date {
definition {
Date on which this system was adopted.
}
}
confirmationDate: Iso8601Date {
definition {
Date on which this system was last confirmed.
}
}
description: LocalizedStrings[0..*] {
definition {
Description of this system.
}
}
notes: LocalizedStrings[0..*] {
definition {
Notes about this system.
}
}
originalDescription: LocalizedStrings[0..*] {
definition {
Description from source document.
}
}
originalNotes: LocalizedStrings[0..*] {
definition {
Notes from source document.
}
}
implementationNotes: LocalizedStrings[0..*] {
definition {
Implementation notes.
}
}
// TODO: what are these?
character: String
source: String
special_rules: String
}
class LocalizedStrings {
definition {
String in multiple languages.
}
content: LocalizedString[0..*]
}
class LocalizedString {
definition {
String in a particular language.
}
languageCode: Iso639Code
scriptCode: Iso15924Code
string: String
}
@webdev778 can you help fix/convert the erroneous metadata format of those systems listed? Thanks!
This issue has been fixed by the commit interscript/maps@78ca96cfd907a208bb3e91400ce1bfb1372804a2
and this commit https://github.com/interscript/interscript-ruby/commit/873318113627bc577fec2ffafd37d5b536e59420
Description
Checking the present systems, we can easily notice that metadata's properties and content types and formats vary from system to system a little bit. A few of them have some special keys like
special_rules original_description original_notes implementation_notes
that others don't have. Also regardingDescription
there are two standards. One isanother is
Further, the format of description is not consistent.
which will be resulting in differently in javascript
And this inconsistency is causing several display issues on interscript.org repo This issue has been noticed originally from this PR #724 while exposing metadata.json to javascript side.
the issue(37)
for ex:
mext-jpn-Hrkt-Latn-1954
map have a different format for description property than othershk-yue-Hani-Latn-1888
What's the Standard?
Here is a draft standard and open to discuss
Problematic Systems
Fortunately, a small amount of systems have problems.