Dmitri Zagidulin: The recording and minutes archived at our GitHub We use Jitsi chat chat or IRC on the w3c ccg channel 2 Q speakers as well as to take notes so the the notes in the transcriptions are going to be. ✪
Dmitri Zagidulin: I've typed in chart type Q Plus to add yourself to the queue. ✪
Topic: Introductions & Reintroductions
Dmitri Zagidulin: And if you're not not able to type just let us know voice and we'll add it to the queue all right so let's go to introductions and reintroductions it do we have new people on the call that whenever you introduce themselves. ✪
Dmitri Zagidulin: And similarly do we have people who wants to do a quick reintroduction.. ✪
Chris_Kelly_(DIF): Perfect sorry yes I've been on the call before but it's a number of months ago since I've been so quick reintroduction is an order hi my name is Chris Kelley and I'm currently responsible for communications at the decentralized identity Foundation. ✪
Markus Sabadello: Yeah just like I could also introduce myself I'm Marcus Hospital oh I'm generally trying to participate in a lot of things in ccg and other places but I don't think I've been to this call many times before so just wanted to say say hello and I'm from from Daniel take we're a small SSI company in Vienna Austria and we are quite involved with the you. ✪
Markus Sabadello: Blockchain service infrastructure where we are working with two universities in Austria and also some other universities across the you on some digital diploma use cases some also very curious to learn more about what this group is doing at the moment. ✪
Dmitri Zagidulin: Thanks Mark assigning a really great glad to have you and do you mind if I paste a link to your medium post here in the chat. ✪
Dmitri Zagidulin: All right Christian thank you go ahead. ✪
Chris_Kelly_(DIF): Hi there I have a small announcement to make is that if the decentralized identity Foundation is organizing an online event in a month reporting about various aspects of our work including educational credentials and verifiable credentials and SSI more generally if would be appropriate I will happily put a link to this video training page in the chat it is free it is. ✪
Chris_Kelly_(DIF): open to everybody not just DIF members.. ✪
Chris_Kelly_(DIF): DIF membership and it's a purely virtual event. ✪
Topic: Discussion of Internationalization in Edu VCs
Dmitri Zagidulin: All right so let's let's get started let's talk about internationalization and localization I'm going to paste here a link to the slides that I'll be using so you can follow along I'm also going to share screen. ✪
Dmitri Zagidulin: Though if server acts up we will all stop sharing and we can advance our own slides so here we go. ✪
Dmitri Zagidulin: Okay so can everybody see my screen. ✪
Dmitri Zagidulin: Okay fantastic okay so what is internationalization and localization and why is it relevant to us here at the VC edu and Simone and Kerri I don't see the chat here in full screen so if somebody can give me a heads-up on there's questions on them. ✪
Dmitri Zagidulin: Okay so internationalization and localization are related there's nice numeron IMS like i18n which I thought was a cool term. ✪
Dmitri Zagidulin: To avoid typing out internationalization each time so the difference though they're both related the difference is this so localization is basically what we're doing here on this call its design and specs up front so we need to make sure everybody's aware of internationalization issues in our verifiable credentials and any software and specs that we write. ✪
Dmitri Zagidulin: Out how does it relate to us so in the call I want to start the discussion I want to highlight the importance of internationalization and localization. ✪
Dmitri Zagidulin: I want to put the thought in everybody's mind that we want to. ✪
Dmitri Zagidulin: Make sure that our data models in context and schemas allow for easy internationalisation we want to make sure our specs have plenty of examples so people just can see it right off the bat and bring a couple couple of interesting difficulties and advice for implementers. ✪
Dmitri Zagidulin: So let's start with the simplest we know internationalization is going to involve translation many of the members of this task force like like Canadalike EU ✪
Dmitri Zagidulin: Deal with legal requirements and practical use cases of supporting multiple languages with verifiable credentials so what does that look like the VC data model. ✪
Dmitri Zagidulin: And by extension the json-ld serialization of the VC data model has internationalisation built-in it allows you to for each verifiable credential to specify a default language so that for example if you're in Germany and most of you use cases going to is going to be in Germany you can specify that this verifiable credential is going to be in German. ✪
Dmitri Zagidulin: Aah right off the bat at the top level if it fits your use case you can also override. ✪
Dmitri Zagidulin: The language for each particular property and you have multiple languages in there I'll show you in just a second on a property by property or Claim by claim basis and in addition to specifying the language. ✪
Dmitri Zagidulin: You're so often with some languages need to specify the direction is it being read left to right or right to left and that is an important directive for a whole bunch of software that encodes the characters parses that displays for speech readers and so on so what's an example. ✪
Dmitri Zagidulin: Safe space it's lifted directly from the JSON-LD internationalization section of the spec but basically the relevant parts are easy in the context where we have our VC context an hour credential specific one you add the at language property. ✪
Dmitri Zagidulin: Japanese specify English and so on and it's the iso to character language code. ✪
Dmitri Zagidulin: And then processing software knows how to parse the languages which encodingsto use and so on in addition to specifying it at the top level. ✪
Dmitri Zagidulin: You can override each language per field so for example. ✪
Dmitri Zagidulin: If we have a mock very simplistic credential for a person that has the person's name. ✪
Dmitri Zagidulin: The value of the name property is an array of objects and essentially each object is a translation. ✪
Dmitri Zagidulin: There's another notation that makes it even easier to process that instead of an array makes it a dictionary but that's an advanced use case we can bring it up later somebody's interested but. ✪
Dmitri Zagidulin: I just want to make make sure that everybody sees the. ✪
Dmitri Zagidulin: The conventions the technology and that it makes sense in addition to specifying the language you can also at the top level. ✪
Dmitri Zagidulin: Five the direction so for example this is a example of an object or verifiable credential in Arabic and in Arabic you have to specify that the. ✪
Dmitri Zagidulin: The direction is right to left there's part of the reason why it's good to do that is although there are string libraries that auto detect the the reading direction of the language they often try to do it by the first character of the string and sometimes especially when strings have mixed characters like in this title has has English and Arabic characters it it messes with the auto-detection so it's. ✪
Dmitri Zagidulin: To be explicit and set the direction. ✪
Dmitri Zagidulin: Specifying the language for a VC and specifying the reading Direction. ✪
Dmitri Zagidulin: All right so that's the that's the data model part that's the easy that's straightforward we can a very least know that our verifiable credentials can be multiple languages but that brings up the question. ✪
Dmitri Zagidulin: At what point do we actually localized or translate our credentials and the answer it depends on your use case for example if in your country in your jurisdiction you are legally obligated to always have credentials in let's say two languages English and French. ✪
Dmitri Zagidulin: Make sense for you as the issuer to always issue. ✪
Dmitri Zagidulin: Credentials that look like this that have an array for each translatable property in both the language that you have to support. ✪
Dmitri Zagidulin: By the way notice something that when translating. ✪
Dmitri Zagidulin: Not every property is actually translate for example the types and the contexts type specifically are machine-readable symbols they don't need to be translated it's specifically the properties that you need to localize. ✪
Dmitri Zagidulin: Just put in all of the translations you likely to need and that way whenever anybody asks for you to issue a credential you just give it to them it's already pre translated they can do whatever they want the other option if the number of languages is unbounded or if you have space constraints or for other other reasons you could ask API time. ✪
Dmitri Zagidulin: And this gets into VC API issues and we'll have this discussion with the VC API task force as well of how to use standard HTTP header properties that says I would like I accept this language so I would like whatever you issue to me to be retranslated pre localized in the following language so does this part make sense does this question that. ✪
Kerri Lemoie: Hey I Dimitri we have a Marcos in the queue. ✪
Dmitri Zagidulin: No problem no problem and Marcus please feel free to jump in on all of these because you have a lot more experience with a nationalization having done the. ✪
Dmitri Zagidulin: Any questions about this central question. ✪
Dmitri Zagidulin: So what else is involved let's talk about labels so so far we've been talking about translating and localizing the data itself. ✪
Dmitri Zagidulin: So the names most often the descriptions so for example if you're dealing with a credential that is a course completion credential or diploma credential oftentimes they have a human readable description field we're in complete sentences it says this diploma does has the following requirements and is issued to such and such people and so on. ✪
Dmitri Zagidulin: And those to be translated in multiple languages it's hard to do automatically you're very likely going to be using translators pre translating those fields and then having your software deal with that either as we said at issue time or when you're setting up the template. ✪
Nate_Otto_(Badgr/CSky): Don't know if I can actually unmute but my comment was this is all making sense we're definitely talking about it at the issuer side here and at some point you know it'll make sense to think about like what is the person consuming these badges need to do to process all of the different possible options for ways that language might be specified I think 90% of the difficulty or challenges in working with VCS that have the possibility of internationalization will definitely be at that. ✪
Nate_Otto_(Badgr/CSky): consuming side turning them back into meaningful value so I'm looking forward to the rest of your presentation. ✪
Dmitri Zagidulin: Thanks yeah this is definitely a very relevant question to all of us working on these projects okay so we talked about translating the properties themselves like name and description and so on but what about displaying them right what about when you have a wallet software or verifier software or anything that has to do with credentials and you received a localized credential let's say it's in multiple languages or it's in. ✪
Dmitri Zagidulin: Get a language that you requested. ✪
Dmitri Zagidulin: And the value is translated what are you going to do with the labels now usually this consideration is left to the software developers they often have like a language so that control and depending on the language they they translate the labels so if you're if you're doing a basic verifiable educational credential like a diploma you have the name of the. ✪
Dmitri Zagidulin: And the description and the labels themselves like the word description is translated into the correct language. ✪
Dmitri Zagidulin: Normally this wouldn't be a concern or usually this isn't a concern of specification working groups like ours but the reason I wanted to bring it up to everybody is one of the interests in this group. ✪
Dmitri Zagidulin: Being able to embed the display logic in the credential itself so for example the way Badger and other Technologies like blockcerts allow you to need to embed images with the pre-rendered credential or that allow you to embed HTML which includes the labels on the input fields and and the value substitution. ✪
Dmitri Zagidulin: Everybody to keep in mind that specifically that display logic that is going to be embedded or linked to from the credential needs to be localized needs to be translated. ✪
Dmitri Zagidulin: What the field is out there currently and what we can do in VC do task force standardized but just keep it in mind. ✪
Dmitri Zagidulin: Translating the values is one thing but also we need to make sure that if we're including the pre-rendered verifiablecredential we need to translate that as well again either at storage time somehow being able to specify all of the credential so sorry all of the translated labels. ✪
Dmitri Zagidulin: Have to be dealing with if you have a small set of subsets of languages or at issue time that if I want this credential in English and give me the labels in English and then the entire template so just wanted to put it out there next updates everybody's favorite subject. ✪
<phil> RDF Schema allows for properties to be defined in different languages
Dmitri Zagidulin: Good news is that at the verifiable credential data model all of the dates are in the same format it's whatever the iso date format the one that goes. ✪
Dmitri Zagidulin: Yeah yeah year month month Day Day and then the time stamp. ✪
Dmitri Zagidulin: The good thing about the date format that is that is universal but much like with translating labels and translating the data when you're displaying something like dates when you're displaying something like currencies numbers and so on which we'll get into in a second. ✪
Dmitri Zagidulin: Zap that your software and will need to know. ✪
Dmitri Zagidulin: Which which proper local specific format what it in so remember during storage and an issue the verifiable credential only has one way to store the days which is the one dictated by the VC spec so if your software specifically a display time that I need to translate the dates the same thing applies to. ✪
Dmitri Zagidulin: To be able to handle plurals and in English there's two types of players right there's the one and the many but in other languages gets much more interesting like in Arabic there's three plurals 12 and many and all the way to way more exotic languages than that so. ✪
Dmitri Zagidulin: In in RV CTU calls but the reason I bring it up again is to start the conversation with you and to do recommend to urge that unless you have very specific either legal requirements or like if you're doing a library system requirements for sorting. ✪
Dmitri Zagidulin: Avoid assuming that your address has hit a particular schema so one thing that we often see is that one setting up the credential let's say for an issuer right you you want to specify which university issued this educational credential and where they're located. ✪
Dmitri Zagidulin: The thing that you often encounter is that developers especially US based developers immediately start thinking in terms of the typical you ask address format so Street Unit state ZIP code country that sort of thing but of course somecountries don't have zip codes. ✪
Dmitri Zagidulin: The world of address formatting is alive and complicated and there there are entire ISO specs that are gigantic with slab specs that deal with. ✪
Dmitri Zagidulin: Recognize the fact that different countries will have way. ✪
Dmitri Zagidulin: Way different name requirements many more names many of them won't have middle names and so on so avoid the first middle and last trap just have a name field where the user can put in whatever they need to similarly with the addresses avoid the u.s. entered address schema even if Google recommends it in schema.org they fall prey to the same same problems as. ✪
Dmitri Zagidulin: Developed by us developers and whenever possible just have a single address field. ✪
Dmitri Zagidulin: Withaddresscan be type typed in as text us free form and then let localization software deal with it so at the data model level simple name field simple address. ✪
Dmitri Zagidulin: Up into sub Fields unless you have very particular legal requirements for and we can get into specific examples and specific recommendations as a group later on once we've had this conversation so the purpose of this college is to bring up the issues to all of you. ✪
Dmitri Zagidulin: So questions questions so far. ✪
Dmitri Zagidulin: So I want to call out since we have Marcus here. ✪
Dmitri Zagidulin: Marcus have you had to deal with in nationalization during your demo projects or what are your experiences with it as a software developer in the European Union. ✪
Markus Sabadello: Yeah thanks for asking me I may have to disappoint you a little bit yes we have so we are doing quite a bit of work here in the EU experimenting with universities within this European blockchain service infrastructure which is a is a commissioned by the which is an initiative by the EU commission involving a lot of universities across different member states and you. ✪
Markus Sabadello: And yes for example we've been working a little bit with University in Germany and also with universities in in Spain and trying to compare and interoperate a little bit between what we are doing in Austria and what others are doing in other EU countries unfortunately we haven't really been able to go very deep yet into into internationalisation topic so we we really haven't done. ✪
Markus Sabadello: Any of this yet trying to deal with multiple languages or date formats we've been really just getting started on the more technical base levels seeing if we can resolve each other states and verify each other's signatures and we've been going a little bit into into schema design Chase until the context design we've had a lot of interesting. ✪
Markus Sabadello: Different universities using different data models on for example how do you identify different types of diplomas or different types of degrees how do you distinguish between a bachelor's degree and a master's degree and PhD and different universities have different systems they are even within Australia for example within our small country if Aunt went to universities here are using good different. ✪
Markus Sabadello: Data models and of course we have so we have a lot of these. ✪
Markus Sabadello: Classical json-ld modeling questions but we haven't really gone into into this internationally internationalisation topic I expected this will become very important this year so the broader vision and perspective of the EU here is to to Really encourage and support cross-border use cases this year so. ✪
Markus Sabadello: 2021 Was mostly about the individual member states individual EU countries trying out things within the country so there wasn't a lot of emphasis on the nationalization and cross-border use cases and that's why we have limited experience in that regard but it is going to be really a central aim of the EU commission to work on that this year as. ✪
Markus Sabadello: Other strategies something that they call the you single digital market and connecting Europe facility so that a lot of there's a lot of interest now to to Really encourage cross-border projects of all kinds including collaboration between universities and then this year this will really become a strong Focus but so far I can't really give a lot of. ✪
Markus Sabadello: I'm learning a lot from from you so this is this is very very interesting. ✪
Dmitri Zagidulin: Thank you so much Marcus yeah so it sounds like all of the all of us early implementers need to start thinking about this and I I strongly hope for we as the VC EDU task force come up with some recommendations. ✪
Dmitri Zagidulin: These are examples of studying languages directions this is how you localize rendered images and HTML templates or forget into. ✪
Dmitri Zagidulin: Other markup formats for deterministic display but similarly this is what to watch out for with dates with plurals with currencies and units and also hopefully will maintain lists of. ✪
Dmitri Zagidulin: Contexts and jurisdictions because so far we've just been talking about localization in the engineering term in the. ✪
Dmitri Zagidulin: This has to do with language and formatting rules but as Marcus mentioned we certainly have a lot of work to do on the localized into the jurisdiction making sure that or at least not making sure that's that's not our job as the task force but at least make sure that the potential is there for degrees credentials and all the things that were working with can operate across state and Country lines. ✪
Dmitri Zagidulin: You may have a nice and neat and short discussion this week in that case. ✪
Dmitri Zagidulin: One thing that I'll mention as a as a preview of upcoming topics is that related to. ✪
Dmitri Zagidulin: Nationalization localization are the issues of accessibility and sometimes you'll see the topics are grouped together because. ✪
Dmitri Zagidulin: Accessibility considerations have a very similar. ✪
Dmitri Zagidulin: Structure to internationalization localization which is you have to make sure that the data model supports it and then you have to make yourself smarter to actually translate or be accessible provide alternate ways of. ✪
Dmitri Zagidulin: Doing displaying viewing the certificate. ✪
Dmitri Zagidulin: So you'll see a similar pattern inaccessibility is there as what we touched on in localization meaning we're going to have to decide. ✪
Dmitri Zagidulin: Add additional fields for example and again we'll get into this in a future topic of but something as simple as an image description. ✪
Markus Sabadello: This is our maybe you want to finish your your pointexplanation if not I had another question maybe for that group. ✪
Dmitri Zagidulin: Thanks yesso point was you see similar pattern will have to make sure that our data data model support accessibility and then we'll talk about some of the interaction time considerations I go ahead Marcus. ✪
Markus Sabadello: Okay so my question that that we've been struggling a lot with here in our work is more about the data models and and the schemas and how to how to design those in a way that enables localization or that enables credentials to be interoperable across borders specifically we've been wondering a lot about the granularity of of contexts or at some point. ✪
Markus Sabadello: The idea in our projects was that each EU member state would Define their own context where they would model their University diplomas and So within the Euro would be 27 different json-ld context for each country but then people said okay this isn't going to be very easy then to be interoperable and it would be better to have one European Standard and Associated json-ld context but then sir. ✪
Markus Sabadello: Different between each each University like I said even here in our relatively small country and our small project different universities have different data schemes so I wonder if there are any one has any idea or recommendations or best practices on how to do that if if you have different data models do you want like a top-down wondering to rule them all. ✪
<simone_> (Transcriber appears excited about this conversation too) Lol
Markus Sabadello: Pro Traders a single context that just defines everything and everybody has to deal with that or could there be a layered approach maybe where some high-level Concepts I could be defined by by top layer by some kind of governance body and then individual countries and individual member states could override that or add a details. ✪
Nate_Otto_(Badgr/CSky): Sure I was going to bring up the possibility for using language maps in defining a particular term in the context to have a container type of language for a slightly more abbreviated display when the issuer wants to award a credential that has multiple different language values in it the language Maps do convert through json-ld processing to be equivalent to the array. ✪
Nate_Otto_(Badgr/CSky): And language keys for each value that you showed I was wondering if you had any thoughts on whether kind of allowing both options provide or produces any challenges for consumers that makes their job more expensive versus if we recommended using one method or the other given that json-ld processing can translate pretty easily into the. ✪
Dmitri Zagidulin: Oh that's a great question and I didn't want to get into too many details in our initial presentation about the language Maps but you're absolutely right. ✪
<deb_everhart> wrt schemas for different types of credentials and achievements, I would recommend starting with CTDL and adapting it as needed for specific locales or types of credentials
Dmitri Zagidulin: Of the verifiable credential serialization data model has some really neat optimizations or shortcuts where if you have an array of translated properties for a field but let's say you have three different descriptions in three different languages use the. ✪
Dmitri Zagidulin: The technique Nate istalking about is. ✪
Dmitri Zagidulin: There's a way to specify in the context that this is always going to be a localized property so you might as well presented in this way in a dictionary that's helpful for developers so they can instead of searching through an array. ✪
Dmitri Zagidulin: To give language they can just Index right into it so yeah that's a that's a great question should we as the group recommend one particular way or wait and see what the implementers are doing and with feedback great question no no idea. ✪
Nate_Otto_(Badgr/CSky): Yes and just to add one more wrinkle to it if we were working in a world of kind of pure json-ld processing that would be one matter you can always convert between these different formats with some amount of ease but if we add something like a Json schema for a particular credential type to the mix then are we even going to be able to author a schema that expresses all of the different possible options for. ✪
Nate_Otto_(Badgr/CSky): Referenced within the credential we're going to have to see what actually. ✪
Dmitri Zagidulin: That's a fantastic Point how does this interact with Jason schemas that's definitely a great topic for a future call or for a we could open an issue on the VC to you GitHub specifically given the verifiable credential. ✪
Dmitri Zagidulin: Internationalization recommendations specifying the language how does that interact with Jason schemas and actually that's not that's not something that just us in vcd you have to have to struggle with the fabric Winchell working group the newly chartered 2.0 working group will will need to provide these these examples because there's a lot of fans of Json schema in the in the verifiable credential working group so. ✪
Dmitri Zagidulin: For internationalization it supports both of these language formats the language container or the the IRA format so thank you for bringing that up let's let's make sure to track it at working group on the task force level. ✪
Kerri Lemoie: Hey Dmitri are you still here with us. ✪
Dmitri Zagidulin: I'm so sorry I by accident hit the mute the hardware mute on my headset thank you for checking okay so unless there's other questions comments you can see it we had work ahead of us. ✪
Kayode Ezike: Hello so I think I'm going to answer this question in my own protective but my question is related to basically the fact that you were explaining how the language is specified in the context field and my question is kind of like from a verifier standpoint like how is it flat if a verifier kind of is implemented with the expectation that a certain language. ✪
Kayode Ezike: The same language but it finds that actually is is not that language is actually not included in the context would that since is not part of the spec for for say for that to be verified I guess that would not necessarily be a verification failure it was expecting more to be a responsibility of the application to flag that and just kind of wanted to know your thoughts on how that kind of workload would work where a verifier is us-centric. ✪
Kayode Ezike: To a particular language but it receives a credential that. ✪
Kayode Ezike: Live does not include that language in context. ✪
Dmitri Zagidulin: Great question yeah how does it interact with verification. ✪
Dmitri Zagidulin: So couple of thoughtsright off the bat and this is again this is going to be a great topic for a future call let's refresh our memory in about all of the. ✪
Dmitri Zagidulin: All the considerations about verifying the simple ones verifying that the Integrity of the credential the digital signatures fine that's tough the easy part but all of the more interesting exploration revocation if the credentials using an issue of registry has it been edited registered and all that stuff and now Kayode brings up another excellent point is how does verification interact with. ✪
Dmitri Zagidulin: Internationalization with with translated in different languages so. ✪
Dmitri Zagidulin: Got the at the very base line level of digital signature checking out it internationalization doesn't affect verification at all it's still just a string it's still just a Json object that is digitally signed so the signature will check out but you're absolutely right that we may run into interesting edge cases where the verifier software or more likely whatever software is. ✪
Dmitri Zagidulin: Thing the verifier back end so wallet or whatever other business logic application will need to make sure will need to enforce. ✪
Dmitri Zagidulin: The languages and so on so quick question I think. ✪
Dmitri Zagidulin: I think nobody's gotten as far as de stumble up against it but it's definitely something we'll need to keep an eye on. ✪