To jest stara wersja strony!
Opis
Spotkania
20090305
20090219
brak dostępu:
Czy jest przykładowy xttml, w którym byłyby wszystkie znaczniki?
np. thermostat2.0
xtt -> r2ml -> swrl (niepolecane)
Projekt
Założenia
Wprowadzenie do SWRL
Introduction
Semantic Web Rule Language (SWRL) jest propozycją języka, który bazuje na kombinacji OWL DL i OWL Lite, czyli podjęzyków OWL Web Ontology Language z pojedynczymi/binarnymi datalogami języka RuleML.
Propozycja rozszerza zbiór aksjomatów OWL tak, by zawierał reguły podobne do reguł Horna. Reguły te mogą więc być łączone z bazą wiedzy OWL.
Reguły są przedstawiane w formie implikacji: poprzednik („body”) i następnik („head”), z których każdy może składać się z zera lub więcej atomów. Implikacja w przypadku pustego poprzednika jest traktowana jako zawsze prawdziwa, a w przypadku pustego następnika jest traktowana jako zawsze fałszywa. Wiele atomów jest traktowanych jako koniunkcja.
Reguła z koniunkcją atomów w następniku jest równoważna koniunkcjom reguł, w których następnikami są pojedyncze atomy.
Składnia XML
XML Concrete Syntax
Składnia XML dla SWRL jest kombinacją OWL Web Ontology Language XML z RuleML XML.
Definiuje przestrzenie nazw swrlx i swrlb, importuje przestrzeń nazw ruleml i owl.
Używane przestrzenie nazw:
Zalety SWRL
klasy OWL (np. opisy) mogą być używane jako predykaty w regułach,
reguły i aksjomaty ontologii mogą być dowolnie mieszane,
-
istniejące narzędzia do RuleML mogą być przystosowane do SWRL
Wady SWRL
http://vistology.com/papers/SWRLp.PDF
konieczność transformacji na predykaty binarne (SWRL jest zgodne z OWL, który zabrania używania predykatów złożonych („higher-order”). Zwiększa nieczytelność, wydłuża XML,
rozróżnianie predykatów reprezentujących: classAtom, individualPropertyAtom, datavaluedPropertyAtom. Wydłuża XML,
mieszanie ruleml, swrlx, swrlb i owlx. W każdym elemencie trzeba określić przestrzeń nazw. Wydłuża XML.
W związku z czym został zaproponowany bardziej czytelny XML: SWRL presentation: SWRLp
Elementy składni
Ontology
<swrlx:Ontology
swrlx:name = xsd:anyURI
>
Content: (owlx:VersionInfo | owlx:PriorVersion | owlx:BackwardCompatibleWith |
owlx:IncompatibleWith | owlx:Imports | owlx:Annotation |
owlx:Class[axiom] | owlx:EnumeratedClass(D,F) |
owlx:SubClassOf(D,F) | owlx:EquivalentClasses | owlx:DisjointClasses(D,F) |
owlx:DatatypeProperty | owlx:ObjectProperty |
owlx:SubPropertyOf | owlx:EquivalentProperties |
owlx:Individual[axiom] | owlx:SameIndividual | owlx:DifferentIndividuals |
ruleml:imp[axiom] | ruleml:var[axiom])*
</swrlx:Ontology>
Główny element „Ontology” w stosunku do składni prezentacji OWL XML został rozszerzony o aksjomaty „imp” („implication” - reguła implikacyjna) oraz „var” („variable” - deklaracja zmiennej)
ruleml: var
<ruleml:var>xsd:string</ruleml:var>
Definiuje istnienie zmiennej. Zapożyczono z przestrzeni nazw RuleML.
ruleml: imp
<ruleml:imp>
Content: ( _rlab?, owlx:Annotation*, _body, _head )
</ruleml:imp>
ruleml:_rlab
<ruleml:imp>
Content: ( _rlab?, owlx:Annotation*, _body, _head )
</ruleml:imp>
ruleml:_body
<ruleml:_body>
Content: ( swrlx:atom* )
</ruleml:_body>
ruleml:_head
<ruleml:_head>
Content: ( swrlx:atom* )
</ruleml:_head>
Atomy
Mogą być pojedynczymi predykatami (klasami), binarnymi predykatami (właściwościami), równościami lub nierównościami.
swrlx:classAtom
swrlx:datarangeAtom
swrlx:individualPropertyAtom
swrlx:datavaluedPropertyAtom
swrlx:sameIndividualAtom
swrlx:differentIndividualsAtom
swrlx:builtinAtom
Przykład
SWRL example
Kod w Prologu:
inSupplyOfAt(Consumer,Resource,Time)
:- reserve(Consumer,Resource,Time,Reserve)
consumption(Consumer,Resource,Consumption)
greaterThanOrEqual(Reserve,Consumption).
Składnia SWRL:
<ruleml:imp>
<ruleml:_head>
<swrlx:classAtom>
<owlx:Class owlx:name="InSupplyOfAt"/>
<ruleml:var>?reifiedRelation</ruleml:var>
</swrlx:classAtom>
<swrlx:individualPropertyAtom swrlx:property="consumer">
<ruleml:var>?reifiedRelation</ruleml:var>
<ruleml:var>?consumer</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:individualPropertyAtom swrlx:property="resource">
<ruleml:var>?reifiedRelation</ruleml:var>
<ruleml:var>?resource</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:datavaluedPropertyAtom swrlx:property="dateTime">
<ruleml:var>?reifiedRelation</ruleml:var>
<ruleml:var>?time</ruleml:var>
</swrlx:datavaluedPropertyAtom>
</ruleml:_head>
<ruleml:_body>
<swrlx:individualPropertyAtom swrlx:property="reserve">
<ruleml:var>?consumer</ruleml:var>
<ruleml:var>?reserve</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:individualPropertyAtom swrlx:property="resource">
<ruleml:var>?reserve</ruleml:var>
<ruleml:var>?resource</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:datavaluedPropertyAtom swrlx:property="dateTime">
<ruleml:var>?reserve</ruleml:var>
<ruleml:var>?time</ruleml:var>
</swrlx:datavaluedPropertyAtom>
<swrlx:individualPropertyAtom swrlx:property="quantity">
<ruleml:var>?reserve</ruleml:var>
<ruleml:var>?quantity</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:datavaluedPropertyAtom swrlx:property="amount">
<ruleml:var>?quantity</ruleml:var>
<ruleml:var>?amount</ruleml:var>
</swrlx:datavaluedPropertyAtom>
<swrlx:individualPropertyAtom swrlx:property="consumption">
<ruleml:var>?consumer</ruleml:var>
<ruleml:var>?consumption</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:individualPropertyAtom swrlx:property="consumptionType">
<ruleml:var>?consumption</ruleml:var>
<ruleml:var>?resource</ruleml:var>
</swrlx:individualPropertyAtom>
<swrlx:datavaluedPropertyAtom swrlx:property="consumptionRate">
<ruleml:var>?consumption</ruleml:var>
<ruleml:var>?rate</ruleml:var>
</swrlx:datavaluedPropertyAtom>
<swrlx:builtinAtom swrlx:builtin="&swrlb;greaterThanOrEqual">
<ruleml:var>?amount</ruleml:var>
<ruleml:var>?rate</ruleml:var>
<ruleml:var/>
</swrlx:builtinAtom>
</ruleml:_body>
</ruleml:imp>
Więcej przykładów SWRL (na podstawie OWL)
Sprawozdanie
Prezentacja
Materiały