--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/misc/cwfs/cwfs-spec.txt Wed Nov 05 15:52:50 2008 +0100
@@ -0,0 +1,180 @@
+=======================
+ 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/
+
+