IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ontologies Discussion :

Règles SWRL et règles DL-Safe


Sujet :

Ontologies

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 66
    Points : 51
    Points
    51
    Par défaut Règles SWRL et règles DL-Safe
    Quelqu'un peut m'expliquer avec un exemple la différence entre une règle SWRL et DL-Safe rules SWRL ? J'arrive pas à saisir au juste la différence entre les deux.

  2. #2
    Membre actif
    Avatar de April Fool
    Homme Profil pro
    Fou d'avril
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 215
    Points
    215
    Par défaut
    Supposons qu'on ait une ontologie qui indique (syntaxe Turtle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    :BrotherOfJoe  a  owl:Class;
            rdfs:subClassOf  [
            a  owl:Restriction;
            owl:onProperty  :hasBrother;
            owl:hasValue  :joe
        ] .
    :toto  a  [
            a  owl:Restriction;
            owl:onProperty  :hasParent;
            owl:someValuesFrom  :BrotherOfJoe
        ] .
    :joe  a  :Person .
    La première partie indique qu'un frère de Joe (:BrotherOfJoe) a nécessairement un frère qui est Joe. La seconde indique que Toto a un parent qui est un frère de Joe. On voudrait en conclure que Joe est l'oncle de Toto. On pourrait écrire la règle SWRL suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :hasParent(?x,?y), :hasBrother(?y,?z) -> :hasUncle(?x,?z)
    Si la règle est une règle SWRL normale, on obtient bien la conclusion voulu. Si en revanche on interprète cette règle comme une règle DL-safe, on ne peut l'appliquer que si l'on peut remplacer les variables ?x, ?y et ?z par une instance nommée. Or, l'ontologie ne dit pas quelle personne joue le rôle de ?y ici. En fait, une règle DL-safe fonctionne comme si on avait une classe supplémentaire :Nom dont les instances sont tous les individus nommés. La règle DL-safe est équivalent à une règle SWRL normale comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :hasParent(?x,?y), :hasBrother(?y,?z), :Nom(?x), :Nom(?y), :Nom(?z) -> :hasUncle(?x,?z)
    7susd bl'ham owsql wuul pô!

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 66
    Points : 51
    Points
    51
    Par défaut
    sachant que Nom est un concept qui doit être rajouté à l'ontologie, si non ca va générer une erreur lors de l'interprétation de la règle, n'est ce pas ??

    Autre question s'il vous plait, c'est quoi l'atout principal de l'utilisation des règles DL-Safe par rapport aux règles SWRL. Si c'est un choix, je peux utiliser dans ce cas les règles SWRL tout court..

    Merci bien pour votre aide

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 66
    Points : 51
    Points
    51
    Par défaut
    selon ce que j'ai compris, la règle suivante est une règle Dl-safe vu qu'elle attribue des rôles aux différents individus :

    pere(rami) ∧ enfant(marwa) ∧ soeur(jamila) ∧ est_pere_de(rami, marwa) ∧ est_soeur_de(jamila, rami) → est_tante_de(jamila, marwa)

    sachant bien sure que pere, enfant et soeur ce sont des concepts défini au préalable.

  5. #5
    Membre actif
    Avatar de April Fool
    Homme Profil pro
    Fou d'avril
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 215
    Points
    215
    Par défaut
    sachant que Nom est un concept qui doit être rajouté à l'ontologie, si non ca va générer une erreur lors de l'interprétation de la règle, n'est ce pas ??
    Ca dépend. Si on veut s'assurer qu'on a bien des règles DL-safe, on peut utiliser un concept auxiliaire (comme Nom par exemple) qui devra contenir la totalité des instances nommées de la base de connaissance. Il faut que Nom ne soit relié à aucun autre concept ou terme.

    Mais certains raisonneurs n'ont pas besoin de cela. Ils appliquent les règles uniquement aux instances nommées sans qu'on leur dise, comme s'il y avait implicitement ce concept Nom dans toutes les règles.

    Autre question s'il vous plait, c'est quoi l'atout principal de l'utilisation des règles DL-Safe par rapport aux règles SWRL.
    Les règles DL-safe, ajoutées aux ontologies OWL DL, forment une logique décidable, de complexité à peu près équivalente à OWL DL. Les règles SWRL en général sont indécidables.

    selon ce que j'ai compris, la règle suivante est une règle Dl-safe vu qu'elle attribue des rôles aux différents individus :

    pere(rami) ∧ enfant(marwa) ∧ soeur(jamila) ∧ est_pere_de(rami, marwa) ∧ est_soeur_de(jamila, rami) → est_tante_de(jamila, marwa)

    sachant bien sure que pere, enfant et soeur ce sont des concepts défini au préalable.
    La règle donnée en exemple est DL-safe parce qu'elle ne contient pas de variable (à moins que rami, marwa et jamila soient des variables ?). En revanche, la règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pere(?r), enfant(?m), soeur(?j), est_pere_de(?r, ?m), est_soeur_de(?j, ?r) -> est_tante_de(?j, ?m)
    n'est pas DL-safe puisqu'on n'indique pas que les variables ?r, ?m et ?j doivent correspondre à des instances nommées.
    7susd bl'ham owsql wuul pô!

  6. #6
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 66
    Points : 51
    Points
    51
    Par défaut
    Merci beaucoup, mais c'est quoi au juste la différence entre des règles décidables et des règles indécidables ?

  7. #7
    Membre actif
    Avatar de April Fool
    Homme Profil pro
    Fou d'avril
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 215
    Points
    215
    Par défaut
    En réalité, ce ne sont pas les règles qui sont décidables ou non, c'est le langage qui permet de les écrire qui est indécidable.
    On dit qu'un langage est décidable s'il est possible de faire un programme qui permet de trouver chaque déduction possible en un temps fini. Lorsque c'est indécidable, on ne peut pas trouver de programme qui fait ça. Il y a donc, quel que soit le raisonneur qu'on utilise, des cas où le raisonnement sera soit bloqué dans une procédure infiniment longue, soit où le raisonnement donne une conclusion fausse, ou encore la fin de la procédure sera déclenché arbitrairement en indiquant "je ne sais pas".

    Pour les règles DL-safe, c'est logique que l'on puisse faire un programme qui termine toujours de façon correcte. Puisque l'on n'applique les règles qu'aux instances nommées, et qu'il ne peut y avoir qu'un nombre fini d'instances nommées dans la base de connaissance, on peut donc tester toutes les possibilités avec ces instances. Par exemple, si ma base ne contient que les instances "rami", "marwa" et "jamila", je peux vérifier si rami est le père de marwa, puis si rami est la soeur de marwa, puis si rami est l'enfant de marwa, et ainsi de suite. Je tomberai forcément à la fin sur une réponse correcte.

    En revanche, si les règles ne sont pas "safe", il est possible qu'il existe des instances sans qu'elles soient explicitement mentionnées dans la base. C'est le cas que j'ai montré dans mon premier message, qui survient par exemple en OWL lorsqu'on a une restriction de type "someValuesFrom".
    7susd bl'ham owsql wuul pô!

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2012
    Messages : 66
    Points : 51
    Points
    51
    Par défaut
    Merci, c'est trèèèèèèèèèèès gentil de ta part

Discussions similaires

  1. [Protégé] Protégé 4.1 et règles SWRL
    Par araqh dans le forum Ontologies
    Réponses: 13
    Dernier message: 02/01/2013, 17h11
  2. règles SWRL +ontologie +fichier OWL
    Par Etudiante_Ines dans le forum Général Java
    Réponses: 1
    Dernier message: 28/12/2012, 15h09
  3. [Protégé] Exemple de règle SWRL
    Par marwa_marwa dans le forum Ontologies
    Réponses: 0
    Dernier message: 07/06/2012, 23h21
  4. [Protégé] Génération de règles SWRL
    Par Mmeouerghemmi dans le forum Ontologies
    Réponses: 3
    Dernier message: 24/05/2012, 15h19
  5. Graphe de dépendance des règles SWRL
    Par Etudiante_Ines dans le forum Web sémantique
    Réponses: 0
    Dernier message: 08/05/2012, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo