Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:2009:miw09_swrltrans [2009/04/03 14:04]
mikel problemy translacji xtt na swrl
pl:miw:2009:miw09_swrltrans [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
-====== ​Opis ====== +~~ODT~~ 
-Michał Lesiak <mikelik@o2.pl>+====== ​MIW 2009 SWRLtrans ​====== 
 + 
 +**Zrealizował**: [[mikelik@o2.pl|Michał Lesiak]] (4RI)
  
 :!::!: :!::!:
Linia 14: Linia 16:
 [[student:​msc2008_xml_knowledge_transformation:​xttml2rif]] [[student:​msc2008_xml_knowledge_transformation:​xttml2rif]]
  
-====== ​Spotkania ​====== +====== ​Prezentacja ​====== 
-===== 20090402 ==== +[[pl:miw:2009:​miw09_swrltrans:​prezentacja|Prezentacja wyników projektowych]].
-   * SWRL nie obsługuje ani negacji ani alternatywy. Problem zapisania regułyjeżeli x jest w zbiorze <1,2> lub 3 to (...) - konieczność rozbicia na 2 reguły (suma zbiorów odpowiada alternatywnym regułom) +
-   * '​Union'​ dotyczy tylko klas (nie liczb czy właściwości),​ to zapisu typu wyliczeniowego1 lub 2 lub 3 służy OneOf. +
-   * <range from="​1"​ to="​5"/>​ - w SWRL brak zmiennej typu '​range',​ należy stworzyć zmienną i operacjami matematycznymi (built-ins) sprawdzić: >= 1 oraz <= 5 +
-   * HQed - wersja z okreslonym XTT? +
-   * problem z zagnieżdżeniem - udało się zrobić zliczanie zagnieżdżeń,​ ciężko ze wstawianiem zmiennych temp* we właściwe miejsce (funkcja position() i brak odniesienia w przypadku dwóch reguł w xtt)+
  
-===== 20090319 ==== 
-   * [[#​przyklad_xtt_-_swrl]] 
-   * konieczność utworzenia zmiennych tymczasowych (u mnie: temp1), ponieważ nie można zagnieżdżać funkcji w funkcji, np. builtin sin w builtin add ([[http://​www.w3.org/​Submission/​SWRL/​swrlx.xsd|swrlx.xsd]]). 
-   * za pomocą transformacji XSL trzeba policzyć ilość zagnieżdżeń,​ ilość predykatów o arności więcej niż 2, (...) - skomplikowane (o ile wykonalne) - sugestia zmiany narzędzia z XSLT, może napisać rodzaj '​kompilatora'?​ 
  
-===== 20090305 ​==== +====== Spotkania ====== 
-  * Projekty bazujące na xtt2: ([[pl:miw:miw08_xtt_r2ml:translator|xtt to r2ml ]], [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​miw08_xtt_rif:​xtttorif.xml|xtt  to rif]])\\ +[[pl:miw:2009:miw09_swrltrans:spotkania|Notatki ze spotkań projektowych]].
-  * <​del>​Bazować jedynie na specyfikacji:​ [[hekatedev:​hqed:​xttml20]] i przykładzie z projektu [[pl:​miw:​miw08_xtt_xml]]:​ [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​thermostat2.0.xml|:​pl:​miw:​thermostat2.0.xml]] - wiarygodny thermostat2.0 czy stworzony przez studenta?</​del>​ - specyfikacja xtt na potrzeby hqed +
-  * jedyna poprawna specyfikacja XTT2: [[hekate:​xtt2]]+
  
-===== 20090219 ​==== +====== Projekt ​======
-  * konto +
-brak dostępu: +
-  * [[hekatedev:​xtt_rules]] +
-  * [[student:​msc2008_xml_knowledge_transformation:​xttml2rif]] +
-  * [[hekatedev:​xtt_minicases#​calculations_factorial]] - link z [[pl:​miw:​miw08_xtt_r2ml]] +
-  * [[hekatedev:​hqed:​xttml20]] - link z 080318 [[pl:​miw:​miw08_xtt_xml]] +
- +
-Czy jest przykładowy xttml, w którym byłyby wszystkie znaczniki?​ +
-np. [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​miw:​thermostat2.0.xml?​id=pl%3Amiw%3Amiw08_xtt_xml&​cache=cache|thermostat2.0]]+
  
-=== xtt -> r2ml -> swrl (niepolecane)=== +[[pl:miw:2009:miw09_swrltrans:​projekt|Implementacja translacji w prologu]].
-xtt -> r2ml: https://​ai.ia.agh.edu.pl/​wiki/​pl:miw:miw08_xtt_r2ml:translator+
  
-r2ml -> swrl: http://​www.eclipse.org/​m2m/​atl/​atlTransformations/#​R2ML2SWRL (przy pomocy transformacji ATL) +====== ​Sprawozdanie ​======
- +
-====== ​Projekt ​======+
  
 ===== Założenia ===== ===== Założenia =====
  
-W projekcie ​zostanie ​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]]+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ć. 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ć.
Linia 159: Linia 139:
  
  
 +==== Fragment drzewa syntaktycznego ====
 +{{:​pl:​miw:​2009:​miw09_swrltrans:​swrlx.png|}}
 ===== Translacja XTT na SWRL ===== ===== Translacja XTT na SWRL =====
  
Linia 167: Linia 149:
 ==== Problemy w translacji ==== ==== Problemy w translacji ====
  
-1. Możliwość stosowania tylko predykatów binarnych w SWRL (w XTT brak ograniczenia),​ +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, +2. Brak możliwości zagnieżdżania obliczeń matematycznych w SWRL,\\ 
-3. Brak możliwości korzystania z predykatów zdefiniowanych zewnętrznie,​+3. Brak możliwości korzystania z predykatów zdefiniowanych zewnętrznie,​\\
 4. SWRL nie obsługuje negacji ani alternatywy. 4. SWRL nie obsługuje negacji ani alternatywy.
  
Linia 177: Linia 159:
  
 Translacja, której wynikiem byłby XML SWRL taki, że interpreter SWRL dokonywałby działań (operacji) analogicznych do interpretera XTT. 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).+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).\\
  
-W tym podejściu rozwiązania problemów przedstawiałyby się nastepująco:​ +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. +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 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 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).+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).\\
  
 Przykład translacji identycznościowej:​ Przykład translacji identycznościowej:​
-[[#​Przykład XTT -> SWRL| Przykład XTT -> SWRL]]+[[#​Przykład ​translacji identycznościowej ​XTT -> SWRL| Przykład ​translacji identycznościowej ​XTT -> SWRL]]
  
 === Translacja obiektowa === === 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ć ​wszystkich ​działań (operacji) analogicznie do interpretera ​XTT. +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.\\ \\+Translacja powodowałaby przedstawienie obliczeń i operacji w postaci klas i obiektów.\\
  
-Najbardziej właściwa dla SWRLa wydaje się propozycja przedstawiania zmiennych jako klas, posiadających odpowiednie własności:​ wartość (własność:​ "​value"​),​ operacja (własność zależna od operacji).+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. 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.
 +\\
 +W takim przypadku również reguła byłaby obiektem, ponieważ interpreter SWRL i tak nie byłby w stanie sprawdzić założeń reguły (poprzednika,​ tezy), gdyż poprzednikiem byłaby po prostu klasa - czyli obiekt. ​
  
 +Przykład translacji obiektowej:
 +[[#​Przykład translacji obiektowej XTT -> SWRL| Przykład translacji obiektowej XTT -> SWRL]]
  
 ==== Przykład Prolog -> SWRL ==== ==== Przykład Prolog -> SWRL ====
Linia 274: Linia 260:
 [[pl:​miw:​miw08_hml_rules:​owl|Więcej przykładów SWRL (na podstawie OWL)]] [[pl:​miw:​miw08_hml_rules:​owl|Więcej przykładów SWRL (na podstawie OWL)]]
  
-==== Przykład XTT -> SWRL ===+==== Przykład ​translacji identycznościowej ​XTT -> SWRL ===
  
 XTT: [[hekate:​hekate_markup_language#​xttml]] XTT: [[hekate:​hekate_markup_language#​xttml]]
Linia 283: Linia 269:
  
  
-Propozycja SWRL: (sprawdzona poprawność składniowa przez [[http://​www.w3.org/​2001/​03/​webdata/​xsv]])+Propozycja ​translacji identycznościowej ​SWRL: (sprawdzona poprawność składniowa przez [[http://​www.w3.org/​2001/​03/​webdata/​xsv]])
 <​code>​ <​code>​
 <?xml version='​1.0'​ ?> <?xml version='​1.0'​ ?>
Linia 412: Linia 398:
 </​code>​ </​code>​
  
-====== ​Sprawozdanie ​====== +==== Przykład translacji obiektowej XTT -> SWRL === 
-====== ​Prezentacja ​======+ 
 +XTT: [[hekate:​hekate_markup_language#​xttml]] 
 + 
 +W skrócie:​\\ 
 +xtt_1:\\ 
 +rule_1: if att_0 in <​1,​5>​u{8} then att_1 att_0 + 1 and att_1 5 + sin(att_0)\\ 
 + 
 +Poniżej translacja tylko fragmentu XTT, gdyż reszta jest analogiczna:​ 
 + 
 +XTT: 
 +<​code>​ 
 +            <logop name="​in">​ 
 +                <attref ref="​att_0"/>​ 
 +                <​domain>​ 
 +                    <range from="​1"​ to="​5"/>​ 
 +                    <​value>​8</​value>​ 
 +                </​domain>​ 
 +            </​logop>​ 
 +</​code>​ 
 + 
 + 
 +SWRL: 
 +<​code>​ 
 +<​owlx:​Individual>​ 
 +        ​ 
 +        <​owlx:​ObjectPropertyValue owlx:​property="​logop">​ 
 +            <​owlx:​Individual>​ 
 +                <​owlx:​ObjectPropertyValue owlx:​property="​attribute">​ 
 +                    <​owlx:​Individual>​ 
 +                        <​owlx:​DataPropertyValue owlx:​property="​name">​ 
 +                            <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​in</​owlx:​DataValue>​  
 +                        </​owlx:​DataPropertyValue>​ 
 +                    </​owlx:​Individual>​ 
 +                </​owlx:​ObjectPropertyValue>​ 
 + 
 +            <​owlx:​ObjectPropertyValue owlx:​property="​attref">​ 
 +                <​owlx:​Individual>​ 
 +                    <​owlx:​ObjectPropertyValue owlx:​property="​attribute">​ 
 +                        <​owlx:​Individual>​ 
 +                            <​owlx:​DataPropertyValue owlx:​property="​ref">​ 
 +                                <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​in</​owlx:​DataValue>​  
 +                            </​owlx:​DataPropertyValue>​ 
 +                        </​owlx:​Individual>​ 
 +                    </​owlx:​ObjectPropertyValue>​ 
 +                </​owlx:​Individual>​ 
 +            </​owlx:​ObjectPropertyValue>​ 
 +                 
 +            <​owlx:​ObjectPropertyValue owlx:​property="​domain">​ 
 +                <​owlx:​Individual>​ 
 +                <​owlx:​ObjectPropertyValue owlx:​property="​range">​ 
 +                    <​owlx:​Individual>​ 
 +                        <​owlx:​ObjectPropertyValue owlx:​property="​attribute">​ 
 +                            <​owlx:​Individual>​ 
 +                                <​owlx:​DataPropertyValue owlx:​property="​from">​ 
 +                                    <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​1</​owlx:​DataValue>​  
 +                                </​owlx:​DataPropertyValue>​ 
 +                                <​owlx:​DataPropertyValue owlx:​property="​to">​ 
 +                                    <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​5</​owlx:​DataValue>​  
 +                                </​owlx:​DataPropertyValue>​ 
 +                            </​owlx:​Individual>​ 
 +                        </​owlx:​ObjectPropertyValue>​ 
 +                    </​owlx:​Individual>​ 
 +                </​owlx:​ObjectPropertyValue>​ 
 +                    <​owlx:​DataPropertyValue owlx:​property="​value">​ 
 +                        <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​8</​owlx:​DataValue>​  
 +                    </​owlx:​DataPropertyValue>​ 
 +                </​owlx:​Individual> ​               
 +            </​owlx:​ObjectPropertyValue>​ 
 +            </​owlx:​Individual>​ 
 +        </​owlx:​ObjectPropertyValue>​ 
 +     
 +    </​owlx:​Individual>​ 
 +</​code>​ 
 ====== Materiały ====== ====== Materiały ======
   * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]   * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]
pl/miw/2009/miw09_swrltrans.1238760290.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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