Linguaggio delle regole del web semantico - Semantic Web Rule Language

Il Semantic Web Rule Language ( SWRL ) è un linguaggio proposto per il Semantic Web che può essere utilizzato per esprimere regole e logica, combinando OWL DL o OWL Lite con un sottoinsieme del Rule Markup Language (a sua volta un sottoinsieme di Datalog ).

La specifica è stata presentata nel maggio 2004 al W3C dal National Research Council of Canada , Network Inference (poi acquisita da webMethods ) e dalla Stanford University in associazione con il Joint US/EU ad hoc Agent Markup Language Committee. La specifica era basata su una precedente proposta per un linguaggio di regole OWL.

SWRL ha tutta la potenza di OWL DL, ma al prezzo della decidibilità e delle implementazioni pratiche. Tuttavia, la decidibilità può essere recuperata limitando la forma delle regole ammissibili, tipicamente imponendo un'adeguata condizione di sicurezza.

Le regole hanno la forma di un'implicazione tra antecedente (corpo) e conseguente (testa). Il significato inteso può essere letto come: qualora valgano le condizioni specificate nell'antecedente, allora devono sussistere anche le condizioni specificate nel conseguente.

Esempio

Sintassi leggibile dall'uomo

hasParent(?x1,?x2) ∧ hasBrother(?x2,?x3) ⇒ hasUncle(?x1,?x3)

Sintassi concreta XML

La sintassi XML Concrete è una combinazione della sintassi di presentazione XML di OWL Web Ontology Language con la sintassi XML di RuleML .

 <ruleml:imp> 
  <ruleml:_rlab ruleml:href="#example1"/>
  <ruleml:_body> 
    <swrlx:individualPropertyAtom  swrlx:property="hasParent"> 
      <ruleml:var>x1</ruleml:var>
      <ruleml:var>x2</ruleml:var>
    </swrlx:individualPropertyAtom> 
    <swrlx:individualPropertyAtom  swrlx:property="hasBrother"> 
      <ruleml:var>x2</ruleml:var>
      <ruleml:var>x3</ruleml:var>
    </swrlx:individualPropertyAtom> 
  </ruleml:_body> 
  <ruleml:_head> 
    <swrlx:individualPropertyAtom  swrlx:property="hasUncle"> 
      <ruleml:var>x1</ruleml:var>
      <ruleml:var>x3</ruleml:var>
    </swrlx:individualPropertyAtom> 
  </ruleml:_head> 
 </ruleml:imp>

Sintassi del calcestruzzo RDF

È semplice fornire una tale sintassi concreta RDF per le regole, ma la presenza di variabili nelle regole va oltre la semantica RDF. La traduzione dalla XML Concrete Syntax a RDF/XML potrebbe essere facilmente realizzata estendendo la trasformazione XSLT per la sintassi OWL XML Presentation.

implementazioni

Avvertenza: i ragionatori non supportano la specifica completa perché il ragionamento diventa indecidibile. Ci possono essere tre tipi di approccio:

  1. tradurre SWRL in logica del primo ordine (Hoolet) e dimostrare compiti di ragionamento con un dimostratore di teoremi;
  2. tradurre OWL-DL in regole e dare le regole a un motore di concatenamento in avanti (Bossam) (questo approccio non può coprire la piena espressività di OWL-DL a causa di molte incompatibilità tra i formalismi Description Logic e Horn Rule)
  3. espandere un ragionatore OWL-DL esistente basato sull'algoritmo tableaux (Pellet).
  • Protégé 4.2 include una vista Regole nelle sue viste Ontologia che supporta le regole SWRL.
  • Per le versioni precedenti di Protégé, SWRLTab è un'estensione che supporta la modifica e l'esecuzione delle regole SWRL. [1]
  • R2ML (REWERSE Rule Markup Language) supporta SWRL. [2]
  • Bossam , un motore di regole di concatenamento in avanti supporta SWRL. [3]
  • Hoolet , un'implementazione di un ragionatore OWL-DL che utilizza un prover di primo ordine supporta SWRL. [4]
  • Pellet , un ragionatore Java OWL DL open source ha il supporto SWRL. [5]
  • KAON2 è un'infrastruttura per la gestione delle ontologie OWL-DL, SWRL e F-Logic. [6]
  • RacerPro , supporta l'elaborazione delle regole in una sintassi basata su SWRL traducendole in regole nRQL [7]
  • RDFox un grafico della conoscenza scalabile in memoria ad alte prestazioni e un motore di ragionamento Datalog che supporta SWRL. Sviluppato da Oxford Semantic Technologies. [8]
  • Stardog è un database RDF o triplestore che riscrive le query per rispondere alle domande utilizzando inferenze SWRL. [9]
Bossam Hoolet Pellet
Analizzatore SWRL/OWLX ? ?
Analizzatore SWRL/RDF ?
Matematica incorporata Parziale ?
Stringhe integrate Parziale ?
Confronti integrati ? ?
Integrazioni booleane ? ?
Data, ora e durata integrate ? ? No
URI integrati ? ?
Elenchi integrati ? ? No
Licenza Fonte libera/chiusa Gratuito/open-source Gratuito/open-source

Confronto con i programmi di logica descrittiva

Descrizione I programmi logici (DLP) sono un'altra proposta per l'integrazione di regole e OWL. Rispetto ai programmi di logica descrittiva, SWRL adotta un approccio di integrazione diametralmente opposto. DLP è l'intersezione di Horn logic e OWL, mentre SWRL è (più o meno) l'unione di essi. In DLP, il linguaggio risultante è una logica descrittiva dall'aspetto molto particolare e nel complesso un linguaggio piuttosto inespressivo.

Guarda anche

Riferimenti

link esterno