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/24 12:16]
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 ​====== 
-===== 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. +
-   * '​Union'​ dotyczy tylko klas (nie liczb czy właściwości),​ to zapisu typu wyliczeniowego1 lub 2 lub 3 służy OneOf.+
  
-===== 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:​ [[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 ​==== +====== 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]] +
-  * [[student:​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 154: 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 230: 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 239: 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 259: Linia 289:
     </​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 ruleml:href="rul_1"/+                            <owlx:DataValue owlx:​datatype="&​xsd;​string"​>in</owlx:DataValue>  
-            <owlx:Annotation> +                        </owlx:DataPropertyValue
-                ​<owlx:Documentation+                    </owlx:Individual
-                ​Uwzgledniac opis czy nie - np. przynaleznosc do tabeli -  Ta reguła dotyczy: if att_0 (1,5) +                </owlx:ObjectPropertyValue
-                 </owlx:Documentation+ 
-            </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">​ 
-                 +                                    <owlx:DataValue ​owlx:datatype="&​xsd;​string">5</owlx:DataValue>  
-            </​ruleml:​_head>​ +                                </owlx:DataPropertyValue
-        </​ruleml:​imp>​ +                            </owlx:​Individual>​ 
-         +                        </​owlx:​ObjectPropertyValue>​ 
-        ​<owlx:ObjectProperty ​owlx:name="table"/+                    </owlx:Individual>​ 
-        <owlx:ObjectProperty ​owlx:name="link"/>​ +                </owlx:ObjectPropertyValue
-         +                    <​owlx:​DataPropertyValue owlx:​property="​value">​ 
-        ​<owlx:Individual owlx:​name="​rul_1"​+                        <​owlx:​DataValue owlx:​datatype="&​xsd;​string">​8</​owlx:​DataValue>​  
-            <owlx:ObjectPropertyValue ​owlx:​property="​table">  +                    </​owlx:​DataPropertyValue>​ 
-                <owlx:Individual ​owlx:name="#xtt_1" ​/ +                </​owlx:​Individual              ​ 
-            ​</owlx:ObjectPropertyValue>  +            </​owlx:​ObjectPropertyValue>​ 
-            <owlx:ObjectPropertyValue owlx:​property="​link"​>  +            ​</​owlx:​Individual>​ 
-                <​owlx:​Individual ​owlx:​name="#​xtt_1"​ />  +        ​</​owlx:​ObjectPropertyValue>​ 
-            </​owlx:​ObjectPropertyValue>​  +     
-            <!--  ​owlx:type owlx:name="​typu_np._link"​ - jakis typ obiektu czyli klasa" /> --+    </owlx:Individual>
-            <​!-- 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>​ +
-         +
-         +
-</swrlx:Ontology>+
 </​code>​ </​code>​
  
-====== Sprawozdanie ====== 
-====== Prezentacja ====== 
 ====== Materiały ====== ====== Materiały ======
   * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]   * [[http://​www.w3.org/​Submission/​SWRL/​|SWRL]]
pl/miw/2009/miw09_swrltrans.1237893373.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