Session 02

Source (url) https://pratiquesnumeriques.be/index.php/Session_02
Site satellite Pratiques Numériques B2-B3
Date 2019-05-07 18:05:30

De Pratiques en milieux numériques

Aller à : navigation, rechercher

Sommaire[modifier]

Session #02: bases de données[modifier]

20141104-bastashevski-nothing personal.jpg

Introduction[modifier]

Cette session porte sur la récupération, l'archivage, l'analyse de données numériques. Il s'agira pour chacun.e de développer une ou plusieurs méthodologie(s) permettant de mener un travail d'enquête et de mise(s) en forme(s) à partir d'un corpus choisi. Durant cette session, nous nous intéresserons à ce qui délimite un corpus, ce qui définit un spécimen, ce qui le transforme en document. Nous aborderons ensuite différents paradigmes de bases de données et les types de d'opérations (et les requêtes) possibles pour chacun d'eux. Enfin, il sera question d'accessibilité à la fois des documents et du processus de travail (quoi partager et comment?).

Structures de données: intro[modifier]

Exemple de source: https://www.thispersondoesnotexist.com Un script bash qui permet de télécharger les images de cette source:

i=0; while true; do file=$(printf "%04d" $i); wget -O Documents/WORK/images/deepf$file.jpeg https://www.thispersondoesnotexist.com; i=$((i+1)); sleep 1; done;

Pour définir une structure de données:

                                                        +--------------------------------------------+                                                                                                                      
                                                        |                                            |                                                                                                                      
                                                        | image                                      |                                                                                                                      
                                                        |--------------------------------------------|                                                                                                                      
                                                        | --ID                                       |                                                                                                                      
      +------------------------------------+            | - fichier -> text                          |                                                                                                                      
      |                                    |            | - date_capture -> date                     |                                                                                                                      
      | image_visage                       |         ---|                                            |                                                                                                                      
      |-------------------------------------   -----/   |                                            |                                                                                                                      
      | -- ID                              |--/         |                                            |                                                                                                                      
      | -- ID_image                        |            |                                            |                                                                                                                      
      | -- ID_visage                       |            |                                            |                                                                                                                      
      |                                    |            |                                            |                                                                                                                      
      |                                    |            |                                            |                                                                                                                      
      +------------------------------------+            +--------------------------------------------+                                                                                                                      
                     \                                                                                                                                                                                                      
                      |                                                                                                                                                                                                     
                      \                                                                                                                                                                                                     
                       |                                                                                                                                                                                                    
+-------------------------------------------------------+         +------------------------------------------------------+                                                                                                  
|                                                       |         |                                                      |                                                                                                  
|  visage                                               |         |  emotion                                             |                                                                                                  
|                                                       |         |                                                      |                                                                                                  
--------------------------------------------------------|         ------------------------------------------------------ |                                                                                                  
|  - - ID -> integer                                 -------------| - - ID -> integer                                    |                                                                                                  
|  - presence -> boolean     -----------------------/   |         | - nom -> texte                                       |                                                                                                  
|  - emotion -> ------------/                           |         |                                                      |                                                                                                  
|                                                       |         | - indice -> integer (1 à 10)                         |                                                                                                  
|  - description -> text                                |         |                                                      |                                                                                                  
|                                                       |         |                                                      |                                                                                                  
|                                                       |         |                                                      |                                                                                                  
|                                                       |         +------------------------------------------------------+                                                                                                  
|                                                       |                                                                                                                                                                   
|                                                       |                                                                                                                                                                   
|                                                       |                                                                                                                                                                   
|                                                       |                                                                                                                                                                   
|                                                       |                                                                                                       +----------------------------------------------------------+
|                                                       |         +-----------------------------------------------------------+                                 |                                                          |
|                                                       |         |   cheveux                                                 |                                 | couleur                                                  |
|                                                       |         |                                                           |                                 | ---------------------------------------------------------|
|                                                       |         |-----------------------------------------------------------|                                 |                                                          |
|                                                       |         |                                                           |                                /| -- ID                                                    |
|                                                       |         | -- ID                                                     |\                              / | - nom -> texte                                           |
|                                                       |         | - souplesse -> integer (1 à 10)                           | \                            /  |                                                          |
|                                                       |         |                                                           |  \                          /   |                                                          |
|                                                       |         |                                                           |   \                        /    |                                                          |
|                                                       |         |                                                           |    \                      /     |                                                          |
|                                                       |         |                                                           |     |                    /      |                                                          |
|                                                       |         |                                                           |     \                   /       |                                                          |
|                                                       |         |                                                           |      \                 /        |                                                          |
|                                                       |         +-----------------------------------------------------------+       \               /         +----------------------------------------------------------+
|                                                       |                    ---/                                                      \             /                                                                      
+-------------------------------------------------------+                ---/                                                           \           /                                                                       
                                    -----\                           ---/                                                                \         /                                                                        
                                          ---------\              --/                                                              +------|----------------+                                                                
                                                   +-----------------------+                                                       |                       |                                                                
                                                   |                       |                                                       | cheveux_couleur       |                                                                
                                                   |  visage_cheveux       |                                                       |                       |                                                                
                                                   | --------------------- |                                                       |-----------------------|                                                                
                                                   | -- ID                 |                                                       | -- ID_cheveux         |                                                                
                                                   | -- ID_visage          |                                                       | -- ID_couleurs        |                                                                
                                                   | -- ID_cheveux         |                                                       | -- ID                 |                                                                
                                                   |                       |                                                       |                       |                                                                
                                                   |                       |                                                       |                       |                                                                
                                                   |                       |                                                       +-----------------------+                                                                
                                                   |                       |                                                                                                                                                
                                                   |                       |                                                                                                                                                
                                                   +-----------------------+                                                                                                                                                

Stocker des données sans base de données[modifier]

Les bases de données relationnelles[modifier]

Les bases de données noSQL (orientées documents)[modifier]

Mise en place et utilisation d'une base de données mySQL[modifier]

Un exemple de formulaire d'encodage[modifier]

Pour un formulaire qui permet d'aider à l'encodage des images provenant du site thispersonisnotreal.com

formulaire.php

<?php
    $conn = new PDO('mysql:host=localhost;dbname=tpdne', 'dede', '56FaSaoDZpILKlSz');
    //SELECT UPDATE INSERT DELETE
    $statement = $conn->query('SELECT * FROM emotion');
    $emotions = $statement->fetchAll(PDO::FETCH_ASSOC);

    $statement = $conn->query('SELECT * FROM couleur');
    $couleurs = $statement->fetchAll(PDO::FETCH_ASSOC);


?>

<!doctype html>
<html>
    <head>
        <link rel="stylesheet" href="styles.css" type="text/css">
        <meta charset="utf-8">
        <title>Formulaire</title>
    </head>
    <body>
        <form action="envoi.php" method="post" enctype="multipart/form-data">
            <section class="form-part" id="infos-generales">

            <label for="filename">Nom du fichier</label>
            <input name="filename" type="text" value="test">

            <label for="date">Date et heure de récupération de l'image</label>
            <input type="datetime" name="date">
            </section>

            <section class="form-part" id="infos-visage">

                <label for="description">Description du visage</label>
                <textarea name="description">
                </textarea>

                <label for="emotion">Emotion</label>
                <select name="emotion">
                    <?php
                        foreach($emotions as $emotion){

                            echo '<option value="'.$emotion['id'].'">'.$emotion['nom'].'</option>';
                        }

                    ?>

                </select>

                <label for="new_emotion">Emotion (si pas listée)</label>
                <input type="text" name="new_emotion">
                <label for="emotion_indice">Indice de l'émotion (entre 1 et 10)</label>
                <input type="number" name="emotion_indice" min="1" max="10">

                <label for="cheveux_souplesse">Souplesse des cheveux</label>
                <input type="number" name="cheveux_souplesse" min="1" max="10">

                <label for="couleurs">Couleurs des cheveux</label>
                <select name="couleurs[]" multiple>
                    <?php
                        foreach($couleurs as $couleur){
                            echo '<option value="'.$couleur['id'].'">'.$couleur['nom'].'</option>';

                        }
                     ?>
                </select>

                <label for="new_couleur">Couleur (si pas listée)</label>
                <input type="text" name="new_couleur">
            </section>




            <!--input type="checkbox">
            <input type="color">
            <input type="radio" name="emotion" value="heureux">
            <input type="radio" name="emotion" value="malheureux">
            <input type="file"-->

            <input type="submit" value="envoyer">
        </form>


    </body>
</html>

envoi.php

<?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);


    /* insertion avec un champ checkbox

    $testbox = 0;
    if(isset($_POST['testbox'])){
        $testbox = 1;
    }
    $conn->exec("INSERT INTO image (box) VALUES ('".$testbox."')");
    */



    $conn = new PDO('mysql:host=localhost;dbname=tpdne', 'dede', '56FaSaoDZpILKlSz');
    //echo $_POST['filename'];
    //echo $_POST['date'];


    $conn->exec("INSERT INTO image (fichier, date_capture) VALUES ('".$_POST['filename']."', '".$_POST['date']."')");
    print_r($conn->errorInfo());

    $imageId = $conn->lastInsertId();


    if($_POST['new_emotion'] != '' && $_POST['emotion_indice'] != ''){
        $conn->exec("INSERT INTO emotion (nom, indice) VALUES ('".$_POST['new_emotion']."', '".$_POST['emotion_indice']."')");

        $emotionId = $conn->lastInsertId();

    }else{

        $emotionId = $_POST['emotion'];
    }



    $conn->exec("INSERT INTO visage (emotion, description) VALUES ('".$emotionId."', '".$_POST['description']."')");

    $visageId = $conn->lastInsertId();

    $conn->exec("INSERT INTO image_visage (id_image, id_visage) VALUES ('".$imageId."', '".$visageId."')");



    $couleursId = array();

    if($_POST['new_couleur'] != ''){
        $conn->exec("INSERT INTO couleur (nom) VALUES ('".$_POST['new_couleur']."')");

        $couleursId[] = $conn->lastInsertId();

    }
    foreach($_POST['couleurs'] as $couleurId){
        $couleursId[] = $couleurId;
    }


    



    //$conn->lastInsertId();
    //print_r($_POST);

?>

Un exemple de script de requêtes[modifier]

requete.php

<?php

    //$connexion = new PDO('mysql:host=localhost;dbname=objet', 'quentin', 'bsZ7ut2ctNk6EgBm');


    $connexion = new PDO('mysql:host=localhost;dbname=gracely', 'quentin', 'bsZ7ut2ctNk6EgBm');


    //SELECT UPDATE INSERT DELETE
    //$statement = $connexion->query('SELECT * FROM verre ');
    /*$statement = $connexion->query("SELECT nom_verre, nom_fichier FROM verre WHERE (provenance = 'Rome (It)' AND pied_fantaisie = 1) OR jambe_decoration = 0 ORDER BY nom_fichier DESC");*/


    //$statement = $connexion->query("SELECT verre.nom_verre, verre.nom_fichier FROM verre JOIN localisation ON localisation.id = verre.id_localisation WHERE localisation.nom = 'Musée des Arts Décoratifs, Paris (FR)' ");

    //$results = $statement->fetchAll(PDO::FETCH_ASSOC);

    $statement = $connexion->query("SELECT contenu FROM phrase JOIN phrase_theme ON phrase_theme.ID_phrase = phrase.ID JOIN theme ON phrase_theme.ID_theme = theme.ID WHERE theme.nom = 'Comportement'");
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
    print_r($results);

?>

<!doctype html>
<html>
    <head>
        <link rel="stylesheet" href="styles.css" type="text/css">
        <meta charset="utf-8">
        <title>Requete</title>
    </head>
    <body>
        <?php
            /*$i = 0;


            foreach($results as $element){
                echo '<p class="verre" id="verre-'.$i.'">'.$element['nom_verre'].'</p>';
                echo '<img src="'.$element['nom_fichier'].'">';
                $i = $i+1;
            }*/
        ?>
    </body>
</html>


Étapes du projet[modifier]

  1. choisir une source de données numériques.
    1. les données peuvent être de n'importe quel type de média (texte, vidéo, image, son)
    2. types de sources possibles: un site web / un blog / un journal en ligne / un catalogue / une base de données de textes / de vidéos / de sons, etc.
    3. exemples: http://wikileaks.org, https://www.gutenberg.org/, https://freesound.org/, http://youtube.com, http://maps.google.com, http://patents.google.com
  2. définir un corpus. Il s'agit d'appliquer des limites à la source choisie pour ne s'intéresser qu'à une partie des données diffusées.
    1. types de limites: temporelles, géographiques, thématiques, liées à un groupe, liées à une personne, liées à un type de média, etc.
    2. exemples: une fuite de wikileaks, une rubrique d'un site, un auteur sur le projet Gutenberg, une recherche Youtube, le rayoon d'une bibliothèque etc.
  3. extraire des spécimens. Il s'agit d'extraire du corpus une sélection limitée d'éléments, donc de définir les limites propres à ces éléments, avant de les analyser.
    1. exemples: un post, une image, une frame de vidéo, une séquence sonore, un paragraphe, une fiche, etc.
    2. des spécimens de types différents peuvent être extraits du même corpus
  4. pour chaque spécimen, créer une fiche descriptive. Quelles propriétés des spécimens peuvent être intéressantes?
    1. exemples: dates, occurrences de mots, couleur, dimensions, fréquence sonore, position d'un objet dans une image, etc.
  5. choisir un type de base de données et définir une structure permettant d'encoder les fiches définies à l'étape précédente
    1. exemples: tableur, base de données mysql, dossier contenant des fichiers
    2. cela implique de créer une schéma de la base de données (type de relations, type de requêtes) signifiant sa structure (et donc sa cohérence et sa faisabilité, son niveau de complexité).
  6. définir une méthode d'encodage des spécimens dans la base de données
    1. soit automatiquement soit manuellement soit un mélange des deux
    2. définir la fréquence, la vitesse, les étapes propres à l'encodage
  7. encoder tout ou une partie du corpus
  8. expérimenter des requêtes à envoyer à la base de données
    1. exemples: sélectionner tous les chapitres qui contiennent le mot "guerre", sélectionner tous les auteurs qui ont répondu par un smiley à un message, sélectionner tous les éléments ordonnés selon un certain champs, etc.

Et tout le long: comment rendre accessible chaque étape du projet? Quelle mise en forme, quel accès?

Les projets[modifier]

Quentin Lamouroux - La fétichisation de l'Objet

Charlotte Ecker

Simon Bouvier -

Jade Rouanet

Laura Conant

Emma Cottin

Maxine Ying - RO

Clara - Fleurs

Zoe Dadamo - 02

Maud Hazgour

Lena Bruyère - Mturk

Ayasha Khan

Adèle Boterf

Zoe Flts Data Base

Alice Dutertre - Techniques d'Archivages

À voir, à lire[modifier]

https://www.youtube.com/embed/m4dc976GX0k

https://www.maribastashevski.com/nothing-personal-extract

https://mishkahenner.com/Dutch-Landscapes

619588786 200x150.jpg

http://elahi.umd.edu/track/

https://cloud.editionsdevisscher.be/apps/gallery/s/ke4D8S6r8AysJLJ

Les bibliothèques de l'ombre: alexiadevisscher.be/piratelibraries.html

La Trilogie d’On Kawara se compose d’I GOT UP, I WENT et I MET, 36 volumes (13690 pages au total) permettant des croisements d'informations: https://www.youtube.com/watch?v=YxOynktWnMw

De 1993 à 2015, la Néerlandaise Dana Lixenberg a photographié les habitants d’Imperial Courts, qui fut l’épicentre des émeutes de 1991. 3 types d'infos (noms, années de prises de vue et liens de parenté) permettent de multiples navigations au sein du site Web et du livre qui documentent ce projet.

Récupérée de « https://pratiquesnumeriques.be/index.php?title=Session_02&oldid=1730 »

Dernière modification effectuée le 9 mai 2019.