Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Invité de passage
    Inscrit en
    janvier 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 79
    Points : 4
    Points
    4

    Par défaut Explication et indication de diagnostic

    Bonsoir,

    Désirant réaliser un outil de diagnostic dans un domaine particulier je souhaiterais avoir quelques informations pour que je puisse mieux comprendre certains aspects pour la réalisation.

    Ce projet s'installe dans le domaine du web sémantique du fait que la base de connaissances soit le web et que la recherche doit posséder un sens pour retourner un résultat correct.

    Je m'explique, à partir de certains mots-clefs recueillis par mon programme que je souhaiterais développer en langage C ou C++ (est ce possible? avec l'utilisation de librairies) celui ci doit rechercher les résultats correspondants sur le web ce qui implique une analyse pour conserver les résultats pertinents et les stocker dans un fichier texte.

    Pour exemple, si le programme concerne le domaine médicale et que les maux sont "vomissement, fièvre, rougeur" (mots cléfs de recherche pour la requête), le programme devra chercher les maladies possible avec ces maux et stocker dans le fichier texte les réponses trouvés sous forme de résumé ou de lien ("paludisme...").

    J'aurai donc besoin de votre aide pour la mise en place du projet, les informations nécessaires, logiciels, langages de programmation pour réaliser cela.

    D'après mes recherches, il est possible d'utiliser une librairie en C (LibCurl) ou alors l'utilisation d'ontologie avec le moteur de recherche sémantique Corese mais cette alternative me semble plus complexe et je ne sais pas s'il est possible de coupler ça avec le langage C.

    Merci d'avance et bonne soirée

  2. #2
    Membre habitué
    Avatar de cotechnoe
    Homme Profil pro Michel Héon
    Chercheur en informatique
    Inscrit en
    mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel Héon
    Localisation : Canada

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2012
    Messages : 50
    Points : 115
    Points
    115

    Par défaut Prérequis technologiques d'un projet pour le Web Sémantique

    Bonjour Jérém08

    D'ordre général, on pourrait répondre "oui" à l'ensemble des questions que vous posées. L'inconnu, c'est le temps dont vous disposez pour réaliser le projet. De la façon dont l'énoncé est formulé, la réalisation de ce projet se compterait en année/personne. Certains choix technologiques pourraient sans doutes raccourcir le délais.

    Il est aussi important de s'avoir que le projet du web sémantique regroupe un ensemble de technologies qui sont à divers niveaux de maturité. En d'autre termes, c'est un domaine de recherche très actif et en mouvance. D'ailleurs, l'énoncé que vous émettez est une partie des multiples domaines de recherches du web sémantique. Plus particulièrement, vous touchez au domaine de la construction automatique d'ontologies à partir des données du Web.

    Concernant les aspects technologiques de votre question. D'abord, il faudrait envisager de faire le projet en Java. Il existe des outils, ou des interfaces qui permettent le développement d'application en C/C++, mais la majorité des outils associés au web sémantique sont développés en Java. (ici, j'émets une opinion personnelle, il ne faut surtout pas envisager faire ce type de projet avec les outils de Microsoft)

    Pour un projet de cette envergure, vous devez répondre à plusieurs questions:
    a) qu'elle est le langage ontologique à utiliser ?
    b) quel est l'éditeur à choisir pour éditer l'ontologie ?
    c) qu'elles sont les technologies qui permettent d'interfacer mon code aux ontologies ?
    d) comment puis-je opérationnaliser l'ontologie ?

    LANGAGE ONTOLOGIQUE

    Le principal langage de modélisation utilisé pour le web sémantique est le Web Ontology Language normalisé par le W3C. (Pour plus d'infos, voir http://fr.wikipedia.org/wiki/Web_Ontology_Language et http://www.w3.org/2004/OWL/). Il en existe d'autres qui sont efficaces, mais ils sont soit propriétaires, soit peu matures.

    Sur le site de développez, vous trouverez plusieurs ouvrages de référence sur la modélisation ontologique.

    ÉDITEUR
    Pour éditer une ontologie OWL ça prend un éditeur. À ma connaissance, les trois principaux éditeurs d'ontologies sont les suivants:

    1- Protégé, produit OpenSource de la faculté de médecine de l'Univerité Stanford (http://protege.stanford.edu/)

    2- TopBraid Composer, produit commercial de TopQuadrant (http://www.topquadrant.com/)

    3- NeOn toolkit, Produit OpenSource issu du projet européen de recherche sur les applications sémantiques (http://www.neon-project.org/)

    Opinion: Protégé est un incontournable dans le domaine. TopBraid a l'avantage d'être orienté résultat puisqu'il vient du domaine commercial. NéOn est très intéressant pour la recherche sur les ontologies.

    API DE PROGRAMMATION
    Après le choix de l'éditeur vient le choix de l'API qui permettra la communication entre votre programme informatique et les ontologies. Ici, deux choix s'offrent à vous: Jena (http://jena.apache.org/), projet Apache pour la construction d'un cadre logiciel pour la construction d'applications pour le web sémantique. L'autre choix est le Protégé-OWL API (http://protege.stanford.edu/overview/protege-owl.html) comprenant l'ensemble des bibliothèques Java utilisé pour la construction de l'éditeur Protégé.

    Personnellement, je préfère le Protégé-OWL que je trouve très bien intégré à la manipulation de fichiers OWL et la manipulation des raisonneurs (prochain sujet) que je considère défaillant dans Jena... Mais sur ce point, ce site regorge de personnes beaucoup plus informées que moi qui pourront compléter ce commentaire.

    OPÉRATIONNALISER L'ONTOLOGIE
    Maitenant, un sujet important des ontologies est son opérationnalisation (On veut qu'elle fasse quoi et comment ?). On peu vouloir réaliser des requêtes à la SQL. Dans ce cas, on utilise le SPARQL comme langage de requête. On peut aussi vouloir faire des inférences logiques du style syllogisme: si A implique B, et que B implique C, alors A implique C. Il existe une panoplie de moteurs d'inférence (Pellet, Racer, FaCT++ (Pour le C+), KAON2.. etc, voir http://www.cs.man.ac.uk/~sattler/reasoners.html pour plus de détails). On peut aussi vouloir opérationnaliser l'ontologie avec des règles du stype: SI antécédents ALORS conclusions. Protégé et Topbraid offrent des solutions qui permettent de produire des ontologies dans cette perspective.

    CONCLUSION
    Voilà!, cette réponse pourrait être davantage élaborée et sur plusieurs points elle mériterait d'être nuancée. Cependant je pense qu'elle couvre l'ensemble des sujets nécessaires à la réalisation de votre projet.

    Bonne chance et n'hésitez pas à communiquer avec moi pour plus d'informations.

  3. #3
    Invité de passage
    Inscrit en
    janvier 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 79
    Points : 4
    Points
    4

    Par défaut

    Tout d'abord merci beaucoup pour toutes ces informations qui m'éclairent un peu plus sur ce sujet assez compliqué et désolé pour cette réponse si tardive.

    Pour le langage j'aurai préféré le réaliser en C ou en C++ que je maitrise n'ayant pas développé en Java depuis longtemps mais je vais me réhabituer et repasser au Java si ce langage me facilitera la tâche ayant seulement 1 voir 2 mois pour réaliser une ébauche, un prototype de cette application qui pourra être par la suite généralisée.

    Devant utiliser plusieurs logiciels pour réaliser ce projet, ceux ci sont-ils associable avec Java pour pouvoir faire la liaison automatiquement ? ou je dois d'abord réaliser le schéma de l'ontologie sous protégé (que je connais un peu) puis l'importer avec Java (avec l'API Eclipse par exemple) qui réalisera ensuite les traitements nécéssaires ?

    Mon problème actuelle étant l'ordre de développement des différentes parties pour mener correctement mon projet du fait que j'avais l'habitude d'utiliser un seul langage, un seul logiciel pour réaliser une application complète et que ce domaine est encore trop abstrait pour faciliter la compréhension.

    Merci d'avance, et bonne journée

  4. #4
    Invité de passage
    Inscrit en
    janvier 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 79
    Points : 4
    Points
    4

    Par défaut

    Autre question importante, serait-il possible de réaliser ce travail sans l'utilisation d'ontologie ? Devant simplement réaliser un prototype et étant restreint en temps je me pose donc cette question. Et si oui, avec quels piste pourrais-je réaliser cela?

    Merci.

  5. #5
    Membre habitué
    Avatar de cotechnoe
    Homme Profil pro Michel Héon
    Chercheur en informatique
    Inscrit en
    mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel Héon
    Localisation : Canada

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2012
    Messages : 50
    Points : 115
    Points
    115

    Par défaut Proposition de plan de travail

    Le type de problèmes que vous souhaitez traiter (tel que défini dans la première question) m’amènent à formuler quelques questions-réponses :

    - Est-ce que vous sauverez du temps pour produire un prototype en utilisant les ontologies plutôt que les technologies que vous maitrisez déjà ? J’en doute.

    - Est-ce qu’un prototype construit avec les ontologies produira une bonne preuve de concept pour la réalisation d’un projet dont la forme ressemble à l’énoncé que vous avez émis ? Sans l’ombre d’un doute.
    Il y a donc une optimisation à réaliser entre rapidité de réalisation et qualité de la preuve de concept. Vous avez donc un choix à faire.
    Si vous choisissez quand même d’aller de l’avant avec une solution à base d’ontologies, voici le plan de travail que je vous propose :
    1-faire une distinction entre environnement de développement (ED) et environnement client (EC).
    Pour la construction du prototype, vous devrez vivre en tant que développeur, dans un environnement où vous devrez faire appel à plusieurs outils. En revanche, il existe une solution pour construire un environnement client qui soit intégré « Eclipse est la solution »

    2- Si vous avez un certain budget pour votre projet je vous suggère de faire l’acquisition de TobBraid Composer (TBC) « au moins le standard edition »
    Voici pourquoi. D’abord TBC est une réelle application Eclipse dont les plug-ins sont agrégés autour d’un noyau OSGi, « ce que n’est pas Protégé 4 qui est construit aussi dans Eclipse mais qui en revanche (hélas) utilise un mécanisme d’agrégation de plugin propriétaire à l’Université Stanford».

    3- Construire l’architecture de l’environnement client (EC).

    Je construirais l’EC autour de TopBraidComposer « FREE EDITION ». En plus d’être gratuit, cet environnement permet d’éditer des ontologies, faire des inférences simples et il est possible d’enrichir ses fonctionnalités en greffant des plug-in Eclipse que vous aurez conçus

    4- Construire l’architecture de l’environnement développeur (ED)
    Le but de l’ED est de vous permettre de développer des plug-ins Eclipse à base d’ontologies que vous grefferez au EC. Il y a cependant un problème. TBC étant commercial est un environnement fermé. Vous n’avez pas accès directement au code et à certaines fonctionnalités intéressantes de Protégé. Une de ces fonctionnalités, par exemple, est la génération de code Java pour la manipulation d’une ontologie de domaine. Protégé offre aussi d’autres avantages que vous ne pourrez négliger dans une implantation ultérieure.

    5- Construire vos fonctionnalités et les intégrer dans l’EC
    Voici grosso modo la liste de ce qu’il faut faire ainsi que les compétences à acquérir :
    a) vous devez vous familiariser avec la construction de plug-in eclipse (c’est impératif… et ça demande beauuuuuucoup d’investissement en temps.)
    b) Télécharger Protégé 3.4.8 et son code source
    c) Faire un plug-in Eclipse de code source de protégé
    d) Intégrer le plug-in de Protégé dans l’EC et dans l’ED
    e) Construire votre ontologie de domaine dans Protégé ou dans TBC
    f) Pour une ontologie de domaine que vous aurez construite, générer le code Java à partir de Protégé
    g) Importer le code dans l’ED et en faire un plug-in que vous pourrez intégrer dans l’EC
    h) Construire l’application cliente qui manipule l’ontologie de domaine et l’intégrer dans l’EC

    6- Conclusion
    J’ai moi-même utilisé ce plan de travail pour la réalisation d’un outil de construction d’ontologies à partir d’une représentation graphique et semi-formelle (OntoCASE "accronyme d'Ontology CASE Tool" accessible par Google). Et le plan fonctionne.

    Bon voilà, espérant que cette proposition de plan de travail pourra vous aider dans votre projet.
    A+

  6. #6
    Invité de passage
    Inscrit en
    janvier 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 79
    Points : 4
    Points
    4

    Par défaut

    Tout d'abord merci pour cette grande explication détaillé et très compréhensible.

    Cependant le Java, les ontologies et l’utilisation de différents outils me posent problème et rien que le temps de compréhension atteindra la date limite de rendu de projet, j'ai donc choisis de m'y prendre différemment après de nombreuses heures de recherches.

    Je compte donc conserver le langage C pour réaliser ce projet qui est un prototype avec l'utilisation de sockets me permettant de stocker des liens web dans un fichier à partir de mots cibles constituant la recherche.
    Par la suite, après élimination du bruit dans ces liens, une nouvelle analyse sera effectué pour conserver que les meilleurs et traiter ces liens pour récupérer "un résumé" qui sera à nouveau stocké dans un fichier.

    Je met actuellement en place le client, mais je me questionne encore sur ses limites, et les outils à utiliser.

    En gros je réaliserai en quelque sorte un parseur, qu'en pensez vous ?

  7. #7
    Membre habitué
    Avatar de cotechnoe
    Homme Profil pro Michel Héon
    Chercheur en informatique
    Inscrit en
    mars 2012
    Messages
    50
    Détails du profil
    Informations personnelles :
    Nom : Homme Michel Héon
    Localisation : Canada

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2012
    Messages : 50
    Points : 115
    Points
    115

    Par défaut

    Votre orientation est plus axée "programmation de systèmes", mais il n'y pas de raisons pour que ça ne fonctionne pas.

    Il faut tout de même considérer la question d'interopérabilité de la solution s'il s'agit d'une exigence de votre projet.

    Bonne chance

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •