ABI-Team-30 / Fresnel-Forms

A Protégé plugin for generating and adapting MediaWiki user interfaces for source ontologies
http://is.cs.ou.nl/OWF/index.php5/Fresnel_Forms
3 stars 1 forks source link

Multilinguality #54

Open LloydRutledge opened 9 years ago

LloydRutledge commented 9 years ago

Ons plug moet noodzaakelijke beginnen als alleen Engels. Maar het is netjes om die later uit te breiden voor meerdere talen. Joop is assignee wat dit betreft voornamelijk het opstellen op een wiki. Er is geen milestone want deze issue heeft voorlopig een onderzoeksbelang.

Deze issue heeft twee aspecten: MediaWiki meertalig strings, en de wikipaginanaam prefixes Fresnel2wiki.De kwestie van MediaWiki meertalig strings is voor ons alleen van toepassing als we strings maken die op de wiki tonen. Mijn PHP had bijvoorbeeld "Form" als de link van de ibox naar de form. Hiervoor moeten we een PHP bestand maken met een mapping van ons ID voor elke interface string naar zijn instantie in elke taal. Of eigenlijk denk in een PHP in elke taal. En we zullen beginnen met EN en NL en andere uit andere langen uitnodigen om meer te maken.

De twee issue is de wikipaginanaam prefixes zoals o.a. prefixes o.a.: Property:, Category:, Form, Template, enz. Volgens mij werken die op Engeltalige wiki's. We zouden een taal optie in Protégé moeten maken en gebruiken. Kiest te gebruiker al een taal op Protégé als geheel? En zo ja kunnen we die bevragen om de taal van wiki-code export namespace prefix te bepalen? En dan als Fresnel2wiki de taal wet dan moet die de versschillende prefixes in de export zetten.

jbachh commented 9 years ago

Wat betreft de eerste "kwestie van MediaWiki meertalige strings": -Bedoel je met "Hiervoor moeten we een PHP bestand maken met een mapping van ons ID voor elke interface string naar zijn instantie in elke taal." het volgende: http://www.mediawiki.org/wiki/Manual:Magic_words ? -Bedoel je dan ook strings zoals op een property page "This property has type .." dat dan moet worden "Deze eigenschap heeft type .."?

Wat betreft de tweede issue: -het kiezen van een gebruiker van een taal op Protégé als geheel: Ik heb niets kunnen vinden in de documentatie, alleen in preferences, new entities, entity label (for use with Auto-generated ID) kan de gebruiker een taal kiezen bij een custom label, maar hebben we weinig aan denk ik? -Het lijkt me niet heel moeilijk om een lijst om een taal te kiezen op de plugin te zetten, en aan de hand van de selectie de juiste prefix (property/eigenschap etc. te kiezen).

LloydRutledge commented 9 years ago

@jheijning: had er niet gedag, maar dus zouden we wel dat PHP bestand maken as ons gegeneerde wikipagina-tekst worden heeft in natuurlijk taal, dus dus vertaald moeten worden. Maar volgens me hebben we die niet. Toch? Die zou de "user interface language", zoals door user preferences bepaald. Zie http://www.mediawiki.org/wiki/Manual:Language .

Van me hoeven we eigen niks voor pagename prefixes te doen. Laten we aanname dat de de taal van het install van de wiki op de server is Engels. Dat is de site content language.

jbachh commented 9 years ago

Lloyd: Ik vind het moeilijk om de precieze requirement te begrijpen, kunnen wij hierover een keer skypen misschien? of bewaren voor de Scrum?

LloydRutledge commented 9 years ago

Laten we het erover hebben bij de scrum. Zit nu op de agenda. Het is "could" voor een reden. Niet belangrijk. Ook bedoeld op langere termijn dan deze project. Want ik denk eigenlijk aan Masters afstudeerder Astrid. ZIj maakt een meertalige wiki.

Wat ik bedoel is dat de boxes en eventueel ook de forms labels tonen in de taal van de gebruiker. Dan moet labels gequeried worden van de rdfs:label voor de betrefende URI (individual,property, evt. class). En dan de rdfs:label met een xml:lang naar de taal van de gebruiker. Of EN (Engels) als er geen label is van die taal. Of de eerste label dat je vind als er ook geen Engels is.

Je kan die in de Protege sessie of de wiki zetten. In Protege is eenvoudiger maar dan wordt de hele wiki voor in die taal voor alle gebruikers. Dan moet je in de GUI en Fresnel bestand de taal zetten.

Als je het op de wiki doet dan moet de box en form pagina's de taalgericht label query in de wiki doen. Je moet dan van paginacode de taal van de gebruiker vinden. Dat is al mogelijke, of we maken en property voor de gebruikers-pagina of we maken ook een class voor gebruikers met die property. En dan moet alle de rdfs:label's met hun xml:lang's ook naar de wiki. En de SMW query ervoor bedenken.

Ik ben benieuwd naar jullie ideeën hierover. Ook aardig als ze in die issue vastgelegd worden. Maar de werkelijk implementatie dan door iemand anders na deze ABI, zoals door me of eventueel door Astrid als ze her belangstelling in heeft en als het bij haar scriptiewerk past.

Is het goed als dit Github door blijft gaan na onze ABI voor een (hopelijke) groeiende groep medehackers? Of is het meer netjes om een aparte GIthub op te stellen? Hetzelfde vraag over de SVN aub. Maar als de hackergroep ook buiten de OU ooit groeit dan moet er misschien een anders SVN server komen. Deze vragen zitten nu ook in de scrumagenda.

AlexMekkering commented 9 years ago

Wat momenteel werkt

In de basis is er ondersteuning voor meerdere definities van dezelfde fresnel property, dus ook voor meerdere definities van fresnel:label, elk met bijv. een ander xml:lang datatype (zie http://www.w3.org/TR/REC-rdf-syntax/#section-Syntax-languages). Deze ondersteuning wordt reeds geboden doordat de (overloaded) methode nl.ou.fresnelforms.jena.JenaFresnelUtils.getFormattingProperties de meest specifieke lijst van waarden per property voor een lens bepaalt en teruggeeft. Deze functionaliteit is in #29 uitvoering besproken en in r337 is specifiek de ondersteuning voor meerdere definities van een property geïmplementeerd.

Wat niet...

De FresnelForms GUI biedt echter nu nog geen ondersteuning voor bijv. meerdere labels met een ander xml:lang type. In de praktijk betekent dit op dit moment dat het bij bijvoorbeeld het laden van een fresnelbestand (welke handmatig is aangepast met meerdere labels met verschillend xml:lang type) willekeurig één van de fresnel:label definities neemt als label van een property. Ook het opslaan (eigenlijk het converteren naar een Jena model) biedt nog geen ondersteuning voor het definiëren van meer dan één label waardoor er nu slechts één label bekend is bij getFormattingProperties (welke kijkt naar het geconverteerde Jena Model).

Benodigde FresnelForms aanpassingen

Om multilinguality in zijn geheel te kunnen ondersteunen is nu denk ik nog het volgende nodig:

Meertaligheid in MediaWiki

MediaWiki biedt standaard meertaligheid door, afhankelijk van de gekozen taal, pagina's in de gewenste taal aan te bieden. Dit biedt echter geen oplossing voor het meertalig weergeven van één individual, aangezien de individual in elke taal dezelfde pagina zal hebben (tenzij er voor elke taal een pagina wordt gegenereerd met een andere naam (bijv. Tim_Berners_Lee_en en Tim_Berners_Lee_nl). De extensie Multilang (http://www.mediawiki.org/wiki/Extension:Multilang) biedt ondersteuning voor het definiëren van verschillende teksten op dezelfde pagina, uit welke de juiste gekozen wordt, afhankelijk van de gekozen taal. Hiermee kan bijv. het label van een property automatisch gekozen worden op basis van de gekozen taal. Dit gaat ongeveer als volgt:

...
<div class='ib_property'>
     <div class='ib_label'>
        <multilang>
          @de|"Das ist ein deutscher text."
          @en|"This is an English text."
          @nl|"Dit is een Nederlandse tekst."
        </multilang>
     </div>
...

Wanneer in FresnelForms dus meerdere labels voor verschillende talen gedefinieerd zijn, dienen deze labels zoals hierboven doorgegeven te worden aan MediaWiki (met Multilang extensie).

Het enige nadeel aan deze oplossing is dat er een afhankelijkheid met een MediaWiki extensie is bijgekomen, maar dat is wat mij betreft geen groot probleem.

Aansturing vanuit de bronontologie

In de bronontologie kunnen reeds labels (rdfs:label, skos:prefLabel of rdfs:comment) meertalig gedefinieerd zijn (mbv een xml:lang datatype). Deze informatie wordt nu nog niet door FresnelForms verwerkt in de default presentatie, maar het toevoegen van ondersteuning van multilinguality zal een mooie gelegenheid zijn om dit generiek op te pakken.