Affichage des articles dont le libellé est multi-agents. Afficher tous les articles
Affichage des articles dont le libellé est multi-agents. Afficher tous les articles

04/05/2019

OSrdf


OSrdf :

Organic System Resource Data File
Organization System RDF
Operating System Rewritten by David F
or Something Ridiculous about ... ;-)

Un Operating System, système d'exploitation basé sur un système multi-agents, où tout est AGENT HOLACRATIQUE au sens Janus/SARL.

La machine est un agent
Le système de fichier est un agent

https://medium.com/datadriveninvestor/writing-your-own-file-system-is-not-as-hard-as-you-may-think-aa4af09329cd

Un dossier, un fichier, un périphérique (écran, clavier, souris, imprimante 3D, carte reseau...) sont des agents
Une donnée, un triplet, une ressource...
Un utilisateur, une connexion, une page web, un clic de souris, un formulaire, un champ de formulaire, un bouton, un composant web ( basé sur github/scenaristeur/evejs) sont des agents

Des agents autonomes ayant chacun un but propre ou contribuant à un but plus général.

Les buts / raisons d'être / prochaines actions de chacun de ces agents pouvant être définies grâce à un système inspiré du management à la manière de l'holacratie. ( Cercle, rôle, raison d'être)...

-> Résultat, un système d'exploitation, Os qui se rapproche :
- du cortex du cerveau humain  ( des neurones interconnectés comme des noeuds d'un graphe Spoggy)
- de l'organisation de notre holacratique
- de notre vision limitée du monde et notre façon de le concevoir par association, découverte, apprentissage...

What about l'ordinateur quantique developpé par IBM et qui peine à trouver des applications ? Mais serait peut-être une opportunité pour ce genre d'OS ?

08/06/2015

Comment créer une méthode pour Smag0, la méthode Diamond, au format RDF

On peut maintenant enregistrer un nouveau projet ou une information à transmettre à sa maison, grâce à l'appli Coolitude4, ou bien directement sur le site http://smag-smag0.rhcloud.com/visu.jsp.

Ensuite, pour nous aider à réaliser ce projet, ou pour aider le système à analyser l'information qu'on lui a envoyer, nous allons de voir utiliser une ou plusieurs méthode. Cet article décrit comment créer une nouvelle méthode et comment l'intégrer au système Smag0. On pourra de la même manière créer d'autres méthodes, des procédures métiers, des recettes de cuisine, des manières de ranger une chambre. Ces méthodes sont partageables et utilisables par plusieurs systèmes, elles devront également être personnalisables, selon l'envie, le contexte de chacun.

J'avais dans un premier temps, fait un premier test pour modéliser la méthode Diamond en me basant sur ce document : DIAMOND : Une approche pour la conception de systèmes multi-agents embarqués par Jean-Paul Jamont, et ça nous donnait ceci : http://smag0.rww.io/diamond.owl.
On pourra aussi se pencher sur la méthode ASPECS à laquelle est étroitement liée Janus.

J'ai depuis approfondi mes connaissances en RDF, et il apparaît opportun, d'utiliser au maximum des vocabulaires déjà existants, pour renforcer la compatibilité et la portabilité d'un méthode.
pour un rappel (ou une découverte) sur RDF et ses triplets, un petit coup d'oeil sur Wikipedia.

Une méthode est tout d'abord une séquence ordonnée d'instructions, ce qui se traduit en RDF par le triplet suivant : 

{ MethodeDiamond        rdf:type     rdf:Seq }


avec rdf:type http://www.w3.org/TR/rdf-schema/#ch_type : 
rdf:type est une instance de rdf:Property qui est utilisé pour indiquer qu'une ressource est une instance d'une classe.Un triplet de la forme: R rdf:type Cstipule que C est une instance de rdfs:Class et R est une instance de C.Le rdfs:domain de rdf:type est rdfs:Resource. Les rdfs:range de rdf:type est rdfs:Class.

Le rdf:Seq est la classe de «séquence» conteneurs RDF. Il est une sous-classe de rdfs:Container. Bien que formellement il est pas différent d'un rdf:Bag ou un rdf:Alt. rdf:Seq est utilisée conventionnellement pour indiquer à un lecteur humain que l'ordre numérique des propriétés d'appartenance de conteneur du conteneur est destiné à être significatif.


La méthode Diamond (enfin, comme je l'ai comprise ;-)) se décompose en 4 étapes majeures : 
  1. A. Définition des besoins
  2. B. Analyse du système Multi-Agents
  3. C. Conception Générique
  4. D. Implantation
ce qui se traduira par les triplets suivants
{ MethodeDiamond rdf:_1 DefinitionDesBesoins }
{ MethodeDiamond   rdf:_2 AnalyseSMA }
{ MethodeDiamond   rdf:_3 ConceptionGenerique }
{ MethodeDiamond   rdf:_4 Implantation }


Chacun de ces étapes majeures étant elle même une séquence  composée d'autres étapes, on continuera donc en décrivant l'étape DefinitionDesBesoins par les triplets suivants : 


DefinitionDesBesoins rdf:type  rdf:Seq  }
DefinitionDesBesoins rdf:_1 ApprochePreliminaire }
{ DefinitionDesBesoins rdf:_2 EtudeActeurs }
{ DefinitionDesBesoins rdf:_3 EtudeCasUtilisation }
{ DefinitionDesBesoins rdf:_4 EtudeBesoinsService }
{ DefinitionDesBesoins rdf:_5 EtudeModeMarcheArret }

et ainsi de suite,
pour plus d'infos sur comment construire une ontologie :
http://python.espe-bretagne.fr/master-hst-ue9-2/wp-content/uploads/2013/03/Tutoriel-Pizza-gloria-1.pdf
http://protegewiki.stanford.edu/wiki/Protege4Pizzas10Minutes
http://protegewiki.stanford.edu/wiki/Protege4UserDocs

Bien , maintenant, passons à la pratique.


Commencez par télécharger et exécuter Protégé2000,
ensuite nommez votre ontologie comme décrit dans les tutoriels juste au dessus (si vous bloquez à ce niveau, demandez de l'aide dans un des groupes de discussion du blog, ou en commentaire de cet article), et importez le vocabulaire rdf : http://www.w3.org/1999/02/22-rdf-syntax-ns#
dans votre ontologie.
Cela nous donnera accès aux classes rdf:Seq et aux propriétés rdf:type...
Ensuite, pour avoir accès à la numérotation, on va aussi importer le vocabulaire rdfs : http://www.w3.org/1999/02/22-rdf-syntax-ns#

dans objectPropertyHierarchie, ajouter des sous-propriétés à la propriété "member" telles que celles-ci : 
http://www.w3.org/1999/02/22-rdf-syntax-ns#_1
http://www.w3.org/1999/02/22-rdf-syntax-ns#_2
http://www.w3.org/1999/02/22-rdf-syntax-ns#_3
...


article), et importez le vocabulaire r
Creez une classe Methode sous la classe Thing, et créez une instance "MaMethode" de type "Methode".

  •  ajoutez le type "Seq" à "MaMethode". --> ceci nous donnera le triplet { MethodeDiamond        rdf:type     rdf:Seq }
  • ensuite utilisez les propriétés _1, _2 que vous avez créé sous la propéiété member, et créez les instances  DefinitionDesBesoins, AnalyseSMA  ConceptionGenerique  Implantation ,
    ce qui nous donnera les triplets :
    { MethodeDiamond rdf:_1 DefinitionDesBesoins }
    { MethodeDiamond   rdf:_2 AnalyseSMA }
    { MethodeDiamond   rdf:_3 ConceptionGenerique }
    { MethodeDiamond   rdf:_4 Implantation }
On peut ensuite ajouter le type Seq à ces quatres instances et continuer, en décrivant les sous-étapes de ces étapes, et ainsi de suite...

Le but étant d'avoir une structure récursive, identique pour toutes les méthodes, afin de pouvoir être utilisé de manière transparente par différentes applications.

On a décrit ici comment construire l'ontologie. on pourra ensuite la stocker sur http://rww.io/ (attention, la survie de ce site n'est pas garantie), ou sur un truc comme https://github.com/scenaristeur/smagserver/tree/master/src/main/webapp/ontologies, pour avoir une possibilité d'évolution, de versionning sur l'ontologie.

Pour l'instant, une première version là : http://smag-smag0.rhcloud.com/ontologies/diamondMethode.owl

reste à ajouter un formulaire sur Smag0 pour intégrer de nouvelles ontologies.