Różnice

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

Odnośnik do tego porównania

pl:miw:miw08_xtt_xml [2008/03/26 00:30]
miw
pl:miw:miw08_xtt_xml [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Opis ====== 
-Szymon Deja <​szydej@gmail.com>​ 
- 
-Translacja XTTML do innych formatów z użyciem XSLT. : ontologie (OWL), graphviz 
- 
-====== Spotkania ====== 
- 
-===== 080311 ===== 
-  * XSLT 
-  * obsługa XSD 
-  * repr. reguł w OWL, RIF? 
-  * gotowe transl xslt do owl 
-  * format graphviz: wizualizacja tablic :!: 
- 
- 
-===== 080318 ===== 
-  * próba translacji [[student:​xttml20|XTTML20]] do graphviza 
- 
-===== 080401 ===== 
-  * syntetyczny opis ograniczeń podejścia xttml->​gv (czego i dlaczego nie da się zrobić) 
-  * próba zrobienia tego w [[http://​www.w3.org/​Graphics/​SVG/​|SVG]] patrz FIXME proj z miw z zeszlego roku 
- 
- 
- 
- 
- 
-[[[[Internal Link]][[Internal Link]]]] 
- 
- 
-====== Projekt ====== 
- 
-Reprezentajca tabel w graphizie :  
- 
-<code graphviz>​ 
- 
-digraph structs { 
- node [shape=record];​ 
- ​struct1 [shape=record,​label="<​f0>​ left|<​f1>​ mid\ dle|<​f2>​ right"​];​ 
- ​struct2 [shape=record,​label="<​f0>​ one|<​f1>​ two"]; 
- ​struct3 [shape=record,​label="​hello\nworld |{ b |{c|<​here>​ d|e}| f}| g | h"]; 
- ​struct1 -> struct2; 
- ​struct1 -> struct3; 
-} 
- 
-</​code>​ 
- 
- 
-{{:​pl:​miw:​record.gif|:​pl:​miw:​record.gif}} 
- 
-Translacja ​ XTTML20 do graphviza ​ 
-  * Translacja dotml do grapviza (dot) {{:​pl:​miw:​dotml2dot.txt|dotml2dot.xsl}} 
-  * Translacja ​ XTTML20 do dotml (XSLT) ​ {{:​pl:​miw:​xtt2dot.txt|xtt2dotml.xsl}} 
- 
- 
- 
-<code xml> 
- 
- 
-<​xsl:​stylesheet version="​1.0"​ xmlns:​fn="​http://​www.w3.org/​2005/​xpath-functions"​ xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform">​ 
- <​xsl:​strip-space elements="​doc chapter section"/>​ 
- <​xsl:​output indent="​yes"​ method="​xml"/>​ 
- <​xsl:​template match="/">​ 
- <​graph xmlns="​http://​www.martin-loetzsch.de/​DOTML">​ 
- <​xsl:​for-each select="/​xttml/​xtt_list_table/​xtt_table">​ 
- <​xsl:​variable name="​tabela"​ select="​@name"/>​ 
- <​record>​ 
- <​xsl:​for-each select="​./​column_attributes/​ca">​ 
- <​xsl:​variable name="​col"​ select="​position()"/>​ 
- <​record>​ 
- <​xsl:​variable name="​kolumna"​ select="​."/>​ 
- <​xsl:​element name="​node">​ 
- <​xsl:​attribute name="​id">​555</​xsl:​attribute>​ 
- <​xsl:​attribute name="​label">​ 
- <​xsl:​value-of select="​."/>​ 
- </​xsl:​attribute>​ 
- </​xsl:​element>​ 
- <​xsl:​for-each select="​../​../​row">​ 
- <​xsl:​variable name="​i"​ select="​position()"/>​ 
- <​xsl:​for-each select="​cell[$col]">​ 
- <​xsl:​variable name="​id">​ 
- <​xsl:​value-of select="​$tabela"/>​ 
- <​xsl:​text>​_</​xsl:​text>​ 
- <​xsl:​value-of select="​$i"/>​ 
- <​xsl:​text>​_</​xsl:​text>​ 
- <​xsl:​value-of select="​$kolumna"/>​ 
- </​xsl:​variable>​ 
- <​xsl:​variable name="​label"​ select="​translate(translate(@content,'​{','​('​),'​}','​)'​)"/>​ 
- <​xsl:​choose>​ 
- <​xsl:​when test="​./​@operator='​e'">​ 
- <​node id="​{$id}"​ label="​= {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​ne'">​ 
- <​node id="​{$id}"​ label="​=! {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​g'">​ 
- <​node id="​{$id}"​ label="​gt;​ {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​ge'">​ 
- <​node id="​{$id}"​ label="​gt;​= {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​l'">​ 
- <​node id="​{$id}"​ label="​lt;​ {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​le'">​ 
- <​node id="​{$id}"​ label="​lt;​= {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​min'">​ 
- <​node id="​{$id}"​ label="​min {$label}"/>​ 
- </​xsl:​when>​ 
- <​xsl:​when test="​./​@operator='​in'">​ 
- <​node id="​{$id}"​ label="​in {$label}"/>​ 
- </​xsl:​when>​ 
- </​xsl:​choose>​ 
- </​xsl:​for-each>​ 
- </​xsl:​for-each>​ 
- </​record>​ 
- </​xsl:​for-each>​ 
- </​record>​ 
- </​xsl:​for-each>​ 
- <​xsl:​for-each select="//​xtt_list_connections/​xtt_connection">​ 
- <​xsl:​variable name="​tabfrom"​ select="​@source_table_name"/>​ 
- <​xsl:​variable name="​tabto"​ select="​@destination_table_name"/>​ 
- <​xsl:​variable name="​sr"​ select="​@source_row"/>​ 
- <​xsl:​variable name="​dr"​ select="​@destination_row"/>​ 
- <​xsl:​variable name="​srow"​ select="//​xtt_table[@name = $tabfrom]/​column_attributes/​ca[last()]"/>​ 
- <​xsl:​variable name="​drow"​ select="//​xtt_table[@name = $tabto]/​column_attributes/​ca[1]"/>​ 
- <​xsl:​variable name="​from">​ 
- <​xsl:​value-of select="​$tabfrom"/>​ 
- <​xsl:​text>​_</​xsl:​text>​ 
- <​xsl:​value-of select="​$sr + 1"/>​ 
- <​xsl:​text>​_</​xsl:​text>​ 
- <​xsl:​value-of select="​$srow"/>​ 
- </​xsl:​variable>​ 
- <​xsl:​variable name="​to">​ 
- <​xsl:​value-of select="​$tabto"/>​ 
- <​xsl:​text>​_</​xsl:​text>​ 
- <​xsl:​value-of select="​$dr + 1"/>​ 
- <​xsl:​text>​_</​xsl:​text>​ 
- <​xsl:​value-of select="​$drow"/>​ 
- </​xsl:​variable>​ 
- <​xsl:​element name="​edge">​ 
- <​xsl:​attribute name="​from">​ 
- <​xsl:​value-of select="​$from"/>​ 
- </​xsl:​attribute>​ 
- <​xsl:​attribute name="​to">​ 
- <​xsl:​value-of select="​$to"/>​ 
- </​xsl:​attribute>​ 
- <​xsl:​attribute name="​constraint">​ 
- <​xsl:​text>​false</​xsl:​text>​ 
- </​xsl:​attribute>​ 
- <​xsl:​attribute name="​tailport">​ 
- <​xsl:​text>:​e</​xsl:​text>​ 
- </​xsl:​attribute>​ 
- <​xsl:​attribute name="​headport">​ 
- <​xsl:​text>:​w</​xsl:​text>​ 
- </​xsl:​attribute>​ 
- </​xsl:​element>​ 
- </​xsl:​for-each>​ 
- </​graph>​ 
- </​xsl:​template>​ 
-</​xsl:​stylesheet>​ 
- 
- 
-</​code>​ 
- 
- 
- 
- 
-===== 080401 ===== 
- 
-xttml -> svg (XSL)  {{:​pl:​miw:​xttml2svg.xml|xttml2svg.xsl}} 
- 
- 
- 
-<code xml> 
-<​xsl:​stylesheet version="​1.0"​ xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ 
- 
-    xmlns="​http://​www.w3.org/​2000/​svg">​ 
-    <​xsl:​variable name="​temp"​ /> 
-    <​xsl:​output method="​xml"​ indent="​yes"​ omit-xml-declaration="​no"​ /> 
-    ​ 
-    <​xsl:​template match="/">​ 
-        <svg 
-            xmlns="​http://​www.w3.org/​2000/​svg"​ 
-            version="​1.0"​ 
-            width="​297mm"​ 
-            height="​420mm"​ 
-            id="​svg2">​ 
-            <​xsl:​apply-templates select="/​xttml/​xtt_list_table/​xtt_table"​ /> 
-            <​xsl:​apply-templates select="/​xttml/​xtt_list_connections/​xtt_connection"​ /> 
-        </​svg>​ 
-    </​xsl:​template>​ 
-    
-    <​xsl:​template match="​xtt_table">​ 
- 
-        <​xsl:​variable name="​xpos"​ select="​ ./​localization/​@xpos ​ "/> ​ 
-        <​xsl:​variable name="​ypos"​ select="​./​localization/​@ypos "/> ​ 
-          <​xsl:​variable name="​header"​ select="​./​localization/​@header_height "/> ​ 
- 
-        <​xsl:​for-each select="​column_attributes/​ca">​ 
-            <​xsl:​variable name="​col"​ select="​position()"/>​ 
-            <​xsl:​variable name="​x"​ select="​ $xpos + sum(../​../​localization/​col_widths/​cw[ position() &lt; $col])"/> ​ 
-            <​xsl:​variable name="​y"​ select="​ $ypos"/> ​ 
-            <​xsl:​variable name="​xdl"​ select="​../​../​localization/​col_widths/​cw[$col]"/> ​ 
- 
-            <rect x="​{$x}"​ y="{$y -$header}"​ width="​{$xdl}"​ height="​{$header}"​ 
-                style="​fill:​none;​stroke:#​0080c0;"/>​ 
-            ​ 
-            <​text ​ x="​{$x}"​ y="​{$y} " 
-                style="​font-size:​10pt;​font-weight:​bold;​text-anchor:​start;​font-family:​Courier New;">​ 
-                <​xsl:​value-of select="​."/></​text>​ 
-            ​ 
-        </​xsl:​for-each>​ 
-                <​xsl:​for-each select="​row">​ 
-                    <​xsl:​variable name="​row"​ select="​position()"/>​ 
-              ​ 
-                    <​xsl:​for-each select="​cell">​ 
-                        <​xsl:​variable name="​col"​ select="​position()"/>​ 
-                ​ 
-                        <​xsl:​variable name="​x"​ select="​ $xpos + sum(../​../​localization/​col_widths/​cw[ position() &lt; $col])"/> ​ 
-                        <​xsl:​variable name="​y"​ select="​ $ypos +$header+ sum(../​../​localization/​nrow_heights/​rh[ position() &lt; $row])"/> ​ 
-                        <​xsl:​variable name="​xdl"​ select="​../​../​localization/​col_widths/​cw[$col]"/> ​ 
-                        <​xsl:​variable name="​ydl"​ select="​../​../​localization/​nrow_heights/​rh[$row]"/> ​ 
-                    ​ 
-                        <rect x="​{$x}"​ y="{$y -$ydl}"​ width="​{$xdl}"​ height="​{$ydl}"​ 
-                            style="​fill:​none;​stroke:#​0080c0;"/>​ 
-                        ​ 
-                        <​text ​ x="​{$x}"​ y="​{$y} " 
-                            style="​font-size:​10pt;​font-weight:​normal;​text-anchor:​start;​font-family:​Courier New;">​ 
-                            <​xsl:​choose>​ 
-                                <​xsl:​when test="​./​@operator='​e'">​ 
-                                    <​xsl:​text>​=</​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​ne'">​ 
-                                    <​xsl:​text>​!=</​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​g'">​ 
-                                    <​xsl:​text>&​gt;</​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​ge'">​ 
-                                    <​xsl:​text>&​gt;​=</​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​l'">​ 
-                                    <​xsl:​text>​ &lt; </​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​le'">​ 
-                                    <​xsl:​text>​ &lt;= </​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​min'">​ 
-                                    <​xsl:​text>​ min </​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                <​xsl:​when test="​./​@operator='​in'">​ 
-                                    <​xsl:​text>​ in </​xsl:​text>​ 
-                                </​xsl:​when>​ 
-                                ​ 
-                            </​xsl:​choose>​ 
-                            <​xsl:​text>​ </​xsl:​text>​ 
-                            <​xsl:​value-of select="​@content"/></​text>​ 
-                    ​ 
-                  ​ 
-                    </​xsl:​for-each>​ 
-                </​xsl:​for-each> ​         ​ 
-    </​xsl:​template>​ 
-  
-  
-    <​xsl:​template match="​xtt_connection">​ 
-        ​ 
-        <​xsl:​variable name="​pozycja"​ select="​ position() ​ "/> ​ 
-        <​xsl:​variable name="​ile"​ select="​ last() ​ "/> ​ 
-        ​ 
-        <​xsl:​variable name="​stab"​ select="​@source_table_name"/> ​ 
-        <​xsl:​variable name="​dtab"​ select="​@destination_table_name"/> ​ 
-        <​xsl:​variable name="​srow"​ select="​@source_row +1 "/> ​ 
-        <​xsl:​variable name="​drow"​ select="​@destination_row ​ +1"/> ​ 
-        
-        <​xsl:​value-of select="​$drow"/>​ ::        <​xsl:​value-of select="​$srow"/>,:​ 
- 
-        <​xsl:​variable name="​x1"​ select=" ​ /​xttml/​xtt_list_table/​xtt_table[@name = $stab]/​localization/​@xpos ​ + sum(/​xttml/​xtt_list_table/​xtt_table[@name = $stab]/​localization/​col_widths/​cw[ position() &lt; last()+1])"/>​ 
-        <​xsl:​variable name="​y1"​ select="​ /​xttml/​xtt_list_table/​xtt_table[@name = $stab]/​localization/​@ypos ​ +/​xttml/​xtt_list_table/​xtt_table[@name = $stab]/​localization/​@header_height + 
-            sum(//​xtt_table[@name = $stab]/​localization/​nrow_heights/​rh[ position() &lt; $srow ]) -number( ( //​xtt_table[@name = $stab]/​localization/​nrow_heights/​rh[ $srow ])* 0.5)"/> ​ 
-        ​ 
-      
-        <​xsl:​variable name="​x2"​ select="​ /​xttml/​xtt_list_table/​xtt_table[@name = $dtab]/​localization/​@xpos ​ "/> 
-        <​xsl:​variable name="​y2"​ select="​ /​xttml/​xtt_list_table/​xtt_table[@name = $dtab]/​localization/​@ypos ​ +/​xttml/​xtt_list_table/​xtt_table[@name = $dtab]/​localization/​@header_height + 
-            sum(//​xtt_table[@name = $dtab]/​localization/​nrow_heights/​rh[ position() &lt; $drow]) - number( //​xtt_table[@name = $dtab]/​localization/​nrow_heights/​rh[ $drow] *0.5)"/> ​ 
-        ​ 
-        <​xsl:​variable name="​x"​ select="​number((($x2 - $x1) div ($ile + 1)) *($pozycja) +$x1 )"/>​ 
-        <​xsl:​variable name="​y"​ select="​ last() ​ "/> ​ 
-        ​ 
-        <​polyline points="​{$x1},​{$y1},​{$x2},​{$y2}"​ 
-            style="​fill:​white;​stroke:​red;​stroke-width:​1"/>​ 
-    </​xsl:​template>​ 
-  
- 
-    ​ 
-</​xsl:​stylesheet>​ 
- 
- 
- 
-</​code>​ 
- 
- 
- 
- 
-====== Sprawozdanie ====== 
-Opis ograniczeń podejścia xttml→gv ​ 
-  * Tekst w komurakch tabeli nie moze zawierać znaków : <, >, }, { 
-  * graviz nie radzi sobie z odpowiednim ustawieniem przy złożonych diagramach (źle rysuje polączenia miedzy tabelami) 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
- 
-====== 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]] 
- 
-[[http://​www.w3.org/​XML/​Schema| XSD]] (tutoriale):​ 
-  * [[http://​www.w3schools.com/​schema/​default.asp |W3S XSD]]  
- 
- 
-[[http://​www.w3.org/​2004/​OWL/​ |OWL ]]  
-  * [[http://​www.cs.man.ac.uk/​~horrocks/​ISWC2003/​Tutorial/​ |Tutorial]] 
-  * [[http://​www.jfsowa.com/​ontology/​ | ontologie ]] 
-  * [[http://​protege.stanford.edu/​publications/​ontology_development/​ontology101-noy-mcguinness.html| ontologie]] 
- 
-[[http://​www.w3.org/​2005/​rules/​wg/​wiki/​PRdialect/​Overview | RIF-PRD]] ​ Reguły w RIF 
- 
-[[http://​www.graphviz.org/​About.php|graphviz]] 
-  *[[http://​www.martin-loetzsch.de/​DOTML/​]] 
- 
-Gotowe tlanslatory XSLT 
- 
-  * [[http://​www.ag-nbi.de/​research/​owltrans/​]] 
- 
- 
-[[http://​www.w3schools.com/​svg/​default.asp| SVG tutorial ]] 
- 
  
pl/miw/miw08_xtt_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