Aller au contenu

Semantic Web Rule Language

Un article de Wikipédia, l'encyclopédie libre.

SWRL (Semantic Web Rule Language) est un langage de règles pour le web sémantique, combinant le langage OWL-DL et le langage RuleML (Rule Markup Language (Unary/Binary Datalog)).

En comparaison avec DLP (Description Logic Programs), une autre proposition relativement récente de la communauté web sémantique, permettant d'intégrer des règles et OWL, SWRL prend une approche d'intégration diamétralement opposée. DLP est l'intersection de la logique de Horn et d'OWL, tandis que SWRL est (approximativement) l'union des deux. Pour DLP, le langage résultant est une logique descriptive d'une forme inhabituelle et peu expressive. Au contraire, SWRL garde la puissance d'OWL DL, mais au prix de la décidabilité et des implémentations concrètes[1].

Définition

[modifier | modifier le code]

Les axiomes du langage OWL-DL sont étendus à l’aide des clauses de Horn réduites au prédicats unaires et binaires.

   

     a, b, n: prédicats binaires (rôles)
     c: prédicat unaire (concept atomique)
     x, y: x variables, instances ou littéraux (nombres, chaînes de caractères, etc.)

Ce langage est indécidable. L'indécidabilité est causée par l’interaction entre certaines caractéristiques de OWL-DL et de RuleML[2]. Les règles SWRL sont appliquées même si les individus ne sont pas présents dans la base.

SWRL DL-safe rules

[modifier | modifier le code]

Une restriction de SWRL, appelée DL-safe rules, a été conçue pour conserver la décidabilité[2]. Cette restriction ne porte pas sur les composants du langage, mais sur leur interaction. Les règles écrites ne peuvent porter que sur des individus explicitement présents dans la base. Autrement dit, les règles ne peuvent s’appliquer que si l’identité de toutes les instances présentes est connue.

Moteurs d'inférences

[modifier | modifier le code]

De nombreux moteurs d’inférences commencent à supporter SWRL : Bossam, Hoolet, KAON2, Pellet, RacerPro, R2ML (REWERSE Rule Markup Language) et Sesame. Ils suivent trois types d’approche :

  1. Traduire SWRL en logique du premier ordre (Hoolet) ;
  2. Traduire OWL-DL en règles et appliquer un algorithme de chaînage avant (Bossam) ;
  3. Intégrer les règles SWRL dans le moteur d’inférences OWL-DL fondé sur les algorithmes des tableaux sémantiques (Pellet).

Malheureusement, peu d’implémentations pratiques ont – jusqu’ici – été réalisées avec le langage SWRL. Toutefois, Kolovski et al.[3] présentent les premiers résultats de leurs tests et indiquent notamment le temps de calcul (en millisecondes) nécessaire à la vérification de la consistance d’une base de connaissances composée de quarante-six concepts et trente rôles. Le nombre de règles et d’instances présentes dans la base est variable. La première règle introduite implique deux variables, alors que la deuxième en implique trois.

Taille de l'ontologie Consistance Pellet KAON2
1 règle, 17 instances Oui 0,1 0,66
1 règle, 94 instances Oui 0,25 0,62
1 règle, 94 instances Non 0,38 0,65
2 règles, 17 instances Oui 0,42 0,70
2 règles, 94 instances Oui 1,23 5,75
2 règles, 94 instances Non 0,95 6,61

Ces temps de calcul importants nécessitent de ne mettre en place ce langage que sur des ontologies de petites et moyennes tailles.

Liens externes

[modifier | modifier le code]

SWRL au W3C

Références

[modifier | modifier le code]
  1. Bijan Parsia et al., Cautiously Approaching SWRL [1]
  2. a et b B. Motik, U. Sattler, and Studer R. Query Answering for OWL-DL with Rules. Journal of Web Semantics : Science, Services and Agents on the World Wide Web, pages 41–60, 2005.
  3. V. Kolovski, B. Parsia, and E. Sirin. Extending SHOIQ(D) with DL-safe rules : First results. 256, 2006.