Utiliser Wolfram|Alpha (en ligne de commande)¶
Wolfram|Alpha ?¶
Si vous ne connaissez pas, allez faire un tour sur la page principale, www.wolframalpha.com/.
Merci à Romain Vernoux qui m’a fait découvrir cet outil en 2012 !
Wolfram|Alpha est © et ® Wolfram Research Company;
wolf
(ruby cli) est © Gabriel Horner;
wolfram
(ruby cli) est aussi © Gabril Horner.
ruby
etnokogiri
sont la propriétés de leurs auteurs respectifs.
wa.sh : un premier client pour Wolfram|Alpha, léger et en Bash ?¶
Avantages et inconvénients¶
L’avantage de ce premier client est sa portabilité : il est très léger (47 lignes de code, avec les commentaires!), et ne demande aucune dépendance, à part
grep
,curl
,tr
etsed
, déjà installés sur n’importe quel Linux, et disponibles sur Mac OS X (avec brew) and on Windows (with cygwin)..Néanmoins, ce client est plus minimaliste que
wolf
(présenté plus bas), et il ne présente aucune option.
Source¶
La version originale est ici wa.sh (original).
Ma version, sans couleur en sortie, est là wa_nocolor.sh. Une version « plus à jour » se trouve ici wa.sh.
Obtenir une clé d’application¶
Pour plus de détails, voir plus bas.
Il faut cette fois l’enregistrer dans un fichier
~/.wolfram_api_key
sous la forme :export API_KEY="3HHP2W-UUPQUT6997"Par exemple avec la commande suivante :
mv ~/.wolfram_api_key /tmp/ # Pour ne pas écraser un fichier qui serait déjà là ! echo 'export API_KEY="3HHP2W-UUPQUT6997"' > ~/.wolfram_api_key # Assurez vous que ce fichier ait les bonnes permissions de lecture ! chmod +r ~/.wolfram_api_key
Exemples¶
Voici quelques exemples, qui permettent de comparer les sorties des deux clients (voir plus bas pour des exemples avec
wolf
) :
Un test stupide :
0+0
:Un calcul de distance :
Résolution d’une équation :
Et un exemple plus drôle, un Pokémon :
Allez, un dernier exemple, on demande le cours actuel de la roupie indienne :
Attention¶
On pourrait se plaindre de l”incroyable lenteur de cette solution. Plusieurs secondes d’attente pour 4 requêtes, c’est pas mal !
wolf
: un second client pour Wolfram|Alpha, en ruby ?¶
La page principale est github.com/cldwalker/wolf.
Il s’agit aussi d’un client en ligne de commande pour l’outil Wolfram|Alpha.
ruby1.9.1
¶
Pour l’installer sur Ubuntu 11.10 (et plus récent), il est nécessaire d’installer les paquets
ruby1.9.1
etruby1.9.1-dev
:sudo apt-get install ruby1.9.1 ruby1.9.1-dev
Avertissement
Ruby 1.9.1 n’est plus disponible dès Ubuntu 15.10 !
Je ne peux donc plus tester les exemples d’utilisation de wolf
inclus ci-dessous, désolé.
nokogiri
¶
Ensuite, il faut installer Nokogiri.
D’abord, ses dépendances (quelques paquets
ruby
), et deux librairies :sudo apt-get install ri1.9.1 rdoc1.9.1 irb1.9.1 sudo apt-get install libreadline-ruby1.9.1 libruby1.9.1 libopenssl-ruby1.9.1 # nokogiri requirements sudo apt-get install libxslt-dev libxml2-devAttention, la dernière étape change du tutoriel officiel sur la page de l’auteur. Attention aussi, car cette installation est très longue, la gem ayant besoin d’une étape de compilation, apparemment très longue (plusieurs minutes à 100% de temps
CPU
).# Attention : là ça change du tutoriel officiel sudo gem1.9.1 install nokogiri
wolf¶
Et enfin, il faut installer la gem
wolf
:sudo gem1.9.1 install wolf
Obtenir une clé d’application (bis)¶
Comme l’explique la page de
wolf
sur Github, il faut créer un compte, puis obtenir une clé en cliquant sur le bouton « Get an AppID ».Pour l’info, c’est une petite chaîne de caractère qui ressemble à ça :
3HHP2W-UUPQUT6997
Avertissement
Ceci n’est pas une clé valide ! Utilisez la votre !
Enregistrer la clé¶
Le plus simple est de créer un fichier
~/.wolfrc
contenant ça"Wolfram.appid=3HHP2W-UUPQUT6997"
:mv ~/.wolfrc /tmp/ # Pour ne pas écraser un fichier qui serait déjà là ! echo "Wolfram.appid=3HHP2W-UUPQUT6997" > ~/.wolfrc # Assurez vous que ce fichier ait les bonnes permissions de lecture ! chmod +r ~/.wolfrc
Tester le tout¶
Un simple test
wolf 0+0
permet d’être sûr de la réussite ou de l’échec de l’installation.Normalement, les messages d’erreurs renvoyés par Ruby sont à peu près compréhensibles, donc si le premier test vous engueule, il devrait aussi donner les infos nécessaires pour corriger l’installation.
Avertissement
Le problème le plus fréquent est une confusion entre ruby1.8 et ruby1.9.1 !
Exemples : directement embarqués dans cette page web ?¶
Avec l’extension runblock, il est possible d’embarquer le résultat d’un appel à
wolf
directement dans la page !
Un premier exemple¶
D’autres essais ?¶
Résoudre une équation¶
Base de données de Pokémon¶
Un ajout drôle qui a fait pas mal parler de lui !
D’autres exemples¶
Par exemple wolfram.example montre la sortie de la requette «
distance Paris Montreal
».Pour plus d’inspiration, il suffit d’aller piocher là bas.
À propos de cette page¶
Pour embarquer la commande et la sortie de
wolf
, j’utilise le morceau de code suivant :.. runblock:: console $ wolf "ma question"
Une extension ?¶
On pourrait envisager de faire une extension Sphinx qui, comme greffon GNUplot, permettrait d’embarquer des graphiques et des tableaux produits par Wolfram|Alpha. J’ai la flemme de le faire moi-même !