misc/cwfs/cwfs-spec.txt
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Mon, 11 Oct 2010 10:47:22 +0200 (2010-10-11)
branchstable
changeset 6434 d99b742a9c49
parent 0 b97547f5f1fa
permissions -rw-r--r--
[test] fix ldap test when executed from certain hosts
=======================
 Specification cubicwebfs
=======================

Remarque: cubicwebfs c'est le siamois de yamsfs
en fait c'est un yamsfs avec une interrogation
de base RQL

Mod�le
-------

Description du mod�le;
::
  societe
  nom
  ville

  affaire
  ref

  document
  annee 
  mois 
  jour
  type {RAP,CLI,OFR,FCT}
  fichier

document concerne affaire
affaire concerne societe

Contenu de la base exemple
---------------------------

societe  | nom     | ville    |
         | CETIAD  | Dijon    |
         | EDF R&D | Clamart  |
         | Logilab | Paris    |

affaire  | ref    | concerne  |
         | CTIA01 | CETIAD    |
         | EDFR01 | EDF R&D   |
         | EDFR02 | EDF R&D   |

document | annee | mois | jour | type | concerne | fichier                                     |
         | 2004  | 09   | 06   | PRE  | CTIA01   | depodoc/2004/09/CTIA01-040906-PRE-1-01.pdf  |  
         | 2005  | 02   | 01   | CLI  | EDFR01   | depodoc/2005/02/EDFR01-050201-CLI-1-01.pdf  |  
         | 2005  | 03   | 22   | OFR  | EDFR01   | depodoc/2005/02/EDFR01-050322-OFR-1-01.pdf  |  


Exemples de chemins/recherches
-------------------------------

Cherche documents de mars 2005;
::
  /document/annee/2005/mois/03/


Dont le contenu successif serait;

Test::

  $ ls /document
  annee/	mois/		jour/		type/
  affaire/	concerne/	CTIA01-040906-PRE-1-01.pdf
  EDFR01-050201-CLI-1-01.pdf	EDFR01-050322-OFR-1-01.pdf	

  $ ls /document/annee/
  2004/		2005/

  $ ls /document/annee/2005/
  mois/		jour/		type/		affaire/
  concerne/	EDFR01-050201-CLI-1-01.pdf	EDFR01-050322-OFR-1-01.pdf

  $ ls /document/annee/2005/mois/
  02/		03/

  $ ls /document/annee/2005/mois/03/
  jour/		type/		affaire/	concerne/
  EDFR01-050322-OFR-1-01.pdf


Question: est-ce que fichier/ ne va pas nous manquer ?


Cherche documents relatifs � CTIA01; 
::
  /affaire/ref/CTIA01/document/

Dont le contenu des r�pertoires successifs serait:

Test::

  $ ls /affaire/
  ref/		societe/	concerne/	document/
  concerne_par/	CTIA01		EDFR01		EDFR02

  $ ls /affaire/ref/
  CTIA01/	EDFR01/		EDFR02/

  $ ls /affaire/ref/CTIA01/
  societe/	concerne/	document/	concerne_par/
  
  $ ls /affaire/ref/CTIA01/document/
  annee/	mois/		jour/		type/
  CTIA01-040906-PRE-1-01.pdf


Cherche documents des affaires qui concernent CETIAD;
::
  /societe/nom/CETIAD/affaire/document/

Dont le contenu des r�pertoires successifs serait;

Test::

  $ ls /societe/
  nom/		ville/		affaire/	concerne_par/
  CETIAD	EDF R&D		Logilab

  $ ls /societe/nom/
  CETIAD	EDF R&D		Logilab

  $ ls /societe/nom/CETIAD/
  ville/	affaire/	concerne_par/	CETIAD		Logilab

  $ ls /societe/nom/CETIAD/affaire/
  ref/		societe/	concerne/	document/
  concerne_par/	CTIA01		

  $ ls /societe/nom/CETIAD/affaire/document/
  annee/	mois/		jour/		type/
  affaire/	concerne/	CTIA01-040906-PRE-1-01.pdf


En particulier, pour la recherche ci-dessus on ne peut pas �crire;
::
  /document/affaire/concerne/societe/CETIAD/

La logique est que si on est dans un r�pertoire document, il faut
qu'il contienne des documents.

Cherche documents de 2002 qui concernent des affaires 
qui concernent CETIAD;
::
  /societe/CETIAD/affaire/document/annee/2002/

Question: est-ce que les relations doivent �tre des composants
du chemin ?
Question : si les relations ne font pas partie du chemin, il faudrait
pouvoir faire des recherches en utilisant des relations anonymes (ce
qui est impossible en RQL par exemple);
::
  /document/affaire/... s'il existe plusieurs relations entre
  les entit�s document et affaire, on ne peut pas s'en sortir

Question: que va-t-il se passer pour des chemins du type;
::
  /affaire/CTIA*/document/

Nicolas: � mon avis on a rien � faire, car c'est le shell qui
s'en occupe. De la m�me fa�on, le syst�me de fichier n'a pas
� se pr�occuper de ~/ et les programmes re�oivent pas le "qqch*"
en argument, mais directement la liste.

Attention: si jamais l'arborescence est sans fond, les
commandes r�cursives vont prendre du temps...

Attention: dans un premier temps, un syst�me de fichiers en
lecture seule est satisfaisant. on verra ensuite pour l'�dition.
pour l'�dition, on peut s'inspirer du external editor de zope
et avoir un format d'�change XML entre le serveur et l'�diteur.

Le cas suivant est d�bile, faut-il l'interdire ?
::
  /document/affaire/societe/concerne_par/affaire/concerne_par/document


NB: manque d�tail d'un cas comme /document/annee/2005/concerne/affaire/