:: Utilisateurs Réfugiés SpiceGuid ► Le projet ERic

Version d'archive

  • Ce site est en lecture seule. Certains liens dynamiques peuvent ne pas fonctionner correctement.

Le projet ERic

Le fil des nouvelles sur l'avancement de mon projet ERic (Entity-Relationship interactive calculator).

La dernière version stable ERic 0.2g :

Aka Guymelef aime cet article

Les derniers commentaires

SpiceGuid il y a plus de 9 ans , modifié il y a plus de 9 ans

Après avoir lu Why concatenative programming matters j'ai prototypé une notation alternative pour les graphes Entités/Relations.

Ainsi, ce graphe de boîtes :

Qui se notait comme ceci :

join
 [Believe *b] Experiencer [Person:Tom]
 b Theme [Proposition *p]
 [Want *w] Experiencer [Person:Eva*e]
 w Theme [Situation *s]
 [Marry *m] Agent e
 m Theme [Sailor*sailor]
 (w In p) (s In p) (m In s).

Pourrait éventuellement se noter comme ceci :

join
 [Person:Tom] 
 [Believe] (Experiencer)
 (Theme) [Proposition]
 [Want] (In) 
 (Experiencer) [Person:Eva] rot2
 (Theme) [Situation] rot4
 (In) rot4
 [Marry] (Agent)
 (Theme) [Sailor] rot2 rot5
 (In)

[xxx] empile une boîte carrée, (xxx) connecte les 2 boîtes carrées en tête de pile, et rotN déplace le N -ième élément vers la tête de pile.

Les variables ont disparu. Elles ont été remplacées par l'instruction rotN .

Avantages de cette nouvelle notation :

  • Elle ne nécessite pas de nommer les boîtes carrées avec des variables.
  • Elle rend le graphe de boîtes davantage composable/réutilisable.

Inconvénients de cette nouvelle notation :

  • Elle est moins déclarative, il faut se représenter mentalement les manipulations sur une pile pour imaginer la construction du graphe de boîtes.

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

On devrait pouvoir faire des automates basés sur les graphes de boîtes .

Si tu en fais un :

• poste-le dans ce fil.

• tente de répondre à la question : en terme de calculabilité, que signifie la subsomption entre 2 automates basés sur les graphes de boîtes ?


Pendant ce temps moi je m'arrache les cheveux avec la BPMN 2.0 .

Dans l'espoir d'exposer des exemples plus business oriented .

Vu que la BPMN 2.0 c'est du FlowCharting on est occupés à des activités très similaires Smile


EDIT: j'arrête la BPMN 2.0 .

À la place j'adopte une approche moins sémantique et plus algébrique.

J'essaye d'identifier de nouvelles opérations, possibles grâce aux graphes de boîtes , et qui permettraient de prolonger les capacités d'ERic.

(la théorie dit qu'il n'y en aurait aucune, mais bon... ça m'empêche pas de chercher)


J'ai trouvé 3 opérations spécifiques aux graphes de boîtes :

• envelopper une boîte dans une boîte-contexte

• retirer une boîte de sa boîte-contexte

• échanger la boîte-contexte contre une autre boîte-contexte

Ces 3 opérations étaient déjà possibles sur une relation (ajouter, retirer, échanger). La théorie avait raison : mes opérations sur les graphes de boîtes correspondent en tous points aux opérations sur les graphes non imbriqués. Du coup ça laisse peu d'espoir pour un killer-example plus convaincant que le tutoriel actuel.

Sinon pour mon business plan j'ai choisi l'option terre-à-terre . C'est tellement plus concret que BPMN 2.0 .

Sbirematqui il y a plus de 10 ans

Aujourd'hui, j'ai passé mon aprem sur des graphes pour programmer des automates. J'ai pensé à ERic.

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

Suite à la discussion Maman raconte moi une histoire je viens de reconsidérer ma documentation ERic 0.2 à la lumière de The Art and Science of Writing publié par l'INRIA.

Et j'ai TOUT faux. J'ai commis toutes les erreurs possibles.

Petites erreurs :

• Au moins une personne a cru (à tort) qu'il y avait (ou qu'il y aura) un raisonneur artificiel alimenté par des graphes. À ma charge de montrer qu'ERic a son utilité même sans raisonneur.

• J'ai écrit en français alors qu'une documentation technique doit être en anglais. Je l'ai fait parce que le projet est hébergé sur un site francophone mais à posteriori ça n'interdisait pas une documentation en anglais. Par contre le français me barre l'accès à des dépôts/forges-logiciel plus internationaux.

• J'ai rédigé en HTML pour une meilleure visibilité sur le butineur. Alors qu'une documentation technique doit être en pdf pour être imprimable. C'est essentiel en particulier dans les administrations : on peut toujours y sortir un papier, mais jamais un eeePC 701.

• J'ai exposé un méta-modèle. Ça n'a d'intérêt que pour le concepteur. Pour le lecteur c'est juste une nouvelle source de complexité/d'interrogations.

Grosses erreurs :

• J'ai oublié de rédiger a convincing story . À la place j'ai montré comment une phrase en langage naturel peut se décomposer grammaticalement, ce que n'importe quel élève d'école primaire sait faire, et qui ne produit aucune information.

• J'ai rédigé une sorte de journal de bord : à chaque extension du logiciel j'ajoutais un chapitre. Ça n'a absolument aucun intérêt pour le lecteur. Les entreprises achètent des solutions, pas des technologies. Si la documentation doit aller crescendo ça n'est certainement pas sur du featurism mais plutôt sur la complexité des problèmes qu'ERic pourrait résoudre.

• On m'a dit sur IRC qu'on ne voyait absolument pas à quoi ERic pouvait servir. C'est sans doute dû au fait que l'élégance de ma solution m'a davantage enthousiasmé que le problème associé. D'où le sentiment pour le lecteur qu'en fait il n'y a pas de problème associé. Or une entreprise n'achète des solutions que si elle est confrontée au problème associé.

• J'ai trop insisté sur la subsomption . C'est stérile. Je n'ai pas mis en lumière les synergies possibles entre la subsomption, la fusion et les graphes de boîtes (qui sont arrivés trop tardivement).


Ceci dit je ne me fais pas trop d'illusions. Je ne suis pas le seul à élaborer ce genre de logiciel et d'après ce qu'en dit la communauté c'est particulièrement difficile à vendre. Mais bon, quitte à le faire, autant le faire bien et mettre toutes les chances de mon côté.

Au pire je pourrai devenir consultant...

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

C'est exactement ça.

au_revoir Bonjour, je programme en tic-tac-toe, et je ne comprends pas comment utiliser mes compétences pour bénéficier des services de ce HAL 9000.

Ertaï il y a plus de 10 ans

Parce que le Java c'est plus simple ? archange

Sbirematqui il y a plus de 10 ans

Parce qu'il faut rajouter des failles et consommer plus de mémoire là où on en avait pas besoin icon_razz

SpiceGuid il y a plus de 10 ans

Mais pourquoi diable veulent-ils tout mixer avec du Java.

Ça leur ferait mal un programme monolingue en Erlang ou en OCaml.

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

J'ai un peu de mal à définir ce que serait le web si les données y étaient codées comme dans ERic.

Clairement ERic est une technologie de représentation des connaissances .

D'après Wikipédia :

  1. Ça en fait une des technologies du web du futur .
  2. Typiquement ERic est en concurrence avec le couple OWL + RDF , c'est-à-dire le web sémantique .
  3. Selon certaines personnes (beaucoup) le web sémantique c'est le web 3.0 .

Cependant ERic repose sur les graphes de boîtes (une version restreinte des bigraphes ) ce qui en fait de l'informatique ubiquitaire et de l'intelligence ambiante .

C'est dit explicitement à propos des bigraphes :

Citation :

"

This article is about the formalism for ubiquitous computing .

"

Selon  Joel de Rosnay ce serait alors du web 4.0 .

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Techniquement parlant ERic ne supporte pas les bigraphes à 100%.

Un bigraphe c'est un peu comme une pièce d'un grand puzzle, c'est une petite image insérable dans la grande image.

Pour l'instant (et pour encore longtemps) ERic n'est pas capable de :

• Trouver (ou fabriquer) la (ou les) pièce manquante dans un puzzle entier.

• Reconstituer un puzzle entier en assemblant autant de pièces que nécessaire.

Toutefois ERic supporte très bien la subsomption sur les bigraphes DoubleAccentCirconflexe

Edit : après y avoir pensé sous la douche je dirais que ça serait du web 3.0+

On aurait tous les avantages du web sémantique (avec les  graphes de boîtes en bonus).

Par contre on n'aurait pas les côtés componentiel et ubiquitaire des bigraphes .

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

La documentation en ligne (et dans le dépôt SVN) évoque désormais le modèle du graphe de boîtes .

Par contre la nouveauté de la version 0.2 g (les difference links ) n'est toujours même pas mentionnée. C'est dire mon degré de motivation eusa_whistle

Comme c'est la rentrée universitaire, les étudiants / élèves ingénieurs doivent sans doute rechercher (beaucoup n'ont pas d'idée) un sujet pour leur projet de fin d'année / fin d'étude. Ça me paraît une bonne période pour prospecter des utilisateurs en étroite collaboration avec des institutions d'enseignement supérieur technologique.

À moins que le jeu ne soit plus fort.

TSG il y a plus de 10 ans

Vos trucs de codes de chameaux, j'y comprends rien, mais j'ai cru comprendre qu'il était un peu question d'une problématique désespérée. Je suis un peu expert dans le domaine, mais ça veut pas dire que c'est une bonne chose. sweat2

Ertaï il y a plus de 10 ans , modifié il y a plus de 10 ans

Bonnes suggestions, on voit bien à quel point ça te réussit, TSG eusa_whistle

SpiceGuid il y a plus de 10 ans

J'ai plutôt choisi sa suggestion n°2, ce qui est un moindre mal vu ce que pourrait être ma suggestion n°3, n'est-ce-pas eusa_whistle

TSG il y a plus de 10 ans , modifié il y a plus de 10 ans

Suggestion n°1 :

Suggestion n°2 :

Ertaï il y a plus de 10 ans

Que comptes-tu faire du coup ? icon_scratch

SpiceGuid il y a plus de 10 ans

Du coup c'est un projet d'avenir qui devient un projet personnel .

L'outil tel qu'il est n'est pas fondamentalement invalidé, ce sont juste certaines possibilités d'évolution qui se brouillent ou qui se referment pour longtemps.

Je pourrais même lui ajouter deux extensions mineures, qui vont de soi :

  • Les 3 contraintes minimum , maximum et interval pour les étiquettes de type entiers et réels flottants.
  • Un nouveau type d'étiquette date/time , lui aussi assujetti aux 3 contraintes pré-citées.

Il faudrait aussi réécrire la documentation, en anglais.

Après il faudrait un dépôt sur la forge de l'UE .

Et puis démarcher/communiquer pour voir comment l'environnement administratif/industriel peut ou ne peut pas s'approprier l'outil. En y mettant de la conviction. Mais sans jouer mon avenir uniquement là-dessus.

Communiquer aussi avec des logiciens/linguistes/philosophes pour un retour d'idées.

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

Protégé supporte les graphs .

Cogitant supporte les nested graphs .

ERic supporte les boxed graphs .

Qu'est-ce ça veut dire pour le client/utilisateur ?

Dit autrement qu'en termes de liens et de boîtes.

Bref, qu'est-ce ça veut dire en français ?

Protégé a un modèle entités-relations .

Cogitant a un modèle entités-relations avec zoom .

ERic a un modèle entités-relations avec point de vue .

Avec Protégé on ne peut pas zoomer. On voit toujours un graphe dans sa totalité.

Quand on zoom e sur une boîte avec Cogitant on tombe sur un nouveau graphe dans lequel on peut éventuellement zoomer à nouveau. Mais à chaque étape on est isolé, il n'y a pas de lien venant de l'extérieur ou allant vers l'extérieur. À chaque étape on voit toujours un graphe dans sa totalité, enfermé dans son contexte (la boîte englobante).

Quand on zoome sur une boîte avec ERic on tombe sur un nouveau graphe dans lequel on peut éventuellement zoomer à nouveau. Mais on n'est pas forcément isolé, il y a éventuellement des liens venants de l'extérieur ou allants vers l'extérieur. On ne voit pas un graphe dans sa totalité. On voit un graphe partiel. Ce que l'on observe c'est un point de vue sur la totalité.

Qui dit liens venants de l'extérieur ou allants vers l'extérieur dit interface .

Visionnons le schéma de conception . Où est la boîte [Interfaces] ?

Elle est dans la boîte [Bigraphs] laquelle est à l'extérieur de la boîte [ERic 0.2g] .

Dit autrement : ERic a une conception bâtarde. Ses données sont de type point de vue sans qu'il supporte les opérations sur les interfaces avec les autres points de vue.

Comment arranger ça ? Il faudrait tout recommencer en partant des bigraphs .

Est-ce que c'est réaliste/envisageable ? Non. À l'heure actuelle le bigraph est l'une des structures les moins bien comprises de toute l'informatique. 

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

DoubleAccentCirconflexe Mine de rien je suis toujours à fond dans ERic.

Il est plus que temps de passer à l'étude de marché

Je change complètement de démarche de développement :

"Le client..., le client..., les besoins du client..., les attentes du client..." c'est ce que ne cesse de me répéter mon pote qui travaille dans une SSII. Je ne suis pas exempté de cette démarche. Je ne suis pas dans une tour d'ivoire: ERic n'est pas un PFE (Projet de Fin d'Études), je n'aurai pas de diplôme. Donc je suis obligé d'avoir un (des) utilisateur sinon autant tout arrêter. Je ne vais me prendre la tête pour le plaisir de me prendre la tête. Jusqu'ici j'avais une tendance à ça, mais maintenant c'est du passé.

Comment savoir ce que veulent les utilisateurs. À première vue c'est le problème de la poule et de l’œuf puisque j'ai exactement zéro utilisateur. Mais en fait c'est plus simple que ça : on appelle cela de la vieille technologique . Typiquement un (éventuel) futur utilisateur d'ERic utilise déjà un outil de base de données sémantiques qui ne lui donne pas entièrement satisfaction. Ou qui lui donne satisfaction mais ERic serait encore plus avantageux et il ne le sait pas. D'où la démarche en deux temps (1) dénicher ces utilisateurs (2) les convaincre de changer d'outil.

Dénicher ces utilisateurs

Ils sont dans une niche. Toutefois ils ne sont pas cachés comme des chiens méchants. Je connais leur niche. Ils rongent un os utilisent un outil qui ressemble de près ou de loin à ERic 0.2g . Il suffit de lister ces outils et de consulter les wikis associés pour se faire une idée. Démarche efficace : on va aller du plus proche d'ERic jusqu'au plus éloigné.

Le plus proche d'ERic

Le projet le plus proche d'ERic est sans conteste CoGUI / Cogitant . C'est un projet universitaire français, open-source développé par LIRMM , l'aboutissement de plus de 20 ans de recherche.

 Il ne sert à rien (à part pour se miner le moral) de lister tout ce que peut faire  CoGUI / Cogitant et dont ERic est incapable.

Ce qui importe c'est le contraire, où ERic est-il meilleur que  CoGUI / Cogitant :

ERic est plus beaucoup plus compact, n'utilise pas Java, peut facilement s'utiliser sur un eeePC 701 où tout autre appareil ultra-portable. ERic est sans doute aussi plus performant (estimation pifométrique : je n'ai pas de benchmark pour appuyer cette supposition).

ERic supporte le modèle des boxed-graphs (les liens peuvent entrer et sortir des boîtes), alors ne supporte que le modèle des nested-graphs (les liens ne peuvent ni entrer ni sortir des boîtes).

Ok, maintenant où est le Wiki, où sont les utilisateurs, qui sont-ils ?

couto J'ai tout essayé cogitant wiki , cogitant user list , cogitant forum , cogitant mailing-list ,... tous les résultats renvoient vers le portail cogitant.sourceforge.net

Aucune trace d'un quelconque utilisateur. Pas plus de trace d'un cogitanteur que d'un martien tout vert icon_frown

Ça démarre très mal pour ERic. S'il y a zéro utilisateur  Cogitant alors il y a zéro utilisateur déçu / à convaincre / à convertir.

Restons positif. Disons que Cogitant est 100% universitaire, qu'il n'a pas su se mettre en avant, et que les utilisateurs sont à chercher ailleurs.

Le camp ennemi

Pas besoin d'être un grand détective pour constater que les utilisateurs sont chez Protégé (pas moins de 4 pages de projets ).

L'approche Protégé est radicalement différente de ERic / Cogitant. Au lieu d'être basée sur un formalisme mathématique / logique elle est basée sur une POO ( P rogrammation O rientée O bjets) repensée à la sauce KR ( K ownledge R eprésentation).

Alors je devine votre réaction. Vous vous dites "la POO je maîtrise" et "la logique ça me prend la tête" et d'autres choses dans le genre qui vous font penser que Protégé est bien plus user-friendly que ERic ou Cogitant. Seulement vous n'y connaissez rien en KR . Autrement dit vous êtes confis de préjugés à la con. Protégé est aussi (sinon plus) difficile à maîtriser que n'importe quel autre KR -tool.

À vrai dire je me fiche de ce que vous pensez, ce qui importe avec  4 pages de projets c'est que j'ai trouvé un vivier d'utilisateurs à partir duquel je peux dégager un profil-type pour un (éventuel) futur utilisateur d'ERic Smile

Les musées

J'aime bien l'exemple des musées

Malheureusement pour moi CIDOC a l'air bien installé, ou en tout cas très soutenu par les grandes institutions telles que ICOM et la commision européenne. Difficile pour un particulier de se faire une place là où il y a déjà un standard de-facto icon_frown

SpiceGuid il y a plus de 10 ans

Des personnes qualifiés qui gèrent des produits complexes avec de forts enjeux financiers qui dépassent le coût du personnel ça existe dans le secteur bancaire .

Pourquoi ERic est inadapté au secteur bancaire :

Les produits financiers sont complexes à la fois dans leur structure (ce que ERic peut modéliser facilement) et dans leur contexte (que ERic peut aussi modéliser facilement).

Malheureusement pour ERic, si la structure d'un produit financier est stable, son contexte lui est extrêmement volatile.

ERic ne gère pas la volatilité. Il n'a pas de mécanisme de mise à jour. Il ne modéliser que des connaissances (des choses stables dans le temps).

SpiceGuid il y a plus de 10 ans , modifié il y a plus de 10 ans

ERic est en phase de conversion vers le toolkit GTK+ 2.24 (travail qui n'est pas terminé à l'heure qu'il est).

À l'occasion de cette conversion j'ai pu repenser aux problèmes qui sapent ERic depuis le tout début du projet (pas d'utilisateurs, pas de domaine d'application privilégié, pas de killer-app, trop de généralité, trop d'incitation à des dérivatifs fantaisistes / utopiques / délirants).

J'en suis venu à conclure que le problème n'est pas dans l'interface. Et donc la GTK-isation ne va rien changer aux fondamentaux :

Pour l'instant la GTK-isation offre un IDE limité : seules les parties hiérarchie entités et  hiérarchie relations sont 100% graphiques et intuitive. Le gros du travail, c'est-à-dire la spécification des graphes, reste 100% textuel.

La GTK-isation ne peut pas apporter plus d'utilisateurs. Au contraire ERic devient quasiment Linux-only (plus il va falloir générer un paquet pour chaque grosse distribution Linux, ce qui ajoute du travail, toujours sans toucher plus d'utilisateurs que la version actuelle, sur console donc 100% portable tous systèmes).

Plus fondamentalement c'est la documentation qui pêche par manque de focus . Elle ne dit pas à quoi peut bien servir ERic exactement tout en laissant penser qu'il peut servir à tout et n'importe quoi. C'est une erreur qui ne vient pas de moi mais de la documentation universitaire sur le sujet. L'universitaire aime être universel. Il n'aime pas admettre que son travail a un champ limité d'applications.

La conclusion c'est que je dois moi-même trouver un ou des domaines d'applications privilégiés. Et cibler la documentation 100% vers ces domaines.

J'ai encore 1 ou 2 idées d'extensions faciles à implémenter, qui augmenteront encore l'expressivité d'ERic, lui ouvrant de nouvelles perspectives. Mais sans le faire déborder de son cadre initial.

Quel est ce cadre initial ? Il est caché. Il m'a fallu des mois (1 ans ?) pour l'identifier à peu près vaguement :

ERic n'est pas un outil linguistique. ERic n'est pas un agent conversationnel. ERic n'est pas une intelligence artificielle. ERic n'est pas capable de raisonner.

Si on pouvait éditer les graphes-imbriqués de façon 100% graphique ERic pourrait éventuellement concurrencer les autres méthodes de modélisation (formelles ou informelles). Malheureusement je n'en suis pas à ce stade de développement et j'en suis loin. Et je n'y parviendrai peut être jamais (à supposer qu'il soit envisageable d'y parvenir, ce qui n'est pas une vérité acquise d'avance).

De fait il ne reste que la modélisation des graphes-imbriqués sous une forme textuelle. À quoi cela peut-il bien servir ? À soutirer de l'information hautement spécifique d'une énorme base de données hautement généraliste. Ou du moins très richement expressive. C'est petit comme domaine d'application. Car les personnes qui alimentent la base de données doivent être qualifiées (sinon la base sera de mauvaise qualité) et nombreuses (sinon la base sera de petite taille et alors pas besoin d'outil, on peut extraire à la main). Or qui dit nombreuses personnes qualifiées dit coûts élevés de personnel. Commercialement parlant ça veut dire qu'ERic est difficilement viable. Trop coûteux d'utilisation.

Je vais sans doute poursuivre la GTK-isation et réécrire une autre documentation (en anglais) plus ciblée pour une nouvelle version aux possibilités étendues. Rien que pour le plaisir de montrer qu'on peut faire des choses complexes avec une interface sophistiquée, tout ça 100% en ocaml. Mais en dilettante, sans enthousiasme.

Pour la suite, il n'y en aura une que s'il y a de la demande ou si je peux la créer.

Comme de nombreux membres sur ce site j'ai (autrefois) songé, comme une possibilité, à travailler (en indépendant) dans le domaine du jeu-vidéo. Aujourd'hui j'exclus cette voie pour les raisons suivantes :

Je suis incapable d'innover en matière de gameplay, ce qui me semble être le principal atout d'un indépendant.

Le marché du jeu-vidéo est devenu trop concurrentiel. Les prix sont trop bas. Pas assez de visibilité sur la rentabilité.

Pas assez de visibilité sur le déplacement de la valeur ajoutée. Certaines plateformes sont des déserts commerciaux où tout doit être gratuit. D'autres sont des vaches à lait. Impossible de prédire quelle plateforme sera la vache à lait dans 2 ans (le temps minimum pour développer un premier jeu).

Devant le manque de visibilité sur l'avenir du hardware la tentation est grande (c'est une question de survie) de viser les technos les plus portables. En général ça veut dire Java ou JavaScript + SDL ou SFML. Ça produit des jeux aux performances médiocres qu'on déguise derrière un look "rétro". Ça ne correspond en rien à mes aspirations. Je ne suis pas motivé.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

ERic vient de passer en version 0.2g :

Ajout de la relation d'inégalité a =/= b  entre deux entités, dans les requêtes ( select ).

Sur le dessin ci-dessous cela signifie que la boîte Difference-link est maintenant dans la boîte principale ERic 0.2g (tout en restant dans la boîte Operators ).

Pas d'archive. J'ai uniquement mis à jour le dépôt SVN .

Comme je ne teste pas et que je n'ai aucun utilisateur il n'y a pas de bug connu.

Ertaï il y a plus de 11 ans

SpiceGuid a écrit :

"

Comme je ne teste pas et que je n'ai aucun utilisateur il n'y a pas de bug connu.

"

Génie !

SpiceGuid il y a plus de 11 ans

Tester c'est une perte de temps. Au lieu de pleurer qu'il y a un bogue, un utilisateur constructif devrait poster dans Certification d'un algorithme efficace de H-coloration .

Pourquoi modifier un code boggué si je ne peux même pas prouver que le nouveau code est correct ? Ça ne sert à rien. C'est une perte de temps.

Il n'y a qu'une seule façon de prouver que le code (modifié ou pas) est correct c'est de contribuer à la Certification d'un algorithme efficace de H-coloration . Si vous connaissez une autre façon de procéder merci de me la communiquer.

Il existe des programmeurs qui préfèrent tester. Le résultat on le connaît : leurs programmes sont truffés de bogues.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 10 ans

ERic 0.2g dans tous ses aspects et toutes ses extensions envisageables. (mise à jour)

La boîte [Not-this-relation] remplace la très mal nommée boîte [Negation] (car il n'y a pas et il n'y aura jamais de négation en ERic pour des raisons de logique fondamentale).

Le nouvel opérateur [Différence-link] force deux boîtes-entités à représenter 2 entités distinctes (que le mécanisme de ne pourra de subsomption pas identifier l'une à l'autre). Cet opérateur pourrait éventuellement être ajouté à une éventuelle version ERic 0.2g

L'opérateur [Generalization] reste inchangé. Il est toujours possible de calculer un unique graphe-ER qui subsume 2 autres graphe-ER quelconques. C'est possible grâce à la [Taxonomy] qui a toujours une racine. Que ce soit un tree , un DAG ou un lattice il y a toujours une racine unique. Donc forcément quand on remonte dans la généralité on tombe tôt ou tard sur un point commun.

Le nouvel opérateur [Specialization] est tout le contraire. Il doit calculer un unique graphe-ER qui est subsumé par 2 autres graphe-ER quelconques. Ça n'est possible que si les 2 taxonomies (celle des entités et celle des relations) possèdent une anti-racine. De toutes les taxonomies seules les lattice possèdent une anti-racine.

Le treilli (lattice) des boissons (beverage). En haut la boisson universelle. En bas l'anti-boisson.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

ERic 0.2f dans tous ses aspects et toutes ses extensions envisageables.

La boîte centrale cerne toutes les fonctionnalités d' ERic 0.2f , en résumé les relations sont binaires et non-typées, l'interface est textuelle et synchrone, les opérations disponibles sont la subsomption et la négation, les taxonomies sont de simples hiérarchies.

Tout ce qui est en dehors de la boîte centrale représente autant d'extensions envisageables.

Les boîtes carrées And et Xor sont reliées aux autres par la boîte ronde implicite (Relation) .

Une boîte And signifie que l'utilisateur pourrait cumuler toutes les fonctionnalités.

Une boîte Xor signifie que les fonctionnalités seraient mutuellement exclusives.

La mise à jour de la base de données pourrait se faire à l'aide d'un système de réécriture [RewriteSystem] si ERic possédait les [Bigraphs] avec leurs [Interfaces] au lieu des simples graphes de boîtes ( boxed graphs ) comme c'est le cas actuellement.

Le déploiement de l'application sur plusieurs postes de travail suppose une architecture client-serveur [Asynchronous] qu'ERic ne possède pas actuellement.

D'après les experts du domaine, une interface 100% visuelle est incontournable.

Comme vous pouvez le remarquer, le fait de "zoomer" sur une boîte particulière vous place dans un contexte mais ne vous isole pas totalement de l'extérieur. À cause des liens entrants et sortants et du fait que les boîtes peuvent se recouvrir partiellement. 

Ertaï il y a plus de 11 ans

Joli graphique, mais pourquoi l'interface graphique serait-elle mutuellement exclusive avec l'interface textuelle ? perplexe

SpiceGuid il y a plus de 11 ans

Parce que je suis trop fainéant pour chercher une bijection entre les deux (à supposer qu'elle existe sweat2).

Ertaï il y a plus de 11 ans

Les deux systèmes ne peuvent pas tout simplement cohabiter ?

SpiceGuid il y a plus de 11 ans

Les deux notations ont leurs avantages :

  • avec le texte pas besoin de layout
  • avec le diagramme pas besoin de déclarer des variables et de décomposer le graphe en une liste de triplets départ-arête-arrivée

C'est donc tout bénéfice si les deux notations sont acceptés.

Même chose pour le layout , manuel ou assisté, on peut imaginer un 1ier jet manuel, puis une optimisation automatisée du positionnement des boîtes et du routage des arêtes (moins de coudes, moins de croisements), puis conclure avec une retouche manuelle pour des raisons esthétiques.

Ertaï a écrit :

"

Les deux systèmes ne peuvent pas tout simplement cohabiter ?

"

Si blaicon15 Apparemment j'avais le cerveau tellement obscurci que je t'ai pondu une réponse à la Nostradamus. Ça m'arrive d'être totalement dans la lune, tu as bien fait d'insister pouce

Ertaï il y a plus de 11 ans

En tout cas j'aime bien ce graphique qui expose clairement les capacités actuelles et futures de ton logiciel. On reste loin de la complexité de langages de modélisation plus fournis et du coup moins utilisés.

SpiceGuid il y a plus de 11 ans

Base de connaissances et fichage

La subsomption est un très bon mécanisme de reconnaissance de motifs. Toute application consistera à développer une ontologie qui spécialise cet outil abstrait pour un usage concret. On passe ainsi d'une définition algébrique abstraite à des définitions et des genres concrets.

On veut un outil d'assistance au diagnostic médical ?

Il suffit de créer une ontologie des pathologies et des parcours de soin.

Historique médical, examen, et asistance au diagnostique.

En théorie on vient de créer une application pour mieux soigner le monde.

En pratique on vient de créer un formidable outil de fichage qui pourrait bien intéresser votre assurance maladie, votre assurance vieillesse, votre employeur, vos contacts sur Meetic et j'en passe.

On veut un outil d'assistance à la sécurité publique ?

Il suffit de créer une ontologie des crimes et délits et des parcours judiciaires.

Même causes, mêmes conséquences.

En théorie on vient de créer une application de lutte contre le crime et la récidive.

En pratique on vient de créer un formidable outil de flicage qui pourrait intéresser aussi bien les démocraties de plus en plus sensibles au sentiment d'insécurité que les dictatures de plus en plus sensibles à la contestation sur les réseaux sociaux.

Moralité

Avant de commencer à développer une ontologie, posez-vous d'abord cette question : l'information stockée est-elle potentiellement liberticide ? Si la réponse est affirmative alors abandonnez l'idée tout de suite. Oubliez les bénéfices sur les autres critères (santé,sécurité,...). Les bénéfices sur ces critères ne seront acceptés que s'ils ne se font pas au détriment des libertés individuelles.

SpiceGuid il y a plus de 11 ans

À peine 1h après avoir écrit cet article je reçois une offre d'emploi dans ma boîte-à-lettres électronique, dont voici un extrait :

Citation :

"

The problem of classification is well understood and many classification
algorithms and tools exist...

This research will develop and implement these new techniques as part of a
major European Project, called ePOOLICE, where the application of them is
required for the detection and prediction of organised crime. This requires
the development of an environmental scanning system for analysing and
hypothesising scenarios of possible threats by monitoring the environment
and capturing, in real-time, relevant information present in heterogeneous
sources, including law enforcement analysis reports, governmental
information, web, social media, news, academia, non-governmental and
international organizations.
At Sheffield Hallam University your Director of Studies will be a co-author
of and Principal Investigator for the ePOOLICE project. You will be working
within the University's Centre of Excellence for Terrorism, Resilience,
Intelligence and Organised Crime research (CENTRIC). The aim of CENTRIC is
to facilitate the triangulation between the four key stakeholders in the
security domain: Citizens, Law Enforcement Agencies, Industry and Academia.

"

À croire que :

  • ou bien l'UE se contrefiche des libertés individuelles
  • ou bien l'UE a de l'argent à perdre dans des projets politiquement inapplicables, que le citoyen n'aurait même pas osé imaginer dans ses cauchemars les plus fous

Bref, croyez-le ou non : la demande existe icon_surprised

Ertaï il y a plus de 11 ans

Et bien, qu'attends-tu, go go go ! Smile

SpiceGuid il y a plus de 11 ans

Il faudrait d'abord que je m'entraîne à classifier les manquements à la charte du refuge :

• Prau deu l'ortografe

• freepost, lurking, stalking, bashing

• incitation à la pratique de jeux vidéos violents couto

• graine latente d'homophobie larvée icon_wink

• détournement de mineur et incitation à la pornographie icon_surprised

• techniques de drague éhontées (dont avatar et smileys personnalisés) Smile_lullab

• mode manuel pour les autres infractions non répertoriées perplexe

• bannissements automatisés icon_razz

Ertaï il y a plus de 11 ans

Le Refuge d'Aerie's Guard est le repaire du crime organisé. Plus spécifiquement, le crime de création et d'originalité. icon_razz

Sbirematqui il y a plus de 11 ans

Politiquement inapplicable, pour le moment, du moins je le crois. L'idée d'être fiché et étiqueté est de moins en moins politiquement incorrecte, par le biais des médias sociaux et notamment des réseaux sociaux type Facebook, cette idée de voir ses informations d'individu groupées dans un fichier informatique devient moins menaçante et plus usuelle.

Je le constate notamment dans la génération dans laquelle je suis plongée (je pense aux 10-20 ans), la sensibilisation aux dangers de l'information, de la collecte de données, du "fichage" est bien moindre en rapport à ce que j'observe chez les personnes plus âgées, moins imbibées d'Internet. Ce ne sont que mes propres observations et je ne suis pas sociologue, mais je pense que la collecte de donnée à propos des individus associée à l'utilisation de ces données à propos des individus tendra et tends déjà un peu vers la banalisation, à devenir quelque chose de "commun".

Pour m'être un peu plongé récemment dans le sujet, la cybercriminalité, l'utilisation commune de moyens de chiffrages forts par tout le monde (hashs, clés publiques/privées, des bidules 256-bits abominables...etc), rend la tâche de plus en plus difficile avec des moyens traditionnels. Actuellement, acheter en toute sécurité n'importe quelle drogue depuis chez soi et à des prix défiant toutes concurrences, c'est possible : On se télécharge un petit Routeur Onion, on se procure quelques Bitcoins, on fait ses transactions anonymes vers un vendeur anonyme sur un serveur anonyme avec une IP anonyme, en prenant soin d'avoir un petit SSL au coin, et pof, trois jours plus tard on reçoit dans sa boîte au lettre son petit colis. Même, si on se fait attraper, comme il n'y a eut aucune transaction, aucun achat, on peut nier l'existence même de l'intention de se droguer : Ce colis n'était qu'une erreur !

Il y a un besoin croissant de faire face à ces petits groupes d'individus qui avec des moyens simples permettent de grandes choses, comme les terroristes qui ont eut l'idée de détourner des avions, des internautes ont l'idée de monter leur petite affaire d’assassinats, de ventes libres de stupéfiants, d'armes à feu, de divers produits chimiques dangereux... tout ce qui rapporte de l'argent et qui n'est pas très légal. Je suis d'avis que le passage de notre société à la sphère mondialisée, à la sphère sociale, conduit et a déjà conduit à de nouvelles formes de criminalités, utilisant les nouveaux outils.

Or, comment luter contre la criminalité ? Collecter des informations, les recouper, intervenir, compléter les informations, avancer...etc Les méthodes de base ne changeront pas, c'est surtout l'échelle qui changera. Pour réussir à trouver une aiguille dans une botte de foin mille fois plus grosse, on regarde mille fois plus longtemps, ou on regarde avec mille cerveaux. Réussir à avancer sur la mise au point d'un système automatisé de collecte de données, de fichage, de recoupement (de reconnaissance de motif), ce sont devenu des choses d'avenir pour ce qui est de la criminalité, car le temps où on cassait les codes, où on déchiffrait les disques durs, où on écoutait les lignes téléphoniques... c'est finit. Demain, on aura besoin de "gros engins".

C'est liberticide, oui, mais je crois que la société va l'oublier petit à petit, et que le jour où il y aura une action criminelle d'envergure qui marquera l'opinion, avec un jeu politique, la mise en place d'une telle base de donnée sera du domaine du possible, politiquement acceptable. Or, il faut pouvoir l'implémenter au bon moment et avoir des résultats rapides pour calmer le public sur ses angoisses de liberté et d'intimité, et donc avoir déjà mené de longues recherches à ce propos pour pouvoir catapulter le projet sous les projecteurs au bon moment.

Enfin, tout cela est ma vision de la chose, je trouve que l'Union Européenne fait bien son travail en travaillant sur ce genre de projets, même si ce n'est pas très moral.

SpiceGuid il y a plus de 11 ans

L'argument selon lequel nous vivons dans un monde fait de menaces qu'Iron-Man ne pourra pas toujours anticiper et c'est pourquoi il doit fournir son armure au gouvernement ne me convainc pas que je doive par avance renoncer à mes libertés.

Alors en effet je suis de la génération où l'on se "cache derrière un pseudo" pour commettre ses cyber-délits en toute impunité icon_wink

Plutôt que de continuer à disserter ici sur les (dé-)mérites de ce projet européen qui ne concerne pas ERic, j'ai préféré faire directement un signalement à un lobby des libertés informatiques .

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Le modèle de graphe d'ERic 0.3

Par un heureux miracle il est en fait déjà implémenté biggrinking

Sans même que j'en sois conscient. En fait ERic 0.2 est une sorte d'assembleur pour les modèles de graphe.

L'exemple de la création du spectacle de clown :

[Dream*d] Experiencer [Person Eva*v]
[ProspectFor*p] Agent v
d Theme [Event*e]
        [Show*s] Performer [Clown*w]
        s In e
        w In e
p Theme [Asset*a]
        [Capital*c] Financing s 
        [Man*m] Acting w
        c In a
        m In a.

Remarquez la relation a In  b qui indique qu'une boîte a est contenue dans une autre boîte b .

J'espère bien faire d'autres découvertes du même acabit qui démultiplient autant l'expressivité d'ERic Smile

Les perspectives commerciales

Comme je l'ai déjà dit c'est à moi de les créer. Pour ce faire il faut que je réécrive toute la documentation du point de vue du client. Quels problèmes ERic est-il capable de résoudre ? Quelles solutions est-il capable d'apporter ? Il faut que j'arrête de modéliser du langage naturel et que je montre comment ERic peut modéliser du business model , de l'analyse SWOT ou de l' organisationnel . En un mot transformer mon gadget algorithmique en un produit consommable par les entreprises / administrations.

Ma nouvelle documentation devra introduire petit à petit toutes les subtilités de la modélisation Entités/Relations sans jamais s'éloigner des préoccupations du client. Tout ceci afin de convaincre le client qu'ERic est bien une technologie de rupture .

SpiceGuid il y a plus de 11 ans

Je viens de refabriquer une nouvelle ontologie à partir de zéro.

Avec plus d'expérience, peu de vocabulaire et la nouvelle relation In je m'amuse à créer des graphes délirants Smile

Ertaï il y a plus de 11 ans

Tant que tu t'amuses, je crois que c'est l'essentiel DoubleAccentCirconflexe

SpiceGuid il y a plus de 11 ans

Ce n'est même pas moi qui ai inventé cette relation In .

Je l'ai découverte dans une thèse datant de 2001 mais qui n'a été mise en ligne qu'en octobre 2009.

Cette relation In est encore plus puissante que le modèle que j'avais initialement proposé. Par exemple rien n'empêche qu'une boîte appartienne à deux boîtes différentes ou plus. Ça permet de modéliser le recouvrement partiel de plusieurs contextes.

Et pourtant dieu sait combien de fois on m'a affirmé que "personne ne lit les thèses universitaires" icon_razz

SpiceGuid il y a plus de 11 ans

Si j'en crois le tableau de cet article ERic pourrait être adapté à la Business Intelligence décisionnelle. Un débouché de plus à creuser DoubleAccentCirconflexe

SpiceGuid il y a plus de 11 ans

On pourrait croire que je passe mes journées à me branler. Mais pas uniquement.

Là j'ai du faire des efforts pour trouver des diagrammes réalistes "vendable" comme du Business Modelling.

À priori le modèle standardisé le plus connu qui ressemble le plus à mes boîtes de graphes c'est le Statechart de David Harel . Cette notation fait depuis toujours partie du standard UML (c'est pas parce que je n'utilise pas la POO que je ne connais pas vos petits fétiches icon_wink ). Bon, en pratique il semble que personne n'utilise vraiment ces modèles d'états hiérarchisés. Du coup on ne trouve que des exemples scolaires, surtout des modèles d'états de montres, de calculatrices, de lecteurs MP3. À croire que les programmeurs POO sont tellement désabusés qu'ils n'adhèrent même pas à leur principes icon_razz

Vous seriez PDG, ça vous intéresserait le cycle des états d'une montre/alarme digitale ?

Le problème si l'on ne s'adresse pas à des programmeurs c'est qu'on s'adresse à des personnes habituées à des schémas entités/relations beaucoup plus basiques, donc sans imbrication. Ces personnes font du Business Modelling.

Exemple classique de Business Modelling à l'aide d'entités/relations : comment Carrefour vous vend des cartes de vœux personnalisées. Cliquez pour agrandir.

Ça ne fait toujours pas mon affaire. Ce qu'il me faudrait c'est un exemple similaire à la souris verte qui courrait dans l'herbe , mais avec des graphes imbriqués. Et surtout qui me fasse passer du niveau école maternelle au niveau école de commerce. Et j'ai trouvé quelque chose qui y ressemble beaucoup : BPMN Business Process Model Notation, un standard de l' OMG .

Cliquez pour agrandir. C'est plus sérieux non ?

Alors du coup on est en droit de se poser la question : finalement, il existe déjà des notations standard (certes plus spécifiques) pour modéliser la même chose qu'ERic. Est-ce que je ne suis pas en train de réinventer la roue ? Hé bien je pense que non. Car ces standards ne servent qu'à la documentation/communication.

Aucun de ces standards n'est équipé d'un mécanisme de subsomption comme l'est ERic.

Grâce à la subsomption ERic est capable :

  • d'interroger le modèle comme une base de données
  • d'identifier la présence ou l'absence de n'importe quel business-pattern, ceci afin d'encourager le business-reengineering par l'adoption de "bonnes pratiques"

EDIT: bien que pas mauvais, l'exemple ci-dessus n'illustre pas encore parfaitement toutes les capacités d'ERic. ERic accepte que les flèches traversent les boîtes, qu'elles y entrent ou qu'elles en sortent. Ce qui n'est pas le cas dans le schéma ci-dessus.

Sbirematqui il y a plus de 11 ans

Au risque de me faire taper (encore) avec des idées déplacés, mais il me semble que Eric apporte quelque chose aux notations, quelque chose de plus concret pour un businessman...

Je m'explique, ce genre de schémas, pourquoi ils existent ? Pour permettre de structurer, structurer les idées, les mettre à plat, et surtout : Mettre en évidence les relations entre ces idées.

Pour moi, l'utilité qu'on en a dans l'entreprise est celle de la performance, de l'efficacité, lorsqu'il s'agit de faire fonctionner beaucoup de choses en même temps, ce genre de schémas est un gain de temps précieux, et surtout un miracle quand il s'agit de garder les idées claires.

La limite de ces modèles est leur taille, leur complexité, plus ils deviennent gros, plus ils perdent leur utilité. Pour moi, Eric pourrait surmonter ce problème, en amenant une dimension dynamique, la possibilité d'interagir avec des modèles de grande à très grande taille, la possibilité d'imbriquer facilement des gros modèles dans de plus grands modèles, de zoomer, d"zoomer, de faire obstruction de certaines parties du schéma, de le triturer dans tous les sens, le formalisme apporté par Eric pourrait être le noyau d'un outil puissant.

Mais dans cette voie, c'est bien la forme que prendrait l'outil qui sera déterminante, car c'est avec cette forme qu'interagira l'utilisateur final.

J'ai dit le mot qui tue : utilisateur. icon_razz

SpiceGuid il y a plus de 11 ans

Tu m'enlèves les mots de la bouche Smile

J'ai bien conscience que la notation texte est indéchiffrable pour un manageur, si elle ne l'est pas déjà pour un programmeur. Donc tout devrait reposer sur l'ergonomie graphique, la facilité à digérer et à interagir avec des schémas imbriqués à grande échelle. Par exemple à l'échelle d'une multinationale ou d'une administration comme la commission européenne. J'ai lu des papiers de recherche sur la modélisation à grande échelle (par exemple sur le projet Ariane V). À cette échelle la notion de point de vue est primordiale. Le modèle doit être global, il doit tout contenir. Paradoxalement il doit aussi savoir rester local, adopter le cœur de métier de l'utilisateur et retirer toute l'information qui n'a aucun impact sur son travail.

Bon, ceci dit, j'ai déjà un train de retard, les caricaturistes m'ont devancé, les salauds sourire3

Le business modeleur, l'idiot du village global ?

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Mes acquis

  • J'ai une confirmation que le modèle de graphe d'ERic 0.3 est viable et tout aussi utilisable que celui d'ERic 0.2, tout en étant beaucoup plus expressif.
  • J'ai une syntaxe concrète pour exprimer le modèle de graphe d'ERic 0.3

Par contre au niveau algorithmique tout reste à inventer, à ma connaissance ça n'a jamais été fait auparavant.

Exemples de syntaxe concrète

L'exemple de la création du spectacle de clown :

[Dream*d] Experiencer [Person Eva*e]
[ProspectFor*p] Agent e
d Theme [Event
        [Show*s] Performer [Clown*c]]
p Theme [Asset
        [Capital] Financing s 
        [Man] Acting c].

Les 3 variantes de Tom croyant qu'Éva veut épouser un marin :

[Believe*b] Experiencer [Person Tom]
b Theme [Proposition 
        [Want*w] Theme
        [Situation [Marry*m] Agent ?e]]
w Experiencer [Person Eva*e]
m Theme [Sailor].


[Believe*b] Experiencer [Person Tom]
b Theme [Proposition 
        [Want*w] Theme
        [Situation [Marry*m] Agent ?e m Theme [Sailor]]]
w Experiencer [Person Eva*e].


[Believe*b] Experiencer [Person Tom]
b Theme [Proposition 
        [Want*w] Theme
        [Situation [Marry*m] Agent ?e]
        m Theme [Sailor]]
w Experiencer [Person Eva*e].

Cependant la plupart des spécialistes du domaine s'accordent à dire que l'utilisateur final préfère une représentation graphique plutôt qu'une représentation textuelle.

 
Or cela fait une différence énorme pour le programmeur :

  • Avec une représentation textuelle il suffit d'afficher le résultat-texte dans un GtkSourceView2 , c'est presque aussi facile que dans une console.
  • Avec une représentation graphique il faut convertir le résultat-graphe en un diagramme affichable à l'écran. À ma connaissance ce graph-drawing n'a jamais été réalisé pour le modèle de graphe d'ERic 0.3

Les perspectives commerciales

Elles sont minces. De l'avis général le marché n'existe pas, il faut le créer à force de techno-évangélisme. De plus les entreprises ont une fâcheuse tendance à privilégier les standards industriels, même nouveaux, comme OWL-RDF ou BPEL . Elles restent réticentes à la recherche universitaire et encore plus à la recherche privée.

Pour résumer

Je rentrerais dans une phase de développement où je sortirais du fun tout en restant très éloigné de la viabilité commerciale. Ça ne m'enchante pas. Ça serait davantage soutenable si j'avais une subvention ou du sponsor. J'aimerais minimiser le temps de développement contraint sans perspectives de rémunération. Le chemin le plus court c'est peut être un IDE simpliste pour ERic 0.2, ça resterait assez sympathique tout en me procurant un minimum de matériel de démonstration.

Sbirematqui il y a plus de 11 ans

Tu parles de perspectives commerciales, de graphes, de relations, est-ce que Eric peut aider à la gestion de problèmes proches de ceux dans lesquels les réseaux bayesiens sont impliqués ? Est-ce qu'un possible rapprochement d'Éric vers les réseaux bayesiens serait intéressant ?

Parce que pour ceux-ci que je nomme, les perspectives scientifiques et commerciales vont en élargissant, et je trouve que la représentation apportée par Eric y serait peut-être pertinente.

SpiceGuid il y a plus de 11 ans

Pour ce qui est des perspectives scientifiques et commerciales qui vont en élargissant je dirais qu'on nous a déjà fait le coup avec les fractales, les supra-conducteurs et les réseaux de neurones.

Comme je suis un psychorigide qui déteste n'aime pas les statistiques, je ne m'investirai pas une seule seconde dans les réseaux bayesiens. Disons que c'est une idée que je vais considérer avec un dédain mêlé d'un silence plein de bienveillance.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Raisonnement en langage naturel

On m'a fait plusieurs fois la remarque : pourquoi ne pas modifier ERic pour lui permettre de raisonner en langage naturel ? À chaque fois j'ai répondu que c'était hors de question, mais un comme un autocrate, sans argumenter davantage ma décision. Cette fois je suis décidé à vous convaincre de la vanité de ce genre de requête. Par l'exemple. Plutôt que par le mépris.

Langage naturel et raisonnement

D'où viendrait cette fascination pour le mariage du langage naturel et du raisonnement ?

D'après moi elle prendrait racine dans le fameux test de Turing.

Ce fameux test de Turing qui a été démythifié lors du Turing 1990 Colloquium

L'exemple

Tout ce qui est rare est cher.
Un Rubik's cube bon marché est rare.
Donc un Rubik's cube bon marché est cher.

Pour les détails techniques je vous renvoie vers ma contribution sur DVP.com

On pourrait m'objecter plein de choses.

Par exemple que l'outil en démonstration a été choisi à dessein afin de discréditer la technique utilisée.

À cette objection je réponds :

  • Le but n'est pas de discréditer tel ou tel outil ou institution. Le but est de vous montrer ce qui se fait de mieux et pourquoi je ne vais pas le copier.
  • L'outil en démonstration a été élaboré dans une très grande école à la renommée mondiale. Y ont enseigné notamment Albert Einstein et Niklaus Wirth. Et si je n'en cite que deux c'est parce que citer les autres serait tout simplement trop long.

On pourrait aussi m'objecter que, bon marché ou pas, les Rubik's cubes sont toujours trop chers. C'est une opinion que je respecte et à laquelle j'adhère totalement. Cependant je pense qu'un outil doit obéir à la loi du moindre étonnement , ce qui n'est clairement pas le cas ici.

On pourrait encore m'objecter qu'ERic n'est nullement à l'abri d'une quelconque incohérence / absurdité / stupidité. Certes. À cela je réponds qu'un langage artificiel est un avertisseur efficace : vous posez une question artificielle à laquelle vous obtenez une réponse toute aussi artificielle. En cela il n'y a pas de mauvaise surprise.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Moi, une relation avec toi, dans tes rêves !

Dans la documentation d'ERic 0.2 j'ai commis 2 erreurs, à savoir dire :

  • qu'un graphe entités/relations est proche du langage naturel
  • qu'un graphe entités/relations permet certains raisonnements sommaires

Deux affirmations à cause desquelles j'ai dû rembarrer un utilisateur potentiel qui commençait à s'enthousiasmer pour mon projet. Il s'en est allé poursuivre ailleurs sa quête chimérique d'une Imbécillité Artificielle .

Avec ERic 0.3 je vais rectifier le tir :

  • un diagramme entités/relations est une machine autopoïétique à interprétation endoporeutique
  • un diagramme entités/relations permet de raisonner gravement pour la santé

Selon mes estimations cet étalage de volapük épistémologique devrait suffire à éloigner la plupart des importuns.

Alors je devine votre objection : dans entités/ relations il y a relations .

Point d'entité sans une relation.

Que nenni dis-je.

Preuve à l'appui. Grâce aux hyper-nœuds Smile

evening-spider-hope
Araignée du soir, espoir

 

La nuit tous les chats sont gris

Le paragraphe précédent était initialement destiné à introduire, avec un certain humour, la problématique de la quantification universelle. Malheureusement des incertitudes pèsent encore qui retardent ma rédaction sur ce sujet. D'autant plus que depuis ma désillusion sur les Rubik's cubes j'ai tendance à devenir plus précautionneux.

Il fait nuit. Félix est un chat. Quelle est la couleur de Félix ?

Griiiiiiiis.

non c'est un raisonnement trop subtil pour ERic 0.3, il ne sera pas capable de répondre.

En fait il ne sera même pas possible d'affirmer que la nuit tous les chats sont gris.

Les détails gores de mon investigation

Par contre il est bien heureusement possible d'affirmer que tous les chats sont des félins.

Et d'obtenir des conclusions en conséquence.

Dans ce cas on peut parce que c'est inconditionnel (toujours vrai).

SpiceGuid il y a plus de 11 ans

Les premières lignes de code

Pas fâché d'abandonner Microsoft-Paint sweat2

module type Diagram
=
sig
   type diagram
   type concept
   type relation
   type entity =
      | EntityC of concept
      | EntityI of concept * int
      | EntityS of concept * string
      | EntityF of concept * float
      | EntityD of concept * diagram
   val empty : diagram
   val extend : diagram -> entity -> diagram
   val connect : diagram -> relation -> diagram
   type pattern = diagram 
   val select : diagram -> pattern -> diagram list 
end

Alors tout est là, on a les diagrammes, on construit un diagramme à partir du diagramme vide ( empty ), en ajoutant un par un les entités (avec extend ) et les relations (avec connect ). On peut envelopper un diagramme dans une hyper-entité (grâce à EntityD ).

On peut interroger un diagramme (avec select ).

Ça compile bien.

fam_page_white_ocaml

Encore une victoire éclair du langage chameau Smile

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Après on peut aussi faire de vrais programmes qui font vraiment quelque chose icon_razz

Mais c'est plus difficile blaicon15

SpiceGuid il y a plus de 11 ans

Il faut affronter la réalité en face.

Cela fait 1 semaine que je tente vainement d'entrer dans une dynamique de productivité. Entre fatigue psychologique / épisode(s) dépressif / problème difficile, si je laisse filer je risque de perdre des mois à rêvasser que je "conçois" tout en ne produisant rien du tout.

Dans l'immédiat je vais jouer mes atouts :

fam_accept

j'ai une licence compatible OSI

fam_accept

j'ai une base de code, petite et de grande qualité

fam_accept

j'ai une assez bonne documentation (en français)

Par conséquent ERic 0.3 ferait un excellent projet de fin d'année pour un étudiant motivé.

Évidemment je vais encore faire choux-blanc mais qui ne tente rien n'a rien icon_wink

Le texte de mon appel à contribution .

Ertaï il y a plus de 11 ans

Je te souhaite de trouver un sympathique collaborateur, et vu le niveau d'abstraction, l'université est sans doute le seul endroit où tu pourras trouver un tel collaborateur Smile

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

La méthode de développement zéro défaut

ERic a été conçu selon une méthode de développement qui garanti le zéro défaut.
Cet article a pour but de vulgariser les cinq points clés de cette méthode.
Afin qu'elle se démocratise et que vous puissiez en bénéficier pour vos propres développements.

Je ne comprends rien à la source.

C'est normal. La source d'ERic est en OCaml. Seuls des chameaux expérimentés élevés dans un profond désert sentimental peuvent interpréter l'odeur de la pisse de chameau. Les autres seront victimes de mirages et autres hallucinations. Ils finiront par se perdre dans une étendue sableuse interminable. Ils agoniseront dans d'atroces souffrances, sucés par d'ignobles insectes, traqués par les serpents et les scorpions.

Où est le Bug-Tracker ?

La mauvaise nouvelle c'est qu'il n'y a pas de Bug-Tracker.
La bonne nouvelle c'est que, comme il y a zéro défaut, il n'y a pas besoin de Bug-Tracker.

J'ai trouvé un bug, que dois-je faire ?

Votre cerveau de primate a cru déceler un bug dans la dernière version d'ERic. Ou même dans une ancienne version. Peu importe. Ce qui importe c'est de vous rappeler que vous n'êtes qu'un primate. La réponse d'ERic est difficilement interprétable par votre cerveau de primate. Ou bien ERic n'a pas donné de réponse. Parce que vous lui avez posé une question de primate. ERic est un peu hautain, il n'aime pas trop dialoguer avec de simples primates. Les deux paragraphes suivants traitent ces deux cas séparément.

Je ne comprends pas la réponse d'ERic.

Soumettez vos données, votre question, et la réponse qui vous a été faite. Un chamelier se chargera de tenter d'éclairer votre cerveau primitif.

ERic ne me répond pas.

Soumettez vos données et votre question. Un chamelier se chargera de les reformuler dans un langage plus évolué.

SpiceGuid il y a plus de 11 ans

Je devrais sans doute mettre les choses au clair icon_wink

Avant que Cathaseris ne me tombe dessus à bras raccourcis, à juste titre tomate

non je n'habite pas la planète des singes 

• Le seul secret du zéro défaut c'est le zéro utilisateur

• Une seule personne qualifiée (DEA informatique) a un peu testé ERic. Son verdict :

nlegriel a écrit :

"

Je n'aime pas ta notation.

"

Alors pourquoi ce billet provocateur ?

fam_accept

Les plus avertis d'entre-vous l'auront compris : c'est une parodie de discours méthodologiste.

fam_accept

Il y a plein de gens qui veulent vous vendre des recettes miracles pour éradiquer les bugs.

fam_accept

Ils n'ont qu'un seul but : détourner votre attention pour vous faire renier votre expérience.

Ne reniez jamais votre expérience, c'est votre bien le plus précieux, c'est votre valeur-ajoutée sur le marché du travail. Sans votre expérience vous ne seriez rien. Rien d'autre qu'un pantin dans les mains d'un gourou méthodologiste.

Sbirematqui il y a plus de 11 ans

Amen. Smile

Merci pour le billet, garde couraj pour la suite ! On est derrière toi ! Smile

SpiceGuid il y a plus de 11 ans

ERic 0⁴ hyper-symétrique

Des fois je m'ennuie dans l'après midi. Normalement sur France 5 il y a deux documentaires scientifiques dans l'après midi. Un avec des dinosaures en images de synthèse qui chassent d'autres dinosaures en images de synthèse. Celui-là je ne le regarde pas. Le second est un documentaire sur le cosmos. J'en regarde un de temps en temps. On y apprend que chaque particule possède son antiparticule symétrique. Et pour aller plus loin dans la cosmologie on nous parle même de super-symétrie . C'est fascinant d'élégance quand on sait que tout ça est complétement abstrait et entièrement basé sur la théorie des catégories (voir par exemple Introducing categories to the practicing physicist ).

À mon tour maintenant, car après tout ERic est lui-aussi basé sur la théorie des catégories .
J'ai déjà les boîtes carrées et les hyper-boîtes carrées. J'ai aussi les boîtes rondes.
Attendez une minute ! Tout cela manque de symétrie !
On va ajouter les hyper-boîtes rondes ! Et voilà, on a une structure hyper-symétrique DoubleAccentCirconflexe  

Qu'est-ce qu'une hyper-boîte ronde ?

C'est une boîte ronde qui contient un graphe Entité/Relation.
Et à quoi ça sert ? À construire des relations plus sophistiquées. Que l'on ne pourrait pas exprimer rien qu'à l'aide du vocabulaire des relations de base. Bien entendu on aurait des hyper-liens qui pourraient entrer et sortir des hyper-boîtes rondes et des hyper-boîtes carrées à des niveaux d'imbrication hyper-arbitraires.
Et quel serait l'homomorphisme induit ? Le même que celui d'ERic 0.3, il suffirait, dans la définition, de remplacer carré par rond, et rond par carré. On resterait en terrain connu DoubleAccentCirconflexe

C'est pas un peu abstrait ?

fam_page_white_php

Il n'y a pas si longtemps un Programmeur Hautement Performant m'a soufflé une Phrase Hyper Pénétrante. Et d'un coup d'un seul, ce qui n'était qu'un gadget largement hypothétique est devenu une nécessité absolue. Alors donnez moi une raison, une seule, un exemple, un seul, et je passe dès aujourd'hui au modèle hyper-symétrique. Au boulot les Ertaï , les Luminox et les Sbirematqui , je compte sur vous !

SpiceGuid il y a plus de 11 ans

Le juge a prononcé la dissolution du mariage d'Alice et Bob par consentement mutuel.
fam_bug

Désolé pour la faute, en anglais on écrit Attribut e au lieu de Attribut.

fam_comment

Dans cet exemple il y a un lien entrant dans une hyper-boîte ronde mais pas de lien sortant. Cependant à quoi bon chercher un exemple ? Du moment qu'on peut sortir d'une hyper-boîte carrée pourquoi pas d'une hyper-boîte ronde ? L'interdire serait d'ailleurs plus compliqué que de l'autoriser.

fam_page_white_ocaml

Je saute la version 0.3, je vais passer directement à l'implémentation de ERic 0⁴, la version hyper-symétrique DoubleAccentCirconflexe

Sbirematqui il y a plus de 11 ans

Bon, si il faut chercher...

Le juge a prononcé la dissolution du mariage d'Alice et Bob par consentement mutuel, ce qui cause qu'il y a eu partage des biens, ce qui fait qu'Alice ne peut plus dépenser aux frais de Bob.

Bref, je n'ai pas trouvé mieux dès potron-minet. sweat2

SpiceGuid il y a plus de 11 ans

Pauvre Alice, espérons qu'elle a un amant fortuné sourire3

Il y a plus simple pour créer des liens sortants : au lieu d'un "consentement mutuel" je mettrais 2 consentements, le consentement d'Alice et le consentement de Bob. Ça ferait un lien sortant vers Alice et un lien sortant vers Bob.

Mon problème n'est pas là. Mon problème du moment c'est qu'en fait je pourrais exprimer la même chose avec une boîte carrée "Mariage" au lieu d'une boîte ronde "SpouseOf". Et dans ce cas il n'y aurait même plus besoin d'hyper-boîte ronde, une hyper-boîte carrée ferait l'affaire blaicon15

Je ne peux pas le prouver mais j'ai l'intuition que l'hyper-symétrie est redondante. Cependant :

  • je me méfie de mes intuitions
  • parfois la redondance est un défaut, parfois la redondance est une qualité, je deviens indécis sur l'apport de hyper-symétrie
Le mariage d'Alice et Bob, à l'aide d'une boîte carrée.

Pour l'anecdote, d'après ce que j'ai entendu dire, avec le mariage homosexuel les mariés s'appelleront marié(e) n°1 et marié(e) n°2.

SpiceGuid il y a plus de 11 ans

Je le dit ouvertement, si ça n'était pas assez explicite, ERic n'a qu'un lointain rapport avec un langage naturel. Le but est davantage le développement d'un modèle pour le monde et la conscience. Un langage naturel au contraire n'est pas un modèle mais un moyen de communication, pas du tout universel, développé empiriquement et en évolution constante. 

En y réfléchissant bien (la nuit) l'hyper-symétrie n'est envisageable qu'avec un modèle de graphe biparti ( anglais ).

Par conséquent, et contrairement aux apparences, l'hyper-symétrie n'est pas du tout dans la lignée d'ERic 0.2 et 0.3, ça n'a plus rien à voir autant en terme de structure qu'en terme d'homomorphisme.

Du coup j'abandonne cette piste qui aurait pu être enrichissante si au départ j'avais fait le choix des graphes bipartis .

Citation :

"

ERic 0⁴ hyper-symmetry is a dead end

"

Il n'empêche que ça valait le coup de consacrer 2-3 jours à étudier cette option. Histoire de ne pas avoir à le regretter plus tard.

TSG il y a plus de 11 ans

Et sinon, qui veut se coller sur le développement du Projet RAMzy?

Ertaï il y a plus de 11 ans

Je me disais aussi "Tiens, TSG qui poste sur un sujet hautement théorique ?" icon_rolleyes

SpiceGuid il y a plus de 11 ans

icon_lol Bien dit Très Savant Gobelin

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

À la recherche de l'homomorphisme induit

Maintenant que je tiens une structure suffisamment expressive il me suffit de construire l' homomorphisme induit pour finaliser la construction de ma catégorie

C'est exactement la même démarche que pour ERic 0.2 où :

ma structure était le digraphe étiqueté

mon homomorphisme était l' homomorphisme de graphes

ma catégorie était la catégorie où les objets étaient des graphes et où les flèches étaient des homomorphismes de graphes

C'est encore tout pareil cette fois-ci. En plus compliqué.

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Je me doute bien que certains membres d'AG doivent se questionner sur l'opportunité de poster ici ce genre de considérations limite ésotériques.

La réponse est simple :

• normalement je devrais le faire sur DVP.com où je suis rédacteur

• sur DVP.com, éditer un message est un calvaire, publier un article est un enfer, et quand bien même je n'ai pas d'avantage de lecteurs attentifs que j'en ai ici

j'ai un blog sur DVP.com , on me l'a pourri en le passant sous wordpress (disparition de l'en-tête, des paragraphes, des images, des liens, des styles)

• Ertaï, au contraire, a mis en place un système de blog, simple, rapide, efficace, pérenne. Je l'en remercie. Et j'en profite.

Ertaï il y a plus de 11 ans

Et bien pour une fois que quelqu'un dit du bien d'eZ Publish qui fournit la structure des blogs et l'éditeur de texte riche qui fournit le style, j'apprécie grandement Smile

SpiceGuid il y a plus de 11 ans

eZ Publish c'est le bien DoubleAccentCirconflexe

Sinon les définitions de Wikipedia.org sont systématiquement écrites comme s'il n'y avait absolument aucune application informatique. Il faut lire entre les lignes. À force d'être généraliste ça en devient pathologiquement abstrait. Des fois c'est à peine si je comprends de quoi ça parle blaicon15

SpiceGuid il y a plus de 11 ans

L' homomorphisme induit on le construit à la main, en imposant les cas de base (image d'une entité, image d'une relation, image d'une hyper-entité,...).

Du coup il y a une certaine liberté dans le choix de l' homomorphisme .

  • Certains ont une tendance au mutisme. Inconvénient : on risque de passer à côté d'une piste de recherche ou d'une information de contexte potentiellement intéressante.
  • Certains ont une tendance au bavardage. Inconvénient : s'il y a trop de bavardage alors l'information utile risque d'être noyée dans le bruit de fond.

ERic 0.2 utilise un homomorphisme particulièrement "autiste" :

  • N'étaient données que les informations strictement demandées.
  • N'était donnée aucune information contextuelle. Toute information était considérée comme vraie quelque soit son environnement. L'environnement était considéré comme une extension (superflue) de l'information, pas comme une modalité (nécessaire).

Sbirematqui il y a plus de 11 ans

On l'aime EzPublishhh. : D

Pour ma part, je sors d'un module sur l'algèbre générale, et je comprends (enfin) le sens de tous les termes marrants que tu utilise depuis le début du fil... sweat2
Je suis bien avancé, n'ayant vu que le côté abstrait et théorique, j'arrive à peine à me faire une idée de ce que ces termes foutent là. Mais bon, je ne soigne. DoubleAccentCirconflexe

En tous cas, je commence à saisir un peu mieux le point d'ÉRic, je me rends mieux compte de ce qui a dû être fournit, et même si je reste encore un peu dubitatif vis-à-vis de beaucoup de choses, je ne peux que te dire : Bravo ! clap

Je renouvelle mes encouragements pour ERic !

SpiceGuid il y a plus de 11 ans

Moi aussi je suis dubitatif.

J'y crois à peine qu'au bout du compte toute cette cogitation pseudo-savante va déboucher sur un programme exécutable. D'ailleurs j'angoisse à mesure qu'approche le moment de commencer à coder. C'est loin d'être gagné d'avance.

  • je remercies Ertaï pour la lecture attentive de tout mon charabia ainsi que pour l'exemple qui m'a fait gagner un temps inestimable
  • je te remercies pour tes encouragements ainsi que pour les efforts qui t'avancent si peu
  • je remercies Aka qui a suivi un moment avant de crouler sous ses obligations de chroniqueur manga du refuge

SpiceGuid il y a plus de 11 ans

Si l'on comptait en minutes alors cela ferait déjà une éternité que j'ai pseudo-formalisé un homomorphisme induit pour ERic 0.3

Quand j'essaye de progresser plus loin dans la formalisation j'arrive presque au détail d'implémentation, et là je préfère faire confiance à OCaml plutôt qu'à mon intuition. Du coup il n'y a plus qu'à implémenter ERic 0.3 avant de passer à ERic 0.4 qui ajoutera la multiple hyperonymie ( plusieurs super-concepts et plusieurs super-relations au lieu d'un(e) seul(e) ).

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Liens trans-hyper-nœuds

Cela fait 3 jours que, à part jouer à l'excellent Scrambled Nations je me pose la question suivante :

Dans mes 3 schémas d'exemple les liens qui traversent le cadre d'un hyper-nœud le font tous dans le sens du nœud courant vers le nœud parent.

Je me creuse la tête pour trouver un contre-exemple. Un graphe qui nécessiterait un lien qui traverse le cadre d'un hyper-nœud dans le sens du nœud courant vers un nœud fils.

Comme je ne trouve pas ce contre-exemple je ne sais pas si mon modèle est complet (tous les liens utiles qui traversent le font toujours dans le même sens) ou extensible (des liens qui traverseraient  dans le même sens contraire seraient également utiles).

D'où blocage. Un linguiste (avec une spécialisation en graphes conceptuels) pourrait me débloquer mais je n'en connais pas.

En l'absence de réponse définitive je vais devoir prendre un risque :

Parier que les liens sont uni-sens (quitte à me tromper).

Autoriser les liens dans les deux sens (quitte à compliquer encore plus la notion d'homomorphisme de structure).

Ne pas trancher prématurément (quitte à perdre du temps).

SpiceGuid il y a plus de 11 ans

Mon expérience des contextes (informatiques) m'incite à penser que c'est toujours le contexte englobé qui dépend du contexte englobant et jamais l'inverse.

D'autre part les choses sont bien assez compliquées comme elles sont et je n'ai pas davantage de temps à perdre.

Mon seul soucis c'est qu'au cours du développement d'autres questions pourraient surgir et m'amener à multiplier les choix arbitraires de conception. Avec le risque d'un résultat final sous-optimal qui pourrait remettre en question tout le travail. Pour quasiment me ramener où j'en suis, à la version 0.2

Ertaï il y a plus de 11 ans

De ce que j'ai compris de tes trois exemples, c'est que les liens qui traversent le cadre le font tous pour désigner un concept qui existe en-dehors de ce cadre. Une sorte de référence à un concept indépendant du cadre.

L'inverse, ce serait un concept qui n'existe que dans un cadre et qui y est fait référence par quelque chose en-dehors du cadre.

Est-ce que cet exemple conviendrait : 

 Tom parle du clown dont a rêvé Eva

Le clown n'existe que dans le cadre du rêve d'Eva, mais pourtant Tom qui est extérieur au rêve peut y faire référence.

SpiceGuid il y a plus de 11 ans

Oh mon dieu ! C'est pas croyable ! Je n'en reviens pas. Tu es un lecteur très attentif.

J'ai changé ton exemple en "Eva parle du clown du spectacle de ses rêves".

Eva speaks about the clown of her dream show

En tout cas toutes mes félicitations pouce

Honnêtement, je n'osais même pas imaginer que quelqu'un me mettrait sur la bonne voie.

En plus j'étais carrément parti pour faire le mauvais choix. Tu viens ni plus ni moins de sauver mon projet sweat2

En un seul message de toi je viens de rentabiliser tous mes efforts investis dans cette série d'articles de vulgarisation Smile

Ertaï il y a plus de 11 ans

Je ne pensais pas que mon petit message aurait une telle portée sweat2

Je suis très content d'avoir pu t'aiguiller alors que jusqu'ici je n'avais une compréhension très vague de ton projet Smile

SpiceGuid il y a plus de 11 ans

Je vais te donner une seconde occasion d'être très content de ta trouvaille.

Après une semaine de recul je peux maintenant te l'avouer : l'exemple "Éva parle du clown du spectacle de ses rêves" n'était qu'un exemple de transition. Pour que tu reconnaisses l'esprit de ta participation. Et aussi pour ne pas t'embrouiller avec de nouveaux "gadgets" de mon invention.

L'exemple auquel je pensais vraiment c'était : "Éva monte un spectacle de clown", mais un spectacle vu comme un business-plan. Donc Éva doit trouver des fonds pour financer son spectacle, et un interprète pour jouer le clown.

Éva monte un spectacle de clown

Au niveau de la nouvelle gadgetry , il y a 2 choses : 

Une relation peut sortir d'un cadre-contexte puis entrer dans un autre cadre-contexte. Plus généralement, une relation sort de zéro ou plusieurs cadre-contexte(s) puis entre dans zéro ou plusieurs autre(s) cadre-contexte(s).

Un hyper-nœud comme Asset est également un conteneur pour un ou plusieurs (morceaux de) graphes. L'hyper-nœud joue le rôle des collections dans les langages de programmation. Ici l'hyper-nœud Asset collectionne [Capital] et [Man] .

Ertaï il y a plus de 11 ans

Pourquoi "Acting" et "Financing" ne sont pas des verbes comme "Dream" ou "ProspectFor" ?

SpiceGuid il y a plus de 11 ans

Il n'y a pas de raison profonde. C'est totalement arbitraire. Ce n'est que du vocabulaire.

[Capital] (Finance) [Show] et  [Man] (Act) [Clown] conviendraient aussi bien.

SpiceGuid il y a plus de 11 ans

Ma réponse est insatisfaisante et incomplète.

Ta question est une sorte de variante de la question de Aka "pourquoi le verbe est dans une boîte-ronde et pas dans une boîte-carrée (comme on me l'a appris) ?". Elle mérite davantage de commentaire.

Commençons par l'anglais.
Est-ce que dream est un verbe ?
Est-ce que dream est un nom commun ?
À voir. Au cas par cas.

Maintenant Entités/Relations.
Ce qui compte vraiment c'est qu'une boîte-ronde (Relation) relie toujours deux boîtes-carrées (Entités).
À part ça on met le mot que l'on veut à l'intérieur pourvu que ce mot soit présent dans la hiérarchie des relations (la relation Acting est à la ligne 113).

Y-a-t-il une relation univoque anglais ↔ ERic ?
Il n'y en a certainement pas. L'anglais autorise la négation, ERic ne l'autorise(-ra) pas .

Y-a-t-il une relation ERic ↦ anglais ?
C'est loin d'être évident (pour moi).

Au bout du compte est-ce que tout ça n'est pas que de l'enfumage ?
Si on croit qu'ERic est un agent conversationnel alors oui je dirais que c'est de l'enfumage.
C'est plutôt un modèle de BDD orienté linguistique.

Ertaï il y a plus de 11 ans

Merci de l'explication, en informatique au moins ce genre de graphe fonctionnel possède une légende bien précise, et les formes gardent la même signification non seulement dans le même graphe, mais dans tous les graphes ayant la même finalité, d'où ma question.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Résumons-nous

Lors de nos précédents arbitrages parmi la grande famille des graphes nous nous étions arrêtés au multi-digraphe-étiqueté-à-hyper-nœuds . C'est le point de départ de cet article où nous achevons notre spécification d'ERic 0.3.

Droit au but

Cette fois je fais fi de la démarche (trop tortueuse) pour vous présenter directement le résultat.

Les hyper-nœuds sont des conteneurs

C'était le credo de l'article précédent. Un hyper-nœud est une boîte fermée hermétiquement. Intérieur et extérieur sont isolés. Chaque boîte contient une donnée. Il suffit de désigner une boîte pour accéder à la donnée qu'elle contient. Éventuellement il y a encore une boîte dans la boîte. Comme des poupées russes. C'est du grand classique de l'algorithmique.

Tom croit qu'Éva veut épouser un marin.

 

Les hyper-nœuds sont des membranes

Maintenant on change de point de vue. Les hyper-nœuds ne sont plus des boîtes hermétiques. Ce sont des membranes biologiques. Cela fait deux différences fondamentales :

Les hyper-nœuds sont des cadres-contextes. À l'extérieur de l'hyper-nœud on est dans le contexte de l'hyper-nœud parent. À l'intérieur de l'hyper-nœud on est dans un nouveau contexte plus spécifique qui enrichi le contexte parent (celui de l'hyper-nœud parent). C'est plus organique, il y a des systèmes et des sous-systèmes.

Il y a toujours un intérieur et un extérieur mais les échanges sont possibles entre les deux mondes. Le conteneur était un sarcophage. La membrane est une interface. C'est plus organique, il y a des flux qui traversent les parois.

Comme toujours des schémas valent mieux qu'un long discours.

Tom croit toujours qu'Éva veut épouser un marin.

Sauf que maintenant il y a 3 variantes possibles selon l'hyper-nœud dans lequel se trouve le marin.

Tom croit qu'Éva veut épouser un marin. Éva existe parce qu'elle est en dehors de ce que croit Tom. Le marin existe forcément car il est lui aussi en dehors de ce que croit Tom.
Tom croit qu'Éva veut épouser un marin. Éva existe. Et elle voudrait qu'il existe un marin qu'elle pourrait épouser.
Tom croit qu'il existe un marin qu'Éva veut épouser.

C'est beaucoup plus précis, n'est-ce pas ?

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Je maudis MS-Paint. Je le hais du plus profond de mon âme. Ça me prends un temps fou de faire ces schémas à la noix. Je préfère de loin la notation textuelle. Dommage que les schémas soient plus lisibles. Parce que pour les éditer c'est un sacerdoce.

Les graphes conceptuels

C'est encore un graphe (ou pas ) ? C'est encore une structure de données (ou pas ) ? On trouve ça dans les livres d'algorithmique (ou pas ) ? Et sinon c'est grave docteur ? Non, ça n'est pas grave. Tout ce dont on a besoin c'est d'une base de données et d'un mécanisme de requête. Et le mécanisme de requête c'est la recherche de tous les homomorphismes existant entre un motif et une collection de données. D'ailleurs c'était déjà le cas avec Eric 0.2. Wikipédia était bien capable de définir les homomorphismes de graphe tout en étant incapable de donner un algorithmique pour les trouver. Ça n'a pas empêché d'implanter ERic 0.2. Ce sera pareil avec ERic 0.3. Si on n'a plus le courage de faire de la recherche en algorithmique alors on changera de projet.

Sbirematqui il y a plus de 11 ans

*enfile sa casquette de livreur*
*sonne à la porte de SpiceGuid*

Bonjour chez vous ! C'est vous qui aviez commandé 1kg de motivation ?
Tenez, signez ici.

*tend sa tablette de livreur*

Comment ? Ah ! Oui, vos tartines seront livrées demain. Euh, au fait, j'ai encore de la motivation à livrer, vous sauriez pas où se trouve le "laboratoire gobelet" ?
Ah, il a changé de nom ? Vous pouvez m'indiquer où il est ?

*regarde le bonhomme lego agiter ses bras*

Merci, oui, passez vous aussi une bonne journée.

*remonte dans son camion en lâchant un chapelet de jurons et passe ses nerfs sur son GPS*

SpiceGuid il y a plus de 11 ans

Sbire

Les pizzas motivantes je pense que c'est pour le " laboratoire gobelin " icon_wink

Sbirematqui il y a plus de 11 ans

C'est qu'on la veut notre v8 d'AG et notre v0.3 d'ERic ! sourire3

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

L'horaire tardive à laquelle a été rédigé cet article est due à un petit ennui technique.

à Ertaï de l'avoir corrigé au plus vite.

J'en profite pour ajouter que pour fêter le passage de Sbirematqui vers le langage Haskell j'ai décidé de rehausser légèrement le niveau. De façon purement mesquine, juste histoire d'être certain de rester au top biggrinking

Ne vous étonnez pas si vous ne comprenez pas tout tout de suite, lisez lentement, relisez, et dans quelques semaines/mois/années ça prendra davantage de sens même si ça vous paraît totalement ésotérique aujourd'hui.


L'histoire continue

Ceux qui croient que la mise en parenthèse du projet ERic m'empêche d'alimenter ce blog se fourvoient. Un temps mort dans le développement c'est au contraire le moment idéal pour mieux fixer des idées parfois trop mouvantes. Et quoi de mieux pour fixer ses idées que de les mettre au propre pour les partager. De façon informelle, en français, bien avant de devoir rédiger la documentation officielle et définitive (qui serait cette fois en anglais).


Les pré-requis

Ce tutoriel n'est pas le plus facile de la série sur ERic.
Pour l'assimiler au mieux je ne peux que vous recommander :

la lecture de la documentation officielle d'ERic 0.2f (en français)

éventuellement, la lecture de l' introduction aux graphes-conceptuels par John F. Sowa (en anglais)


Les 4 visages d'ERic

Il y a 4 façons de comprendre et d'envisager ERic en tant qu'un système complet d'information :

comme une représentation graphique du langage naturel

comme une structure de données informatique

comme une modélisation des connaissances

comme une logique diagrammatique

Jusqu'ici on a surtout insisté sur les deux premiers aspects :

Quoique de manière incomplète ERic nous permet d'assez bien rendre compte de la sémantique du langage naturel.

La structure de données de prédilection est le multi-digraphe-étiqueté . On a justifié ce choix par le fait que cette structure de données est familière au lecteur et au programmeur.

On a également donné un méta-modèle d'ERic. C'est dire qu'au moins implicitement on assume une certaine capacité de modélisation.

On n'a pas donné de sémantique logique formellement dérivable d'un graphe entités/relations. Pour ne pas embarrasser le non-logicien mais surtout parce que le programmeur principal est plus à l'aise avec la vision "structure de données". Cependant aux détours de certaines explications on a laissé entrevoir qu'une telle logique était à l'œuvre. De plus on a identifié l' homomorphisme comme la méthode de requête et la subsomption comme la méthode de classification. Il n'y aucune raison de remettre en cause ces choix de mathématique/logique.


Comment améliorer ERic ? 

Quelque soit la modification opérée sur ERic elle impactera simultanément les 4 interprétations de façon cohérente.

Avoir 4 interprétations étroitement liées est-il un avantage ou bien une complexité supplémentaire ?

A-t-on l'obligation d'anticiper 4 fois plus et de tourner 4 fois sa langue dans sa bouche avant de changer une ligne de code ?

Heureusement non. Dans le cas contraire ERic serait de fait condamné à la stagnation.
En fait on peut carrément choisir une interprétation, améliorer ERic dans cette interprétation, et l'amélioration se répercutera sur les 3 autres interprétations sans même qu'on ait à y penser.

Mieux: on peut identifier une limitation dans une interprétation et la corriger à l'aide d'une extension dans une autre interprétation. Chaque amélioration se répercute sur les 4 interprétations.
C'est d'ailleurs exactement comme ça que l'on va procéder.
L'homme est supérieur en capacités linguistiques, c'est donc sur ce point qu'on va chercher des problèmes.
ERic est supérieur en capacités de modélisation, c'est dans ce domaine qu'on va chercher les solutions.


ERic 0.2f possède des limitations linguistiques 

Tom croit en Dieu
Éva veut une crème-glacée
Tom croit qu'Éva veut épouser un marin

Dans les deux premier cas on a un complément d'objet direct (un Dieu, une crème-glacée).
Le dernier cas est plus composite. Tom croit à une Proposition qui affirme ( Statement ) quelque chose. Éva veut une Situation qui décrit ( Description ) un certain état.

ERic 0.2 ne gère pas cette configuration de façon optimale :

Il n'est pas possible d'exprimer que le marin n'existe pas ailleurs que dans la tête de Tom.

Pire encore: si on demande "une personne veut-t-elle se marier" on aura pour réponse "oui, Éva veut se marier". Sans rien préciser des pensées de Tom. Le problème ici est que le graphe n'est pas assez structuré. Le fait que Tom croit quelque chose n'est qu'une extension du fait qu'Éva veut épouser un marin. Et vice-versa. Il y a des propositions mais il n'y a pas de propositions subordonnées

Évidemment on voudrait bien remédier à ces déficiences.

On a dit également qu'ERic ne supportait pas la négation. La version ERic 0.2d supporte la négation atomique qui n'a de négation à peu près que le nom. En fait il s'agit juste d'interdire un certain type de lien entre deux entités. On n'a pas de négation générale. Et pour des raisons de logique qui dépassent le cadre de ce tutoriel on n'ambitionne pas d'en avoir.


Modéliser ERic pour améliorer ERic 

Comme n'importe quel concepteur de logiciel on va utiliser un langage de conception pour faciliter la re-factorisation d'ERic.

Rappel du méta-modèle d'ERic 0.2f

Remarque cruciale n°1: dans ce méta-modèle tous les référents (Name, Integer, String, Reference, Float) sont des types atomiques, il n'y a aucun type structuré.

Remarque cruciale n°2: ce méta-modèle définit le type EntityRelationGraph qui lui est un type très structuré.

Idée: On va simplement ajouter le type EntityRelationGraph dans la liste des référents possibles. De cette façon on pourra avoir des nœuds dont le référent est un graphe entités/relations. Un graphe dont les nœuds peuvent contenir des graphes s'appelle un graphe à hyper-nœuds. 

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Certains parlent de graphes imbriqués plutôt que de graphes à hyper-nœuds. Moi je préfère graphe à hyper-nœuds parce que sinon on pourrait imbriquer dans les nœuds ou bien dans les arêtes ou bien dans les deux. C'est trop ambigu. Graphe à hyper-nœuds c'est clair : on imbrique que dans les nœuds. 

Ceux qui connaissent les diagrammes d'états ( StateCharts ) ont déjà rencontré des graphes imbriqués.

Le nouveau méta-modèle d'ERic enrichi par les référents EntityRelationGraph

Conséquences linguistiques 

Comme on va le voir cette modification résout le problème des propositions subordonnées .
Par contre cela ne résout pas le problème de l'existence (in)certaine du marin.

Tom croit qu'Éva veut épouser un marin (avec un digraphe à hyper-nœuds)

On voit que les arêtes Statement et Description ont disparu.
Chaque proposition subordonnée est désormais délimitée par un nœud-cadre.

Désormais le code contient une indentation pour marquer le niveau d'imbrication des nœuds :

join
   [Believe *b] Experiencer [Person:Tom] b Theme
   [Proposition
      [Want *w] Experiencer [Person:Eva] w Theme
      [Situation
         [Marry *m] Agent [Person:Eva]
         m Theme [Sailor]
      ]
  ].

Conséquences logiques 

Les notions d' homomorphisme et de subsomption deviennent récursives. En particulier les requêtes deviennent récursives. Elles se propagent à l'intérieur des hyper-nœuds tout en mémorisant le contexte externe.

Concrètement lorsque l'on demande "une personne veut-t-elle se marier" on aura pour réponse "oui, Tom croit qu'Éva veut se marier" au lieu de simplement "oui, Éva veut se marier".


Conséquences sur les structures de données 

Comme on l'a dit on passe du multi-digraphe-étiqueté au multi-digraphe-étiqueté-à-hyper-nœuds .

Le challenge n'est pas tant dans la représentation de ce type de graphe que dans la façon d'en stocker une très grande quantité tout en ralentissant le moins possible la recherche récursive d'homomorphismes.


Conclusion

On a présenté une solution au problème des propositions subordonnées et ce que cette solution implique sur les 4 interprétations d'un graphe entités/relations.

Le prochain article présentera une solution au problème de l'existence (in)certaine du marin ainsi que ses implications profondes sur la nature algorithmique des graphes-conceptuels.

SpiceGuid il y a plus de 11 ans

Une question simple :

Tom croit qu'Éva veut épouser un marin vous trouvez ça plus lisible en multi-digraphe-étiqueté ou bien en  multi-digraphe-étiqueté-à-hyper-nœuds ?

sans hyper-nœuds
avec hyper-nœuds

Ertaï il y a plus de 11 ans

Personnellement la direction des flèches à partir des verbes me perturbe. Si la personne Tom croît au thème de Dieu, l'inverse n'est pas forcément vrai, si ? Je veux dire que le thème de Dieu ne croît pas en la personne Tom. Pourquoi mettre des flèches dans les deux sens alors ?

SpiceGuid il y a plus de 11 ans

C'est comme en cours de français des collèges.

La phrase est centrée sur le verbe :

le verbe ( Believe ou Want ) a un sujet ( Experiencer )

le verbe ( Believe ou Want ) a un complément d'objet ( Theme )

Où vois-tu 1 flèche dans les deux sens ? Il y a 2 flèches qui partent de la boîte-verbe et elles partent dans le même sens (ce sont 2 flèches sortantes qui sortent de la boîte-verbe).

Si c'est un complément d'objet direct alors il y a une seule boîte-carrée ( God ou IceCream ).

Si le complément d'objet est une proposition alors il y a aussi une seule boîte-carrée ( Proposition ou Situation ). Seulement dans ce cas c'est une hyper-boîte (parce que son contenu est plus complexe).

SpiceGuid il y a plus de 11 ans

J'ai refait le schéma exprès pour ceux qui ont des difficultés à lire les graphes.

Tom croit en Dieu

Dans un graphe il ne faut pas regarder l'image. Il faut seulement observer les propriétés de connectivité.

Pour comprendre ERic 0.1 il faut :

savoir lire et écrire un graphe

comprendre ce qu'est un (Wiki) homomorphisme de graphes

Pour comprendre ERic 0.2 il faut en plus comprendre la notion de subsomption de graphes.

Pour comprendre ERic 0.3 il faudra en plus (et entre autres) comprendre la notion d'hyper-nœud.

Ertaï il y a plus de 11 ans

Je comprends mieux. Je supposais qu'il fallait que la relation aille dans ce sens là :

 Tom -> Experiencer -> Believe -> Theme -> God

Mais grâce à ton explication, je comprends mieux le sens des flèches.

Merci SpiceGuid ! pouce

SpiceGuid il y a plus de 11 ans

C'est linguistique, la phrase (ou la proposition) est enracinée sur le verbe.

Comme à l'école en cours de français, quand on te faisait décomposer grammaticalement icon_wink

Après la notion d' homomorphisme (autre définition Wiki) est importante, et là j'avoue que je ne sais pas comment le vulgariser. Et plus c'est difficile à expliquer plus c'est difficile à vendre disgust Sans parler de la subsomption, des hyper-nœuds et de tout ce que je vais encore ajouter dans la version 0.3 couto

Edit: je dessine toujours les graphes sous MS-Paint et c'est vraiment une corvée

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

(In)conscience artificielle

Quelque part sur un site d'informatique un membre enthousiaste d'AG a émis cette idée qu'une conscience artificielle pourrait se résumer dans la formule "je sais que je sais".

Je n'ai pas d'opinion philosophique sur la question. Par contre je pense être suffisamment avancé sur le plan technique pour exprimer artificiellement "je sais que je sais" beaucoup plus aisément que notre gentil membre ne pourra le faire malgré sa bonne volonté évidente.

D'ailleurs je vais le faire pas plus tard que tout de suite.

> ERic
Entity-Relationship interactive calculator.
version 0.2e by Damien Guichard.
# load "ECO.bdd".
# super-type [Think] Know.
# join
  [Know*k] Agent [Person:I]
  k Theme [Proposition*p]
  p Statement k.

Voilà c'est fait. On a créé une conscience artificielle (ou pas).

Sbirematqui il y a plus de 11 ans

Ce que j'ai exposé sur le site du zéro était une manière de lancer l'émule parmi des gens plus ou moins "normaux", de voir leurs réactions à certains postulats, de voir d'autres avis que le mien de la part de personnes qui n'ont pas déjà un avis fixe.

Après, la discussion qu'on pourrait faire autour de la conscience est longue, j'ai cependant ma propre opinion sur la question, qui pourrait se résumer a fait que la conscience est le fait de se rappeler qu'on a existé, pas de savoir qu'on existe.

En effet, si la conscience était le fait de savoir qu'on sait, de savoir qu'on existe, du moment qu'on acquiert ce savoir, notre conscience devient passée, présente et future. En effet, un savoir que tu utilise en permanence (dès que tu es conscient) ne pourrait s'oublier spontanément, et donc tu peux dès lors énoncer que tu sauras que tu existera, que tu sais que tu existe et que tu as su que tu existe. La conscience serait une demi-droite débutant à l'instant de ta naissance et se poursuivant à l'infini dans le futur. En gros, avec une telle définition, tu serais conscient d'exister à la fois hier, aujourd'hui, demain, dans mille ans.

De façon virtuelle, la conscience serait donc passée, présente et future avec une telle définition, on en convient, c'est absurde. De même, il est difficile d'expliquer les absences de la conscience (le sommeil, le coma... etc) de courtes durées dans le temps, ce serait imaginer un savoir qui *disparaît* au moment de l'endormissement et *réapparaît* au moment de l'éveil.

Si on imagine la conscience comme étant le fait de se rappeler qu'on a existé à l'instant juste antérieur, on éloigne le paradoxe. En effet, au passé, tu peux dire que tu étais conscient car tu te rappelais que tu avais existé, et par récurrence déduire qui tu existe à l'instant juste antérieur à l'instant présent. A l'instant présent (qui certes n'existe pas, mais je raccourcis la disserte en postulant que le présent existe. Puis, c'est mieux compréhensible comme cela), on ne peut prétendre de se rappeler d'une chose du présent (c'est un fait, tu ne peux te rappeler que du vécu), on ne peut être ainsi conscient au futur, car on ne peut énoncer au futur le fait qu'on existait à l'instant juste antérieur sans devoir utiliser l'instant présent, qui lui n'est pas conscient. Nous ne sommes donc conscients que de l'instant de nos premiers souvenirs (ceux de la prime enfance dont on peut difficilement se rappeler, personne ne peut prétendre se souvenir de lui-même à l'instant 0 de sa vie) jusqu'à l'instant antérieur à l'instant présent. De même, le sommeil ou l'excès d'alcool, les moments où notre mémoire ne peut fonctionner, sont souvent associés à une "perte de conscience", conscience qui revient dès qu'on commence à retrouver l'usage de notre mémoire.

Ainsi, la conscience est le souvenir de nous-même, et en rajoutant deux ou trois pages, tu peux aisément aboutir au fait que ce souvenir est la somme successive de tous nos états successifs, les plus anciens n'étant reconnaissables que dans les modifications majeures de nous même et les plus récents étant présents dans leurs détails. Nous sommes la somme de ce que nous avons été, et à chaque instant nous devenons ce que nous allons être lorsque l'instant présent devient l'instant juste antérieur.

Ajoutons encore du blabla empiriste pour enfin comprendre que le souvenir que nous avons de l'instant présent est constitué par les perceptions que nous avons du monde et plus particulièrement de nos interprétations, nous avons donc au final :

Une conscience C qui passe de C{t} à C{t+1} lorsque le E{t+1} (Environnement à l'instant t+1) vient s'y adjoindre dans sa propre interprétation issue de C{t}.

C{t+1} = E{t+1} + C{t}

Ainsi, C{t} est et sera la somme des états antérieurs C{t'} avec t > t'.

Bien sûr, n'oublions pas que la philosophie ne peut prétendre à une vérité scientifique, mais qu'elle fournit juste des voies de réflexions. Il existe évidemment d'autres manières de considérer la conscience.

Pour le coup, tu nous as fait :

C{t} = C{t} (Le fait de savoir ce que je sais, d'être conscient d'être conscient, en ces conditions ce sera vrai pour tous les instants t)

SpiceGuid il y a plus de 11 ans

Je te dois des excuses parce qu'en fait la formule "je sais que je sais" n'est même pas de toi.

J'ai essayé de répondre honnêtement. Peut être que j'ai répondu à côté. Selon moi la conscience n'est pas réductible à une simple conscience de soi. Et même si c'était le cas je doute qu'aucune implantation logicielle ne te donne entièrement satisfaction, quelque soit ta définition personnelle de la conscience. Dans tous les cas Haskell est un très bon investissement .

En tout cas j'ai réveillé le fil de discussion .

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Quelles différences entre ERic et une base de données orientée graphes

 

fam_accept

Les bases de données orientées graphes classiques s'appuient toutes sur un langage à objets. La conséquence c'est que les entités sont des objets et les relations sont des références. Du coup il y a une hiérarchie sur les types d'entités (la hiérarchie des classes) mais il n'y a pas de hiérarchie sur les types de relations. Au contraire, ERic 0.2 possède deux hiérarchies distinctes, une pour les entités, une autre pour les relations.

fam_accept

Deuxième conséquence, plus importante: ERic 0.2 possède la subsomption. Les données sont des graphes. Les requêtes sont des graphes. Les réponses sont des graphes. Avec les autres bases de données, les données sont des objets, les requêtes sont des chemins+filtres, les réponses sont des objets. Il n'y a pas de notion de subsomption. En fait les bases de données orientées graphes classiques ne sont guère plus qu'un moyen de (dé-)sérialisation pour des amas d'objets à charger/sauver sur disque.

fam_accept

La documentation des bases de données orientées graphes affirme que le graphe est la structure de données la plus générale . La documentation d'ERic n'affirme rien de tel. Au contraire. ERic 0.3+ a pour objectif d'offrir une structure de données plus générale que les graphes, les multi-graphes, les graphes bipartites, les hyper-graphes et autres variations ou extensions de la définition d'un graphe.

fam_accept

La plupart des bases de données orientées graphes offrent certains algorithmes classiques comme le plus court chemin d'un objet à un autre, les plus proches voisins vérifiant une certaine propriété... ERic n'offre rien de tel, il ne fonctionne que par subsomption.

Ertaï il y a plus de 11 ans

Et au niveau des applications pratiques ? icon_razz

SpiceGuid il y a plus de 11 ans

Les origines du modèle que j'utilise prennent racines dans la logique, les mathématiques et la philosophie. Il y a sur terre des personnes suffisamment exceptionnelles pour cumuler les trois compétences . Ces personnes là pensent aux modèles, pas aux applications.

Les applications viennent après les outils qui viennent après les modèles.

Mon ambition c'est de produire un outil qui rende hommage aux génies qui ont pensé le modèle.

J'ai comme l'impression que derrière ta question il y a le soucis de mon sort personnel. Et je t'en remercie.

La vérité sur les applications c'est que jusqu'à présent je n'en connais pas de vraiment convaincante. Au choix on peut dire que j'innove, que j'anticipe, ou bien que je me suicide socialement.

Ertaï il y a plus de 11 ans

SpiceGuid a écrit :

"

Au choix on peut dire que j'innove, que j'anticipe, ou bien que je me suicide socialement.

"

Je crois que ces trois caractéristiques décrivent bien les génies incompris de leur temps. pouce

SpiceGuid il y a plus de 11 ans

Sur le mur tu disais "inadapté".

La première chose que l'on voit ou que l'on pense de moi c'est que je ne travaille pas.

Ertaï il y a plus de 11 ans

Inadapté mais génial, en tout cas ici tu n'as pas à craindre l'opprobre productiviste. Smile

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

fam_fr

Mise à jour mineure vers la version 0.2f

fam_accept

Suite à une visite de nlegriel la relation Attribut a été renommée  Attribut e et une relation Value a été ajoutée.

Le couple Property / Value constitue une alternative à Attribute :

  • Si la modélisation est orientée Graphe Conceptuel on préfèrera →(Attribute)→[Age 17]
  • Si la modélisation est orientée RDF / OWL on préfèrera →(Property)→[Age]→(Value)→[Integer 17]
fam_add

Interface source avec OCaml.

Sbirematqui il y a plus de 11 ans

L'interface source avec Ocalm, c'est quoi ?

SpiceGuid il y a plus de 11 ans

Cela signifie que la source est encore plus modulaire (le moteur de subsomption est encore mieux encapsulé). Du coup si tu programmes en OCaml alors tu peux facilement changer la syntaxe de la console interactive.

Par exemple tu peux utiliser un langage pseudo-naturel comme Attempto Controlled English .

fam_us

Attempto Project

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Pour vous faire patienter avant de dévoiler les nouvelles caractéristiques d'ERic 0.3a, voici un petit tutoriel sur mon algo de reachability en version 0.2

ERic 0.2 possède une double hiérarchie: une pour les concepts et aune autre pour les relations.

Dynamiquement ERic compare les types de milliers de paires de concepts et de paires de relations. La vitesse de comparaison de deux types est donc vitale pour la performance.

L'ordre dans une hiérarchie est un ordre partiel .

Voici comment on compare deux types A et B :

  • ou bien le type A est un ancêtre du type B (on note A ≥ B)
  • ou bien le type B est un ancêtre du type A (on note B ≥ A)
  • ou bien les deux types A et B ne sont pas comparables

Voici une représentation d'une hiérarchie, une liaison vers la droite est un lien vers un nœud frère, une liaison vers le bas est un lien vers une liste de nœuds fils.

  A
  |
  B-----------------C-----D
  |                 |     |      
  E------F------G   H     I------J

Le nœud A est le nœud sommet. Les nœuds B,C,D sont ses fils directs.

Dans ce cas comparer deux nœuds quelconques est une opération complexe.

Il faut partir d'un nœud et parcourir le chemin qui mène jusqu'au sommet en espérant rencontrer l'autre nœud au passage. Et si ça échoue alors il faut partir de l'autre nœud et parcourir le chemin qui mène jusqu'au sommet en espérant rencontrer le premier nœud au passage. Et si ça échoue encore alors les deux nœuds n'étaient pas comparables !

Bref il faut parcourir l'arbre.

TROP LENT.

Voici la solution de SpiceGuid.

Au départ l'arbre ci-dessus est étiqueté avec des intervalles d'entiers. Comme ceci.

[0,10]
  |
[1,5]-------------[5,7]-[7,10]
  |                 |     |      
[2,3]-[3,4]-[4,5] [6,7] [8,9]-[9,10]

Les nœuds proches du commet ont un intervalle plutôt large.

Alors que les nœuds feuilles ont un intervalle plutôt étroit.

À présent la comparaison entre deux nœuds se fait en temps constant : un nœud A est l'ancêtre d'un nœud B si et seulement si l'intervalle A contient l'intervalle B.

Évidemment l'objectif de la version 0.3a est d'offrir un niveau similaire de performance dans la comparaison de deux nœuds tout en offrant la possibilité de l'héritage multiple. La hiérarchie n'est alors plus un arbre mais un DAG (Directed-Acyclic-Graph).

La solution s'inspirera probablement de la technique générale dite de structural-boostrapping . Cette technique consiste (pour simplifier) à se baser sur un TAD incomplet (ici mon arbre étiqueté avec des intervalles) pour construire le TAD recherché (ici un DAG qui résout le problème de reachability ). Cette solution devrait donner de bons résultats pratiques puisque plusieurs études chiffrent le nombre moyen de types parents à environ presque 2 pour les ontologies les plus foisonnantes et à peine plus de 1 pour les ontologies les plus arborescentes.

Ertaï il y a plus de 11 ans

Ça me rappelle les cours d'algorithmie que nous avons pris ensemble avec Aka Guymelef, je me rappelle bien de ce type d'arbre "borné". La complexité réside dans l'insertion et la suppression, mais l'accès ( = recherche ) est ultra-rapide.

SpiceGuid il y a plus de 11 ans

Hmmm... Ici il s'agit d'un arbre n -aire ( n quelconque), pas d'un arbre binaire de recherche (où n=2 et l'arbre est totalement ordonné). Ici mon arbre est partiellement ordonné et chaque nœud est étiqueté par un intervalle, pas par un simple entier icon_wink

Ordre partiel

Ertaï il y a plus de 11 ans

Même avec la page Wikipédia que tu as mise en lien je ne comprends pas bien pourquoi ton arbre est partiellement ordonné ? perplexe

SpiceGuid il y a plus de 11 ans

Mon arbre est un dendrogramme .

Je vais essayer d'être plus clair que Wikipédia.

Avec un ordre total il n'y a que 2 cas possibles (d'où n=2 pour un arbre qui fait un tri total) :

  • ou bien A ≥ B
  • ou bien B ≥ A

Un arbre d'héritage est trié selon un ordre partiel, c'est-à-dire qu'il y a 3 cas possibles (il faut un arbre n -aire pour faire un tri partiel) :

  • ou bien A ≥ B  (A est plus général que B)
  • ou bien B ≥ A  (A est plus spécifique que B)
  • ou bien A et B ne sont pas comparables

Ne sont pas comparables :

  • dans mon dendrogramme : tous les nœuds frères, plus B et H, B et I, B et J, C et E, C et F, C et G, C et I, C et J, D et E, D et F, D et G, D et H
  • dans le dendrogramme de wikipédia : tous les nœuds qui n'ont aucune lettre en commun
  • en général : tous les nœuds dont l'un n'est pas l'ancêtre de l'autre

Ertaï il y a plus de 11 ans

Je comprends mieux, merci pour l'explication Smile

SpiceGuid il y a plus de 11 ans

Bravo, tu n'as plus qu'à imaginer comment on étiquette chaque nœud avec un intervalle d'entiers icon_wink

( aide: on fait un parcours en profondeur d'abord)

Qu'est-ce qu'un arbre n-aire ?

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Il va y avoir une  longue pose pause de brainstorming avant la spécification de la version 0.3a

Explications :

  • Je suis tout nouveau dans le monde des bases de données. Je n'avais pas compris que les données stockées ont un cycle de vie. Il ne suffit pas d'un langage de déclaration et d'un langage de requête, il faut en plus un langage de mise à jour. Et mettre à jour des graphes ça n'est pas évident. En tout cas c'est plus difficile que mettre à jour des enregistrements ou des objets. C'est une faiblesse de l'approche que je n'avais pas vue initialement. Une recherche rapide dans le domaine me confirme que le problème est peu étudié / non-résolu.  
  • J'aimerais étendre les capacités des requêtes. En particulier dans le quantitatif (minimum, maximum, intervalle) et dans le temporel (durée minimale, durée maximale, date butoir).
  • J'aimerais pouvoir créer des cadre-contextes qui rendraient l'information contextuelle. C'est-à-dire liée à une situation, un état, un point de vue,... C'est une extension bien étudiée, dont on connaît les propriétés. Toutefois ça complique considérablement l'implantation et ça n'arrange rien quant à la résolution des deux problèmes précédents.
  • J'aimerais autoriser le sous-typage multiple (héritage multiple) dans la hiérarchie des concepts et dans la hiérarchie des relations.
  • J'aimerais faciliter l'embarquement dans les applications utilisateurs, en particulier dans les langages C et OCaml (tant pis pour les autres, ils n'auront qu'à s'interfacer avec le C). Comparativement aux points précédents celui-ci est le plus facile. Pour OCaml c'est trivial et pour le C c'est (assez bien) documenté et il est facile de contacter nombre de personnes expérimentées en la matière.

Je ne crois pas que j'arriverai à tout faire, mon objectif pour la version 0.3a c'est de résoudre au moins 3 parmi ces 5 points afin d'avancer un peu plus vite.

En attendant vos questions / commentaires / critiques sur la version 0.2d sont toujours les bienvenues DoubleAccentCirconflexe

Mon but à moyen/long terme c'est d'avoir une Graph-based DB à visée commerciale.

Pour ça, une fois les 5 points précédents résolus il en restera encore 2 autres :

  • une interface graphique GTK+
  • un mécanisme de requêtes asynchrones distribuées

Et tout ça peut se faire 100% en OCaml DoubleAccentCirconflexe

Ertaï il y a plus de 11 ans

Bon courage pour cette p au se icon_wink

Edit : A propose de base de données en graph, j'ai eu l'occasion de m'intéresser à  Neo4j , un système de base de donnée en graph commercial qui  est assez populaire, je ne sais pas si tu peux t'inspirer de leur modèle (ou pas).

Sbirematqui il y a plus de 11 ans

Tu as notre soutient ! Du moins, le soutient de tous ceux qui ont de petits ponayzs dans la tête quand ils cherchent à saisir la nature de tes méta-capacités d'algorithmique.

sourire3

SpiceGuid il y a plus de 11 ans

Je suis heureux (pour toi) de constater qu'il y a encore une vie après SQL. Tu penses bien que je ratisse large. Alors oui j'ai regardé du côté de Neo4j.

Mais aussi des tas d'autres choses, HyperGraphDB, QGraph, Prometheus et j'en oublie... Ce qui m'a fait la meilleure impression c'est HyperNode/HyperLog . Cependant c'est davantage orienté-objet et moins langage-naturel que mon approche initiale. Il n'y a pas de sémantique logique associée. Mais l'approche objet ne m'est pas du tout étrangère et je n'écarte aucun modèle à priori.

@sbirematqui

Je ne peux pas t'expliquer l'algo de subsomption d'ERic 0.2, pas parce que c'est secret, au contraire c'est du logiciel libre EUPL . Par contre je vais essayer de faire des petits tutoriels pour vous expliquer des choses plus simples mais néanmoins intéressantes.

SpiceGuid il y a plus de 11 ans

Comme je le craignais la longue pause de brainstorming est en train de tourner à la dérive. Épisode dépressif, baisse de motivation, manque de perspectives professionnelles, dégoût de la programmation... Je n'ai même pas la force d'installer OCaml 4.0 c'est tout dire.

Bref, arrêt total. Là je vais souhaiter un joyeux anniversaire à Zeami et on reparlera d'ERic plus tard.

merci

les gars pour votre soutient amical.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

La poupée qui dit "non"

La prochaine version ERic v0.2 d implémentera la négation atomique (et non, TSG , ça n'est ni toxique ni radioactif icon_wink).

Alors me direz-vous, quelle différence entre la négation logique et la négation atomique perplexe

Hé bien la réponse est simple : je vais être obligé de m'atomiser le cerveau dans le seul but de réussir à l'implanter sourire3

Et si je survis je pourrai continuer avec des super-pouvoirs algorithmiques renforcés.

SpiceGuid il y a plus de 11 ans

Et voilà !

Nouvelle version 0.2d avec négation atomique Smile

SpiceGuid il y a plus de 11 ans

Mise à jour mineure de 0.2b vers 0.2c (ECO étendue, plus d'unités SI, pas de nouvelle fonctionnalité).

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Je viens de m'inscrire

À la mailing-list cg@conceptualgraphs.org

En parcourant la (maigre) archive de la liste je constate la quasi-absence de marché US pour du logiciel entités/relations, c'est typique du domaine de l'informatique appliquée, le buzzword c'est ce dont tout le monde parle mais que personne n'utilise.

Au début je pensais qu'il n'y avait qu'un simple problème d'absence interface graphique et de capacité multi-utilisateurs mais apparemment la résistance/réticence va bien plus loin que ça.

En recoupant avec d'autres sources d'information j'en conclus que :

  • quand il n'y a presque pas de marché US pour de l'IA alors il n'y en a pas du tout dans l'UE
  • l'acteur majeur du marché c'est Google qui fait du "web sémantique" ou du moins qui prétend qu'il va bientôt en faire que d'ailleurs il en fait déjà, que c'est pour demain mais qu'aujourd'hui c'est déjà demain et que d'ailleurs son nouveau langage s'appelle Google Noop heu non en fait il s'appelle Google Go ... aux dernières nouvelles il s'appelle Google Dart ... (mais ça n'est pas le même, c'est un nouveau ++ mieux bien)
  • le "web sémantique" c'est simplement du web 2.0, 3.0 , ++ ce que vous voulez
  • la faiblesse (économique) de mon approche vient de ce qu'il faut alimenter la base manuellement, de préférence avec du personnel qualifié en informatique/linguistique, qui sait ce qu'il fait. or les personnes qui savent ce qu'elles font sont trop rares et trop chères. le coût est trop immédiat, le gain d'échelle est trop lointain ou trop difficile à chiffrer.
  • d'où l'approche Googlesque (je spam le net avec des robots collecteurs et j’agrège pour les nuls puis je vends du trafic aux annonceurs)

Au total c'est assez démotivant icon_frown

Sbirematqui il y a plus de 11 ans

Si tu as une offre, mais pas de demande, il faut créer une demande artificiellement. Le moyen le plus direct serait une poignée de démonstrations techniques alléchante, tu dois donc trouver des domaines d'application qui intéressent les gens et proposer des démonstrations interactives conçues pour toucher un public au plus large. Créer sa niche, en quelque sorte. :3

SpiceGuid il y a plus de 11 ans

Tu sais ce qu'on dit : dans chaque niche il y a un chien méchant.

Je n'ai plus qu'à construire ma niche et ensuite "tu les manges mes croquettes ou je te mords les fesses". Bref, aller chercher la croissance avec les dents (©Sarkozy 2007).

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Préfixes / Suffixes

ERic possède déjà certaines relations destinées à élargir le champ d'usage de certains concepts. Par exemple ERic n'a pas besoin du suffixe -ment parce que ce suffixe sert à construire des adverbes. Or ECO possède déjà la relation Manner , en français façon ou manière , qui sert précisément à construire des adverbes.

Par exemple on ne peut pas dire "agir illégalement", mais on peut dire :

// agir de façon illégale
[Act] Manner [Illegal]

On ne peut pas dire "un chat peureux", mais on peut dire :

// un chat sujet à la peur
[Cat] Temper [Fear]

Autant que possible ERic + ECO remplacent les préfixes / suffixes par des relations appropriées qui font sens pour lui et pour son algorithme de subsomption.

C'est tout le principe du modèle Entités/Relations, on créer un langage artificiel aussi riche que possible mais avec un vocabulaire aussi réduit que possible comparativement à un langage naturel.

Les unités de mesure

Il y a là une exception. Sans doute parce que le système de mesure n'a rien d'un langage naturel puisqu'il a été conçu après des siècles de sciences. J'ai étudié la proposition de Sbirematqui pour que  1000 Meter = 1 KiloMeter et je l'ai amendée pour la rendre compatible avec le reste du système à l'aide d'une extension minimale .

Modification n°1

Micro , Kilo ,... ne sont pas des préfixes de Meter , Watt ,... mais des suffixes des nombres réels. Par exemple au lieu d'écrire 1.e3 on peut écrire 1. Kilo , au lieu d'écrire 1.e-6 on peut écrire 1. Micro . Donc essentiellement il n'y a plus du tout d'extension, il n'y a que la possibilité d'écrire en lettres ce qu'on pouvait déjà écrire en chiffres. Or pas d'extension du tout c'est justement l'extension que l'on recherche.

Modification n°2

Il y a exclusion entre les nombres réels et les autres référents. En particulier il n'y a plus de risque d'avoir à comparer des réels avec des entiers. Les concepts ordinaires acceptent tous les référents ordinaires (dont les entiers) mais pas les réels. Au contraire, les unités de mesure sont déclarées à l'aide de crochets et d'un point comme [.Meter] , [.Gram] , [.Watt] et leur référent ne peut être qu'un nombre réel précédent l'unité au lieu de suivre le concept. Ainsi on a [1. Kilo Meter] mais on ne peut pas avoir  [1. Kilo Apple] dont on ne saurait pas s'il s'agit d'1Kg de pomme ou bien de mille pommes.

[Apple 1000]  // mille pommes
[Apple] Weight [1. Kilo Gram]  // 1Kg de pomme

Modification n°3

Toute unité a un super-type qui indique de quoi l'unité est la mesure.

super-type [Fruit] Apple.    // n'est pas une unité
super-type [Power] [.Watt].  // est une unité de puissance

C'est essentiel pour pouvoir utiliser une proposition quand on ne connaît pas la quantité exacte.

// La puissance requise par le convecteur temporel de la DeLorean
// afin de voyager dans le temps
[Power] Description [Consume*c]
c Agent [Time Convector*t]
[Car DeLorean] EquippedWith t
c RequiredBy [Time Travel]

Conclusion

Tous les problèmes de mesure ne sont pas résolus pour autant. Par exemple il reste à étendre le système de requêtes pour pouvoir filtrer les réponses selon des critères quantitatifs (au dessus d'un minimum, au dessous d'un maximum, à l'intérieur d'un intervalle). Ce genre de filtrage serait également intéressant sur les dates (avant, après, pendant une période).

Une autre limitation mentionnée dans la documentation concerne l'absence de négation. Une forme restreinte de négation (appelée graphes polarisés ) pourra néanmoins être ajoutée sans perturber l'équilibre du système.

Il y a également la possibilité de créer des "contextes" en imbriquant les graphes ER (un graphe ER est alors le référent d'une boîte-entité). Cependant on n'obtient pas forcément toute l'expressivité qu'on pourrait attendre d'un modèle in-the-box / out-of-the-box.

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Après presque 1 mois d'errances ERic a enfin une (modeste) feuille de route vers la version 0.2b :

 Un nouveau type de base: les nombres réels flottants.
 
 Deux annotations pour mieux documenter les relations :
 

  La barre verticale symbolise un miroir, elle sépare un couple de relations inverses comme

ParentOf|ChildOf  SalariedOf|EmployerOf

  L'encadrement par un tiret symbolise une relation réciproque (bidirectionnelle) comme

-Spouse- -Sibling- -Twin- -Friend- -Associate- -Colleague- -Rival-

Ce que j'ai appris pendant ce mois d'inactivité

J'ai compris qu'il n'y aurait pas d'extension miraculeuse pour rendre ERic plus "intelligent". À partir de maintenant tout ce que j'ai à faire n'est plus que maintenance, documentation, ergonomie, interface graphique, client/serveur,...

En résumé, même s'il reste encore à faire quelques morceaux assez consistants, la matière principale est déjà là. Tout le reste n'est qu'extensions d'un proof-of-concept vers un logiciel complet/efficace/convivial. Est-ce vraiment ce que je souhaitais au départ ? Pas vraiment. Tout en sachant qu'il y avait bien une limite indépassable, je m'étais bercé d'illusions en fantasmant une escalade d'IA toujours plus sophistiquées. En fait d'escalier il ne me reste plus que deux ou trois marches à gravir avant d'arriver à un "plateau" d'intelligence. Tant pis pour la "créativité orgasmique". J'ai fini de m'amuser. Cette fois-ci j'ai vraiment décidé d'aller jusqu'au bout, c'est-à-dire un logiciel utilisable avec comme but ultime la viabilité commerciale. Pas seulement un programme pour me faire plaisir mais pour une fois un programme socialement utile (enfin j'espère).

Si j'arrive finalement à faire de la recherche appliquée en OCaml sans mourir de faim et de froid, ce sera déjà pas si mal.

Quant à ceux (ici ou là), que je suspecte de vouloir faire de la recherche fondamentale, je dis ceci : regardez encore une fois Spiderman II sourire3

SpiceGuid il y a plus de 11 ans

Premier problème avec l'extension aux nombres réels flottants.

ERic dit que 2.21 GigaWatt ça n'est pas la même chose que 2210 MegaWatt ou que 2.21e9 Watt parce que :

  • 2.21 ≠ 2210 ≠ 2.21e9 , ça n'est pas le même référent
  • GigaWatt ≠ MegaWatt ≠ Watt , ça n'est même pas le même concept
  • ça n'est pas le même concept ni le même référent ⇒ conclusion de l'IA : ça n'est pas du tout la même chose (tout comme 3 patates ça n'est pas la même chose que 5 carottes)

Crash ERic au tapis. 

En fait le problème existait déjà avec les entiers : 1000 Meter 1 KiloMeter . C'est juste que je m'en rends compte que maintenant.

Sbirematqui il y a plus de 11 ans

Peut-être une gestion différente des unités pourrait résoudre ce problème... En eux-même, les concepts "Megawatt" "Gigawatt" "watt" sont les même, un unique concept "watt" avec un préfixe "mega" ou un préfixe "giga" ou préfixe "rien du tout"...

http://fr.wikipedia.org/wiki/Pr%C3%A9fixes_du_syst%C3%A8me_international_d%27unit%C3%A9s#Pr.C3.A9fixes_courants

Le principe est là, tu as le concept "GigaWatt", tu peux y reconnaître "Watt" avec un préfixes "Giga", or, si ton concept "Giga" existe déjà et indique à l'IA qu'un "Giga-{quelque chose}" équivaut à un "1000000000 x {quelque chose}", elle pourra identifier que ton "2.21 GigaWatt" est la même chose que ton "2210 MegaWatt" ou même ton "2210000000 Watt".

Dans ta langue simplifié du monde de l'entité-relation, il est peut-être temps d'introduire des suffixes et préfixes pour nuancer relations, concepts et référents, apportant peut-être un petit plus "d'intelligence"...

Beschrelle a écrit :

"

Les préfixes se placent devant le radical et ne changent pas la nature des mots :
Par exemple, ordinaire est un adjectif , il en est de même pour  extraordinaire ! De même, voir et revoir sont deux verbes, pluie et parapluie sont deux noms.

Les suffixes se placent derrière le radical et selon le suffixe les mots peuvent changer de nature :
Par exemple, rose et roseraie sont deux noms, peur est un nom et peureux est un adjectif, chant est un nom et chantonner est un verbe, énorme (adjectif) énormément (adverbe).

"

Je lance l'idée comme ça, mais fondamentalement ERic est limité par la richesse de son vocabulaire, l'introduction de préfixes et de suffixes suffisamment bien pensés pourrait aisément multiplier les possibilités de son vocabulaire par simple combinaisons...

(Simple idée en l'air qui me passe par la tête, c'est toi qui fait ce que tu veux...)

Après, sur l'interface client-serveur, y'a quelque chose de (très) rudimentaire à l'aide de deux sockets qui rendrait ERic utilisable dès aujourd'hui :

  1. Un socket qui attend un paquet "instruction", une requête pour ERic, requête de syntaxe strictement équivalente à celle déjà présente dans la ligne de commande.
  2. Un socket qui renvoie à celui qui a envoyé l'instruction à ERic le contenu de la réponse, avec la même syntaxe que celle déjà présente.

C'est fortement archaïque, mais pour un premier pas vers l'utilité, c'est déjà considérable. Après, je dis pas ça en désintéressé, à partir de ce système simple, il est aisé de concevoir quelques fonctions PHP pour interfacer un site web avec un ERic. icon_lol

(Non, je ne suis pas objectif, simplement de passage)

P.S. : Nanaaaan, la recherche fondamentale, c'est devenu bien loin de mon orientation, un peu de sérieux, que diable !

SpiceGuid il y a plus de 11 ans

De t'intéresser à mes petites misères informatiques.

Un système de préfixes / suffixes, j'y avais pensé. 

Alors pourquoi est-ce que je ne le fais pas ?

Parce que l'intelligence ce n'est pas seulement l'expressivité. Il y a un compromis à faire entre expressivité et computabilité. Quand tu augmente l'expressivité générale tu diminue la computabilité générale. Or le critère qui compte vraiment c'est la computabilité. Il ne sert à rien de pouvoir tout exprimer si tu ne peux plus rien calculer.

Ceci veut dire que pour retomber sur mes pattes je devrais :

  • créer un sous-système "mesure" pour éviter la contagion de l'expressivité additionnelle à l'ensemble du système
  • lui autoriser les préfixes du genre nano-micro-kilo-méga-giga-tera-... avec la sémantique quantitative adéquate
  • ça ne vaut pas vraiment le coup pour un programme qui ne se veut pas scientifique, qui est incapable d'évaluer 1 + 1 ou 2 > 1

D'autre part la question des préfixes / suffixes est plus générale, avec les concepts Much et Little on peut dériver Too-Much, Too-Little, Very-Much, Very-Little, So-Much, So-Little, How-Much, How-Little, ...

En IA, tant qu'on a pas une solution générale pour le problème général, il vaut mieux ignorer les petits ennuis particuliers. Sinon on multiplierait les rustines jusqu'à détruire toute possibilité de calcul. Et c'est très vite fait car la calculabilité n'est pas universelle, elle n'est pas la règle, elle est l'exception. Bref elle est fragile , il faut la préserver à tout prix .

Si la langue du monde de l'entité-relation est simplifiée, et même simpliste, c'est justement à dessein. Ça n'est pas pour le plaisir de se brider. Le plus important c'est que les limitations soit bien documentées pour que l'utilisateur n'ait pas de mauvaises surprises au dernier moment.

PS: je suis vraiment désolé pour l'absence de chaussettes, si tu veux tu peux aller sur le forum et créer un fil de protestation "On se gèle les pieds, on veut des chaussettes!" Smile

Ou, encore mieux, tu peux contacter les chameliers du SdZ (il y en a tout plein dans autres langages ) et leur proposer d'ajouter des chaussettes.

SpiceGuid il y a plus de 11 ans

ERic v0.2b : Fait  

Il va me falloir une nouvelle feuille de route Smile

SpiceGuid il y a plus de 11 ans

Juste deux images pour vous montrer l'expressivité d'ERic.

Après si vous préférez UML c'est votre droit le plus entier icon_razz

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Vous pouvez à présent consulter la documentation en ligne .

( @TSG attention ça pique les yeux icon_wink)

SpiceGuid il y a plus de 11 ans , modifié il y a plus de 11 ans

Bilan provisoire

Presque une semaine après le lancement du projet.

J'ai utilisé à peu près tous les canaux de communications raisonnables, c'est-à-dire sans en faire trop, quitte à ne pas en faire assez.

Pour l'instant :

  • je n'ai eu aucun retour utilisateur
  • j'ai reçu un courriel d'un autodidacte me demandant si ERic est capable de raisonner (la réponse est non évidemment, dans le cas contraire ERic serait un être doté de raison)
  • je suis à cours de feuille de route

Le dernier point est le plus pénible car ERic est un projet que j'aimerais bien poursuivre. Les possibilités d'extension sont multiples mais (à partir de maintenant) elles peuvent s'exclure mutuellement. J'entrevois quatre issues possibles :

  1. décider d'une extension "raisonnable" en faisant le pari que ça ne mène pas à une impasse (impossibilité d'ajouter d'autres extensions)
  2. refactoriser la conception pour rendre ERic "extension neutral", les extensions deviendraient des composants enfichables pour faire un logiciel à la carte (toutefois c'est hyper-complexe et ça pénalise la performance)
  3. faire appel aux conseils d'un gourou (un mentor, une personne reconnue dans le domaine de la représentation des connaissances)
  4. continuer à communiquer, à promouvoir, jusqu'à trouver une niche applicative puis se laisser guider par des demandes communautaristes

Ou bien cinquième option : le projet est mort-né icon_frown

Ertaï il y a plus de 11 ans

J'aimerais connaître la bonne réponse à ton choix d'issues, malheureusement je crois que je serais dans la même incertitude si je me retrouvais dans le même cas que toi.

Je pense quand même que j'essaierai de rendre mon programme extensible génériquement. Comme tu peux décider du niveau d'imbrication des extensions dans ton programme principal, tu peux choisir le niveau de complexité ajouté.

Et si tu te retrouves trop limité par une de tes propres extensions, alors rien ne t'empêche de revoir le système d'extension.

SpiceGuid il y a plus de 11 ans

Comme l'inaction commençait à trop me peser je viens d'opter pour la requête au(x) gourou(s).

On va bien voir ce que ça donne. Même si un gourou ne se sent pas concerné il a toujours autour de lui une kyrielle d'étudiants/doctorants qui se feront un plaisir de m'expliquer comment ERic est laaaaaaaaaaargement améliorable.

SpiceGuid il y a plus de 11 ans

En attendant qu'une féministe du forum (Daenerys es-tu là?) me donne le féminin de gourou (oui j'ai cherché dans un dictionnaire, gourou n'a pas de féminin, c'est carrément sexiste) on va dire que j'ai contacté la Grande-exécutrice des Graphes-conceptuels.

Spoiler (Sélectionnez le texte dans le cadre pointillé pour le faire apparaître)

Guilde : Graphes-conceptuels
Rang : Grande-exécutrice
Faction Préférée : Graphes-biparti
Résidence Préférée : Subsomption, raisonnement automatique
Rôle : Grande-ordonnatrice
Familiers et montures : C++, Java

Un bisou de chameau baveux bisou pour celui ou celle qui trouvera le nom IRL de la Grande-exécutrice des Graphes-conceptuels. Envoyez vos propositions par MP.

Comme je n'ai pas encore reçu de réponse j'en conclus que :

  • je n'en recevrai jamais, ces personnes ne sont jamais vraiment en vacances, elles restent toujours connectées et leur boîte-à-lettres est toujours pleine
  • ces personnes trient leurs courriels au quotidien, si on n'a pas de réponse dans les 24h c'est que le courriel est déjà dans la corbeille

Et vu que ma documentation est 100% en français ça me limite pas mal le nombre de contacts possibles à l'étranger. Donc on va dire qu'il ne me reste plus que 3 options d'évolution. D'autre part je n'ai toujours aucun utilisateur (déclaré) ce qui fait d'ERic un parfait inutilitaire en puissance. Si je ne me bouge pas dans quelques semaines ERic sera un projet zombie. D'ailleurs developpez.net met en archives les projets sans actualité quand le forum est sans activité (sachant que le mien est carrément vide blaicon15 ça se présente mal).

Fausse bonne idée : faire une interface graphique.

Pourquoi c'est une mauvaise idée :

  • parce qu'ERic est une sorte de langage de programmation déclaratif, sa forme naturelle c'est la notation textuelle.
  • à partir de plus d'une vingtaine de boîtes il devient difficile d'arranger les boîtes dans l'espace 2D tout en laissant assez de place pour le cheminement des multiples connexions qui doivent relier les boîtes entre elles. en résumé la forme graphique est intuitive pour la lecture mais contre-intuitive pour l'écriture (pour la notation textuelle c'est le contraire).
  • la définition que se fait un internaute d'une "base de connaissance" ressemble plus à un wiki illustré qu'à une structure de données informatique. par conséquent il est inutile de chercher à convaincre un public qui est perdu par avance.

SpiceGuid il y a plus de 11 ans

fam_user_comment

 Le forum DVP de discussion du projet ERic est maintenant actif.

fam_page_go

Vous y trouverez toutes les informations pour installer / utiliser ERic v0.2a

Sbirematqui il y a plus de 11 ans

Yeah, trop bien ! \ô/

*découvre la signature de SpiceGuid*

Yeaaaah, trop bieeeen ! \ô,ô/

*va bouquiner ces articles*

Aka Guymelef il y a plus de 12 ans

clap

SpiceGuid il y a plus de 12 ans

merci

Maintenant convaincre la rédaction de DVP c'est une chose. Faire vivre le projet c'en est une autre. Surtout qu'avec mon intitulé je suis à la frontière entre la théorie des graphes et le test de Turing. C'est donc un peu attrape-tout. Je m'attends à voir des gens passer, poser des questions, demander plus de ressources, et puis finalement repartir sans rien avoir contribué, même pas en retour utilisateur. Ertaï est habitué à ça (donner plus que recevoir) mais pas moi, ça va me faire un choc culturel. Il va falloir convaincre et fidéliser. Et bien sûr ERic n'est pas tout à fait le seul logiciel dans sa catégorie. Il y a de la concurrence. Je vais devoir faire de la promotion. Comme un vendeur de lessive.

:: Utilisateurs Réfugiés SpiceGuid ► Le projet ERic

© Copyright 2002-2024 Aeriesguard.com - Mentions légales
Aerie's Guard V 7.0
réalisé par Ertaï, designé par Ivaldir, illustré par Izual et Sophie Masure
Famfamfam