← Back to team overview

zim-wiki team mailing list archive

Re: Time Stamped Text (TST) plugin

 

On Sat, Jun 1, 2013 at 6:47 PM, NorfCran <norfcran@xxxxxxxxx> wrote:

> Dear Japp,
> thank you for your suggestion, I already started experimenting with
> difflib library, which is capable of generating deltas.
>
> Concerning the data structure with timestamps, it would be possibly worth
> to consider the following protocol called Gobby, which does provide a way
> how to collaborate over network on a one to many text files. On top of this
> feature it also defines data structure, which may accommodate timestamps.
> Do you think that the protocol cold be integrated into ZIM, since it uses
> GTK? Possibly it may elevate ZIM like a personal wiki to real-time
> collaborative writing? The API<http://gobby.0x539.de/trac/wiki/APIReference>offers libinftextgtk, but I am not certain about complexity resulting from
> intended integration.
> Even though the libinftextgtk is implement in C it seems to be possible to
> wrap the C implementation and use it in Python code according to the
> following link:
> http://stackoverflow.com/questions/1942298/wrapping-a-c-library-in-python-c-cython-or-ctypes
>
> The infinote protocol uses storage in the following form:
>
>> <?xml version="1.0"?>
>> <inf-text-session>
>>   <user id="1" name="norfcran_apple" hue="0.203069"/>
>>   <user id="2" name="norfcran" hue="0.62889799999999996"/>
>>   <buffer>
>>     <segment author="1">asdfasdfasd
>> fa
>> sdf
>> as
>> tell
>> df
>> as
>> df
>> as
>> df
>> </segment>
>>     <segment author="2">asdfa
>> sdf
>> as</segment>
>>     <segment author="1"> this may be wrong</segment>
>>     <segment author="2">
>> df
>> as
>> d
>> f</segment>
>>   </buffer>
>> </inf-text-session>
>>
>
> The segment may be extended by timestamps. So it results in timestamped
> text, which does not preserve history of changes, but on the other hand it
> brings a real-time collaboration on a single file. Additionally the
> timestamps could be utilized for tracking changes over many pages, since
> time is a natural binder of flow, when there are more than one page edited
> simultaneously. Hope that these suggestions do not turn it into something
> impossible, so far at least I can see potentially a feasible shortcut to
> bring another organizational tool in form of timestamps.
>
> Thank you in advance for your opinion, best regards, JK
>


Assuming you do not propose to replace the wiki text files with xml files,
only way using this I see is as a "shadow" file that sits next to the
actual source file. But whether or not that is useful and desirable depends
highly on what you want to do with the data. Depending on the use case, a
different representation may be more efficient.

The thing to realize is that the API you refer has it's own document
management, so it may not be compatible with how zim stores documents in
the notebook. Would need to dive in much deeper to understand the technical
implications.

So what is the use case / user functionality that you want to build ?  Is
it about synchronisation, about timestamping each and every change to the
sources, both ? What use interface would you want to support? Then we can
answer what technology is needed to support that kind of feature.

Regards,

Jaap

References