Re: [OSCOM] Multilingual Wiki: keeping versions in sync

Martin Bähr <mbaehr-J82dVEKiPgVsIEQYbtjsvCEcasqEdqbRs2V0tQ3P5b8@public.gmane.org> Tue, 22 Aug 2006 19:21:09 +0200
Newsgroups gmane.comp.cms.oscom
Message-ID <[email protected]>
On Tue, Aug 22, 2006 at 05:36:20PM +0200, Michael Wechner wrote:
> Paul Everitt wrote:

why is this mail not on the list?

> > It would be interesting if someone could conceive (even just page  
> > sketches) a system that had multiple canonicals while retaining  
> > "simple for the civilian".

in an ideal multilingual situation there should be no canonical at all,
because contributors to the content may come from different languages
and should thus all be considered equal.

managing multilingual content could be looked at like revision control
which has two basic operations: add new code, and syncronize code from
others. syncronize code is mostly automatic, while translation is
manual, but the end result is the same: synchronize the content.

so making changes to multilingual content would need to make a
difference between "added new content", or "synchronization of
translation"

like revision control each change should have a version with the highest
version number being the canonical, and a "synchronization" step should
indicate to which version (from which language) it is synchronized
(since you can't always synchronize to the canonical if you do not
understand that language.)

with that information it should be possible to produce a graph that
represents the current state of synchronization and dependency,
indicating where a translation is missing.

just like with revision control adding new content would require
updating to the latest version which.

fixing the canonical to a specific language would be like "read only
access" for the other languages, since they can synchronize, but not add
new content.  this would be like a centralized cvs server

having one translation coming from another would also just be like one
revision control server pulling from another, which would be more like
distributed development.

and making all languages equal is then like the situation where
changesets among the different revision control servers can move in any
direction.

since the problems of distributed development are quite well understood,
and have produced different solutions, i think a lot can be learned from
that.

making this simple for the user should mostly require an interface
that hides the details. most people will only be interrested in a few
languages. when the user initiates an update they will indicate to which
language they want to update to. 

the server should then produce a diff that shows how the content of that
language has changed since the last update (since the server knows the
version of the last update) and if the server uses global version
numbers like subversion, this would even work if the user now updates to
a different language than previously (which should happen very rarely)

so the users won't get an interface much different from existing ones,
as the tricky part is only to figure out what needs updating, where,
which should mostly be doable in the background using the lessons
learned from distributed development.

greetings, martin.
-- 
cooperative communication with sTeam      -     caudium, pike, roxen and unix
offering: programming, training and administration   -  anywhere in the world
--
pike programmer   travelling and working in europe             open-steam.org
unix system-      bahai.or.at                        iaeste.(tuwien.ac|or).at
administrator     (caudium|gotpike).org                          is.schon.org
Martin Bähr       http://www.iaeste.or.at/~mbaehr/