Menu : html yaml json edit check reindex dump unset
* 

{
    "title": "Présentation résumée de YamlDoc",
    "modified": "2019-02-23T00:00:00+00:00",
    "abstract": "YamlDoc\n-------\nYamlDoc est un système de gestion documentaire fondé sur :\n\n  - l'organisation de documents correspondants principalement à des fichiers texte structurés au\n    **[format Yaml](?ypath=/yaml)**,\n  - l'utilisation, quand cela est adapté, pour les champs d'une **[sémantique bien connue](?ypath=/semantic)**\n    (DublinCore, Skos, Schema.org, GeoJSON, ...), conformément aux principes\n    du [Web des données](https://fr.wikipedia.org/wiki/Web_des_donn%C3%A9es),\n  - la définition de [classes de documents](?ypath=/ydclass) permettant,\n    d'une part, de spécifier le contenu des documents par un [schéma JSON](https://json-schema.org/)\n    et, d'autre part, d'associer à un document un comportement défini par une classe Php.\n  - la possibilité de formatter les textes contenus dans un champ du fichier Yaml\n    en utilisant le **[langage Markdown](?ypath=/markdown)**,\n  - l'utilisation d'un [visualiseur Web](?ypath=/viewer) de documents extensible grâce aux classes de documents,\n  - un mécanisme de [requête simple (ypath)](?ypath=/ypath) dans les documents,\n  - la possibilité d'effectuer des [recherches plein texte](?ypath=/textSearch) dans les documents,\n  - l'[organisation d'espaces documentaires partagés chacun sous la forme d'une archive Git](?ypath=/git),\n    pouvant ainsi utiliser soit [Github](https://github.com/benoitdavidfr/yamldocs),\n    soit une archive Git privée,\n  - la définition de [requêtes sur les documents](?ypath=/query) en Php,\n    \nYamlDoc est notamment étendu pour permettre :\n  \n  - l'[accès aux données géographiques et la définition de cartes Leaflet](?doc=geodata),\n  - l'[exploitation de catalogue de données géographiques](?doc=geocats),\n  - l'utilisation de thésaurus Skos comme [EuroVoc](?doc=eurovoc),\n  - l'[utilisation d'API de l'INSEE](?doc=insee).\n  \n",
    "yaml": "### Fondé sur le format Yaml\nLe format [Yaml](https://fr.wikipedia.org/wiki/YAML) permet de structurer des documents ou des données\npar combinaison de listes, tableaux associatifs et données scalaires.\nSimilaire au format JSON, il a l'avantage d'être très **lisible** pour nous les humains\ntout en étant facile à comprendre pour les machines.  \nIl permet de structurer aussi bien des documents composés principalement de textes comme le présent document,\nque des bases de données comme par exemple la [base historique des communes](?doc=geohisto/communes),\ndes structures de graphe comme le [thésaurus EuroVoc](?doc=eurovoc)\nou des documents strcturés complexes comme le\n[modèle de données Inspire](?doc=isnpire-datamodel) déduit du règlement interopérabilité.  \nEnfin, l'édition de documents Yaml est fournie par divers éditeurs de texte comme\n[Notepad++ sous Windows](https://notepad-plus-plus.org/fr/) ou [TextMate sur Mac](https://macromates.com/).\n",
    "semantic": "### Sémantique bien connue\nLorsque cela est adapté, la sémantique des champs des tableaux associatifs Yaml respecte les standards suivants:\n  \n  - le [standard Dublin Core](https://fr.wikipedia.org/wiki/Dublin_Core) pour décrire les métadonnées\n    d'un document ; ainsi il est recommandé d'utiliser des champs Dublin Core (comme title, subject, description,\n    date, ...) pour définir les métadonnées de chaque document\n    ([synthèse des principaux champs ici](?doc=dublincore)) ;\n  - le [standard SKOS](https://fr.wikipedia.org/wiki/Simple_Knowledge_Organization_System) ([résumé ici](?doc=skos))\n    encodé en Yaml pour représenter des thésaurus comme le [thésaurus EuroVoc](?doc=eurovoc)\n    ou le [lexique topographique](?doc=topovoc) de l'AFT ;\n  - le [standard Schema.org](https://fr.wikipedia.org/wiki/Schema.org) pour structurer\n    des bases de données, telles que par exemple des listes d'organismes en utilisant le\n    [type Organization](https://schema.org/Organization),\n  - le [standard GeoJSON](https://tools.ietf.org/html/rfc7946) pour décrire des bases de données\n    géographiques vecteur, [plus de détails ici](?doc=geodata).\n",
    "ydclass": "### Définition de classes de documents\nUne classe de documents correspond à:\n  \n  - un [schéma JSON](https://json-schema.org/),\n  - une classe d'objets Php définissant:\n    - des méthodes de consultation interactive du document,\n    - une API REST de consultation en machine to machine,\n    - une API Php d'utilisation du document en interne à YamlDoc.\n    \nPar exemple la classe YamlSkos définit des documents qui correspondent à un thésaurus décrit en SKOS.\nAinsi, le schéma JSON précise coment le thésaurus doit être structuré en Yaml,\net la classe Php permet :\n  \n  - d'afficher en HTML le thésaurus ou une de ses parties (Concept, micro-thésaurus),\n  - d'exposer une API REST de consultation du thésaurus ou d'une de ses parties,\n  - de fournir des méthodes Php pour utiliser le thésaurus.\n\nLa gestion des classes est développée dans [ce document](?doc=yamldoc/ydclasses).\n",
    "markdown": "### Markdown\nLe [langage Markdown](https://fr.wikipedia.org/wiki/Markdown) est utilisé pour formatter des textes (titres, gras,\nitalique, liste de puces, liens URL, ...) ;\nson utilisation est [illustrée ici](?doc=markdown).\nLes différentes parties du présent document constituent un autre exemple d'utilisation du Markdown.\n",
    "viewer": "### Visualiseur\nUn visualiseur en mode web permet de visualiser les documents et de naviguer entre eux.\nIl permet de vérifier qu'un document est conforme à son schéma.\nIl offre aussi une fonctionnalité limitée de modification.  \nUn mode de visualisation par défaut est défini mais le visualisateur peut être étendu pour s'adapter aux\ndifférentes structures de document. Par exemples:\n  \n  - l'extension YamlData permet de visualiser le contenu d'une base de données,\n  - l'extension YamlSkos permet de naviguer facilement au sein d'un thésaurus Skos,\n  - l'extension DataModel permet de naviguer facilement au sein d'un modèle de données.\n  \nLe visualisateur de l'espace public est accessible sous\n[http://georef.eu/yamldoc/?doc=index](http://georef.eu/yamldoc/?doc=index).  \nSon code source est disponible sur: [Github](https://github.com/benoitdavidfr/yamldoc).\n",
    "ypath": "### Ypath: mécanisme de requêtes simples\nLa fourniture d'une chaine de caractères particulière (appelée Ypath), permet de sélectionner\nune partie d'un document ou d'une base de données.\nSon utilisation est illustrée par les exemples ci-dessous :\n  \n  - dans le présent document, la sélection de la partie *yaml* du document s'effectue en entrant\n    dans le champ de saisie en dessous du menu la chaine `/yaml`,\n  - il est aussi possible d'afficher ce même champ en suivant\n    l'url [`?doc=yamldoc&ypath=/yaml`](?doc=yamldoc&ypath=/yaml),\n  - dans un thésaurus comme le [lexique topographique](?doc=topovoc),\n    on peut référencer le micro-thésaurus `lexiquecadastre`\n    par la chaine [`/schemes/lexiquecadastre`](?doc=topovoc&ypath=/schemes/lexiquecadastre)\n    ou le terme `matrice_cadastrale`\n    par la chaine [`/concepts/matrice_cadastrale`](?doc=topovoc&ypath=/concepts/matrice_cadastrale),\n  - dans la table des départements :\n    - la sélection de l'enregistrement ayant pour *name* `Guadeloupe` s'effectue\n      par la chaine [`/data/name=Guadeloupe`](?doc=geohisto/departements&ypath=/data/name=Guadeloupe)\n    - la sélection des enregistrements ayant pour *insee_code* `04` s'effectue\n      par la chaine [`/data/insee_code=04`](?doc=geohisto/departements&ypath=/data/insee_code=04)\n    - la projection sur les champs *insee_code*, *name* et *successors* s'effectue par la \n      chaine [`/data/insee_code,name,successors`](?doc=geohisto/departements&ypath=/data/insee_code,name,successors)\n",
    "textSearch": "### Recherche plein texte\nEn tapant un mot ou plusieurs dans le champ de saisie, une recherche plein texte est effectuée dans les documents.\nSi la chaine ne commence pas par un '/' la chaine est interprétée comme une liste de mots.  \nPar exemple, en tapant le mot `bourgogne` on trouve les fragments d'EuroVoc et de geohisto qui\ncontiennent ce mot.  \nOn notera que l'indexation est effectuée par fragment, c'est à dire chaine ou texte à l'intérieur du document,\net non document par document.\nC'est un point important par exemple pour indexer des bases de données.  \nAinsi, par exemple, lors de la recherche du mot `bourgogne`, un des résultats est le fragment d'Eurovoc\ncorrespondant au ypath `/concepts/5032/historyNote/fr/0` ; il s'agit donc de la première note historique\nen français associée au concept 5032. Il est simple de remonter ici au concept en modifiant le ypath.\n\nDifférentes possibilités de recherche sont proposées :\n  \n  - en indiquant plusieurs mots on cherche les fragments contenant au moins un des mots,\n    par exemple la chaine `Franche Comté` permet de trouver les fragments contenant soit Franche soit Comté,\n  - en faisant précéder les mots par un + on cherche les fragments contenant tous les mots,\n    par exemple la chaine `+Franche +Comté` permet de trouver les fragments contenant à la fois Franche et Comté,\n  - en faisant précéder un mot par un - on exclue les fragments contenant ce mot,\n    par exemple la chaine `+Franche -Comté` permet de trouver les fragments contenant Franche mais pas Comté,\n  - en faisant suivre un mot par * on cherche les mots commencant par le mot,\n    par exemple la chaine `geograph*` permet de trouver géographie et geography.\n  \nIl est aussi possible de restreindre la recherche à un document, voire à certains fragments,\npar exemple on peut rechercher le mot géographie uniquement dans les concepts d'Eurovoc\nen indiquant dans le champ key `eurovoc/concepts`.\n",
    "git": "### Organisation d'espaces documentaires partagés chacun sous la forme d'une archive Git\nLes documents sont partitionnés en différents espaces documentaires\navec pour chacun des accès en lecture et/ou en écriture pour certains utilisateurs.  \nChaque espace documentaire correspond à une [archive Git](https://fr.wikipedia.org/wiki/Git)\nqui peut ainsi être partagée.\nOutre l'utilisation en mode web,\nles différents utilisateurs d'un espace peuvent ainsi modifier les documents sur leur poste local\nau moyen d'un éditeur de texte.\nLe logiciel Git est utilisé pour assurer la synchronisation entre les différentes copies. \n\nDans un premier temps, seuls 2 espaces sont définis: un espace public et un espace privé.  \nL'archive Git de l'espace public est accessible à l'URL:\n[https://github.com/benoitdavidfr/yamldocs](https://github.com/benoitdavidfr/yamldocs) et\nle visualisateur de cet espace est accessible sous\n[http://georef.eu/yamldoc/?doc=index](http://georef.eu/yamldoc/?doc=index).  \n\nL'utilisation du mécanisme des branches de git permet d'isoler les modifications de différents utilisateurs ;\ncette fonctionnalité potentielle n'a pas encore été mise en oeuvre.\n",
    "query": "### Requêtes en Php\nLes documents correspondant à des bases de données peuvent facilement être exploités par des scripts Php\nqui effectuent des requêtes dans les données.\nCes requêtes sont appelées comme des documents.  \nPar exemples :\n  \n  - le document [jregdept](?doc=jregdept) réalise une jointure entre les régions actuelles et les départements\n    actuels et renvoie la liste des régions actuelles avec pour chacune la liste de ses départements\n    ([consulter le code source Php de la requête](?action=showPhpSrc&doc=jregdept)),\n  - il est possible de sélectionner une partie du document jregdept en indiquant un ypath,\n    ainsi [ypath=`/data/insee_code=32/depts`](?doc=jregdept&ypath=/data/insee_code=32/depts)\n    sélectionne la liste des départements de la région ayant 32 comme insee_code.\n  - autre exemple, le document [cregions](?doc=cregions) sélectionne les régions actuelles\n    ([consulter le code source Php de la requête](?action=showPhpSrc&doc=cregions)).\n    \nDu point de vue implémentation, un document requête est un script Php qui renvoie un array Php \nà partir duquel sera créé un objet Yamldoc par exemple pour afficher le résultat de la requête.\n"
}