Showing posts with label API. Show all posts
Showing posts with label API. Show all posts

Tuesday, May 23, 2017

comparison figshare versus zenodo






Zenodo

see my posts (tag zenodo)

HTML of figshare

9 fields (input)


HTML


Three levels of services

  1. general features for FREE accounts
  2. services for publishers
    1. figshare Viewer
    2. visualize any format of supplemental and digital files within your articles
  3. services for institutions
    1. Curation workflows
    2. manage the curation of files to be made public, control quotas and administer rights
https://figshare.com/features

 additional custom METADATA

Public files hosted on figshare are issued with Digital Object Identifiers (DOIs) via DataCite through the California Digital Library. In order to meet with DataCite metadata requirements, figshare requires users to add the following information before making files public and citable: Title, author list (ordered), categories (set ontology), tags (free text) and a description with as much context as needed to interpret the files. Users can also add links to external sources.

Institutional clients can define additional custom metadata when implementing figshare.
https://support.figshare.com/support/solutions/articles/6000079087-metadata-and-dois

Profile: All about your profile page

https://support.figshare.com/support/solutions/articles/6000088096-profile-all-about-your-profile-page

Example of a publisher 

https://plos.figshare.com/

Other programmatic tools (in GitHub)

https://github.com/search?utf8=%E2%9C%93&q=figshare


comparison of 2 open archives: figshare zenodo


Zenodo

see my posts (tag zenodo)

HTML of figshare

9 fields (input)


HTML


Three levels of services

  1. general features for FREE accounts
  2. services for publishers
    1. figshare Viewer
    2. visualize any format of supplemental and digital files within your articles
  3. services for institutions
    1. Curation workflows
    2. manage the curation of files to be made public, control quotas and administer rights
https://figshare.com/features

Additional custom METADATA

Public files hosted on figshare are issued with Digital Object Identifiers (DOIs) via DataCite through the California Digital Library. In order to meet with DataCite metadata requirements, figshare requires users to add the following information before making files public and citable: Title, author list (ordered), categories (set ontology), tags (free text) and a description with as much context as needed to interpret the files. Users can also add links to external sources.

Institutional clients can define additional custom metadata when implementing figshare.
https://support.figshare.com/support/solutions/articles/6000079087-metadata-and-dois

Profile: All about your profile page

https://support.figshare.com/support/solutions/articles/6000088096-profile-all-about-your-profile-page

Example of a publisher 

https://plos.figshare.com/

Other programmatic tools (in GitHub)

https://github.com/search?utf8=%E2%9C%93&q=figshare

Monday, March 13, 2017

dissemin impactstory web service déposer sur des archives ouvertes Zenodo HAL



Dissemin est à comparer à https://impactstory.org/
qui lui ne propose que de relier vos références (qu'il trouve) à des liens URL (No free fulltext anywhere? Consider uploading this work to an open repository like Zenodo or Figshare.)
Dissemin vous aide à trouver et à uploader.
Dissemin http://dissem.in/

C'est un web service encourageant les chercheurs à diffuser leurs publications librement.
Dissemin propose une plateforme web qui récolte des métadonnées à partir de différentes sources et qui détermine la disponibilité du texte intégral des publications des chercheurs. Il a été conçu pour encourager l'usage des dépôts (plutôt que les pages personnelles).

Les chercheurs ont souvent le droit de mettre leurs articles en accès libre sur le Web, pour compléter la version payante proposée par les éditeurs traditionnels. Pourtant, tous ne le font pas.

À cause de cela, les bibliothèques doivent payer à prix d'or des abonnements électroniques aux journaux de recherche, ce qui grève leurs finances et limite leur offre.

C'est déjà bien de mettre vos articles en ligne sur votre page Web, mais ce n'est pas suffisant ! De telles copies sont moins pérennes et plus difficiles à trouver que celles qui sont déposées dans des dépôts bien indexés.

Dissemin cherche des copies de vos articles dans une grande collection de dépôts ouverts en ligne, et vous indique ceux qu'il n'a pas pu trouver de cette façon.

Il propose aussi le service de chercher les références dans wikipedia et de les lier à des documents open access dans des archives ouvertes.

Quand nous l'avons trouvé dans l'un des dépôts que nous parcourons. La liste de ces dépôts est à voir ci-dessous.

Sources primaires


  • CrossRef.org
  • BASE (Bielefeld Academic Search Engine); grâce au moteur de recherche BASE, nous avons accès à plus de 80 millions de ref.
  • SHERPA/RoMEO
  • Zotero

Sources secondaires

Moissonnées avec le protocole OAI-PMH.

  • arXiv
  • HAL
  • PubMed Central
  • OpenAIRE
  • DOAJ
  • Persée
  • Cairn.info
  • Numdam

http://dissem.in/sources

Quelques personnes ont créé une associations 'CAPSH' qui gère certains aspects de dissemin:
CAPSH (Committee for the Accessibility of Publications in Sciences and Humanities) is a French nonprofit association promoting the open access to academic publications. It is in charge of the Dissemin project.

Liste des présentation à des congrès conf:

https://association.dissem.in/index.html.fr

process

On se connecte avec son ORCID id à
http://dissem.in/

Il trouve les fichiers et les classe suivant l'accord avec l'éditeur.
Puis il permet de faire de l'upload vers ZENODO (avec peu de metadata)
(et aussi vers HAL voir ci-dessous).

Le site a aussi une fonction "profile" qui liste vos file et vos dépôt (upload).

FAQ


Documentation

Les dépôts

Quel dépôt utiliser ?
Il y a en gros trois types de dépôts :
Les dépôts thématiques, qui se limitent à certains domaines précis, comme arXiv.
Les dépôts institutionnels, dédiés à l'archivage de la production scientifique d'une institution ou d'un pays.
Les dépôts académiques génériques comme Zenodo, dont le périmètre n'est limité qu'aux données issues de la recherche.
Si votre communauté scientifique préfère un dépôt thématique particulier, il vaut mieux l'utiliser afin d'améliorer votre visibilité. Dans le cas contraire, les dépôts institutionnels ou génériques sont également une option raisonnable.

ZENODO HAL 

Pourquoi ne puis-je pas déposer dans mon dépôt favori pour l'instant ?

Pour l'instant, nous vous proposons seulement de déposer vos articles dans les dépôts suivants :
  • Zenodo, un dépôt innovant soutenu par l'UE.
  • HAL, un dépôt français géré par le CCSD
Pour proposer davantage de dépôts, il faut que nous écrivions du code spécifique à chaque dépôt, mais il faut surtout que ces dépôts nous donnent l'autorisation de déposer des papiers en masse. Nous avons envisagé d'intégrer les dépôts suivants :
arXiv, un dépôt généraliste bien connu. Pour l'instant, arXiv n'autorise pas Dissemin à déposer en utilisant leur API SWORD, et demande aux utilisateurs de déposer dans arXiv manuellement. Si vous voudriez utiliser Dissemin pour déposer vos articles dans arXiv, n'hésitez pas à les contacter.

CCSD HAL

Il permet à chaque chercheur de mesurer l’accessibilité de ses publications et de mettre en ligne en quelques clics celles qui ne sont pas déjà librement disponibles. Plus besoin de saisir manuellement les métadonnées (titre, auteurs ou identifiants variés) : celles-ci sont automatiquement renseignées par Dissemin.
Cette fonctionnalité est rendue possible par l’exploitation de deux sources de données : le Bielefeld Academic Search Engine (BASE) et Crossref, qui couvrent presque 100 millions de publications.

Jusqu’à présent, les documents ainsi rendus librement accessibles étaient hébergés par Zenodo, un dépôt appartenant au CERN. Les chercheurs de toutes disciplines souhaitant déposer dans HAL peuvent désormais aussi utiliser Dissemin comme canal de dépôt depuis début 2017.

Dissemin utilise l’import SWORD pour déposer les publications. Celles-ci suivent le parcours classique de vérification avant d’être mises en ligne.  Les dépôts effectués par Dissemin seront rattachés au compte utilisateur de l’auteur dans HAL à partir de l’identifiant ORCID. Pour cela il faudra juste que l’auteur ait associé son compte HAL avec son ORCID.
Cette réalisation est le fruit d’un partenariat entre le Consortium Couperin, le CCSD, et le CAPSH, qui développe Dissemin.
https://www.ccsd.cnrs.fr/2017/03/deposer-dans-hal-avec-dissemin/

GitHub

Le code source est sur GitHub
python
https://github.com/dissemin/dissemin

Puis-je récolter vos données ?

Oui ! Nous avons même une API. Si vous n'êtes pas satisfait par ce qu'elle propose, n'hésitez pas à nous contacter.
http://dev.dissem.in/#api

Friday, March 10, 2017

DataCite services, Zenodo and MANY ORCID integration services (and impactstory)



DataCite services

Locate, identify, and cite research data with DataCite, a global provider of DOIs for research data.

https://www.datacite.org/
(less services than crossRef).

http://stephane-mottin.blogspot.fr/2017/01/datacite-inist-cern-metadata-schema.html

DOI handbook
http://www.doi.org/hb.html

In order to create new DataCite DOIs and assign them to your content, it is necessary to become a DataCite member or work with one of the current members.

Through the web interface or the API of the DataCite Metadata Store you will be able to submit a name, a metadata description following the DataCite Metadata Schema and at least one URL of the object to create a DOI. Once created, information about a DOI is available through our different services search, event data, OAI-PMH and others).

The DataCite Metadata Store is a service for data publishers to mint DOIs and register associated metadata. The service requires organisations to first register for an account with a DataCite member.
https://mds.datacite.org/

http://schema.datacite.org/

status of the services
http://status.datacite.org/

https://blog.datacite.org/

Services of DataCite profiles

DataCite Profiles integrates DataCite services from a user’s perspective and provides tools for personal use. In particular, it is a key piece of integration with ORCID, where researchers can connect their profiles and automatically update their ORCID record when any of their works contain a DOI.

https://profiles.datacite.org/
example
https://profiles.datacite.org/users/0000-0002-7088-4353
0000-0002-7088-4353 is my ORCID Id.

You can get

  • your ORCID Token 
  • your API Key
    (if you want to use the ORCID API).

In your profile, you can select how to connect:

You can also follow ORCID claims.
For example: "You have 5 successful claims, 0 notification claims, 0 queued claims and 0 failed claims"

You are also linked to Impactstory
Impactstory is an open-source website that helps researchers explore and share the the online impact of their research.
https://impactstory.org/u/0000-0002-7088-4353
0000-0002-7088-4353 is my ORCID id.

You must authorize impactstory.org to link with your ORCID.
You must also connect impactstory.org with your twitter.
In impactstory, Zenodo from ORCID are "datasets".

Zenodo and DataCite METADATA

If you use ZENODO, an Open Archive with DataCite DOI, DataCite services are interesting.

Zenodo gives a DataCite DOI and an export to a clean datacite METADATA (XML DataCite 3.1).

(see also my posts on this blog with the tag "zenodo")

Zenodo DataCite and Orcid

If you use ZENODO and your ORCID Id  then you have some services:

You must allow Zenodo to "Get your ORCID iD".

You must allow DataCite to  allow ORCID "Add works"
But only 5 METADATA are automatically sent to ORCID by DataCite.

  • Title, 
  • Year, 
  • Description (the full field of Zenodo), 
  • Contributor (the field 'creator' of Zenodo = authors),
  • DOI

You can add metadata in ORCID...
Change type 'Work category' and  'Work type'.
Then Source is changed from 'zenodo' to 'Stéphane MOTTIN'

In impactstory, Zenodo links (from ORCID) are considered as "datasets" with only 4 METADATA
  • Title, 
  • Year, 
  • Contributor (the field 'creator' of Zenodo = authors),
  • DOI

ORCID

You can see the list of ORCID "trusted organization"
at https://orcid.org/account
DataCite can 'add works'.


For other ORCID Search & link wizards:
http://support.orcid.org/knowledgebase/articles/188278-link-works-to-your-orcid-record-from-another-syste

for example
  • The Crossref Metadata Search integration allows you to search and add works by title or DOI. Once you have authorized the connection and are logged into ORCID, Crossref search results will also include a button to add works to your ORCID record.
    http://search.crossref.org/
  • The DataCite integration allows you to find your research datasets, images, and other works. Recommended for locating works other than articles and works that can be found by DOI.
  • The ISNI2ORCID integration allows you to link your ORCID and ISNI records and can be used to import books associated with your ISNI. Recommended for adding books.
    http://isni2orcid.labs.orcid-eu.org/
  • Use this tool to link your ResearcherID account and works from it to your ORCID record, and to send biographical and works information between ORCID and ResearcherID.
    http://wokinfo.com/researcherid/integration/
  • Use this wizard to import works associated with your Scopus Author ID; see Manage My [Scopus] Author Profile for more information. Recommended for adding multiple published articles to your ORCID record.
    https://www.elsevier.com/solutions/scopus/support/authorprofile

Monday, March 6, 2017

Upload a PDF and publish with many metadata to ZENODO. JSON template.



For a long introduction see
http://stephane-mottin.blogspot.fr/2017/01/zenodo-github-research-data-repository.html
see also the posts with the tag "zenodo"

Here we will focus on the process and on the metadata.

4 methods
  • manual
  • python or cURL
  • tools

manual via upload user interface

Invenio and Zenodo uses the tool "json editor"
  https://github.com/jdorn/json-editor


11 fields

  1. Upload type 
    1. Book section 
    2. ... Journal article, etc
  2. Basic Info
    1. date
    2. Title
    3. Authors (one by one)!!!
    4. Description (only text (and math formula) without link!!!)
      https://zenodo.org/dev#collapse-list16
      description String Abstract or description for deposition.
      Following HTML tags are allowed: a, p, br, blockquote, strong, b, u, i, em, ul, ol, li, sub, sup, div, strike.
    5. Keyword
    6. Additional notes, for example sommaire
  3. License
    1. Open
    2. CC 4.0; you must add its category
  4. Communities
    1. integrations (for example)
  5. Funding
    1. CNRS (for exemple)
  6. related/alt identif
    1. ISSN, ISBN, URL
  7. Contributors for example the dir of collection
  8. reference
    witch appear on the bottom of the page
  9. journal
  10. c
  11. Book
    1. Publisher
    2. Place
    3. ISBN
    4. Book Title
    5. Page (of this book)

METADATA


schema JSON ZENODO

description Abstract or description for deposition. 

Following HTML tags are allowed: 
a, p, br, blockquote, strong, b, u, i, em, ul, ol, li, sub, sup, div, strike.

<ul>
  <li>prem</li>
  <li>second</li>
  <li>thrird</li>
</ul>

En outre attention à ce que votre texte ne contienne pas de ' ou de " comme  d'avantage ;)

code GitHub

code analyse metadata

python or cURL

Create a new deposition resource with cURL

http://developers.zenodo.org/?shell#list
curl -i -H "Content-Type: application/json" -X POST
     --data '{"metadata": {"title": "My first upload", "upload_type": "poster", "description": "This is my first upload", "creators": [{"name": "Doe, John", "affiliation": "Zenodo"}]}}' /api/deposit/depositions/?access_token=ACCESS_TOKEN


other example:
curl -i -H "Content-Type: application/json" -X POST --data '{"metadata":{"access_right": "open","creators": [{"affiliation": "Brain Catalogue", "name": "Toro, Roberto"}],"description": "Brain MRI","keywords": ["MRI", "Brain"],"license": "cc-by-nc-4.0", "title": "Brain MRI", "upload_type": "dataset"}}' https://zenodo.org/api/deposit/depositions/?access_token=$token |tee zenodo.json

http://siphonophore.org/blog/2016/01/16/at-brain-catalogue-we-love-zenodo/

curl  is  a  tool  to transfer data from or to a server, using one of the supported protocols
       (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP,  LDAPS,  POP3,  POP3S,  RTMP, RTSP,  SCP,  SFTP,  SMB, SMBS, SMTP, SMTPS, TELNET and TFTP).
The command is designed to work without user interaction.

Create a new deposition resource with python

It's easier to publish with python:
http://developers.zenodo.org/?python#quickstart-upload
This short guide will give a quick overview of how to upload and publish on Zenodo, and will be using Python together with the Requests package.

more info

http://zenodo.readthedocs.io/en/latest/api/records.html
http://zenodo.readthedocs.io/en/latest/api/deposit.html

Testing

We provide a sandbox environment where you can test your API integration during development. The sandbox environment is available at http://sandbox.zenodo.org.

Please note that the sandbox environment can be cleaned at anytime. Also, the sandbox environment will issue test DOIs using the 10.5072 prefix instead of Zenodo’s normal prefix (10.5281).


Tools Zenodio

Zenodo I/O
Zenodio is a simple Python interface for getting data into and out of Zenodo, the digital archive developed by CERN. Zenodo is an awesome tool for scientists to archive the products of research, including datasets, codes, and documents. Zenodio adds a layer of mechanization to Zenodo, allowing you to grab metadata about records in a Zenodo collection, or upload new artifacts to Zenodo with a smart Python API.

We’re still designing the upload API, but metadata harvesting is ready to go.

The zenodio.metadata sub package provides a Python representation of Zenodo metadata (but not File or Zenodo deposition metadata).

https://github.com/lsst-sqre/zenodio/tree/metadata_api
http://zenodio.lsst.io/en/latest/
https://jira.lsstcorp.org/browse/DM-4852

Python template

zenodo JSON format
example for a book section (in french).

see the details of each field

see how to use at

see the page of this record:

JSON


data = {'metadata':{'upload_type': 'publication','publication_type': 'section','title': 'Introduction au dimensionnement', 'creators': [{'name': 'Pádua, Agílio'}],'partof_pages':'17-25','contributors': [{'name': 'Boissinot, Patrick ', 'type': 'DataCollector'},{'name': 'Langlois, Patrick ', 'type': 'DataCollector'},{'name': 'Pádua, Agílio', 'type': 'DataCollector'},{'name':'Lelièvre, Gérard', 'affiliation': 'CNRS', 'type': 'Editor'},{'name':'Mottin, Stéphane', 'affiliation': 'CNRS', 'type': 'Editor', 'orcid': '0000-0002-7088-4353'},{'name':'Mottin, Stéphane', 'affiliation': 'CNRS', 'type': 'RightsHolder', 'orcid': '0000-0002-7088-4353'}],'notes': ' licence CC-BY-NC-ND; Ce volume est une 3ième édition. Collection -- Intégrations des savoirs et savoir faire-- dirigée par Stéphane MOTTIN; http://www.sudoc.fr/155436619 (voir SUDOC pour trouver cet ouvrage en bibliothèque); ce PDF contient des metadata bibliographiques directement utilisables par exemple par Jabref (logiciel open source pour bibTeX). Ce PDF est structuré.','partof_title': 'Matériaux et joints d étanchéité pour les hautes pressions','publication_date': '2011-04-15','description': ' <b>  Sommaire de ce volume 18 de la Collection Intégrations des savoirs et savoir faire </b> <ul> <li>Préface / Dominique Leguillon</li><li>P. 13; Introduction générale / Patrick Boissinot, Patrick Langlois, Agílio A.H. Pádua</li><li>P. 17; Introduction au dimensionnement / Agílio A.H. Pádua; <br /> 1 Définition du problème; 2 Dimensionnement; 3 Obturateurs; 4 Conclusion</li><li>P. 27; Frettage et autofrettage / Patrick Langlois;<br /> 1 Considérations préliminaires au frettage; 2 Frettage d une enceinte bibloc; 3 Frettage d une enceinte multibloc; 4 Formulation de l autofrettage; 5 Modes de réalisation de l autofrettage; 6 Conclusion</li><li>P. 51; Méthodes d éléments finis en calcul de structures élastiques / Joël Frelat;<br /> 1 Introduction; 2 Rappel de la formule théorique; 3 Formulation variationnelle; 4 Formulation numérique; 5 Etapes d une mise en oeuvre pratique; 6 Conclusion Extension aux problèmes non linéaires</li><li>P. 61; Les matériaux sidérurgiques et les hautes pressions / Jean-Paul Dichtel; <br /> 1 Caractérisation mécanique des aciers; 2 Métallurgie des aciers et superalliages; 3 Commentaires : la Directive Européenne Appareils à Pression</li><li>P. 73; Les métaux non ferreux Alliage cuivre-béryllium et titane / Jean-Pierre Petitet; <br /> 1 Introduction; 2 Le cuivre-béryllium; 3 Le titane</li><li>P. 81; Les Carbures cémentés WC-Co / Emmanuel Pauty;<br />  1 Les procédés de fabrication; 2 Les propriétés des carbures cémentés; 3 Conclusions</li><li>P. 95; Choix et usinage des carbures de tungstène / Jacques Calzas;<br />  1 Choix des carbures de tungstène; 2 Usinage du carbure de tungstène</li><li>P. 107; Céramiques et matériaux pour l optique / Jean-Claude Chervin;<br />  1 Céramiques; 2 Matériaux pour l optique</li><li>P. 137; Types de joints et de montage / Roger Argoud et Jacques Roux;<br />  1 Introduction; 2 Généralités; 3 Joints à basse pression; 4 Joints cône sur cône; 5 Joints Bridgman Champignon; 6 Joints annulaires auto-serrés; 7 Joints coniques d Amagat; 8 Autres joints; 9 Conclusion</li><li>P. 157; Joints hautes pressions pour la compression de gros volumes solides / Sylvie Le Floch;<br />  1 Joints solides utilisés dans les différents types d enceintes hautes pressions; 2 Matières premières des joints; 3 Assemblages HP-HT</li><li>P. 169; Le matériel standard / Jean-Pierre Petitet;<br />  1 Tubes, conduites et raccords; 2 Les vannes; 3 Quelques types d enceintes commercialisées; 4 Les générateurs de pression; 5 Le matériel moins standard</li><li>P. 183; Assemblages haute pression / Gérard Hamel;<br />  1 Montage des raccords de pressions; 2 Montage de quelques passages électriques; 3 Les passages de thermocouple; 4 Les passages optiques, montage des fenêtres; 5 Montage des joints et des obturateurs sur une cellule haute pression</li><li>P. 193; Usinage / Jean-Pierre Michel;<br />  1 Introduction; 2 Les joints de faible épaisseur; 3 Les bagues anti-extrusion à 45; 4 Les joints à 45; 5 Les joints  double Bridgman ; 6 Les joints plats en élastomères; 7 Les joints en indium (étanchéité en hélium et azote liquide; 8 Joints métal-métal type Lens ring; 9 Les passages du courant; 10 Usinage de matériaux exotiques</li><li>P. 207; Les règles de sécurité / Patrick Boissinot;<br />  1 Dangers présentés par les appareils à pression; 2 Appareils à pression rencontrés dans les laboratoires et facteurs de risques; 3 Principes généraux de prévention et réglementation; 4 Moyens de protection; 5 Conclusion</li> </ul> ','keywords': ['Hautes pressions - Matériaux', 'Joints d étanchéité', 'Matériaux - Effets des hautes pressions'],'imprint_isbn': '2862723304','subjects': [{'term': ' Physical sciences ', 'identifier': ' http://id.loc.gov/authorities/subjects/sh89005705.html ', 'scheme': 'url'}],'related_identifiers': [{'relation': 'isCitedBy', 'identifier': 'http://www.sudoc.fr/078023866'}, {'relation': 'isCitedBy', 'identifier': 'https://hal.archives-ouvertes.fr/INTEGRATIONS/page/materiaux-et-joints-etancheite-pour-les-hautes-pressions'}],'communities': [{'identifier':'integrations'}],'access_right': 'open','license': 'cc-by-nc-4.0', 'imprint_publisher': 'MRCT-CNRS','imprint_place': 'Meudon, France',}}

Wednesday, January 25, 2017

Un lien oaDOI s’apparente à un DOI, mais comporte pointe sur une version accessible en accès libre de l’article




Un lien oaDOI s’apparente à un DOI, mais comporte une valeur ajoutée : s’il existe une version accessible en accès libre de l’article, l’URL oaDOI pointera directement sur cette version et non sur la version payante.

Ainsi, par exemple :

Ce DOI renvoie vers une page payante : doi.org/10.1038/nature12373
http://doi.org/10.1038/nature12373
A contrario, ce lien oaDOI pointe vers le PDF disponible dans une archive ouverte : oadoi.org/10.103/nature12373
http://oadoi.org/10.1038/nature12373
Pour en savoir plus : Carnet’IST a publié un billet présentant ce nouvel outil.
https://carnetist.hypotheses.org/835
Ref.
https://openarchiv.hypotheses.org/4010

https://oadoi.org/

Monday, January 9, 2017

The Directory of Open Access Repositories - OpenDOAR; Sherpa, openaire


OpenDOAR is an authoritative directory of academic open access repositories. Each OpenDOAR repository has been visited by project staff to check the information that is recorded here. This in-depth approach does not rely on automated analysis and gives a quality-controlled list of repositories.

http://www.opendoar.org/

Typically OpenDOAR lists publication repositories, as this is the basis for most repositories. However, OpenDOAR also lists other types, for example of images or data-sets, particularly where these have metadata or documentation sufficient to make the material re-usable.

Note that repositories listed in OpenDOAR are not necessarily OAI-PMH compliant. OAI-PMH is widely used for facilitating search of open access materials, but use of OAI-PMH is not synonymous with open access itself.

Common reasons for not listing a site in OpenDOAR include (but are not limited to):

  • Site is repeatedly inaccessible
  • Site is an eJournal (Open Access or otherwise - See DOAJ)
  • Site contains no Open Access materials
  • Site contains metadata (bibliographic) references only or solely links to external sites
  • Site is actually a library catalogue or collection of locally accessible e-books
  • Site requires login to access any material (gated access) - even if freely offered
  • Site is a proprietary database or journal that requires a subscription to access


OpenDOAR is one of the SHERPA Services including RoMEO and JULIET, run by the Centre for Research Communcations (CRC).
http://crc.nottingham.ac.uk/


autres activités du CRC

http://crc.nottingham.ac.uk/activities.php

Open Access Infrastructure Research for Europe

https://www.openaire.eu/intro-data-providers
When your content is harvested by OpenAIRE, you automatically comply with the EC’s policies on Open Access.

Data repositories: based on the latest DataCite XML Schema
http://schema.datacite.org/
https://github.com/datacite/schema

interoperability:
https://guidelines.openaire.eu/en/latest/





Thursday, January 5, 2017

substance texture.js: interchange of scientific open-access contents with XML


Open source ecosystem for knowledge creation and dissemination.
Texture is a JATS editor.

by Substance Software GmbH
Harrachstrasse 28
4020 Linz, Austria
info@substance.io

Substance,  Texture and eLife Texture Lens

http://substance.io/

As open as LaTeX and as simple as a classic word processor.
Texture is a collection of components for realizing content production systems. It has first-class support for JATS, the de facto standard for archiving and interchange of scientific open-access contents with XML.
https://github.com/substance/texture

Get a feel for Texture's possibilities by playing with these demos:
  • Authoring: Edit a scientific article like in a classic word processor
  • Quality Control: Interface optimized for publishers to iterate on an article until it's published
  • Assisted Conversion: An extension that offers tagging to turn raw text into structured JATS

Texture will be packaged with Open Journal Systems (OJS) and be a critical part in Érudit's new production workflow.

The editor offers body and front matter editing for any JATS 1.1 XML document. Implementations for most important elements are in place, such as paragraphs, sections, figures, and references. In the coming months support for missing elements will be added and the goal is to cover as many use-cases as possible and get the software ready for production.

Credits
Texture is developed by the Substance Consortium formed by the Public Knowledge Project (PKP), the Collaborative Knowledge Foundation (CoKo), SciELO and Érudit.
https://pkp.sfu.ca/2016/04/27/substance-consortium/
https://apropos.erudit.org/fr/creation-dun-consortium-autour-de-substance/

Our three organizations have identified Substance, a JavaScript library for web-based content editing, as a critical piece of infrastructure, and are inviting others to join us in a consortium to support Substance.
Nous sommes fiers d’annoncer aujourd’hui, en collaboration avec le Consortium Érudit, que nous franchissons une autre étape concrète dans la réalisation de cet objectif commun.  Trois organisations ont choisi Substance, une bibliothèque JavaScript permettant l’édition de contenus en ligne, comme élément essentiel de cette infrastructure de création et de diffusion.
Nous soulignons que l’édition collaborative de documents structurés sur le Web est nécessaire dans le cadre des processus de rédaction, d’édition et de production des connaissances, et nous pensons que Substance sera la solution la plus à même de répondre à tous ces besoins.

En appuyant Substance, PKP, CoKo et Érudit déclarent à toutes les parties intéressées qu’elles sont investies dans la création d’une boîte à outils polyvalente consacrée à l’édition de documents, en code source libre et pouvant être intégrée dans chacun de leurs propres systèmes et processus de travail. À travers cet engagement, nous souhaitons ainsi que d’autres organisations réalisent qu’il y a plus d’avantages à soutenir collectivement Substance, que de concevoir des solutions autonomes ou adaptées qui ne peuvent pas être facilement utilisées par des tiers.

Open Roadmap
The following priorities are confirmed and funded and will be realized until May 2017. For details of the individual features, see the Texture Product Brief:



Substance has been used to power a scientific reading tool called eLife Lens, which is used by eLife, the American Mathematical Society and other publishers.
https://elifesciences.org/elife-news/lens-pioneered-elife-be-piloted-six-additional-publishers-highwire

Texture builds on Substance to realize a WYSIWYG JATS XML editor.

Substance is also used to power digital archives with Archivist, data-driven documents at Stencila and news editors at Infomaker.
Substance is a crucial building block of PubSweet, the decoupled full-featured content production system developed by the Collaborative Knowledge Foundation.

eLife Texture Lens

Together with eLife, Substance is developing Lens, an open source toolkit around scientific content. In June 2013 eLife launched the original Lens Reader, which provides a novel way of looking at content on the web.
Self-host a scientific journal with eLife Lens
https://medium.com/@_mql/self-host-a-scientific-journal-with-elife-lens-f420afb678aa#.c9lw7spqh

eLife Lens, a minimalist open source publishing software that allows self-hosting of a scientific journal.
In June 2013 eLife launched the original Lens Reader, which provides a novel way of looking at content on the web. It makes using scientific articles easier by making it possible to explore figures, figure descriptions, references and more — without losing the place in the article text. While most online research articles simply replicate print, Lens Reader takes full advantage of the interactivity modern web-browsers offer. Readers can absorb key elements in an important paper more readily, more quickly, and more effectively.
Lens Reader is being piloted in journals from six publishers on the HighWire platform. In collaboration with the American Mathematical Society and MathJax it is currently being optimised for display of mathematical content.

A complete solution for hosting an open journal
With the deployment of Lens Browser, eLife runs an open source version of their journal. Lens Articles are pure static web pages that can be hosted on any web server. Lens Browser utilises the structured Substance article format to generate a search index using ElasticSearch, a technology for realising full text search. https://www.elastic.co/products/elasticsearch
Using this simple setup allows publishers to self-host their journal, without depending on proprietary services and formats. Lens Reader is easy to extend and customise. Please see the official documentation to learn how.
https://github.com/elifesciences/lens

These are the steps you need to take to publish an article with Lens:

  1. Prepare your article in the JATS XML format
  2. Download the latest distribution of Lens Reader and extract the contents of that zip file
  3. Place your XML in that folder
  4. Adjust index.html to reference your XML file
  5. Upload the whole folder to a web server

For a more complete and automated setup that includes search you additionally need:
Lens Browser backed by an ElasticSearch cluster front-faced with a Node.js proxy (eLife uses qbox.io and Heroku.com)
Custom workflows to automatise the publishing process (a set of Python scripts is used at eLife)

Produce an XML scientific paper with Lens Writer
In order to add new references to your bibliography you can search Crossref.org right from the interface and select a publication from the search result.

Lens Article Format
A simple document model (Javascript) and exchange format (XML) forms the heart of Lens Writer. We’ve utilised the Substance Document Model to define a schema for scientific articles in Javascript. The XML exchange format is similar to JATS, but more linear and strict, thus simpler to understand and transform. The body element uses HTML-markup for the most part, making it very easy to process. 

While we chose to use our own simplified XML-format for representing articles, JATS files can still be easily imported and exported. This is actually important to make Lens Writer part of current publishing workflows.

JATS XML format

http://stephane-mottin.blogspot.fr/2017/01/jats-journal-archiving-and-interchange.html

Wednesday, December 28, 2016

voix vers texte, Speech-To-Text (STT), avec api speech recognition Google chrome ou Cloud system, et comparaison avec d'autres systèmes


Google utilise le speech recognition dans la barre de recherche depuis longtemps:


google

la demo pour le web speech recognition (online lié à chrome):
https://www.google.com/intl/en/chrome/demos/speech.html

Google cloud
Google envisage de rivaliser avec Nuance (Dragon NaturallySpeaking) et autres sociétés de reconnaissance vocale en ouvrant sa reconnaissance de la parole API aux développeurs tiers. Pour attirer les développeurs, le soft sera gratuit au lancement avec des prix destinés à être introduits à une date ultérieure.
Le prix a été fixé l'été 2016:
https://cloud.google.com/speech/pricing
Chaque requête est arrondie à l'incrément de 15 secondes le plus proche. Par exemple, trois requêtes distinctes, chacune contenant 7 secondes d'audio, seraient facturées en 45 secondes (3 × 15 secondes) d'audio.
60minutes/mois=gratuit
sinon $0.006 / 15 seconds de 61minutes à 1 million de minute.

La Speech API Cloud de Google couvre 80 langues et fonctionne avec n’importe quelle application à en streaming temps réel ou en mode batch. Le système cloud offre un ensemble complet d’API pour les applications « voir, entendre et traduire ». Il est basé sur la même technologie réseau neuronal qui alimente la recherche vocale de Google dans le Google app et la voix en tapant dans clavier Google. Il y a quelques autres fonctionnalités intéressantes, comme travailler dans un environnement bruyant et en temps réel:
https://cloud.google.com/speech/

post de 2016:
https://techcrunch.com/2016/03/23/google-opens-access-to-its-speech-recognition-api-going-head-to-head-with-nuance/

les updates pour le web:
https://developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API

pour le domaine du cloud:
https://cloud.google.com/speech/docs/rest-tutorial
https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/master/README.md#how-to-run-a-sample

via le logiciel de Google 

API Chrome speech to text service
Une brève introduction à la spécification de l'API.

La spécification Web Speech API a été introduite en 2012 par la communauté W3C. Son but était de permettre aux navigateurs modernes de reconnaître et de synthétiser la parole. À partir de juillet 2015, Chrome est le seul navigateur qui a mis en œuvre cette spécification, en utilisant les moteurs de reconnaissance vocale de Google.
En tant que développeurs web, nous devrions être très heureux à ce sujet, car il nous ouvre un tout nouvel univers d'opportunités pour les nouvelles applications Web et de nouvelles fonctionnalités d'interaction dans les applications existantes. En outre, depuis que Google a ouvert son propre moteur de reconnaissance vocale pour supporter cette API, les développeurs sont en mesure de l'incorporer. À ce stade - l'API de Google est gratuit, mais il n'y a aucune garantie qu'elle continuera à l'être.

speechlogger speechnotes

Les deux web applications suivantes sont très proches et ne fonctionnent que sur les navigateurs Chrome (mobile/web):

mais offrent des petits services différents...

en extension chrome:
https://chrome.google.com/webstore/detail/speechnotes-speech-to-tex/opekipbefdbacebgkjjdgoiofdbhocok?hl=en
pour android sous play:
https://play.google.com/store/apps/details?id=co.speechnotes.speechnotes&hl=en
avec apk:
http://www.apkmonk.com/app/co.speechnotes.speechnotes/

---
https://lilyspeech.com/
2.5$/mois

comparaison

http://www.capterra.com/speech-recognition-software/

https://www.brainasoft.com/braina/download.html
29$/an; la version gratuite n'a pas la fonction
 Dictate (Speech to Text) in any Software or Website in 40 Languages.

development chrome HTML5 speech to text

https://speechlogger.appspot.com/developers/

les langages:
http://stackoverflow.com/questions/14257598/what-are-language-codes-for-voice-recognition-languages-in-chromes-implementati

bug de chrome qui permettait d'espionner ce que vous dites:
https://www.talater.com/chrome-is-listening/

un petit js pour commander tous les navigateurs à la voix
https://www.talater.com/annyang/

En 2014, "Understanding the Code":
http://apprentice.craic.com/tutorials/37
de la demo pour le web speech recognition (online lié à chrome):
https://www.google.com/intl/en/chrome/demos/speech.html


Thursday, December 22, 2016

Les restrictions Google Maps avec un clé (key) gratuite.


On n'a pas accès à:
Google Maps Directions API
Google Maps Distance Matrix API
Google Maps Roads API
Google Maps Time Zone API

Google Places API Web Service 150 000 free requests per day (after credit card validation).

Ref:
https://developers.google.com/maps/pricing-and-plans/#details

Un post de fin 2016

Voir les services associés à la clé (pour le suivi des nombres de map):
https://maps-apis.googleblog.com/2016/10/key-improvements-for-your-maps-api.html

<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
  type="text/javascript"></script>

Wednesday, December 14, 2016

webGL, large datasets, map and Reactive Programming Model


mapbox gl

https://github.com/mapbox/mapbox-gl-js
see my posts "mapbox" on this blog.

MapboxGL-js provides impressive vector tile rendering capabilities. Although the Mapbox vector tile specification is open source, there aren't yet very many free alternatives to Mapbox's paid vector tile API. Because of this, the examples (of deck.gl) don't use the paid vector tile API and instead use map tiles by Stamen Design, under CC BY 3.0 and data by OpenStreetMap, under ODbL.

deck gl 

deck.gl is a WebGL-powered framework for visual exploratory data analysis of large datasets.
deck.gl is designed to make visualization of large data sets simple. It enables users to quickly get impressive visual results with limited effort through composition of existing layers, while offering a complete architecture for packaging advanced WebGL based visualizations as reusable JavaScript layers.
https://github.com/uber/deck.gl
http://uber.github.io/deck.gl/#/

Understanding the Reactive Programming Model
  • The key to writing good, performant deck.gl layers lies in understanding how to minimize updates and redundant calculations.
  • It is important to understand the implications of the shallow equality comparisons deck.gl performs on layer properties, and how this implies that new data and property objects must only be created when the underlying data actually changes in order to prevent unnecessary updates.
  • There is an impressive amount of information (documentation, blog posts, educational videos, etc.) on the reactive programming paradigm in relation to modern web frameworks such as React, Flux and Redux. Where to start depends mostly on your application architecture choices.

Understanding WebGL

This is only needed if you want to create custom layers in deck.gl. Note that while trying out a new ambitious rendering approach for a new layer will likely require deeper knowledge, it is often possible to modify or extend existing deck.gl layers (including modifying the shader code) with a surprisingly limited amount of WebGL knowledge.
There are many web resources for learning WebGL. The luma.gl documentation can be a starting point.

luma gl

luma.gl versions of the classic "Learning WebGL" lessons:

Friday, December 9, 2016

mise en parallèle langage markdown d'odyssey.js et API odyssey/leaflet.js




markdown odyssey ou leaflet.js
- center: [37.7620, -122.4385]
- zoom: 9
MAP
Ici, au début ce sera du odyssey.js de la documentation
http://cartodb.github.io/odyssey.js/documentation/#marker
var map = new L.Map('map', {
  center: [37, -91],
  zoom: 6
});

O.Story()
 .addState(O.Scroll().within($('#myelement'),
map.actions.panTo([37.1, -92]);

MARKER
L.marker([37.7620, -122.4385]).actions.addRemove(S.map)

ou

L.marker([37.82, -122.0]).actions.addTo(S.map)

var map = new L.Map('map', {
  center: [37, -91],
  zoom: 6
});

O.Story()
  .addState(
    O.Scroll().within($('#myelement'),
    L.marker([37, -92]).actions.addTo(map)
  );
---
http://leafletjs.com/reference.html#marker
L.marker([50.5, 30.5]).addTo(map);


L.marker<LatLnglatlng,<Marker optionsoptions? )

L.marker([44.7348, -67.5655],
{icon:L.icon({iconUrl:'https://
raw.githubusercontent.com/Concept211/
Google-Maps-Markers/master/images/marker_blue7.png',},
iconSize: [22, 40], 
iconAnchor: [12, 39])})
.actions.addRemove(S.map)
cela permet de changer l'icone.

var marker = L.marker([0, 0])
O.Story()
  .addState(
    O.Scroll().within($('#myelement'),
    marker.actions.icon('enabled.png', 'disabled.png')
  );

ICON
Creates an action that changes the icon of a marker. It receives two arguments (iconEnabled, iconDisabled).
----
http://leafletjs.com/reference.html#icon
var myIcon = L.icon({
    iconUrl: 'my-icon.png',
    iconRetinaUrl: 'my-icon@2x.png',
    iconSize: [38, 95],
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76],
    shadowUrl: 'my-icon-shadow.png',
    shadowRetinaUrl: 'my-icon-shadow@2x.png',
    shadowSize: [68, 95],
    shadowAnchor: [22, 94]
});


L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);

L.Icon.Default extends L.Icon and is the blue icon Leaflet uses for markers by default.


TOOLTIPS
pour avoir des tooltips (hover) et popups, on peut faire dans le markdown:
L.marker([40.7348, -73.9970],{title:"I am a tooltip", opacity: 0.7}).bindPopup("<b>Hello world!</b><br>I am a popup.").actions.addRemove(S.map)

Si le media dépasse 340px de large,
 il faut passer à autre chose qu'un simple bindPopup
("<b>Hello world!</b><br>")
mais aller en plus dans les options du popup:
L.marker([44.7348,-69.96]).bindPopup(
L.popup({maxWidth:500}).setContent(
'<b>video with width=480 
and L.popup maxWidth:500 </b>
<mark>OK</mark><br><span style="color:blue">blue</span>...<br>
<iframe width="480" height="360" src="https://www.youtube.com/embed/AekYJ62Knno?autoplay=1"></iframe>'
)).actions.addRemove(S.map)


et
pour ouvrir une fenêtre "alert" avec un bouton "OK" et le texte
  cartodb.github.io indique :
 You clicked the map at LatLng(40.7348, -73.997)
L.marker([40.7348, -73.9970]).on("click", function(e){alert("You clicked the map at " + e.latlng);}).actions.addTo(S.map)


Rem:
Unfortunately, if the image is not loaded yet in browser cache, the popup will open right away with default size (not if you set maxWidth "auto"), and adjust its size but sometimes not its position once the image is fully loaded and displayed. 
var map = new L.Map('map', {
  center: [37, -91],
  zoom: 6
});
var popup = L.popup().setLatLng(latlng).setContent('&lt;p&gt;popup for action1&lt;/p&gt;')

O.Story()
  .addState(O.Scroll().within($('#myelement'), popup.actions.openOn(map));
----
http://leafletjs.com/reference.html#marker
L.marker<LatLnglatlng,<Marker optionsoptions? )
option1: title (Text for the browser tooltip that appear on marker hover (no tooltip by default).)
option2: opacity (1=full opacity)
L.marker([40.7348, -73.9970],{title:"I am a tooltip", opacity: 0.7}).
POPUP
le markdown utilise marker/events de Leaflet, la fct:
bindPopup( <String> html | <HTMLElement> el | <Popup> popup, <Popup options> options? )
Binds a popup with a particular HTML content to a click on this marker. You can also open the bound popup with the Marker openPopup method.
http://leafletjs.com/reference.html#popup

The leaflet documentation shows you can add a popup to a marker with
marker.bindPopup("<b>Hello world!</b><br>").openPopup();
ou créer un standalone popup
var popup = L.popup()
    .setLatLng([51.5, -0.09])
    .setContent("I am a standalone popup.")
    .openOn(map);
On peut combiner les deux:
var popup = L.popup()
    .setContent("I am a standalone popup.");
marker.bindPopup(popup).openPopup();
On peut ajouter les options du popup
bindPopup(
L.popup({maxWidth:500}).setContent('textHTML')


ou d'autres events-marker par exemple avec la fenêtre alert:
http://leafletjs.com/reference.html#events
map.on('click', function(e) {alert(e.latlng);});



voir ICON ci-dessus L.marker( [
            e.latlng.lng,
            e.latlng.lat
        ], {
            icon : L.icon( {
                iconUrl : 'http://lorempixel.com/64/64/',
            } )
        } ).addTo( this );
à venir à venir
XXX YYY

Wednesday, November 30, 2016

faire un fichier CSV ou de transcodage pour l'interopérabilité en vue de faire une "narrative story map"; Choix de la baseMap (tiles) dans odyssey.

Je ne détaillerai pas les différents posts de ce blog sur les histoires narratives cartographiées
utiliser les tags "map" ou "GPS"...

J'ai réalisé un programme pour faire le fichier/données/documents/récits de base et de conversion.

1/ étape flickr

Je télécharge mes images géo-taggées de ma ballade dans Flickr et je met mon choix dans un album
ou s'il y a trop de photos-slides de faire deux albums...

2/ étape écriture

puis un fichier  pour le récit
"name, description"
(name et description n'ont pas de ",")

3/étape transcodage 

  • le transcoder pour le format odyssey.js (ci-dessous)
  • le transcoder pour Story Map Tour (ci-dessous)

pour odyssey.js

les "live examples":
http://cartodb.github.io/odyssey.js/documentation/#the-odyssey-sandbox

le format d'une web slide=
#Adding images to your story
```
- center: [40.7365, -73.9982]
- zoom: 13
L.marker([40.7348, -73.9970]).actions.addRemove(S.map)
```
By default, images are also supported. 
![New York](http://www.boston-discovery-guide.com/image-files/new-york-1.jpg "beautiful!")

Remarque: cette ligne de markdown produit ce code html:
<img src="URL.jpg" alt="New-York" title="beautiful!" />
Lorsque l'on passe la souris sur l'image le texte beautiful! apparait (c'est un hoover popup).
Donc pour chaque image il est préférable de prévoir 3 variable text.
De même pour un lien vers une URL.htm
[Markdown] (http://daringfireball.net/projects/markdown/] "title")
il n'y a pas de "!" pour une URL.htm.

NOTE: There is a known bug in Markdown.pl 1.0.1 which prevents single quotes from being used to delimit link titles.

De plus il est préférable avant la narration de préparer les cartes :
http://mapninja.github.io/CartoDB_Odyssey_Tutorial_for_Story_Maps/
  • Create an empty CartoDB table
  • Populate that table with fields for your data
  • Add the data to your new empty table
  • 'Geocode' your records so that they show up on the map
  • Customize the Pop-up and Hover doo-dads
  • Find your Map ID to put into Odyssey.js
  • Use the Odyssey.js 'Sandbox' to create a basic Story Map
  • Use an historic map from DavidRumsey.com as a basemap in your Story Map
  • Share your Odyssey.js Story Map with a URL, Embed Code, or host it yourself.
Hélas odyssey.js ne gère pas la carte de manière assez fine et repose sur deux 
points pour la carte
-baseurl
-vizjson
par exemple une "History of San Francisco" (que du "hover"):
pour, http://web.stanford.edu/~maples/maps/odyssey/odyssey.html

et pour un super tuto:
avec page "mapninja".github.io et son github: "github.com/mapninja"
https://github.com/mapninja/CartoDB_Odyssey_Tutorial_for_Story_Maps
et aussi son story map fait avec odyssey.js publié sur bl.ocks.org:
http://bl.ocks.org/anonymous/raw/409cb9de4c713e082dee/
il ya du hoover et aussi du popup.
tous ces événements sont dans le vizjson:
```
-baseurl: "http://georeferencer-0.tileserver.com//266b60e098fda1ddbe521ebff0e4d8676a549302/map/CGtnosESWB2NnsgVyjmQc5/201411301752-7AINSs/affine/{z}/{x}/{y}.png"
-title: "The Tattoo Map of San Francisco"
-author: "Stace Maples"
-vizjson: "https://stanfordgeo.cartodb.com/u/stacemaples/api/v2/viz/7840fa14-e940-11e4-bb41-0e49835281d6/viz.json"
```
Ils utilisent  un serveur de tuile pour les cartes anciennes:
http://www.davidrumsey.com/view/georeferencer

Pour renvoyer les informations "popup" suite à un événement click ou hover, c'est avec cartoDB.
Avec cartoDB, on peut choisir son format des data, par exemple:

Our blank table already has description and name fields, so we don't need to add those. We do want to add images to our pop-ups, as well as links our image sources and maybe even links to other websites with more information on the subject of the points we input. Let's add columns for those...
Add the following columns using the Add new column dialog box (just click the Add Column button again for each one):
  1. Description
  2. 'img_url1' with a type of 'string'
    (this will hold the URL for the image you want to show up in your pop-up)
  3. 'img_url1_src' with a type of 'string'
    (to hold the URL of the website you got the image from)
    If you want more than one image per pop-up, just add more sets of 'img_url#' and 'img_url#_src' columns, iterating the number (not too many, though, you'll be able to insert images into the narrative text of your Odyssey.js Story Map)
  4. 'link_url1' with a type of 'string'
    (This will hold a URL to link out to other sources of information)
  5. Again, if you want more links, just iterate the 'link_url#' column
  6. 'latitude' with a type of 'number'
  7. 'longitude' with a type of 'number'
Voir cet exemple avec google drive spreadsheets:

  • soit on exporte en .CSV (en le sauvegardant sur son ordi).
       puis on importe dans CartoDB. 
  • soit on importe directement ce fichier google drive (le nom du fichier est gardé; en fait il est importé en .CVS).
On obtient:


Attention cartoDB odyssey est  en (Lat, Long) par cette façon de rentrer les données 
(Rem: GeoJSON est en (Long,Lat)). 
Je vous conseille de mettre une colonne avec le titre The_geom et de mettre le string suivant avec ce format:
{"type":"Point","coordinates":[4.123694,45.142316]}
 avec en dernier la Longitude, ici 45.
Garder les deux colonnes séparées de chiffres avec les titres lo et la (pas Long ni Lat comme titre de colonne sinon cartoDB génère une erreur d'inversion) pour de futur interopérabilité de votre fichier excel.

Regarder votre data si tout va bien. Les titres doivent être en ASCII.
Il faut maintenant éditer une map (sur le bouton vert en bas à droite).
puis clicker sur le bouton (ici en vert):
puis choisir les effets pop-up (et legend) et aussi les styles des points


relier la Visualisation CartoDB avec Odyssey.js

La première des choses vise l'utilisation de l'option vizjson dans la configuration de votre Odyssey.js markdown. Ainsi vous avez besoin du JavaScript API URL de votre visualisation.

Il faut aller dans votre CartoDB page et votre visualisation pour un click sur le "Share button" (en bas).
Hélas avec la V3 de de cartoDB.js (et builder; cartoDB est en v3.15 en oct 2016) et odyssey.js (qui date de 2013-2014), nous n'avons plus l'export comme dans
http://mapninja.github.io/CartoDB_Odyssey_Tutorial_for_Story_Maps/
https://carto.com/blog/map-of-the-week-an-odyssey-js-story-by-loomstate/
(a post of jul 2014)
voir:
http://gis.stackexchange.com/questions/218606/is-there-a-way-to-get-a-viz-json-url-from-carto-builder

The CARTO Builder does not have the option to share the viz.josn URL due to the current version of CARTO.js (v3.15) is not compatible with the Builder. The new version of CARTO.js (v4) will be released by March/April and it will be compatible with the CARTO builder.

Changer de baseMap pour odyssey

On a de nombreux serveurs de baseMap:
http://wiki.openstreetmap.org/wiki/Tiles

On a 3 choix dans le sandbox d'odyssey: nokia est la moins mauvaise...
c'est l'ensemble des choix par défaut dans cartoDB editor:
  • https://cartocdn_a.global.ssl.fastly.net/base-light/{z}/{x}/{y}.png
    qui est vraiment très light!! mais "unlimited use permitted" et en lien avec OpenStreetMap.
  • une autre du provider Stamen: http://{s}.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg
    essayez (chargement lent):
    http://tile.stamen.com/terrain/{z}/{x}/{y}.jpg
    http://maps.stamen.com/#terrain/12/37.7706/-122.3782
  • une autre du provider ex-nokia, maintenant HERE ("nokia day"):
    https://2.maps.nlp.nokia.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?lg=eng&token=A7tBPacePg9Mj_zghvKt9Q&app_id=KuYppsdXZznpffJsKT24
    (vendu en 2015): https://wego.here.comhttps://fr.wikipedia.org/wiki/HERE_WeGo
    essayer le mode hybrid:
    "https://2.maps.nlp.nokia.com/maptile/2.1/maptile/newest/hybrid.day/{z}/{x}/{y}/256/png8?lg=eng&token=A7tBPacePg9Mj_zghvKt9Q&app_id=KuYppsdXZznpffJsKT24"
Rem:'http://{s}.somedomain.com/blabla/{z}/{x}/{y}.png'
{s} means one of the available subdomains (used sequentially to help with browser parallel requests per domain limitation; subdomain values are specified in options; a, b or c by default, can be omitted), {z} — zoom level, {x} and {y} — tile coordinates.
Ref: http://leafletjs.com/reference.html#popup

https://developer.here.com/rest-apis/documentation/enterprise-map-tile/
https://developer.here.com/rest-apis/documentation/enterprise-map-tile/topics/example-hybrid-map.html

vous pouvez aussi copier/coller celles-ci de cartoDB:
http://a.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png
http://a.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png

le plus important est de bien choisir en fonction de ses besoins.
Personnellement je préfère openstreetmap car très complète:
http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
et aussi une carte "france" :  http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png
http://wiki.openstreetmap.org/wiki/FR:Servers/tile.openstreetmap.fr
voir les choix:
http://leaflet-extras.github.io/leaflet-providers/preview/

Il faut comprendre qq différences avec "tileset":
A "tileset" typically includes enough tiles to form a very large image, if they were shown all at once, and also several zoom levels. Generally the idea is not to show them all at once, but to display a particular area of the map on a website. Normally this is done using a JavaScript map library to provide panning and zooming functionality, and request downloading of new tiles as necessary to show the user new areas of the map (a Slippy Map). (http://wiki.openstreetmap.org/wiki/Slippy_Map)
Faire sa baseMap personnalisée:

voir mon post:
http://stephane-mottin.blogspot.fr/2016/11/faire-un-fichier-csv-ou-de-transcodage.html


--------------


On peut aussi faire son propre tiling:
http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

Il existe des outils de conversion entre le format X/Y/Z et TMS:
The difference between XYZ and TMS tiles and how to convert between them
https://gist.github.com/tmcw/4954720


https://en.wikipedia.org/wiki/Tiled_web_map

-----Rem:
On peut aussi changer l'apparence de la map avec les tests conditionnels du CSS via le zoom par exemple:
http://cartodb3.rssing.com/chan-32620984/all_p2.html
It is easy to change the content of your story map by using conditional zoom visualizations in the CartoDB CSS interface. Here is a snippet from the Berlin Map (https://carto.com/blog/berlin-wall-post/; https://gist.github.com/namessanti/e7432a85159fca12978e ; http://bl.ocks.org/namessanti/e7432a85159fca12978e )
we shared above:
line-opacity:1;[zoom=17]{polygon-fill:#F11810;polygon-opacity:0.4;}[zoom=15]{polygon-fill:grey;polygon-opacity:0.4;}[zoom=10]{polygon-fill:grey;line-color:#808080;}
This code changes the visualization at zoom level 17, 15, and 10 to represent the parameters identified below the [zoom = ] section.
When you bring your CartoDB map into Odyssey.js, those conditions remain on your map and make it easy to change the appearance of your map by simply moving the zoom and assigning a story panel. You can play around with all sorts of conditional CartoCSS parameters
https://github.com/mapbox/carto/blob/master/docs/latest.md

Si on veut plus, il faut un peu de code dans le config block.

Ref: http://mapninja.github.io/CartoDB_Odyssey_Tutorial_for_Story_Maps/

pour Story Map Tour (ESRI)

une web_slide= les colonnes suivantes avec un return à la fin:
name,description,icon_color,long,lat,pic_url,thumb_url,is_video
exemple:
Welcome to the reserve,
"The reserve is managed jointly. The Kendall Frost Mission Bay Reserve is part of the University of California Natural Reserve System (UC NRS) and is managed by the University of California San Diego (UCSD). The adjacent Northern Wildlife Reserve is managed by the City of San Diego. <i><a href=""http://nrs.ucsd.edu/kendall.html"" style=""color:yellow"" target=""_blank"">More Info</a></i>",
R,
-117.2296755,32.7920955,
http://downloads.esri.com/blogs/places/missionbaymarsh/marsh_intro_picture.jpg,
http://downloads.esri.com/blogs/places/missionbaymarsh/marsh_intro_picture_thumbnail.jpg,

avec au max 99 lignes.

le zoom (et centrage) sera à mettre slide par slide...

pour le javascript, on peut voir:

pour Story Map Knightlab

si on ne veut pas utiliser leur éditeur slide par slide, il faut plonger dans leur structure JSON.

La structure de la web_slide est:
{
    type: "overview",      // optional; if present must be set to "overview"
    location: {            // required for all slides except "overview" slide
        lat: decimal,      // latitude of point on map
        lon: decimal       // longitude of point on map
    },
    text: {                // optional if media present
        headline: string,
        text: string       // may contain HTML markup
    },
    media: {               // optional if text present
        url: string,       // url for featured media
        caption: string,   // optional; brief explanation of media content
        credit: string     // optional; creator of media content
    }
}
La structure de gestion de l'array de cet objet "slide" est:
{
    width: integer,                // required for embed tool; width of StoryMap
    height: integer,               // required for embed tool; width of StoryMap
    font_css: string,              // optional; font set
    calculate_zoom: true,              // optional; defaults to true.
    storymap: {
        language: string,          // required; two-letter ISO language code
        map_type: string,          // required
        map_as_image: false,       // required
        map_subdomains: string,    // optional
        slides: [object]           // required; array of slide objects (see below)
    }
}

Timeline Knightlab

Rem: l'utilisation de leur célèbre timeline est possible.
Elle se fait avec un fichier tableur
mais hélas les cartes sont à faire puis une URL dans une case du tableur...
Une carte par exemple une google map ou une cartoDB (avec l'excellent builder; voir ci-dessous), peut être mise sous forme de link_URL. 

le fichier tableur doit être stocké dans Google Drive, voir ici le template:

Year ,Month, Day, Time, End Year, End Month, End Day, End Time, Display Date, Headline, Text Media, Media Credit, Media Caption, Media Thumbnail, Type, Group, Background
soit 16 colonnes.
dans media ce sont des URL.
dans media caption: du texte ou par exemple <a href="http://www.flickr.com/photos/zachwise/6115056146/" title="Chicago by zach.wise, on Flickr">Chicago by zach.wise</a>


JackDougherty/leaflet-storymap or mapbox (2016)

Scroll-driven story map, with point markers and narrative text in GeoJSON, using Leaflet and jQuery.
https://github.com/jackdougherty/leaflet-storymap

  • Scroll-driven navigation, using screen swipe, trackpad, or keyboard down-arrow. Initial map displays all point markers.
  • Viewers can pan and zoom the map independently of the narration, or click on any point to go directly to that chapter.
  • Easy-to-learn template to create your own storymap. Upload text, point coordinates, zoom levels, and image links to a CSV generic spreadsheet, and drag into http://geojson.io to create a GeoJSON data file.
  • Images can be stored in local subfolder or pulled from an external URL.

Due to GeoJSON data limitations, there is no easy way to insert hyperlinks inside the 'description' text. They must be created outside, in fields such as "source-link".
Then there are no hover or popup events on the map...

The HTML code in the demo map is very well documented. if you have used Leaflet.js before then you should be easily able to use the template and even adapt it for your own use. The 'read me' file on  leaflet-storymap's GitHub page also contains a number of useful links to other story map templates.

with mapbox:
http://jackdougherty.github.io/mapbox-storymap/index.html

marker/pulse (animated) 3 choices of basemap:
http://jackdougherty.github.io/mapbox-storymap/pulse.html
no UI events on the map.

Examples with Added Features

Explore http://pembrokesoundscapes.ca/map, view code at https://github.com/rblades/rblades.github.io. Added audio playback in the narrative, historical map layers.
no UI events on the map.

Story Mapbox GL.js

A very quick way to create an effective scroll-driven story map is to use Mapbox GL. The advantage of using Mapbox GL over some other mapping libraries is that Mapbox GL allows you not only to zoom and pan the map but to rotate the map to provide different perspectives on your featured locations

If you want to create a Mapbox GL story map there is also the added advantage that Mapbox has provided a great template in their list of 'example' maps. The Fly to a location based on scroll position map in the Mapbox GL examples (https://www.mapbox.com/mapbox-gl-js/example/scroll-fly-to/) provides a neat demo of the possibilities of a Mapbox GL story map (all you have to do to create your own story map is copy & paste the provided code and change the content to suit the story you want to tell).
An example of story map (without UI events):
https://www.mapbox.com/mapbox.js/example/v1.0.0/scroll-driven-navigation/
An example: Slideshow gallery in a marker tooltip; Add a custom slideshow to a marker's tooltip.
https://www.mapbox.com/mapbox.js/example/v1.0.0/markers-with-image-slideshow/

This JavaScript library uses WebGL to render interactive maps from vector tiles and Mapbox styles. We found out how to to configure the color mapping on the client side and minimize data traffic while rendering a lot of data (https://www.ubilabs.net/en/news/data-driven-raster-layer-mapbox-lg-2016-09-05).

http://carlapedret.github.io/jewellerymap/
A beautiful example of a Mapbox GL story map is Birmingham Eastside's Gentrification in Birmingham’s Jewellery Quarter. Birmingham Eastside has used the Mapbox GL demo map to create a mapped guide to how gentrification is affecting Birmingham's Jewellery Quarter.
As you scroll through the map you are taken on a tour of the neighborhood, highlighting some of the biggest changes in the area. The Gentrification in Birmingham's Jewellery Quarter map also features map markers which provide another level of interactivity to the map. These markers provide additional information and media - such as audio recordings of interviews with some of the individuals featured in the side-panel content.
https://github.com/carlapedret
only copy/paste in html (in GitHub and after to github.io hosted pages http://carlapedret.github.io/jewellerymap/).

https://www.mapbox.com/bites/00110/
Mapbox have also used their own story map format to create a map of the intriguing case of Robert Durst. Durst was arrested on a first-degree murder warrant. If convicted he could face the death penalty.
Following the Life and Death of Robert Durst plots the key movements and actions of Robert Durst since his first wife 'disappeared' three decades ago up until his arrest in New Orleans. As well as the scroll-driven narration and up-dating map 'Following the Life and Death of Robert Durst' uses map markers and polylines to track Durst's movements around the country and to connect all the featured locations together.
-->no UI events on the map.


Ref: http://googlemapsmania.blogspot.fr/2016/08/mapbox-story-maps.html

Tools

---------------
Tools markdown/HTML
(Convert HTML to Markdown...)

Rem:
Remember that GeoJSON stores coordinates in "reversed order" (longitude, latitude)