Re: id field

David Calinski <[email protected]> Tue, 11 Nov 2003 14:57:09 +0100
Newsgroups gmane.comp.tools.memaid.devel
Message-ID <[email protected]>
On Tuesday 11 of November 2003 12:42, Fernando Antonio Mac Cracken Cezar 
wrote:
> > I's bad to write such thing to import items *directly* to MemAid database
> > (elements.* file). But doing so you mess up with items - imported items
> > will miss data from initial 'review', interval will be... ahem. Yuck!
>
> I was actually thinking of importing words into a brand new created DB
> and not into an DB *in production*.

It doesn't matter in this case - MemAid database is MemAid database,.
MemAid keeps there elements that are already in *learning process*.
Any element in learning process has some parameters (like: grade from last 
review, or the first 'review' - presentation), which are heavily used to 
compute next intervals, but also to give ANN feedback later.
If you miss these parameters (or give bad ones), you will make a mess in 
MemAid database, MemAid will give bad feedback to ANN on next repetition of 
every item, and it will finally result in just inferior new intervals from 
ANN later, making all learning process unoptimal.


> > (BTW: a script in contrib_1 package that imports data to MemAid format,
> > is a pretty good example of a something one should never do, unless one
> > imports data from another supermemo/memaid-like software, where items
> > were *already* in a learning process.)
>
> That is what I also want ... to import SuperMemo DBs. 

If we talk about SuperMemo on PC, and most recent versions: it would very very 
hard.
I myself have about 14000 elements in SuperMemo learning databases. (in 
learning process), so I was very interested in making such converter.
It's hardly possible, so I have gave up, I prefer to start them over (put 
items in queue.txt, and learn them just from there). :-(
This is not a very very big lost though, as elements I remember well, will be 
quickly scheduled on higher intervals anyway.

Nevertheless, such converter would be great. Unfortunately, SuperMemo stores 
some almost completely different data that MemAid does.
It sounds paradoxical, doesn't it?
SuperMemo relies on an algebra algorithm. Computes some factors (A-factor, 
D-factor - e.g. difficulty, etc.) and uses them to schedule next repetition 
by an algorithm (e.g. SM-11).
MemAid generally doesn't compute any factors, just stores few data (mainly: 
current interval and data from last repetition) and uses them to query ANN. 
On next repetition also gives ANN feedback how well scheduled was last 
repetition, so ANN can correct itself. (if last interval was too high, or too 
low.)

E.g. IIRC, SuperMemo main format doesn't store data (e.g. grade and current 
interval then) from last repetition (e.g. grade and current interval then; 
which are needed by MemAid ANN to have feedback).
SuperMemo stores data from every repetition for statistics purposes, but only 
when it's turned on in options, sigh. So, such converter from SM-PC format to 
MemAid would be very tricky to make.

Now, maybe you think about SuperMemo on Palm or PocketPC, they are much 
simpler, therefore converter could be doable, but I don't know the details 
about them.

> Anyway I'll take
> a look at this 'anti-pattern' script example ;-)

The right way would be to just drop imported elements into queue.txt (I hope 
KMemAid also supports this queue(?).), unless you know past data (e.g. last 
grade from every element) about elements that you take from a learning 
process of another software...

> I didn't know about this queue.txt possibility. That is nice actually,
> I'll check it out. Thx, for the tip.

It works in MemAid. I am not sure if it's implemented in KMemAid though...


> It was exactly what I said ... It "isn't" nice ...
> Anyway, let's drop this jokes about the system-time-bit-operation thing,
> that was just a sudden idea ( not perfect, I assume ) to solve the
> system time ID problem. So David, forgive me ;-)

I hope you will forgive me my specific sense of humour. ;)

> > Sure they are very welcome.
> > So, anyone has a better solution than Unix time? :>
> >
> > Now, the only con I see is that one can really learn so quickly (and
> > carelessly :-P), that can make two items in 1 second. O_o
> > But I highly doubt it's possible (have just done some test with a
> > stop-watch - I can't achieve 2 items in 1 sec. even not looking at
> > answer/questions.)
>
> Just a comment: It is stated on the web site that a CGI interface for
> Memaid is planned. What would happen if this CGI is highly accessed by
> multiple users?

Well, first of all: standard CGI version should be for one person only.
(What could be the use of one learning database shared by many persons? A 
different person may review an item and put grade 5 there, when I could 
forget it, and I wouldn't have a review of it.)
So ID is not a problem here.

(there is a point to share one queue - e.g. by students that need to learn the 
same material. But not share main database with elements already in learning 
process (scheduled on a repetitions) - this is very personal database, which 
shouldn't be shared.)

> Different DBs for each user is surely a solution, isn't ?

This is the only solution for multiple users I see. :)

Dave



-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/