Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:miw:2009:miw09_swrltrans:prezentacja [2009/05/29 14:18]
jsi08 utworzono
pl:miw:2009:miw09_swrltrans:prezentacja [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +~~SLIDESHOW~~
  
 +====== MIW 2009 SWRLtrans ======
  
 +**Zrealizował**:​ [[mikelik@o2.pl|Michał Lesiak]] (4RI)
 +
 +===== Założenia =====
 +
 +W projekcie miał zostać stworzony wzorzec XSLT, który zamieni składnię XTTML na składnię [[http://​www.w3.org/​Submission/​SWRL/#​5|SWRL XML]], przy czym XML dla SWRL jest kombinacją [[http://​www.w3.org/​TR/​owl-xmlsyntax/​|OWL Web Ontology Language XML]] z [[http://​www.ruleml.org/​|RuleML XML]].\\
 +Ostatecznie został stworzony translator w prologu, gdyż XSLT okazał się nie wystarczającym narzędziem.\\
 +
 +Możliwa jest również zamiana XTTML na [[http://​www.w3.org/​Submission/​SWRL/#​6|RDF dla SWRL]], przy czym można tego dokonać korzystając ze wzorca [[http://​www.w3.org/​TR/​owl-xmlsyntax/​owlxml2rdf.xsl|owlxml2rdf.xsl]],​ który należałoby rozbudować.
 +
 +===== Wprowadzenie do SWRL ====
 +Semantic Web Rule Language (SWRL) jest propozycją języka, który bazuje na kombinacji OWL DL i OWL Lite, czyli podjęzyków [[http://​www.w3.org/​2001/​sw/​WebOnt/​|OWL Web Ontology Language]] z pojedynczymi/​binarnymi [[http://​en.wikipedia.org/​wiki/​Datalog|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 =====
 +
 +Składnia XML dla SWRL jest kombinacją [[http://​www.w3.org/​TR/​owl-xmlsyntax/​|OWL Web Ontology Language XML]] z [[http://​www.ruleml.org/​|RuleML XML]].
 +
 +Definiuje przestrzenie nazw swrlx i swrlb, importuje przestrzeń nazw ruleml i owl.
 +
 +Używane przestrzenie nazw:
 +|**Skrót**|**Przestrzeń nazw**|
 +|swrlx|http://​www.w3.org/​2003/​11/​swrlx|
 +|swrlb|http://​www.w3.org/​2003/​11/​swrlb|
 +|ruleml|http://​www.w3.org/​2003/​11/​ruleml|
 +|owl|http://​www.w3.org/​2003/​05/​owl-xml|
 +|xsd|http://​www.w3.org/​2001/​XMLSchema|
 +
 +
 +
 +=====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ący arkusz XSLT ([[http://​www.w3.org/​TR/​owl-xmlsyntax/​owlxml2rdf.xsl]]) może posłużyć jako podstawa do stworzenia mapowania na grafy RDF,
 +  * istniejące narzędzia do RuleML mogą być przystosowane do SWRL
 +
 +\\
 +=====Wady SWRL=====
 +  * 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,
 +  * nie można korzystać z predykatów definiowanych zewnętrznie jak ma to miejsce w RIF
 +  * SWRL nie obsługuje ani negacji, ani alternatywy [[http://​protege.cim3.net/​cgi-bin/​wiki.pl?​SWRLLanguageFAQ#​nid9L3|SWRL FAQ]].
 +W związku z czym został zaproponowany bardziej czytelny XML: SWRL presentation:​ [[http://​vistology.com/​papers/​SWRLp.PDF|SWRLp]]
 +
 +===== Elementy składni=====
 +====Ontology====
 +<​code><​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>​ </​code>​
 +
 +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====
 +<​code><​ruleml:​var>​xsd:​string</​ruleml:​var></​code>​
 +Definiuje istnienie zmiennej. Zapożyczono z przestrzeni nazw RuleML.
 +
 +===== ruleml: imp =====
 +<​code>​
 +<​ruleml:​imp>​
 +  Content: ( _rlab?, owlx:​Annotation*,​ _body, _head )
 +</​ruleml:​imp>​
 +</​code>​
 +
 +===== ruleml:​_rlab =====
 +<​code>​
 +<​ruleml:​imp>​
 +  Content: ( _rlab?, owlx:​Annotation*,​ _body, _head )
 +</​ruleml:​imp>​
 +</​code>​
 +===== ruleml:​_body =====
 +<​code>​
 +<​ruleml:​_body>​
 +  Content: ( swrlx:atom* )
 +</​ruleml:​_body>​
 +</​code>​
 +===== ruleml:​_head=====
 +<​code>​
 +<​ruleml:​_head>​
 +  Content: ( swrlx:atom* )
 +</​ruleml:​_head>​
 +</​code>​
 +
 +===== 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==
 +
 +
 +===== Fragment drzewa syntaktycznego =====
 +{{:​pl:​miw:​2009:​miw09_swrltrans:​swrlx.png|}}
 +===== Translacja XTT na SWRL =====
 +
 +W SWRL występuje ciąg aksjomatów (axioms) i faktów, gdzie aksjomaty to reguły i klasy obiektów. SWRL przewiduje tylko proste obliczenia matematyczne (builtIn),
 +ale poprawność syntaktyczna nie jest sprawdzana. Np. operacja "​builtIn(op:​numeric-add ?x 5)" (czyli: x + 5 zamiast np. 6 = x + 5) jest poprawna i zwraca wartość fałszu. SWRL bazuje na opisie i właściwościach klas obiektów.
 +To zdecydowanie odmienne podejście niż w przypadku XTT powoduje problemy w translacji między tymi językami.
 +
 +===== Problemy w translacji =====
 +
 +1. Możliwość stosowania tylko predykatów binarnych w SWRL (w XTT brak ograniczenia),​\\
 +2. Brak możliwości zagnieżdżania obliczeń matematycznych w SWRL,\\
 +3. Brak możliwości korzystania z predykatów zdefiniowanych zewnętrznie,​\\
 +4. SWRL nie obsługuje negacji ani alternatywy.
 +
 +===== Translacja identycznościowa =====
 +
 +Translacja, której wynikiem byłby XML SWRL taki, że interpreter SWRL dokonywałby działań (operacji) analogicznych do interpretera XTT.
 +Napisanie takich reguł translacji XTT -> SWRL przy pomocy XSLT jest bardzo trudne, o ile nie niemożliwe (XSLT jest nieodpowiednim do tego narzędziem,​ należałoby napisać własny translator).\\
 +===== Translacja identycznościowa - rozwiązanie =====
 +W tym podejściu rozwiązania problemów przedstawiałyby się nastepująco:​\\
 +ad 1. Rozwiązaniem jest stworzenie sztucznej relacji, która wiąże ze soba kolejne argumenty. [[#​przyklad_prolog_-_swrl|Przykład zastosowania sztucznej relacji '​reifiedRelation'​]]\\
 +ad 2. Rozwiązaniem jest stworzenie serii zmiennych pomocniczych,​ które przechowywałyby wyniki obliczeń kolejno w sobie zagnieżdżonych operacji.\\
 +ad 3. Brak istniejącego rozwiązania.\\
 +ad 4. Rozwiązaniem problemu alternatywy jest stworzenie tylu reguł, ile jest alternatyw. Każda reguła w poprzedniku posiadałaby inną alternatywę,​ w następniku znajdowałaby się natomiast ta sama dla wszystkich operacja (Zbiór operacji).\\
 +
 +===== Translacja obiektowa =====
 +Translacja, której wynikiem byłby XML SWRL taki, że interpreter SWRL stwierdziłby poprawność XML, ale nie byłby w stanie wykonać działań (operacji) analogicznie do tego jak zrobiłby to interpreter XTT.
 +Translacja powodowałaby przedstawienie obliczeń i operacji w postaci klas i obiektów.\\
 +
 +Najbardziej właściwa dla SWRLa wydaje się propozycja przedstawiania zmiennych/​operacji/​funkcji jako klas, posiadających odpowiednie własności:​ wartość (własność:​ "​value"​),​ operacja (własność zależna od operacji).\\
 +Przykładem operacji jest np. sumowanie, właściwość obiektu "​add"​ byłaby obiektem, która posiadałaby własność liczby (DataPropertyValue) lub przechowywałaby konieczne do wykonania obliczenia w postaci obiektu (ObjectPropertyValue) - kolejne zagnieżdżenie z kolejnymi własnościami "​value"​ lub operacjami.
 +\\
 +
 +===== Materiały =====
 +  * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]
 +  * [[http://​oxygen.informatik.tu-cottbus.de/​rewerse-i1/?​q=node/​15]]
 +  * [[http://​st.inf.tu-dresden.de/​OCLApps2006/​topic/​acceptedPapers/​04_Gasevic_OnInterchanging.pdf]]
 +  * [[http://​www.w3.org/​2005/​rules/​wg/​wiki/​Implementations/​SWRL|zależności RIF <-> SWRL]]
 +  * [[http://​protege.cim3.net/​cgi-bin/​wiki.pl?​SWRLLanguageFAQ]]
 +  * [[http://​vistology.com/​papers/​SWRLp.PDF|SWRL Presentation Proposal]]
 +  * [[pl:​miw:​miw08_hml_rules:​owl|SWRL na podstawie OWL - podstawy, przykłady]]
 +  * [[http://​www.oxygenxml.com/​|Oxygen - darmowy edytor XML]]
 +  * [[http://​www.w3.org/​2001/​03/​webdata/​xsv|Sprawdzanie poprawności XML]]
pl/miw/2009/miw09_swrltrans/prezentacja.1243599513.txt.gz · ostatnio zmienione: 2019/06/27 15:57 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0