The Higher Education and Research forge

Home My Page Projects Code Snippets Project Openings Développement de WIMS
Summary Activity Forums Tracker Tasks Docs Surveys News SCM Files Listes Sympa

Forum: developers

Monitor Forum | Start New Thread Start New Thread
RE: Search engine [ Reply ]
By: Marina Cazzola on 2013-03-14 11:40
[forum:14492]
I quickly report on the bugs we think we found in modind.c (any
comments or help is welcome)

As Bernadette explained in her message the program modind inputs the
INDEX files of all the modules and creates the files in bases/site
(these files are later used by the search engine
~/public_html/modules/home/search.proc to do the actual search).

modind should look at the lines

title=
description=
domain=
category=
level=
keywords=
require=
author=

and we just added to this search the lines

keywords_ca=
keywords_fr=
keywords_it=
keywords_nl=

modind does not make any difference between such fields: the contents
of all of these fields become keywords that are listed in the files in
bases/site (e.g. bases/site/A.it lists all the keywords for all
italian modules).

We found out that if one of these field is empty, then everithing on
the following lines is taken as the field value, and we think this is
a bug. E.g. the module E1/number/oefnumber.fr ha the lines

title=OEF Nombres
description=collection d'exercices sur les nombres en CP.
language=fr
category=exercise, oef
domain=number
level=E1,E2
keywords=nombre, addition,CP, calcul, addition,ecole,cycle1,elementaire, number
require=
scoring=yes

As the field require is empty ("require="), the following line is
taken and both "scoring" and "yes" appear as keywords for the module
(in other words if you insert the word "scoring" in the search engine
of wims you find a lot of modules)

The other thing we think is odd is the way modind handle the level
field. If the index file contains the line

level=E1,E2

then the module is given the keywords levele1 and levele2. But as I
said modind does not make any difference between the fields in the
INDEX files. When a keyword has a single letter (or letter + number)
is then translated to a level... keyword.

I think that sometimes this is not the correct behaviour. For instance
the module E5/language/oefenglishvoc.fr has the keyword level2, but I
really do not understand where it comes from, unless it comes from the
single letter keyword à in

description=collection d'exercices permettant de se familiariser avec du vocabulaire en anglais à l'écrit ainsi que la compréhension orale. (fin cycle 3).

so much for now, any hint more than welcome

Marina

PS: I'm trying to write down bases/sys/README to explain how the
configuration files are used

Search engine [ Reply ]
By: Bernadette Perrin-Riou on 2013-03-06 08:33
[forum:14402]
We (Marina, Bernadette) are trying to understand and improve the search engine.
It was urgent because Marina begins to put some italian language translation in
some en- modules and she did not find her keywords and these modules by
the italian search.

First we do some remarks :

- The executable modind uses some files in bases/sys and generates files in
bases/site.
It creates them by using the module INDEX (words of description, domain,
title, keywords).

- bases/sys/words.$lang is used by modind to correct some user mistakes.

- The files contained in bases/sys/wgrp are used by modind.c to allow
word groups. It seems to be static.

- we see no use of the files in bases/sys/keywords

- in the search engine, one can put words or words group separated by commas.

- domain.$lang is used for the moment only as some help in modtool to the
name of domain.

- in the module adm/browse, there is some "keywords" associated to some domains
or subdomains but they are not in the module and the words of the index field
domain are used only as keywords.

- we find some small bugs in modind.c but not essential (but help is welcome
to correct them !).

We have begun or planned some modifications.

- generate the files of wgrp by using the words group in the index keywords for
all modules :
if there is some "keywords_$lang", we take them, if not, "keywords".
For compatibility, if there is no comma in the list, we do not consider
that it is a word group. We decide to take only the keywords here not
the description.
- create by hand some files containing the correspondance between the domain
(in english) and some simple keys (without space) as it is in the browse
modules.
- adpat the module browse.

- "force" in modtool to use a domain in a list (we do not know exactly how to).
- propose some keywords according to the domain choosen ?

These last points are not clear for the moment.

Bernadette and Marina