19/05/2014

Re: livre-rdf-introduction


Pas facile d'ecrire un livre en CHOUET.

Le CHOUET cette nouvelle langue que le gouvernement veux nous imposer, par traduction primitive du langage OWL, une extension du langage RDF(Resource Deqcription Framework) afin d'être compris par les machines .

C'est certainement plus facile pour les jeunes, ceux de la génération Y et après, ceux qui ont l'habitude de communiquer par sms, par phrases courtes ou même par abréviations.

Ce langage sms qui généralement provoque chez leurs parents l'incrédulité et l'incompréhension la plus totale...

On croyait que ça s'arreterait rapidement... On avait passé le cap des premiers LOL et autres MDR. On croyait que c'était juste une mode entre "d'jeuns" comme le verlan que l'on avait infligé nous même à nos parents... On avait même accepté à l'époque de passer pour des "boulos" puisque les "has-been" étaient démodés depuis belle lurette . On était surpris par les dernieres tendances "hypster", qui d'après ce que j'en comprenais à l'époque ne se voulait d'aucune mode mais ressemblait un peu à toutes les autres sans accepter d'en avoir l'air...
Mais là... on atteignait les sommets :  le "français" était en phase de réécriture. Exit la grammaire et la conjugaison comme nous les avions apprises à l'école primaire...

Faute à qui ? au différents mooc sensés fournir gratuitement des cours à chacun permettant ainsi de se spécialiser dans un domaine précis sans aucune nécessité de maitriser les " matières généralistes" ...

On aurait dû s'en douter depuis longtemps... déjà quand Microsoft, Google et les autres se sont mis d'accord  pour adhérer aux normes du schemas.org. Deux dinosaures comme ça qui s'intéressent à une techno... ce n'est pas sans signification... Et le W3C en première ligne... ce n'est pas rien non plus !

Comment ça marche le CHOUET ?

Le pire c'est qu'il n'y a rien de plus simple et que l'on peut TOUT décrire, puisque RDF est un métalangage, on peut même s'appuyer sur les description faites par les autres pour éclaircir et préciser nos intentions. Par exemple, si je veux décrire une personne, je pourrais m'appuyer sur l'URI : https://schema.org/Person qui définit déjà un certain nombre de propriétés afférentes à une personne, comme par exemple "birthDate" qui correspondra à la date de naissance de cette personne et sera défini à cette adresse : https://schema.org/birthDate.

Ces URI (ou adresses uniques) peuvent être utilisées pour donner plus d'informations sur le contenu des pages web comme le préconise schemas.org, mais également pour décrire, partager, fusionner, et inférer sur des données disparates ou venant d'horizon ou de points de vue différents. Ces données peuvent être regroupées sous forme d'ontologies ( une ontologie représentant le vocabulaire d'un domaine et les relations entre ses concepts)

D'autres ont également senti le vent tourner et s'y sont mis à l'époque GoodRelations, par exemple pour le e-commerce s'appuyant eux -mêmes sur d'autres ontologies comme ou vocabulaires comme FOAF.

Comment utiliser le CHOUET ?

Comment je m'y suis mis ? tout bêtement... un enfant qui peut prononcer trois mots l'utilise déjà...

06/05/2014

serveur Fuseki sur le pcduino

ça fait un bout que je suis pas passé.. M'enfin !!!
La livraison du pcDuino a pas mal tardé, ensuite les vacances...

Mais j'ai tout bien reçu (voir les articles précedents).
Quelques tests faits : installer vnc, librairie pyduino, brancher une caméra, une Led, (mon-club-elec.fr) , test des servos moteurs, et moteurs de déplacement (linksprite.com)...

Mais l'étape d'aujourd'hui concerne la mise en place d'un serveur fuseki afin de gérer la base de connaissance du robot

Fuseki :
sur le pcduino, decompresser le repertoire fuseki

Lancer fuseki au démarrage (modif du fichier autostart):
sudo geany /etc/xdg/lxsession/Lubuntu/autostart

ajouter une des deux  lignes suivante en fonction du mode de démarrage préféré :
- pour fuseki en mode non persistant pour faire des tests (en mémoire):
@/home/ubuntu/fuseki/fuseki-server --update --mem /ds

- pour fuseki en mode persistant pour que les données restent :
/home/ubuntu/fuseki/fuseki-server --update --loc=/home/ubuntu/fuseki/DEFAUT /ds
!!! pensez à créer le repertoire DEFAUT dans le repertoire fuseki et bien mettre un espace devant /ds qui défini le nom du dataset

(voir la doc de fuseki pour les différents modes de démarrage)


Le serveur Fuseki est accessible à l'adresse http://localhost:3030
on peut y uploader les fichiers de tests proposés sur le tutoriel Jena Sparql

aide pour construire les requetes Jena / Sparql : http://www.slideshare.net/rajighawi/java-and-sparql (diapo 5/26)

on peut même y accéder en mode distant, avec Processing et Jena
(modifier l'adresse : remplacez 10.42.0.1 par l'adresse de votre pcduino):


import java.io.Reader;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.query.ResultSet;
import javax.xml.transform.Result;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.query.ResultSetFormatter;
import com.hp.hpl.jena.ontology.OntModelSpec;


void setup() {
  /*
  http://host/dataset/query -- the SPARQL query endpoint.
   http://host/dataset/update -- the SPARQL Update language endpoint.
   http://host/dataset/data -- the SPARQL Graph Store Protocol endpoint.
   http://host/dataset/upload -- the file upload endpoint.
   */
  String endpoint = "http://10.42.0.1:3030/ds/query";
  String requete = "SELECT * WHERE {?S ?P ?O}";
  //String requeteJS = "SELECT ?x WHERE { ?x <http://www.w3.org/2001/vcard-rdf/3.0#FN> 'John Smith' }";
  // select-query
  QueryExecution qe = QueryExecutionFactory.sparqlService(endpoint, requete);
  //qe.setInitialBinding( );
  println (qe);
  ResultSet result = qe.execSelect();

  ////////////////////////:::::::::::::
 // Pour afficher les resultats deux solutions ResultSetFormatter.out(System.out, result); ou While / has next
   ResultSetFormatter.out(System.out, result);
  /*while (result.hasNext ()) {
    QuerySolution querySolution = result.next();
    println(querySolution);
  }*/
  //////////////////////////:::::::

  int numb = result.getRowNumber();
  println (numb);

  
}

void draw() {
}



ce sketch processing permet de visualiser les infos présentes sur le serveur Fuseki du pcduino. Pour une requête plus précise et notamment obtenir un graphe/model à la place d'un ResultSet, on devra utiliser Construst plutôt que Select qui retourne un tableau itérateur des solutions. http://jena.apache.org/tutorials/sparql_results.html

voir aussi les tutoriels Jena en français : http://jena.apache.org/tutorials/index.html

pour reinitialiser le serveur fuseki (effacer toutes les données) :
s-update --service http://localhost:3030/ds/update 'CLEARDEFAULT'






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 !!!