Wikini

DiscussionsModeleDeDonneesEvolutif

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-18-191-211-66.us-east-2.compute.amazonaws.com
Nous cherchons à couvrir le besoin suivant :
Le principe : créer un méta-modèle de données simple dans lequel on va pouvoir créer d'autres modèles de données. Les triplets offrent cette possibilité.

Eventuellement, la solution pourrait permettre de partager des données entre plusieurs wikis.

Synthèse des discussions

Nous avons donc conclu qu'il était, dans tous les cas, intéressant d'implémenter cette notion, d'essayer ensuite de l'utiliser au maximum de ses possibilités, quitte à revenir ensuite sur ce choix en ré-implémentant certaines fonctionnalités avec autre chose que des triplets.
Tout cela reste bien sûr ouvert à discussion.
-- ProgFou (cité par CharlesNepote d'après un mail)

Exemples de l'usage de triplets


A mon sens les triplets sont plutôt utiles :
Par contre dans le modèle que je proposais dans ActionEtDroitDUtilisation, toutes les actions devraient normalement posséder les propriétés que je leurs donnais (propriétaire, groupe, droits de ceux-ci, des membres, des visiteurs...), il est donc à mon sens préférable d'utiliser une table dans ce cas. -- LordFarquaad
Un autre exemple: les membres d'un groupe. Tous les groupes possèdent des membres (ce qui est tout de même le principal objectif des groupes...), ce qui rend préférable l'utilisation d'une table de correspondance groupes-utilisateurs (surtout au niveau des requêtes SQL). Pour ce qui est de données uniques il y a notemment la configuration du wiki, ou encore les éventuelles données (spécifiques, et donc aussi restreint) que pourrait avoir un module (principalement les actions, a priori). Il ne faut pas non plus avoir peur de créer des tables ou de les modifier: ce sont des opérations qui ne présentent pas un grand risque tout de même (surtout créer, et si c'est suffisemment bien conçu, il ne devrait pas y avoir besoin de les modifier). Par ailleurs il est à mon sens toujours préférable d'utiliser peu de requêtes en travaillant sur plusieurs tables que beaucoup de requêtes travaillant sur une table contenant des données de tout type, et des requêts supplémentaires pour récupérer les correspondances dans les autres tables... -- LordFarquaad

Réalisation concrêtes rapides permises par l'usage de triplets


De cette manière, le développeur d'action ou de handler WikiNi peut stocker des données en base sans changer le modèle de WikiNi. A ce titre, certaines ContributionsAvancees pourraient ainsi devenir des ContributionsClesEnMain.

-- CharlesNepote

Syntaxe des triplets

Nous retenons une syntaxe proche de la syntaxe RDF NTriple :
<http://www.wikini.net/wakka.php?wiki=FoRum> <http://wikini.net/_vocabulaire/hasBeenEditedOn> <2004-04-09 23:26:42>

Archives de la discussion

Ne serait-il pas préférable d'utiliser des préfixes tout de même ? par exemple ThisWiki:FoRum, WikiNi:_vocabulaire/hasBeenEditedOn etc. A mon avis, on pourrait non seulement économiser pas mal de place si l'utilisation est forte, mais cela éviterait aussi des risques de doublons (provoqués par exemple par des fautes de frappe) et cela faciliterait le déménagement d'un wiki: si un jour wikini.net devient wikini.org, il serait tout de même contraignant d'avoir à traiter toutes les données pour remplacer "net" en "org" ! -- LordFarquaad

Ok. Suite à une longue discussion avec ProgFou et LordFarquaad dans une salle de discussion Jabber, nous avons convenu :
Je vous propose du code dès que possible.
-- CharlesNepote


Modèle de données SQL


Schéma proche de RAP

http://www.wiwiss.fu-berlin.de/suhl/bizer/rdfapi/database_schema.html
Intérêt du schéma de RAP :

Inconvénients :

Faut-ils donc retenir ce modèle :

In RDF API for PHP V0.9.1 every persistent model (DbModel?) is given a unique URI (modelURI) to differentiate it from other models. Thus, when creating a new DbModel? or retrieving an existing one, we have to specify its modelURI. For example, we can create a new, empty DbModel? in the Access database from the previous section by calling the method getNewModel() on the database object and passing the modelURI as parameter:
$modelURI = "http://somewhere.edu/rap-v-06/tutorial/DbModel1";
$dbModel1 = $access_database->getNewModel($modelURI);


J'ai questionné les développeurs de RAP quant à une éventuelle intégration de leur modèle dans WikiNi ; voici leurs réponses :

Autres schémas


Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]