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/03/19 21:51]
mikel
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 ​====== 
-===== 20090319 ==== +[[pl:miw:2009:​miw09_swrltrans:​prezentacja|Prezentacja wyników projektowych]].
-   ​* ​[[#​przyklad_xtt_-_swrl]] +
-   * konieczność utworzenia zmiennych tymczasowych (u mnietemp1), 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 ==== 
-  * 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]])\\ 
-  * <​del>​Bazować jedynie na specyfikacji:​ [[student:​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 ​==== +====== Spotkania ====== 
-  * konto +[[pl:miw:2009:miw09_swrltrans:spotkania|Notatki ze spotkań projektowych]].
-brak dostępu: +
-  * [[hekatedev:​xtt_rules]] +
-  * [[student:​msc2008_xml_knowledge_transformation:​xttml2rif]] +
-  * [[hekatedev:​xtt_minicases#​calculations_factorial]] - link z [[pl:miw:miw08_xtt_r2ml]] +
-  * [[student:xttml20]] - link z 080318 [[pl:miw:miw08_xtt_xml]]+
  
-Czy jest przykładowy xttml, w którym byłyby wszystkie znaczniki?​ +====== Projekt ======
-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 90: Linia 77:
   * mieszanie ruleml, swrlx, swrlb i owlx. W każdym elemencie trzeba określić przestrzeń nazw. 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 [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-dtb/#​Appendix:​_Schemas_for_Externally_Defined_Terms]].   * nie można korzystać z predykatów definiowanych zewnętrznie jak ma to miejsce w RIF [[http://​www.w3.org/​2005/​rules/​wg/​draft/​rif-dtb/#​Appendix:​_Schemas_for_Externally_Defined_Terms]].
 +  * 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]] W związku z czym został zaproponowany bardziej czytelny XML: SWRL presentation:​ [[http://​vistology.com/​papers/​SWRLp.PDF|SWRLp]]
Linia 149: Linia 137:
 ==swrlx:​differentIndividualsAtom== ==swrlx:​differentIndividualsAtom==
 ==swrlx:​builtinAtom== ==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.
 +
 +==== Rodzaje podejść ====
 +
 +=== 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).\\
 +
 +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).\\
 +
 +Przykład translacji identycznościowej:​
 +[[#​Przykład translacji identycznościowej XTT -> SWRL| Przykład translacji identycznościowej XTT -> SWRL]]
 +
 +=== 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.
 +\\
 +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 ====
 +
 +Przykład pokazuje rozwiązanie problemu translacji predykatów o arności większej niż 2.
 +
 //​[[http://​vistology.com/​papers/​SWRLp.PDF|SWRL example]]//​\\ //​[[http://​vistology.com/​papers/​SWRLp.PDF|SWRL example]]//​\\
 Kod w Prologu: Kod w Prologu:
Linia 225: 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 234: Linia 269:
  
  
-Propozycja SWRL:+Propozycja ​translacji identycznościowej ​SWRL: (sprawdzona poprawność składniowa przez [[http://​www.w3.org/​2001/​03/​webdata/​xsv]])
 <​code>​ <​code>​
-<?xml version="1.0" encoding="​UTF-8"​?>+<?xml version='1.0' ​?>
 <​!DOCTYPE swrlx:​Ontology [ <​!DOCTYPE swrlx:​Ontology [
 <!ENTITY swrlb '​http://​www.w3.org/​2003/​11/​swrlb'>​ <!ENTITY swrlb '​http://​www.w3.org/​2003/​11/​swrlb'>​
-<!ENTITY xsd '​http://​www.w3.org/​2001/​XMLSchema'>​+<!ENTITY xsd '​http://​www.w3.org/​2001/​XMLSchema'> ​  
 +<!ENTITY map '​http://​www.daml.org/​2001/​06/​map/​map-ont#​'>
 ]> ]>
  
Linia 247: Linia 283:
     xmlns:​ruleml="​http://​www.w3.org/​2003/​11/​ruleml"​     xmlns:​ruleml="​http://​www.w3.org/​2003/​11/​ruleml"​
     xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance"​     xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance"​
-    xsi:​schemaLocation="​http://​www.w3.org/​2003/​11/​swrlx http://www.w3.org/Submission/SWRL/​swrlx.xsd">​+    xsi:​schemaLocation="​http://​www.w3.org/​2003/​11/​swrlx http://www.ruleml.org/swrl/xsd/​swrlx.xsd"​ 
 +    ​>
     <​owlx:​Annotation>​     <​owlx:​Annotation>​
         <​owlx:​Documentation>​ XTT to SWRL Translator</​owlx:​Documentation>​         <​owlx:​Documentation>​ XTT to SWRL Translator</​owlx:​Documentation>​
     </​owlx:​Annotation>​     </​owlx:​Annotation>​
     <​owlx:​VersionInfo>​v 1.0 2009/03/15 Michal Lesiak mikelik@o2.pl</​owlx:​VersionInfo>​     <​owlx:​VersionInfo>​v 1.0 2009/03/15 Michal Lesiak mikelik@o2.pl</​owlx:​VersionInfo>​
 +    ​
 +    <​owlx:​ObjectProperty owlx:​name="​table"/>​
 +    <​owlx:​ObjectProperty owlx:​name="​link"/>​
 +    ​
 +    <​ruleml:​var>​att_0</​ruleml:​var>​
 +    <​ruleml:​var>​att_1</​ruleml:​var>​
 +    <​ruleml:​var>​temp1</​ruleml:​var>​
 +    ​
 +    <​ruleml:​imp>​
 +        <​ruleml:​_rlab ruleml:​href="​rul_1a"/>​
 +        <​owlx:​Annotation>​
 +            <​owlx:​Documentation>​
 +                Ta reguła dotyczy: if att_0 nalezy do zbioru (1,5)
 +            </​owlx:​Documentation>​
 +        </​owlx:​Annotation>​
 +        <​ruleml:​_body>​
 +            <​swrlx:​builtinAtom ​ swrlx:​builtin="&​swrlb;#​greaterThanOrEqual">​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +                <​owlx:​DataValue owlx:​datatype="&​xsd;#​int">​1</​owlx:​DataValue>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +            <​swrlx:​builtinAtom ​ swrlx:​builtin="&​swrlb;#​lessThanOrEqual">​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +                <​owlx:​DataValue owlx:​datatype="&​xsd;#​int">​5</​owlx:​DataValue>​
 +            </​swrlx:​builtinAtom>​
 +        </​ruleml:​_body>​
 +        <​ruleml:​_head>​
 +            <​swrlx:​builtinAtom swrlx:​builtin="&​swrlb;#​add">​
 +                <​ruleml:​var>​att_1</​ruleml:​var>​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +                <​owlx:​DataValue owlx:​datatype="&​xsd;#​int">​1</​owlx:​DataValue>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +            <​swrlx:​builtinAtom swrlx:​builtin="&​swrlb;#​sin">​
 +                <​ruleml:​var>​temp1</​ruleml:​var>​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +            <​swrlx:​builtinAtom swrlx:​builtin="&​swrlb;#​add">​
 +                <​ruleml:​var>​att_1</​ruleml:​var>​
 +                <​owlx:​DataValue owlx:​datatype="&​xsd;#​int">​5</​owlx:​DataValue>​
 +                <​ruleml:​var>​temp1</​ruleml:​var>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +        </​ruleml:​_head>​
 +    </​ruleml:​imp>​
 +    ​
 +    <​owlx:​Individual owlx:​name="​rul_1a">​
 +        <​owlx:​ObjectPropertyValue owlx:​property="​table"> ​
 +            <​owlx:​Individual owlx:​name="#​xtt_1"​ /> 
 +        </​owlx:​ObjectPropertyValue> ​
 +        <​owlx:​ObjectPropertyValue owlx:​property="​link"> ​
 +            <​owlx:​Individual owlx:​name="#​xtt_1"​ /> 
 +        </​owlx:​ObjectPropertyValue> ​
 +        <​!-- ​ owlx:type owlx:​name="​typu_np._link"​ - jakis typ obiektu czyli klasa" /> -->
 +        <!-- może być tez wartość typu string
 +            <​owlx:​DataPropertyValue owlx:​property="​link">​
 +            <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​xtt_1</​owlx:​DataValue> ​
 +            </​owlx:​DataPropertyValue>​ -->
 +    </​owlx:​Individual>​
 +    ​
 +    <​ruleml:​imp>​
 +        <​ruleml:​_rlab ruleml:​href="​rul_1b"/>​
 +        <​owlx:​Annotation>​
 +            <​owlx:​Documentation>​
 +                Ta reguła dotyczy: if att_0 jest rowne 8
 +            </​owlx:​Documentation>​
 +        </​owlx:​Annotation>​
 +        <​ruleml:​_body>​
 +            <​swrlx:​datarangeAtom> ​
 +                <​owlx:​OneOf>​
 +                    <​owlx:​DataValue owlx:​datatype="&​xsd;​int">​8</​owlx:​DataValue>​
 +                </​owlx:​OneOf>​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +            </​swrlx:​datarangeAtom> ​
 +        </​ruleml:​_body>​
 +        <​ruleml:​_head>​
 +            <​swrlx:​builtinAtom swrlx:​builtin="&​swrlb;#​add">​
 +                <​ruleml:​var>​att_1</​ruleml:​var>​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +                <​owlx:​DataValue owlx:​datatype="&​xsd;#​int">​1</​owlx:​DataValue>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +            <​swrlx:​builtinAtom swrlx:​builtin="&​swrlb;#​sin">​
 +                <​ruleml:​var>​temp1</​ruleml:​var>​
 +                <​ruleml:​var>​att_0</​ruleml:​var>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +            <​swrlx:​builtinAtom swrlx:​builtin="&​swrlb;#​add">​
 +                <​ruleml:​var>​att_1</​ruleml:​var>​
 +                <​owlx:​DataValue owlx:​datatype="&​xsd;#​int">​5</​owlx:​DataValue>​
 +                <​ruleml:​var>​temp1</​ruleml:​var>​
 +            </​swrlx:​builtinAtom>​
 +            ​
 +        </​ruleml:​_head>​
 +    </​ruleml:​imp>​
 +    ​
 +    <​owlx:​Individual owlx:​name="​rul_1b">​
 +        <​owlx:​ObjectPropertyValue owlx:​property="​table"> ​
 +            <​owlx:​Individual owlx:​name="#​xtt_1"​ /> 
 +        </​owlx:​ObjectPropertyValue> ​
 +        <​owlx:​ObjectPropertyValue owlx:​property="​link"> ​
 +            <​owlx:​Individual owlx:​name="#​xtt_1"​ /> 
 +        </​owlx:​ObjectPropertyValue> ​
 +    </​owlx:​Individual>​
 +    ​
 +</​swrlx:​Ontology>​
 +</​code>​
 +
 +==== Przykład translacji obiektowej XTT -> SWRL ===
 +
 +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>​
         ​         ​
-        <ruleml:var>​att_0</​ruleml:var> +        <owlx:ObjectPropertyValue owlx:property="logop">​ 
-        <​ruleml:​var>​att_1</​ruleml:​var>​ +            <owlx:Individual
-        <​ruleml:​var>​temp1</​ruleml:​var>​ +                <owlx:ObjectPropertyValue owlx:​property="​attribute"​
-         +                    <owlx:Individual
-        <​ruleml:​imp>​ +                        <owlx:DataPropertyValue owlx:property="name">​ 
-            <​ruleml:​_rlab name="rul_1">                 +                            <​owlx:​DataValue owlx:​datatype="&​xsd;​string">in</​owlx:​DataValue>​  
-            </​ruleml:​_rlab+                        </owlx:DataPropertyValue
-            <owlx:Annotation+                    </owlx:Individual
-                ​Uwzgledniac opis? np. przynaleznosc do tabeli +                </owlx:ObjectPropertyValue
-                Ta reguła dotyczy: if att_0 [1,5]             + 
-            ​</owlx:Annotation+            ​<owlx:ObjectPropertyValue ​owlx:property="attref"> 
-            <ruleml:_body+                ​<owlx:Individual
-                <swrlx:builtinAtom ​ swrlx:builtin="&​swrlb;#​greaterThanOrEqual">​ +                    <owlx:ObjectPropertyValue owlx:​property="​attribute"​
-                    <​ruleml:​var>​att_0</​ruleml:​var>​ +                        <owlx:Individual
-                    ​<​owlx:​DataValue owlx:​datatype="&​xsd;​#int">1</​owlx:​DataValue>​ +                            <owlx:DataPropertyValue owlx:​property="​ref"​
-                </swrlx:builtinAtom+                                <owlx:DataValue owlx:datatype="&​xsd;string">in</owlx:DataValue>  
-                 +                            </owlx:DataPropertyValue> 
-                ​<swrlx:builtinAtom ​ swrlx:​builtin="&​swrlb;#​lessThanOrEqual"​+                        ​</owlx:Individual
-                    <​ruleml:​var>​att_0</ruleml:var+                    </owlx:ObjectPropertyValue> 
-                    <owlx:DataValue ​owlx:datatype="&​xsd;#​int">5</owlx:DataValue+                ​</owlx:Individual
-                </swrlx:builtinAtom+            </owlx:ObjectPropertyValue>
-            </ruleml:_body+
-            <ruleml:_head+
-                <swrlx:builtinAtom swrlx:builtin="&​swrlb;#add"> +
-                    <​ruleml:​var>​att_1</ruleml:var+
-                    <ruleml:var>att_0</ruleml:var+
-                    <owlx:DataValue owlx:​datatype="&​xsd;#​int"​>1</owlx:DataValue+
-                </swrlx:builtinAtom>+
                 ​                 ​
-                ​<swrlx:builtinAtom swrlx:builtin="&​swrlb;#​sin"+            ​<owlx:ObjectPropertyValue owlx:property="domain">​ 
-                    <​ruleml:​var>​temp1</​ruleml:​var>​ +                <owlx:Individual
-                    <​ruleml:​var>​att_0</​ruleml:​var+                <owlx:ObjectPropertyValue owlx:property="range">​ 
-                </swrlx:builtinAtom> +                    <owlx:Individual
-                ​ +                        <owlx:ObjectPropertyValue ​owlx:property="attribute"> 
-                <swrlx:builtinAtom swrlx:builtin="&​swrlb;#​add">​ +                            ​<owlx:Individual
-                    <ruleml:var>​att_1</​ruleml:​var+                                <owlx:DataPropertyValue ​owlx:property="from">​ 
-                    <owlx:DataValue ​owlx:datatype="&​xsd;#​int">5</owlx:DataValue+                                    <owlx:DataValue ​owlx:datatype="&​xsd;​string">1</owlx:​DataValue>  
-                    <​ruleml:​var>​temp1</​ruleml:​var>​ +                                </owlx:DataPropertyValue
-                </​swrlx:​builtinAtom>​ +                                <owlx:DataPropertyValue ​owlx:​property="​to">​ 
-            </​ruleml:​_head>​ +                                    <owlx:DataValue ​owlx:datatype="&​xsd;​string">5</owlx:DataValue>  
-        </​ruleml:​imp>​ +                                </owlx:DataPropertyValue
-         +                            </owlx:​Individual>​ 
-        ​<owlx:ObjectProperty ​owlx:name="table"/+                        </​owlx:​ObjectPropertyValue>​ 
-        <owlx:ObjectProperty ​owlx:name="link"/>​ +                    </owlx:Individual>​ 
-         +                </owlx:ObjectPropertyValue
-        ​<owlx:Individual owlx:​name="​rul_1"​+                    <​owlx:​DataPropertyValue owlx:​property="​value">​ 
-            <owlx:ObjectPropertyValue ​owlx:​property="​table">  +                        <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​8</​owlx:​DataValue>​  
-                <owlx:Individual ​owlx:name="#xtt_1" ​/ +                    </​owlx:​DataPropertyValue>​ 
-            ​</owlx:ObjectPropertyValue>  +                </​owlx:​Individual              ​ 
-            <owlx:ObjectPropertyValue owlx:​property="​link"​>  +            </​owlx:​ObjectPropertyValue>​ 
-                <​owlx:​Individual ​owlx:​name="#​xtt_1"​ />  +            ​</​owlx:​Individual>​ 
-            </​owlx:​ObjectPropertyValue>​  +        ​</​owlx:​ObjectPropertyValue>​ 
-            <!--  ​owlx:type owlx:name="​typu_np._link"​ - jakis typ obiektu czyli klasa" /> --+     
-            <​!-- może być tez wartość typu string +    </owlx:Individual>
-                ​<​owlx:​DataPropertyValue owlx:​property="​link">​ +
-                <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​xtt_1</​owlx:​DataValue>​  +
-                </​owlx:​DataPropertyValue> ​--+
-        </​owlx:​Individual>​ +
-         +
-         +
-</swrlx:Ontology>+
 </​code>​ </​code>​
  
-====== Sprawozdanie ====== 
-====== Prezentacja ====== 
 ====== Materiały ====== ====== Materiały ======
   * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]   * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]
Linia 326: Linia 481:
   * [[http://​vistology.com/​papers/​SWRLp.PDF|SWRL Presentation Proposal]]   * [[http://​vistology.com/​papers/​SWRLp.PDF|SWRL Presentation Proposal]]
   * [[pl:​miw:​miw08_hml_rules:​owl|SWRL na podstawie OWL - podstawy, przykłady]]   * [[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.1237495910.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