<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="ePBLproject11.css" type="text/css"?>
<?xml-stylesheet href="project5.xsl" type="text/xsl"?>
<!DOCTYPE project SYSTEM "ePBLproject11.dtd">
<project>
 <name>xtm2svg</name>
 <authors>natascha michel</authors>
 <date>27 mai 2005</date>
 <updated>12 juillet 2005</updated>
 <goal>
  <title>Visualisation de Topic Maps</title>
  <description>
   <p>L'idée de base est d'utiliser <acronym title="Hypertext Preprocessor">PHP (5)</acronym> pour extraire du <acronym title="Extensible Markup Language">XML</acronym> afin de visualiser certains aspects des topic map (<acronym title="XML Topic Maps">XTM</acronym>) sous forme graphique avec <acronym title="Scalable Vector Graphics">SVG</acronym>.</p>
      <p>Concrètement:</p>
   <ul>
    <li>Passer par une exploration des différentes possibilités avec lesquelles on peut récupérer des données avec PHP</li>
    <li>apprendre SVG</li>
    <li>voir s'il y a des standards au niveau graphique/ergonomique pour visualiser des topic map</li>
    <li>Me familiariser avec Topic Maps, ses concepts, ses éléments (<a href="http://xmlfr.org/topicmaps.org/xtm/1.0/">spécifications</a>)</li>
   </ul>
  </description>
 </goal>
 <state-of-the-art>
  <h3>Outils ou méthodes de visualisation de Topic Map</h3>
  <p>Ce qui m'intéresse ici sont les outils existants qui permettent de visualiser un fichier écrit en XTM.</p>
  <ul>
   <li><strong><a href="http://www.thinkgraph.com/">ThinkGraph</a></strong> est un logiciel de Dessin 2D orienté vers la production de Cartes Conceptuelles développé par Michel Kern. Les fichiers générés s'appuient sur 2 standards XML : SVG et XTM.<br/></li>
   <li><strong><a href="http://www.topicmap-design.com/en/topicmap-designer.htm">Topic Map Designer</a></strong> (version beta).<br/></li>
   <li><strong><a href="http://www.ontopia.net/omnigator/models/index.jsp">Omnigator</a></strong>, basé sur le langage <a href="http://www.ontopia.net/omnigator/docs/schema/spec.html">Ontopia Schema Language (OSL)</a>. Il utilise <a href="http://java.sun.com/j2ee/index.jsp">java J2EE</a>, <a href="http://www.ontopia.net/solutions/navigator.html">Ontopia Navigator Framework</a>, <a href="http://jakarta.apache.org/tomcat/index.html">tomcat</a>.<br/></li>
  </ul>
  <h3>Récupérer les données XML avec PHP</h3>
  <p>Revue de différentes méthodes <strong>PHP 5</strong> pour récupérer les données d'un fichier XML.</p>
  <ul>
      <li><a href="http://tecfa.unige.ch/guides/tie/html/php-xml/php-xml.html"><strong>XML parsing avec PHP</strong>, TIE TECFA</a></li>
      <li><a href="http://tecfa.unige.ch/perso/staf/genet/sax/index.html">Cours STAF 2X de Mélie Genêt : <strong>L'extraction de données XML avec SAX et SimpleXML</strong></a><br/>Amène des introductions théoriques sur les deux méthodes, des exemples et des explication plus pratiques.</li>
   <li><strong>les <a href="http://ch2.php.net/simplexml">fonctions SimpleXML</a></strong><br/>
    - <a href="http://php.benscom.com/manual/fr/function.simplexml-load-file.php">simplexml_load_file</a>, qui convertit le document XML en un objet de type SimpleXMLElement.<br/>
    - <a href="http://php.benscom.com/manual/fr/function.simplexml-element-attributes.php">SimpleXMLElement->attributes</a><br/>
    - <a href="http://php.benscom.com/manual/fr/function.simplexml-element-children.php">SimpleXMLElement->children</a><br/>
    - <a href="http://php.benscom.com/manual/fr/function.simplexml-element-xpath.php">SimpleXMLElement->xpath</a>, qui cherche dans la node SimpleXML des enfants qui correspondent au path  Xpath. Elle retourne toujours un tableau d'objets array SimpleXMLElement.<br/>
    - <a href="http://php.benscom.com/manual/fr/function.simplexml-import-dom.php">simplexml_import_dom</a>, qui prend une node d'un document DOM  et la transforme en node SimpleXML. Ce nouvel objet peut alors être utilisé comme un élément natif SimpleXML.<br/>
   </li>
   <li><strong><a href="http://openwebmail.mirror.luxadmin.org/manual/fr/ref.dom.php">fonctions DOM</a></strong>, à développer si utilisation<br/></li>
   <li><strong><a href="http://openwebmail.mirror.luxadmin.org/manual/fr/ref.xslt.php">XSLT</a></strong>, à développer si utilisation<br/></li>
  </ul>
  <h3>Comprendre XTM</h3>
  <p>Ce projet vise aussi apprendre un peu comment fonctionne le langage topic map. Pour cela j'ai "décortiqué" quelques cartes faites par les volées précédentes en staf18 (notamment volée iris), j'ai pris connaissance du <a href="http://xmlfr.org/topicmaps.org/xtm/1.0/#AnnexeD">DTD XTM 1.0</a> ; et j'ai utilisé le <a href="http://tecfa.unige.ch/staf/staf-i/sangin/staf18/tutorieltm.htm">tutoriel sur les topic map de Mirweis SANGIN (janvier 2003)</a> pour les éléments pas assez explicités dans le DTD.</p>
 </state-of-the-art>
 <research-development-questions>
  <question>
   <title>Visualisation de Topic Maps</title>
   <description>
	<ul>
	  <li>Comment permettre la visualisation en utilisant php et svg
     </li>
	  <li>L'avantage apporté par la visualisation de concepts.
     </li>
	</ul>
</description>
  </question>
 </research-development-questions>
 <methodology>
    <p>Je pense partir sur un développement à partir de simpleXML, en utilisant Xpath et peut-être aussi un peu DOM.</p>
    <p>Cela semble être la méthode la plus simple à utiliser selon <a href="http://tecfa.unige.ch/guides/tie/html/php-xml/php-xml.html">les transparents TECFA</a> à ce sujet et c'est aussi celle qui m'est la plus appréhendable dans ce que j'ai lu jusqu'à maintenant.</p>
<p>En chargeant le fichier XML avec la fonction appropriée (<cite>i.e.</cite>simplexml_load_file()), je pourrais ensuite utiliser les éléments, leur contenu, les attributs et leur valeur. Étant donné que XTM est un langage XML, les noeuds, les associations, les topics, etc. sont tous définis dans des balises. Donc lorsque j'aurai fait mon choix quant à la partie que je vais implémenter, il me suffira d'extraire les données des balises concernées.</p>
<h3>Voici les étapes méthodologiques dans les grandes lignes : </h3>
    <ol>
      <li>Développer ma (mes) question(s) de recherche / de développement, en explorant les différentes solutions existantes.</li>
      <li>Me familiariser avec les Topic Maps et déterminer les aspects que je vais chercher à visualiser (<cite>i.e.</cite>choix de la partie implémentée)<br/></li>
      <li>Établir une mini charte graphique : comment les topics seront-ils représentés ? et les liens entre eux ? Pour cela j'aimerais voir s'il existe des standards.<br/></li>
      <li>Développer le dispositif... Je ne sais pas encore trop comment je vais m'y prendre...<br/></li>
    </ol>
</methodology>
 <workpackages>
  <workpackage>
   <planning>
    <from>27 mai 2005</from>
    <to>3 juin 2005</to>
    <hours-of-work>3</hours-of-work>
    <progress>100</progress>
   </planning>
   <objectives>
    <objective>
     <title>Déterminer les étapes du projet
     </title>
     <description>
      <p>Organisation du travail, faire un plan des étapes du projet.</p>
     </description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url>http://tecfaseed.unige.ch/staf18/modules/ePBL/uploads/proj5/</url>
     <title>Project.xml (voir la version la plus récente)</title>
     <description><p>définition du projet (ce document)</p></description>
    </deliverable>
   </deliverables>
  </workpackage>
  <workpackage>
   <planning>
    <from>27 mai 2005</from>
    <to>12 juillet 2005</to>
    <hours-of-work>10</hours-of-work>
    <progress>100</progress>
   </planning>
   <objectives>
    <objective>
     <title>Revue de la "litérature", de l'existant</title>
     <description>
      <ul>
       <li>connaître ce qui a déjà été fait</li>
       <li>reprendre des idées</li>
       <li>aide pour m'orienter, dans quelle direction travailler</li>
       <li>aide pour cerner mon projet</li>
      </ul>
      <p>Cett revue devrait couvrir différents points :</p>
      <ul>
       <li>les méthodes possible pour extraire des données</li>
       <li>la visualisation de données</li>
       <li>SVG et ses possibilités</li>
       <li>l'apport de la visualisation au niveau cognitif (<em>même si cet aspect sera probablement moins développé dans ce projet, j'aimerais en faire mention</em>)</li>
       <li>comment fonctionne XTM dans les grandes lignes</li>
      </ul>
     </description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url>http://tecfaseed.unige.ch/staf18/modules/ePBL/uploads/proj5/</url>
     <title>Project.xml (voir la version la plus récente)</title>
     <description><p>définition du projet (ce document)</p></description>
    </deliverable>
   </deliverables>
  </workpackage>
  <workpackage>
   <planning>
    <from>27 mai 2005
    </from>
    <to>12 juillet 2005
    </to>
    <hours-of-work>3
    </hours-of-work>
    <progress>100
    </progress>
   </planning>
   <objectives>
    <objective>
     <title>Définir ma (mes) question(s) de développement (et de recherche)
     </title>
	  <description><p>Une fois que j'aurais mieux cerner l'existant, il me sera plus facile de définir une question de développement. Pour l'instant, c'est davantage un intérêt pour la visualisation et les cartes conceptuelles qui m'ont amenée à ce projet. J'ai l'impression que j'aurais plus à dire sur ma question de recherche après avoir manipuler un peu ces données.</p><p>Une fois le projet terminé, par la force des choses, je m'aperçois que je n'ai pas vraiment pris le temps de réfléchir à une question de recherche de développement plus appronfonfie et qui m'aurait peut-être permis de moins me perdre dans l'extraction des données !</p></description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url>http://tecfaseed.unige.ch/staf18/modules/ePBL/uploads/proj5/</url>
     <title>Project.xml (voir la version la plus récente)</title>
     <description><p>définition du projet (ce document)</p></description>
    </deliverable>
   </deliverables>
  </workpackage>
  <workpackage>
   <planning>
    <from>10 juin 2005
    </from>
    <to>12 juillet 2005
    </to>
    <hours-of-work>4
    </hours-of-work>
    <progress>100
    </progress>
   </planning>
   <objectives>
    <objective>
     <title>Familiarisation avec Topic Maps
     </title>
     <description>
      <ul>
       <li>Découvrir le langage </li>
       <li>Familiarisation avec les concepts Topic Maps</li>
       <li>Déterminer quels aspects développer dans le dispositif (c'est à dire choisir une partie de Topic Maps plutôt que de tenir compte de l'ensemble)</li>
       <li>Établir une mini charte graphique</li>
      </ul>
     </description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url></url>
     <title>
     </title>
     <description>
     </description>
    </deliverable>
   </deliverables>
  </workpackage>
  <workpackage>
   <planning>
    <from>8 juin
    </from>
    <to>12 juin
    </to>
    <hours-of-work>2
    </hours-of-work>
    <progress>100
    </progress>
   </planning>
   <objectives>
    <objective>
     <title>Déterminer quelle méthode utiliser pour extraire les données
     </title>
     <description>
      <p>Parmi les différentes méthodes possibles pour extraire des données, choisir celle qui sera la plus adaptée aux objets choisis. (Sans tester toutes les méthodes, je m'aperçois que simpleXML semble être la méthode la plus abordable et la plus raisonnable.)</p>
     </description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url></url>
     <title>
     </title>
     <description>
     </description>
    </deliverable>
   </deliverables>
  </workpackage>
  <workpackage>
   <planning>
    <from>12 juin 2005
    </from>
    <to>12 juillet 2005
    </to>
    <hours-of-work>30
    </hours-of-work>
    <progress>100
    </progress>
   </planning>
   <objectives>
    <objective>
     <title>Développement
     </title>
     <description>
      <p>Développement du dispositif</p>
      <ul>
       <li>extraction des données choisies</li>
       <li>visualisation en SVG selon la charte définie auparavant</li>
      </ul>
     </description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url>http://tecfa.unige.ch/staf/staf-k/michel/staf18/xtm2svg/listeAllTopic.php</url>
     <title>Dispositif XTM2SVG
     </title>
     <description><p>Le dispositif est très peu élaboré comparitevement au projet d'origine. La visualisation n'est en aucun cas graphique, l'utilisation de SVG n'est donc pas un choix très économique. Deux aspects ont été dévelopés : une <a href="http://tecfa.unige.ch/staf/staf-k/michel/staf18/xtm2svg/listeAllTopic.php">liste de tous les topics</a> qui permet d'accéder à <a href="http://tecfa.unige.ch/staf/staf-k/michel/staf18/xtm2svg/seeOne.php">chaque topic</a>, en tant que "topic central" et aux topics qui lui sont liés par l'intérmédiaire des balises enfants de <cite>topic</cite>.</p>
     </description>
    </deliverable>
   </deliverables>
  </workpackage>
  <workpackage>
   <planning>
    <from>20 juin 2005</from>
    <to>12 juillet 2005</to>
    <hours-of-work>4</hours-of-work>
    <progress>100</progress>
   </planning>
   <objectives>
    <objective>
     <title>Rédaction de l'article</title>
     <description><p>Article dans lequel je reprendrai l'objectif de mon projet, les étapes, les difficultés rencontrées, les solutions adoptées, les apports et les limites de mon dispositif. J'aimerais également abordé la question de la visualisation en tant que présentation de l'information complémentaire à une version textuelle.</p></description>
    </objective>
   </objectives>
   <deliverables>
    <deliverable>
     <url>http://tecfaseed.unige.ch/staf18/modules/ePBL/uploads/proj5/</url>
     <title>Paper.xml (voir la version la plus récente)
     </title>
     <description>
     </description>
    </deliverable>
   </deliverables>
  </workpackage>
 </workpackages>
</project>
