La clé, c’est qu’on parle de raisonnement et pas de « programmation » au sens traditionnel.
Il y a un genre de « sémantique » aussi chez les universitaires quand on parle de programmation, Sémantique des langages de programmation. Mais c’est différent, on parle de « c’est quoi un programme qui fait ce qu’on lui demande » ou « que fait un programme ». Il s’agit de spécifier, dans un langage « autre » comme un langage logique mathématique les propriétés du programme qu’on veut écrire, de vérifier que notre programme fait bien ce qu’on avait l’intention de lui faire faire.
Ici c’est différent, on parle avant tout de donner des propriétés des données et des structures de données qui permettent de raisonner, de lui brancher un moteur de raisonnement logique type prolog qui permettent de vérifier, à terme, si notre jeu de données est propre. Par exemple en partant de la définition d’un logiciel libre, on peut détecter si un logiciel dans nos données est marqué à la fois comme libre et comme non redistribuable. Une telle erreur détectée par le moteur de raisonnement indique soit qu’on a un problème dans nos données soit qu’on a un problème dans notre ontologie.
Pour faire le lien avec le monde des langage de programmation, on peut imaginer qu’une fonction buguée fasse un traitement sur les donnés qui renvoie parfois un logiciel à la fois libre et non redistribuable. On dit que cette fonction « casse l’invariant » dans la méthode B par exemple. L’invariant étant une proprété logique que douvent tout le temps (enfin « atomiquement » on va dire, au cours d’une opération on est autorisé à le casser) respecter les données. Pr exemple, qeu le nombre de ticket vendu doit ètre inférieur au nombre de place disponibles. Si tu lance le moteur d’inférence après un tel cas de figure, tu auras détecté un bug du programme (ou de l’ontologie encore une fois).
J’ai l’impression que d’une certaine manière ici brancher une ontologie OWL sur un programme python est le moyen de brancher un tel invariant sur python, donc de définir certaines propriétés de la sémantique attendue du programme.
[^] # Re: j'ai pas tout saisi.
Posté par thoasm . En réponse à la dépêche Owlready : un module Python pour manipuler les ontologies OWL. Évalué à 4.
La clé, c’est qu’on parle de raisonnement et pas de « programmation » au sens traditionnel.
Il y a un genre de « sémantique » aussi chez les universitaires quand on parle de programmation, Sémantique des langages de programmation. Mais c’est différent, on parle de « c’est quoi un programme qui fait ce qu’on lui demande » ou « que fait un programme ». Il s’agit de spécifier, dans un langage « autre » comme un langage logique mathématique les propriétés du programme qu’on veut écrire, de vérifier que notre programme fait bien ce qu’on avait l’intention de lui faire faire.
Ici c’est différent, on parle avant tout de donner des propriétés des données et des structures de données qui permettent de raisonner, de lui brancher un moteur de raisonnement logique type prolog qui permettent de vérifier, à terme, si notre jeu de données est propre. Par exemple en partant de la définition d’un logiciel libre, on peut détecter si un logiciel dans nos données est marqué à la fois comme libre et comme non redistribuable. Une telle erreur détectée par le moteur de raisonnement indique soit qu’on a un problème dans nos données soit qu’on a un problème dans notre ontologie.
Pour faire le lien avec le monde des langage de programmation, on peut imaginer qu’une fonction buguée fasse un traitement sur les donnés qui renvoie parfois un logiciel à la fois libre et non redistribuable. On dit que cette fonction « casse l’invariant » dans la méthode B par exemple. L’invariant étant une proprété logique que douvent tout le temps (enfin « atomiquement » on va dire, au cours d’une opération on est autorisé à le casser) respecter les données. Pr exemple, qeu le nombre de ticket vendu doit ètre inférieur au nombre de place disponibles. Si tu lance le moteur d’inférence après un tel cas de figure, tu auras détecté un bug du programme (ou de l’ontologie encore une fois).
J’ai l’impression que d’une certaine manière ici brancher une ontologie OWL sur un programme python est le moyen de brancher un tel invariant sur python, donc de définir certaines propriétés de la sémantique attendue du programme.