Semantic Web Rule Language
# Semantic Web Rule Language

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.

## Définition

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

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

## SWRL DL-safe rules

Une restriction de SWRL, appelée DL-safe rules, a été conçue pour conserver la décidabilité. 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

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 :

* Traduire SWRL en logique du premier ordre (Hoolet) ;
* Traduire OWL-DL en règles et appliquer un algorithme de chaînage avant (Bossam) ;
* 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. présentent les premiers résultats de leurs tests et indiquent notamment le temps de calcul (en millisecondes) nécessaire à la vériﬁcation 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.

