Web Sémantique

WikiFOAF

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes 38.103.63.18
Les objectifs du projet : modifier WikiNi :


Solution "brutale"

WikiNi intègre un mode d'affichage "brut" (avec le handler "/raw"), permettant ainsi d'afficher du code RDF/XML sous forme de texte brut.
Voici un exemple :


Solution basique

Dans un premier temps, on peut utiliser uniquement les données existantes pour chaque utilsateur de WikiNi :

Il existe également un champ "motto" dans la table "user" de la base. Il peut servir à autre chose que sa destination initiale sans avoir à modifier le modèle de données.
Ensuite, il faut créer un handler dans le répertoire /handler/page qui contienne le code pour générer le fichier FOAF. Comme WikiNi est bien écrit ;), les handlers sont modulaires et il suffit seulement d'ajouter un fichier. Pour le fichier FOAF voici un code fonctionnel :
<?php
//vérification de sécurité
if (!eregi("wakka.php"$_SERVER['PHP_SELF'])) {
    die (
"acc&egrave;s direct interdit");
}

if (
$this->HasAccess("read"))
{
    if (!
$this->page)
    {
        return;
    }
    else
    {
        
$name $this->tag;
        if (!
$user $this->LoadUser($name))
        {
            
//$email = sha1([requête]);
            
$user $this->LoadUser($name);
            
$email $user["email"];
        }
        else
        {
        echo 
$this->tag" n'est pas un utilisateur.";
        return;
        }
        
//
        // display the page
        
header("Content-type: text/xml");
        print <<<FIN
<rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:foaf="http://xmlns.com/foaf/0.1/"
     xmlns:login="http://websemantique.org/login">

<foaf:Person>
<foaf:name>$name</foaf:name>
<foaf:mbox>$email
</foaf:mbox>
</foaf:Person>

</rdf:RDF>
FIN;

    }
}
else
{
    return;
}
?>


Qui me donne :
<rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:foaf="http://xmlns.com/foaf/0.1/"
     xmlns:login="http://websemantique.org/login">

<foaf:Person>
<foaf:name>CharlesNepote</foaf:name>
<foaf:mbox>charles02@nepote.org
</foaf:mbox>
</foaf:Person>

</rdf:RDF>


C'est assez simple non ? Bon, c'est encore un peu léger...
L'inconvénient c'est que la sha1 n'est intégrée que dans Php supérieur ou égal à 4.3. Il existe cependant des possibilités d'utiliser une classe externe (assez facile à adapter sur WikiNi) : cf. http://www.php.net/manual/fr/function.sha1.php
-- CharlesNepote


Stockage des données dans WikiNi

1. Modification de la table "user"

La première solution consiste à ajouter des champs à la table "user" de la base de données.
Avantages : facile à mettre en oeuvre.
Inconvénients :
Je crois que cette solution est à écarter tout de suite.

2. Création d'une table dédiée aux triplets

Cette solution consiste à ajouter une table permettant de stocker des triplets RDF. C'est la solution que j'ai utilisé dans http://wikisem.wikini.net
Avantages :
Inconvénients :
Point d'attention :



Interface de saisie

A définir.
A priori, deux pistes à regarder :



Lecture de fichiers FOAF externes

A définir.
Questions :



Génération des fichiers FOAF

Quelquesoit la solution de stockage : cf. ci-dessus.
La génération des fichiers est assez facile et ne pose pas de problème hormis le choix de l'URL où les lire.



Il y a un commentaire sur cette page. [Afficher commentaires/formulaire]