10/04/2014

Découverte et tutoriel de l'utilisation de Polarsys

Polarsys est basé sur Eclipse, développé par OBEO et semble , à première vue, proposer un outil de développement de systèmes embarqué, basé sur UML ou plutôt SysML , et devrait permettre le développement de systèmes complexes. Polarsys utilise pour ce faire le plugin Papyrus :
plus d'infos sur Polarsys : http://polarsys.org/ .

D'après la présentation, c'est un outil de développement OpenSource centré sur l'utilisateur, l'utilisateur devrait même pouvoir faire remonter, contribuer... c'est exactement ce qu'il nous faut pour Smag...
Présentation ici : http://wiki.eclipse.org/images/f/f9/Polarsys-Presentation_ERTSS-final.pdf

Voyons si Polarsys tiens ses promesses ...

Va-t-il nous permettre de modeliser le projet Smag0 ? Testons ce nouvel outil !

Sur le site de Polarsys, télécharger la version adaptée à votre OS, dézippez, lancez l'executable Polarsys.
Pour pouvoir tester, j'ai tenté de suivre la vidéo de présentation (dans About / Videos, sur le site de Polarsys , ou ici : http://www.youtube.com/watch?v=cslBl9cS3TM) .

Première chose : une fois Polarsys lancé, modifiez la perspective : Window / Show Perspective / Other / Papyrus.

Ensuite, le cadre Model Explorer semble vide... je teste d'installer les modules complémentaires de Papyrus ( dans  le menu Help/ Install Papyrus Additionnal Components. Une autre demande d'installation ( SVN est apparue lors de la création du premier projet, j'ai installé la dernière version de SVN . )

La doc de Polarsys ne semble pas très fournie, 
Voir aussi, la doc  de Papyrus hébergée par Eclipse : http://www.eclipse.org/papyrus/

31/03/2014

Creer une requête distante avec Jena sur un serveur Fuseki

source : https://www.cambridgesemantics.com/fr/semantic-university/sparql-by-example, slide 50depuis le répertoire jena/bat
GET -H "Accept: text/turtle" http://dbpedia.org/sparql

une requete directement dans la zone requete de fuseki :
SELECT *
 WHERE { ?subject ?p ?object }
ou avec les namespace :
 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX example: <http://example.org/ns#>
SELECT *
 WHERE { ?subject ?p ?object }
dans un navigateur : 
http://fuseki-smag0.rhcloud.com/ds/query?query=%0D%0ASELECT+*%0D%0A%09WHERE+%7B+%3Fsubject+%3Fp+%3Fobject+%7D&output=text&stylesheet=
sous DOS : 
GET -H "Accept: text/turtle" http://fuseki-smag0.rhcloud.com/ds/query?query=%0D%0ASELECT+*%0D%0A%09WHERE+%7B+%3Fsubject+%3Fp+%3Fobject+%7D

27/03/2014

Réclamations, Doutes, Demandes

On est partis pour... Ok, si je considère... allez... que dans 20 ans tout sera connecté dans ma maison et branché sur internet et commandable par mon smartphone (ou autre...)
Un paquet de questions se posent ...
Parce qu'un projet comme ça pose beaucoup de problème : éthique, sécurité, confidentialité, ...

Si vous avez des doutes, des peurs, des requêtes, des oppositions, quand au projet, ... c'est normal, j'ai aussi souvent peur de ce que je ne connais pas ...

On va tenter de  trouver des solutions à ces questions :
- Les robots vont-ils donner plus de chômage ?
- Vais-je perdre mon boulot ? 
- Qui est responsable d'un robot qui commettrait un délit ?
- Comment être sûr que mes informations personnelles ne sont pas diffusées sur le Net ?
- Comment désactiver un robot qui se trouverait dans ma maison ... et que j'y ferais des trucs que je n'ai pas envie qu'il voie ?
- Comment être certain que le robot dont j'ai besoin sera disponible au moment où j'en aurai besoin ? 
- Où vont-ils se ranger dans ma maison ?
- Comment le robot qui me fera le café va t-il savoir que le matin je mets deux sucres dans mon café et que le soir je n'en met qu'un ?
... et toutes les autres questions que vous pourriez-vous poser...

 Je vous invite au "Café des prudents, sceptiques & des opposants" : le café PSO, la discussion y est libre et plus elle sera virulente, plus on pourra approfondir les sujets et trouver des solutions.
Et juste à côté du café PSO, on va ouvrir le café SPO... le "Café des Sujets, Propriétés, & Objets", ce café parlera plus de technique et de la manière dont l'information peut être stockée : sous forme de triplet avec  :
un sujet, une propriété, un objet.
pour faire simple : 
<voiture> <couleur><rouge>
<david><age><37>
<pcduino Rover><type><robot>
...

d'autres cafés sont en train d'ouvrir leurs portes... Tenez... par exemple, je vois là-bas M. GéoTrouvetout... c'est lui qui tient le "café DIMB & DUMB" , le café des DIYeurs, des inventeurs, des makers et des bricoleurs, il y a également Mr Holon qui tient le "café SMA" , le café des Agents et des Multi-agents..., et d'autres encore... des boutiques, aussi où les inventeurs et fabricants exposent leurs projets... que du beau monde... il y a même un espace réservé pour l'utilisation du projet Smag0 par les enfants...

Vous trouverez également LA MAISON DES DEFIS : c'est l'endroit où l'on réalise les trucs qui ne sont normalement pas réalisables...
Et la place reste ouverte... n'importe qui peut se poser sur un banc et lancer un sujet de conversation, une idée, un problème...


Pour afficher le groupe de discussion en pleine page, suivez ce lien

Le systeme multi-agent sous forme de holon

Trouvé ce texte de Descartes dans une des thèses :http://sebastian.rodriguez.free.fr/files/ThesisSRodriguez_print.pdf )
Les hommes sont les proies d'une si aveugle curiosité qu'ils conduisent souvent leur esprit par des chemins inconnus, et sans aucune raison d'espérer, mais seulement pour courir leur chance d'y trouver par hasard ce qu'ils cherchent ; comme quelqu'un qui brûlerait d'un désir si brutal de découvrir un trésor, qu'il ne cesserait de courir les rues ça et là, cherchant si par hasard il n'en trouverait pas un qu'un voyageur aurait perdu. C'est ainsi que travaillent presque tous les chimistes, la plupart des géomètres, et plus d'un philosophe ; et certes je ne nie point que parfois ils ne vagabondent avec assez de bonne fortune pour trouver quelque vérité ; je n'admets pas pour autant qu'ils en soient plus habiles, mais seulement plus chanceux. Il vaut cependant bien mieux ne jamais songer à chercher la vérité sur quelque objet que ce soit, que le faire sans méthode : car il est très certain que ces recherches désordonnées et ces méditations obscures troublent la lumière naturelle et aveuglent l'esprit ; et tous ceux qui s'habituent ainsi à marcher dans les ténèbres affaiblissent tant leur vue que par la suite ils ne peuvent plus supporter la lumière du jour ; l'expérience aussi le confirme, puisque nous voyons très souvent ceux qui ne se sont jamais souciés d'étudier porter des jugements bien plus solides et bien plus clairs sur ce qui se présente à eux, que ceux qui ont passé tout leur temps dans les écoles. DESCARTES

Les systèmes multi-agents : 

Qu'est ce qu'un système multi-agent ?
http://www.lirmm.fr/~ferber/publications/LesSMA_Ferber.pdf

Les méthodes de conception de systèmes multi-agent :

Diamond : http://tel.archives-ouvertes.fr/docs/00/18/90/46/PDF/These_Jean-Paul_Jamont_2005.pdf
Aspecs :  http://www.aspecs.org/Home ou en   Pdf

Un agent particulier, le holon : 

Holons dans les systèmes multi-agents[modifier | modifier le code]

Les systèmes multi-agents sont des systèmes composés d'entités logicielles autonomes. Ils sont capables de simuler un système ou de résoudre des problèmes. L'holon peut être vu comme une sorte d'agent récursif : un agent composé d'agents qui, a un niveau donné, a son propre comportement comme un conséquence partielle des comportements de ses composants5. Janus Multiagent Platform est un exemple de plate-forme logicielle capable de faire tourner des holons.
( source Wikipedia :
http://fr.wikipedia.org/wiki/Holon_(philosophie)#Holons_dans_les_syst.C3.A8mes_multi-agents )


Exemlpe de systèmes multi-agent :
Janus Project (Java) : http://www.janus-project.org/Home
Spade (Python) :
Jade (Java) :
Quelque chose en ruby, où autre ? faites-le nous savoir qu'on rajoute l'info .
Dans jade, spade, Janus, les agents respectent les normes de la FIPA pour les communications .
Les systèmes multi-agents ont l'air un peu veillots...
Pour se renseigner sur la programmation des agents :
https://www.google.fr/search?q=programmation+agent+java&oq=java+programmation+ag&aqs=chrome.1.69i57j0.8663j0j4&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8
Un autre type d'agent directement natif dans java (à voir si ça correspond?) : http://blog.xebia.fr/2008/05/02/java-agent-instrumentez-vos-classes/

Pour en savoir plus : 

https://www.google.fr/search?q=holon&oq=holon&aqs=chrome..69i57j0l5.1180j0j4&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8#q=holon+multi-agent


25/03/2014

Hidden Orchestra, rien à voir avec le projet

Quelle peut bien être la signification du parcours du jeune homme dans le clip Anitphon de Hidden Orchestra ? Vous avez une idée ?

Explications : sur le clip Antiphon de Hidden Orchestra, une quinzaine de coordonnées sont affichées, j'ai retracé le parcours du jeune homme (il fait d'ailleurs, ceci dit en passant, 498 km de marche à pied (estimé à 101 heures par google maps) ... enfin j'en connais qui ne sont pas loin ;-)(private joke)... mais bon !
En regardant de plus près, avec les images satellites, c'est bien son bon parcours, on reconnais notamment l'horloge universelle Urania, et il finit bien au bord de la mer...
Cependant... le clip ne dure que 6 minutes... ça fait donc du 83 km/h... va peut-être falloir l'insrire au prochains jeux olympiques ...

Le problème c'est que je n'arrive pas à savoir si son trajet a une signification... et pourquoi il fait tant de demi-tours !
Si vous avez une idée, merci de bien vouloir la partager.

voir le parcours sur GoogleMaps 






Agrandir le plan


Mais peut-être que des fois ...
 j'aime bien me creuser la tête pour pas grand chose....
 Ah si ... ça a peut-être un rapport avec mon projet alors !...
 + ça donne des idées de réalité augmentée ! ou de chasse au trésor rocambolesque , mais presque !!!

Pourquoi du RDF ? pour jouer de la musique ?

- RDF ( resource description Framework) ? c'est un langage permettant de décrire des ressources d'un domaine... (voir wikipedia). Partageable, distribuable, interprétable par les machines....
- Ok ! c'est donc pour ça que tu veux absolument l'utiliser ?
- Oui, distribuable : donc les ressources sont décrites une fois et partagées entre les modules / robots , à condition de gérer la confidentialité des infos ... Et je me suis dit que je pouvais décrire avec la méthode Diamond qui est une méthode pour construire des systèmes multi-agents... J'en ai d'ailleurs fait une première version sur une autre page du blog, c'est diamond.owl. Et je suis en train d'essayer de la visualiser avec Processing.
Par extension, et si j'y arrive, je devrais pouvoir appliquer ce principe :
 [- visualiser / modifier les fichiers RDF/ontologies sous forme de graphes (Processing ? javascript + D3 ou jointjs)
- transmettre des infos à des machines (ordi/robot/module/agent) dans un format interpretable par elles.]
 à n'importe quelle méthode, comme une recette de cuisine, ou la procédure pour faire du café, pour ouvrir un placard ou y ranger les satanés légos qui trainenet.
- N'importe quelle méthode ou procédure ? Pourquoi pas une chanson, alors ? c'est comme une méthode ! Regarde : si on prend par exemple cette page http://www.francetabs.com/tablatures-partitions/brigitte/battez-vous-tab-guitare12488.html où on trouve les tablatures de Brigitte (désolé, je ne suis pas un crack en solfège, mais la suite doit être applicable aussi !)

ACCORDS
Accord guitare D (xx0232) Accord guitare E (022100) Accord guitare Em (022000) Accord guitare Em7 (022030) Accord guitare A (x02220)
TABLATURE
d|———————————|——————————|————————————||
a|———————————|——————————|————2—0—————||
e|—12———11———|—10———9———|—0—3————3—0—|| clap-clap
   .tremolo-------------    ¬¬        


d|—–2————4———|——5————7———|—2—————————2——||
a|—–2————6———|—–5———–4———|—2———2—0———2——||
e|—––———––———|————––––––—|—0—3————–3—0—|| clap-clap
   .tremolo-------------     ¬¬


       Em       EmM7          Em7       Em6
Faites-vous la guerre pour me faire la cour
 Em
Maintenant battez-vous
  Em       EmM7    Em7    Em6
Soyez gangsters, soyez voyous
 Em
Maintenant battez-vous
      

(...) 
--Fin de l'extrait.

ça nous dit : à la basse : sur la corde de MI faire les notes 12, puis 11, puis 10, puis 9, puis 0, 3, corde de LA : 2, puis 0, re-corde de MI 3 puis 0, puis Clap-Clap.


Et tu dis que tu peux transmettre ça à une machine ?
- Bien sûr, le format rdf est fait pour ça ! Attend, je te montre ! D'abord , tu lance Protégé, et dedans, tu y décris tout ce dont tu as besoin pour ta méthode, ou tout autre chose ( On pourrais par exemple y décrire la procédure pour une opération chirurgicale ( ;-) Oh Coco... Private Joke !) .
Ensuite tu décris des Classes qui regroupent des éléments de même type, avec des sous classes éventuellement, puis des Entités (ou des Individuals) avec des propriétés.
Pour notre exemple, on pourra par exemple creer une classe Note, une classe Accord, une classe Corde, une classe Position, c'est à toi de décrire ton domaine comme tu le souhaite.
Deux personnes différentes pourront décrire le même domaine de deux manières différentes... ce n'est pas un problème, on pourra toujours rapprocher ensuite deux ontologies...
Dans diamond.owl, j'ai utilisé des Classes Etape et des propriétés first (pour indiquer la première Etape) puis des proprietes next pour lier les différents Individuals ou entités...
Un accord peut être décrit comme un ensemble de 3 notes...
On peut dans le même fichier décrire à la fois tous les instruments, et n'afficher (on ne jouer que les bonnes informations en fonction des requêtes).
Exemple qui ne fonctionnera pas en l'état mais possible :  SELECT Accord WHERE {?Accord ?Instrument ?Guitare} ORDERBY ?Ordre

Essaie Protégé,  si tu veux un exemple : tu peux récupérer diamond-first.owl, et si tu veux des infos sur comment utiliser Protégé pour décrire un domaine, tu peux aller voir tout en bas de cet article : http://smag0.blogspot.fr/2014/03/creer-une-interface-pour-visualiser-les.html et récupérer le tutoriel Pizza-Gloria

+++ On peut même certainement s'amuser avec les machines à états finis dans une Ontologie... à voir : http://www.w3.org/TR/2014/CR-scxml-20140313/




pcDuino achat groupé , promo

Si vous aussi vous souhaitez commander une carte pcDuino, on peut peut être faire des commandes groupées (faudra peut-être rajouter la TVA !) pour limiter les frais de port (faites moi savoir si vous êtes intéressés en mettant un commentaire ou me contactant sur ce blog ou page google+) :


Différence entre pcDuino, pcDuino V2, et pcDuino V3 :


 La nouvelle carte pcDuino V3 sortira apparemment en mai 2014 : 55,69 € (conversion au 25/03/14 de 77$)
  • USB WiFi
  • Ethernet 10/100/1000Mbps


La carte pcDuino V2 : 47,73 € (66$)
RJ45 and built-in WiFi 

voir les caractéristiques sur le site du fabricant


La carte pcDuino V1 : 42,67 € (59$)
RJ45  et possibilité d'ajouter un dongle Wifi en option.



  Détail du matériel nécessaire pour le Rover pcDuino :

 (extrait de l'article http://smag0.blogspot.fr/2014/03/rover-pcduino-introduction.html

Budget Estimatif à la date du 15/03/14 :
 - 1 carte pcDuino V2 à 47,46 € ( 66$) http://store.linksprite.com/pcDuinoV2_47Euros
 - 1 webcam 3 axes (PZT) à 17,98 € (25 $) http://store.linksprite.com/webcam3axesPZT
 - 1 T-Board à 7,12 € (9.90$) http://store.linksprite.com/t-board-to-bridge-arduino-shield-to-pcduino-with-level-shifter/
 - 1 Plate-Forme à 11,69 € (16.25$) http://store.linksprite.com/linkerbot-platform/
 - 1 Arduino MotorShield à 9,70 € (13.50$) http://store.linksprite.com/motor-shield/

 Soit un total de 93.95 Euros pour les éléments de base d'un rover Wifi à base de pcDuinoV2 ( DE PLUS , IL Y A UN COUPON DE REDUCTION DE 20% EN CE MOMENT)

 A rajouter frais de port : (entre 15 et 20 €)

 rajouter les cables, vis... (je tente dès que possible de vous faire une estimation plus précise ;-)