Różnice

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

Odnośnik do tego porównania

pl:miw:miw08_ard_xml [2008/05/28 11:22]
miw
pl:miw:miw08_ard_xml [2017/07/17 10:08]
Linia 1: Linia 1:
-====== Opis ====== 
-[[mtomana@student.agh.edu.pl|Michał Tomana]] (4RI) 
- 
-Translacja ARDML do innych formatów z użyciem XSLT. Ontologie, graphviz. 
- 
-Historia [[pl:​miw:​miw08_ard_xml:​spotkania|spotkań]]. 
- 
- 
- 
-====== Projekt ====== 
-  * ARDML: [[pl:​miw:​miw08_ard_xml:​thermostat_ardml|Thermostat]] ​ (download: {{:​pl:​miw:​miw08_ard_xml:​thermostat_ardml.xml|thermostat_ardml.xml}}) 
-  * OWL dla ARD: [[pl:​miw:​miw08_ard_xml:​owl_abstract_syntax|abstract syntax]] 
-  * Przykład ontologii dla [[pl:​miw:​miw08_ard_xml:​owl_thermostat|termostatu]] 
- 
-  * XSLT for OWL: [[pl:​miw:​miw08_ard_xml:​ard_owl_xsl|ARDML->​OWL]] ​ (download: {{:​pl:​miw:​miw08_ard_xml:​ardml_owl.xml|ardml_owl.xsl}}) 
-  * XSLT for ARD graph: [[pl:​miw:​miw08_ard_xml:​ardml_ard_dot_xsl|ARDML->​(ARD)->​DOT]] ​ (download: {{:​pl:​miw:​miw08_ard_xml:​ardml_ard_dot.xml|ardml_ard_dot.xsl}}) 
-  * XSLT for TPH graph: [[pl:​miw:​miw08_ard_xml:​ardml_tph_dot_xsl|ARDML->​(TPH)->​DOT]] (download: {{:​pl:​miw:​miw08_ard_xml:​ardml_tph_dot.xml|ardml_tph_dot.xsl}}) 
- 
-  * Graph examples (using [[pl:​miw:​miw08_dokuviz|DokuViz plugin]]): [[pl:​miw:​miw08_ard_xml:​notatki|notatki]] 
- 
- 
- 
-====== Sprawozdanie ====== 
- 
-Celem projektu było przygotowanie ontologii dla ARD (zdefiniowanie klas i gramatyki), a następnie przygotowanie plików XSLT do transformacji z formatu ARDML do OWL oraz w kolejnym etapie do definicji grafów dla programu Graphviz. 
- 
-==== Ontologia ==== 
-W ARD występują dwa rodzaje elementów: atrybuty (attributes) i właściwości (properties). W ontologii odpowiadają one klasom: 
- 
-<​code>​ 
- ​Class(ard:​Attribute) 
- ​Class(ard:​Property) 
-</​code>​ 
- 
-Dla danego diagramu ARD można zdefiniować stałą listę atrybutów, które następnie są przyporządkowywane poszczególnym właściwościom. W tym celu potrzebne było zdefiniowanie relacji między tymi elementami: 
- 
-<​code>​ 
- ​ObjectProperty(ard:​is_attribute_of domain(ard:​Property) range(ard:​Attribute)) 
- ​ObjectProperty(ard:​has_attribute inverseOf(ard:​is_attribute_of)) 
-</​code>​ 
- 
-Pierwsza z nich, //​is_attribute_of//,​ jest związana z atrybutami (słowo kluczowe **range**) przypisywanymi do właściwości (słowo kluczone **domain**). Jako, że w języku OWL stosuje się opis relacji działających w obie strony, zdefiniowana została też relacja //​has_attribute//,​ która jest po prostu odwróceniem pierwszej (słowo kluczowe **inverseOf**). Takie podejście ułatwia pisanie ontologii oraz zwiększa czytelność. 
-W tej chwili można już zdefiniować listę elementów - atrybutów i właściwości - oraz powiązać je ze sobą. 
-Do pełnego opisu ARD brakuje nam jeszcze relacji wynikających z diagramów ARD/TPH. Pierwsza z nich to zależność poszczególnych właściwości:​ 
- 
-<​code>​ 
- ​ObjectProperty(ard:​depends_on domain(ard:​property) range(ard:​Property)) 
- ​ObjectProperty(ard:​is_prerequisite_for inverseOf(ard:​Property)) 
-</​code>​ 
- 
-Definiuje ona, która właściwość,​ od której zależy (//​depends_on//​). Dla przykładu termostatu właściwość //​thermostat_setting//​ jest zależna od właściwości //season//, która to jest zależna od //month//. Analogicznie jak w przypadku poprzedniej relacji, zdefiniowana została relacja przeciwna - //​is_prerequisite_for//​ (czyli wpływanie jednej właściwości na drugą). 
- 
-Ostatnią rzeczą jest zdefiniowanie,​ która właściwość została przetranformowana na inne właściwości:​ 
- 
-<​code>​ 
- ​ObjectProperty(ard:​transformed_into domain(ard:​Property) range(Property)) 
- ​ObjectProperty(ard:​transformed_from inverseOf(ard:​transformed_into)) 
-</​code>​ 
- 
-Dla wcześniej wspomnianego termostatu, taka relacja ma miejsce na przykład przy właściwości z atrybutem //Date//, która została przetransformowana (//​transformed_into//​) w inną właściwość zawierającą atrybuty //day//, //month// i //today//. Relacja przeciwna to //​transformed_from//​. 
- 
-Taka gramatyka jest w zupełności wystarczająca do opisu ARD (wraz z "​zaszytymi"​ oboma diagramami). Pełna ontologia ma więc postać: 
- 
-<​code>​ 
-[Namespaces:​ 
-  owl = http://​www.w3.org/​2002/​07/​owl#​ 
-  rdfs  = http://​www.w3.org/​2000/​01/​rdf-schema#​ 
-  rdf   = http://​www.w3.org/​1999/​02/​22-rdf-syntax-ns#​ 
-] 
- 
-Ontology( 
-  Class(ard:​Attribute) 
-  Class(ard:​Property) 
-  ​ 
-  ObjectProperty(ard:​is_attribute_of domain(ard:​Property) range(ard:​Attribute)) 
-  ObjectProperty(ard:​has_attribute inverseOf(ard:​is_attribute_of)) 
-  ​ 
-  ObjectProperty(ard:​depends_on domain(ard:​property) range(ard:​Property)) 
-  ObjectProperty(ard:​is_prerequisite_for inverseOf(ard:​Property)) 
-  ​ 
-  ObjectProperty(ard:​transformed_into domain(ard:​Property) range(Property)) 
-  ObjectProperty(ard:​transformed_from inverseOf(ard:​transformed_into)) 
-) 
-</​code>​ 
- 
-Tworzenie instancji poszczególnych klas ma następującą postać: 
- 
-<​code>​ 
-  Individual(ard:​prp_1 type(ard:​Property) 
-    value(ard:​has_attribute ard:att_1) 
-    value(ard:​has_attribute ard:att_2) 
-    value(ard:​transformed_from ard:prp_0)) 
-</​code>​ 
- 
-Powyżej zdefiniowany jest obiekt klasy //​Property//​ o nazwie //prp_1//. Ma on dwa atrybuty: //att_1// i //att_2//. Został przetransformowany z właściwości //prp_0//. 
-Pełny opis termostatu za pomocą powyższej ontologii można zobaczyć [[pl:​miw:​miw08_ard_xml:​owl_thermostat|tutaj]]. 
- 
- 
-==== XSLT - OWL ==== 
- 
-Transformacja ARDML do OWLa, za pomocą XSLT nie jest skomplikowanym procesem: 
-  * w pierwszej kolejności zapisywana jest definicja ontologii (klasy i relacje), 
-  * następnie tworzona jest lista atrybutów o odpowiednich nazwach i identyfikatorach,​ 
-  * kolejnym krokiem jest utowrzenie listy właściwości - i każdej z nich przypisane są odpowiednie atrybuty oraz zdefiniowane relacje zależności i transformacji. 
- 
-Pełny kod XSLT można obejrzeć [[pl:​miw:​miw08_ard_xml:​ard_owl_xsl|tutaj]]. 
- 
-==== XSLT - DOT ==== 
- 
-== ARD == 
- 
-By przejść z ARDML do opisu grafu ARD dla programu Graphviz wymagane są następujące kroki: 
-  * zapisanie nagłówka grafu, 
-  * iteracja po wszystkich elementach zależnych/​niezależnych (relacja zależności) by powstała ich pełna lista, 
-  * zdefiniowanie relacji między poszczególnymi encjami (zależność),​ 
-  * zapisanie końca grafu. 
- 
-Kod transformacji można obejrzeć [[pl:​miw:​miw08_ard_xml:​ardml_ard_dot_xsl|tutaj]]. 
- 
-== TPH == 
- 
-Konstrukcja grafu TPH odpowiada następującemu procesowi: 
-  * zapisanie nagłówka grafu, 
-  * iteracja po wszystkich właściwościach - a dla każdej z nich dodanie etykiety związanych z nią atrybutów, 
-  * zdefiniowanie relacji między poszczególnymi encjami (transformacja),​ 
-  * zapisanie końca grafu. 
- 
-Kod transformacji można obejrzeć [[pl:​miw:​miw08_ard_xml:​ardml_tph_dot_xsl|tutaj]]. Obrazki grafów można podglądnąć w [[pl:​miw:​miw08_ard_xml:​notatki|notatkach]] (wykorzystano plugin ###). 
- 
- 
- 
-====== Materiały ====== 
-[[http://​www.w3.org/​Style/​XSL/​|XSLT]] (tutoriale):​ 
-  * [[http://​zvon.org/​xxl/​XSLTutorial/​Output/​index.html|ZVON XSLT]] 
-  * [[http://​w3schools.com/​xsl/​default.asp|W3S XSLT]] 
-  * [[wp>​XSLT]],​ [[http://​www.w3.org/​TR/​xslt20/​|specyfikacja]]. 
- 
-[[http://​en.wikipedia.org/​wiki/​Web_Ontology_Language|OWL]]:​ 
-  * http://​www.cs.man.ac.uk/​~horrocks/​ISWC2003/​Tutorial/​ 
-  * http://​www.cs.man.ac.uk/​~horrocks/​ISWC2003/​Tutorial/​examples.pdf 
-  * http://​www.w3.org/​TR/​owl-semantics/​ 
-  * http://​www.w3.org/​TR/​owl-guide/​ 
-  * http://​protege.stanford.edu/​publications/​ontology_development/​ontology101-noy-mcguinness.html 
- 
-Narzędzia: 
-  * http://​protege.stanford.edu/​ 
- 
-ARD: 
-  * [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardformal-submitted|Towards Formalization of ARD+ Conceptual Design and Refinement Method]] 
-  * [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-ardprolog-submitted|An ARD+ Design and Visualization Toolchain Prototype in Prolog]] 
-  * [[hekate:​bib:​hekate_bibliography#​gjn2008flairs-userv-submitted|UServ Case Study, Conceptual Design with ARD+ Method]]. 
- 
- 
  
pl/miw/miw08_ard_xml.txt · ostatnio zmienione: 2019/06/27 15:50 (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