[[
✎ pl:miw:2009:miw09_swrltrans
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Opis ====== Michał Lesiak <mikelik@o2.pl> :!::!: Work on the translation of [[hekate:XTT2]] to [[http://www.w3.org/Submission/SWRL/|SWRL]] using [[http://www.w3.org/TR/xslt|XSLT]]. [[pl:miw:miw08_xtt_rif]] [[student:msc2008_xml_knowledge_transformation:xttml2rif]] ====== Spotkania ====== ===== 20090402 ==== * SWRL nie obsługuje ani negacji ani alternatywy. Problem zapisania reguły: jeż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 wyliczeniowego: 1 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 ==== * 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: [[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 ==== * 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)=== 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) ====== Projekt ====== ===== 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]] 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 ==== //[[http://www.w3.org/Submission/SWRL/#1|Introduction]]// 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 ===== //[[http://www.w3.org/Submission/SWRL/#5|XML Concrete Syntax]]// 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** //[[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, * 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]] ==== 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== ===== 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.\\ 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 pokazuje rozwiązanie problemu translacji predykatów o arności większej niż 2. //[[http://vistology.com/papers/SWRLp.PDF|SWRL example]]//\\ Kod w Prologu: <code> inSupplyOfAt(Consumer,Resource,Time) :- reserve(Consumer,Resource,Time,Reserve) consumption(Consumer,Resource,Consumption) greaterThanOrEqual(Reserve,Consumption). </code> Składnia SWRL: <code> <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> </code> [[pl:miw:miw08_hml_rules:owl|Więcej przykładów SWRL (na podstawie OWL)]] ==== Przykład translacji identycznościowej 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)\\ Propozycja translacji identycznościowej SWRL: (sprawdzona poprawność składniowa przez [[http://www.w3.org/2001/03/webdata/xsv]]) <code> <?xml version='1.0' ?> <!DOCTYPE swrlx:Ontology [ <!ENTITY swrlb 'http://www.w3.org/2003/11/swrlb'> <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema'> <!ENTITY map 'http://www.daml.org/2001/06/map/map-ont#'> ]> <swrlx:Ontology xmlns:owlx="http://www.w3.org/2003/05/owl-xml" xmlns:swrlx="http://www.w3.org/2003/11/swrlx" xmlns:ruleml="http://www.w3.org/2003/11/ruleml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2003/11/swrlx http://www.ruleml.org/swrl/xsd/swrlx.xsd" > <owlx:Annotation> <owlx:Documentation> XTT to SWRL Translator</owlx:Documentation> </owlx:Annotation> <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 fragmentu XTT: "att_0 in <1,5>u{8}", gdyż całość jest analogiczna. <code> <owlx:Individual> <owlx:ObjectPropertyValue owlx:property="logop"> <owlx:Individual> <owlx:DataPropertyValue owlx:property="name"> <owlx:DataValue owlx:datatype="&xsd;string">in</owlx:DataValue> </owlx:DataPropertyValue> <owlx:ObjectPropertyValue owlx:property="attref"> <owlx:Individual> <owlx:DataPropertyValue owlx:property="ref"> <owlx:DataValue owlx:datatype="&xsd;string">in</owlx:DataValue> </owlx:DataPropertyValue> </owlx:Individual> </owlx:ObjectPropertyValue> <owlx:ObjectPropertyValue owlx:property="domain"> <owlx:Individual> <owlx:ObjectPropertyValue owlx:property="range"> <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: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> ====== Sprawozdanie ====== ====== Prezentacja ====== ====== 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.1239133163.txt.gz
· ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry