====== Programowanie komunikacji człowiek - komputer ====== [[http://www.architag.com/xray/|Narzędzie XRAY]] * XML * DTD * XLink * Xpointer * XLS * XML Namespaces * XML Schema Odsyłacze: * XLink * XPath * Xpointer Prezentacja, przetwarzanie: * XSLT * XSL (XSL FO) SKładniki XML: * elementy\\ Zawartość mieszana, tekstowa, elementowa * atrybuty * deklaracje (komentarze <!-- ... -->, dane CDATA) * instrukcje przetwarzania (<? ?>) * odniesienia, jednostki * jednostki: XML: * Elementy są tylko alnum + znaki sylabiczne, ideograficzne oraz .-_ * XML rozróżnia wielkość liter * poprawność: * poprawny składniowo, dobrze uformowany (well-formed) * poprawny strukturalnie ("**ważny**") Sekcje danych: <code xml> <![CDATA[ ... <p>tutaj coś nie będzie interpretowane</p> ... ]]> </code> ===== Walidowanie przez xmllint ===== DTD: xmllint --noout --valid plik.xml XSD: xmllint --noout --schema plik.xsd plik.xml Pliczek XML: <code xml> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE dostawa SYSTEM "dostawa.dtd"> <dostawa> <towar id="102"> <nazwa></nazwa> <cena waluta="PLN">150</cena> <ilosc></ilosc> </towar> <towar id="103"> <nazwa>fdf</nazwa> <cena waluta="PLN">2</cena> <ilosc>3</ilosc> </towar> <towar id="5"> <nazwa></nazwa> <cena waluta="PLN">3</cena> <ilosc></ilosc> </towar> <towar id="6"> <nazwa></nazwa> <cena waluta="PLN">5</cena> <ilosc></ilosc> </towar> </dostawa> </code> ===== DTD ===== ATTLIST : * **ATTLIST nazwa_elem nazwa_atr typ_atr default_val** * typ_atr: * CDATA * (aa|b|ccc) * ID, IDREF, IDREFS (rozdzielane spacjami) * ENTITY, ENTITIES (nazwy jednostek) * NMTOKEN, NMTOKENS, NOTATION * default_val: * "wartość" * REQUIRED * FIXED "wartość" * IMPLIED DTD: * wewnętrzne\\ <!DOCTYPE korzeń [elementy]> * łączone\\ <!DOCTYPE korzeń SYSTEM "plik.dtd" [ <!ELEMENT klient (...)> ...]> * zewnętrzne [należy standalone="no"] * niepubliczne\\ <!DOCTYPE korzeń SYSTEM "plik.dtd"> * publiczne (PUBLIC) * <!DOCTYPE korzeń PUBLIC "-%%//Owner//Etykieta DTD//LANG" "http://example.org/URI/%%"> * - <- standard nierozpoznawalny DTD: * #PCDATA, |, *, ?, , , +, () * **Uwaga**: PCDATA nie może być używany przy następstwie (po przecinkach). Może być tylko jako alternatywa * ANY, EMPTY <code> <?xml version="1.0"?> <!DOCTYPE korzeń [ <!ELEMENT dostawa (towar+)> <!ELEMENT towar (nazwa?, cena, ilosc)> <!ELEMENT nazwa (#PCDATA)> ]> </code> <code xml> <!ELEMENT dostawa (towar+)> <!ELEMENT towar (nazwa?, cena, ilosc)> <!ELEMENT nazwa (#PCDATA)> <!ELEMENT cena (#PCDATA)> <!ELEMENT ilosc (#PCDATA)> <!ATTLIST towar id CDATA #REQUIRED> <!ATTLIST cena waluta CDATA #REQUIRED> </code> ===== Jednostki ===== * ogólne * wewnętrzne\\ <!ENTITY FTIMS "Wydział Fizyki T...."> * zewnętrzne\\ <!ENTITY FTIMS SYSTEM "http://example.org/zawartosc.txt"> * analizowane * nieanalizowane (notacje)\\ <!NOTATION gif SYSTEM "obrazy/gif">\\ <!ENTITY logo SYSTEM "../logo.gif" NDATA gif> * predefiniowane &lt, &gt itp * parametryczne % * wewnętrzne\\ <!ENTITY %type "(retail | food )">\\ <!ELEMENT store (%type;, name,phone,promo,image)> * zewnętrzne ===== Przestrzenie nazw ===== <code xml> <prefix:element> <przestrzen2:child> <ns3:child/> </przestrzen2:child> </prefix:element> </code> * skojarzenie z URI poprzez xmlns * <xmlns:ns1="http://..." xmlns:ns2="..." > * <!ATTLIST ns:cena ns:waluta CDATA #REQUIRED> ===== XML Schema ===== * korzeń: schema * skojarzenie p-ni z URI: http://www.w3c.org/2001/XMLSchema\\ <xsd:schema xmlns:xsd="http://www.w3c.org/2001/XMLSchema">...</xsd:schema> * targetNamespace * w pliku xml: * skojarzenie p-ni xsi z URI:\\ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" TODO: * targetNamespace="http://www.w3schools.com" * xmlns="http://www.w3schools.com" * elementFormDefault="qualified" * <xsd:element name="nazwaElementu">...definicja zawartości...</xsd:element> * <xsd:element name="nazwaElementu" type="nazwaTypu">...definicja zawartości...</xsd:element> * <xsd:simpleType> * <xs:restriction base="xs:string"> * <xs:pattern value="[a-zA-Z\.]+@[a-zA-Z-]+\.([a-zA-Z-]+)+"/> * <xs:enumeration value="detaliczna"/> * <xs:enumeration value="hurtowa"/> * <list itemType="xsd:string"/> * <union>tutaj kilka simpleType</union> * <xsd:complexType name="nazwaTypu">...</xsd:complexType> * <xs:sequence> * <xs:choice> * <xs:any> * <xs:all> * <xs:attribute name="jezyk" type="xs:string" use="required"/> * może mieć mixed="true" * dokumentacje schema: * annotation * documentation * appInfo * element * minOccurs, maxOccurs [może być unbounded] * attribute * <xs:attribute name="wydanie" type="xs:string" fixed="papierowe" use="required"/> * typy proste: * string * decimal * integer * positiveInteger [i inne] * long, short, float, ... * normalizedString * boolean * date * time * **ograniczenia**: * fractionDigits * maxExclusive, minExclusive, minInclusive, maxInclusive * minLength, pattern, totalDigits, whitespace ===== Kaskadowe arkusze stylów CSS ===== Dołączanie arkusza stylów: <code xml> <?xml-stylesheet href="style.css" type="text/css"?> ... </code> <code css> selektor { /* deklaracje */ właściwość: wartość; właściwość: wartość; właściwość: wartość; ... } </code> * selektor uniwersalny * * listy selektorów element1, table, body, thead * selekcja wg. atryb.: * element[atrybut] * element[atrybut="wartość"] * element[atrybut~="substr"] * element[atrybut|="łącznik"] (|="en" -> "en", "en-bla", "en-foo") * element.klasa * element#id * hierarchia * Ojciec > Dziecko * Przodek Potomek * div:first-child [div będący czyimś pierwszym dzieckiem] * :first-line, :first-letter * Brat + Brat * właściwości: font-family, margin, border, padding, font-size, font-style, font-weight, ... * :before, :after, :content ===== XSLT ===== * XSLT - transformacje * XPath - "nawigowanie" w dokumencie * XSL-FO - formatowanie Zadania: * sortowanie * filtrowanie * obliczanie * łączenie Dołączanie XSLT: <code> <?xml-stylesheet type="text/xsl" href="plik.xsl"?> </code> * root:\\ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version ="1.0"> * <xsl:output method="html"/> [lub text lub xml]\\ Ten element może mieć też atrybuty: standalone, encoding, version itp (które uzyska root wygenerowanego dokumentu) * <xsl:template match="/"> * <xsl:template name="szablonik"> * <xsl:param name="dyrektor"/> * <xsl:param name="pracownik" select="2"/> [wartość domyślna] * <xsl:value-of select="$dyrektor * $pracownik"/> * <table border="{$dyrektor}"> * wywoływanie szablonów z parametrami: * <xsl:call-template name="nazwa"> * <xsl:with-param name="param1" select="wartoscParametru"/> * <xsl:with-param name="param2" select="wartoscParametru"/> * <xsl:variable name="x"/> - zmienna x\\ Odniesienie do zmiennej: $x * <xsl:for-each select="catalog/cd"> * <xsl:value-of select="title"/> * <xsl:sort select="nazwaElementu"/> <- można to wrzucić za for-each * <xsl:if test="wyrażenie">...</xsl:if> * <xsl:choose>\\ <xsl:when test='...'>...</xsl:when>\\ <xsl:when test='...'>...</xsl:when>\\ <xsl:otherwise>...</xsl:otherwise>\\ </xsl:choose> * <xsl:apply-templates select="...">\\ do aktualnego węzła i jego podwęzłów stosuje zdefiniowane w XSL templates, których match pasuje * <xsl:apply-templates select="..." mode="nazwaTrybu">\\ można przeciążać definicje szablonów, ze względu na mode. <xsl:template ... mode="nazwaTrybu">... * <xsl:call-template name="nazwa"/>\\ - wywolanie szablonu zdefionowanego jako <xsl:template name="nazwa">... * <xsl:include href="URI"/> - bezpośrednio po xml-stylesheet * <xsl:import href="URI"/> - w dowolnym miejscu dokumentu Plik XSLT: <code xml> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version ="1.0"> <xsl:output method="html"/> <xsl:template match="/"> <xsl:apply-templates select="document"/> <html> <body> <p> <xsl:value-of select="." /> </p> </body> </html> </xsl:template> </xsl:stylesheet> </code> ===== XPath ===== * / * /korzeń * /korzeń/dziecko/wnuk * /korzeń/dziecko[dzieckoWęzła="wartość"] * operatory: = != &lt; &gt; * %%//%%potomek * text() element o zawartości tekstowej * processing-instruction() instrukcja przetwarzania * comment() komentarz * id("id1") element o id id1 * elem[1] każdy element elem, będący pierwszym dzieckiem swojego rodzica * elem[warunek lub numer dziecka] * elem[1 | 3] każdy element elem, będący pierwszym lub trzecim dzieckiem swojego rodzica * el[last()=1] każdy element el, będący ostatnim dzieckiem swojego rodzica * position() - wartość licznika for-each [numer dziecka] * last() - maksymalna wartość licznika for-each [numer ostatniego dziecka] * div[@atrybut="wartość"] - każdy div o wartości atrybutu "wartość" * @* - dowolny atrybut [np. for-each select="%%//%%@*"] * @atrybut dowolny atrybut "atrybut" * * - wybiera wszystkie dzieci (głównego typu węzła) aktualnego kontekstu przetwarzania * node() - wybiera wszystkie dzieci (także tekstowe itp) aktualnego kontekstu przetwarzania Operatory: * = != <= >= < > * and or * mod div * + - * / Osie: * child [bez prefiksu] * atrybut - @ * descendant-or-self - %%//%% * parent - .. * self - . Funkcje: * concat(), substring(), contains(), substring-before(), substring-after(), translate(), normalize-space(), string-length(), ... * sum(), round(), floor(), ceiling() * name(), local-name(), namespace-uri() * position(), last() * string(), number(), boolean() ===== SVG ===== <code> <?xml version= "1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904// EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg.dtd"> <svg width="350" height="80"> <desc> Opis co dokument zawiera </desc> <title> Pierwszy dokument SVG</title> <!-- Komentarze tak jak w HTML --> <g id= "tekst1"> <text x="120" y="40" font-face="Verdana" font-size="24">Witaj świecie</text> </g> </svg> </code> Dołączanie: <code> <EMBED name="mojsvg" src="mojplik.svg" width="243" height="83" pluginspage="http://www.adobe.com/svg/viewer/install/"/> </code> Elementy: * svg * g - grupowanie * desc * title * text * wewnątrz może być tspan (dx, dy, fill) * textPath * defs * text id="aaa" * path * linearGradient * radialGradient * pattern * filter id="..." * feBlend * feColorMatrix * feTile * feTurbulence * ... * tref xlink:href="#aaa" (wewnątrz text) * line\\ <line x1="100" y1="300" x2="300" y2="100" stroke="red" stroke-width="5"/> * polyline\\ <code>polyline fill="none" stroke="blue" strokewidth="10" points="30,20 30,120 80,120 80,20 130,20 130,120 180,120 180,20 230,20 230,220 180,220 180,290 280,400 105,400 105,290 105,400 0,400 55,290 55,220 0,220 0,20 30,20" /></code> * <code><rect x="400" y="100" width="400" height="200" fill="yellow" stroke="black" stroke-width="10" rx="40" /></code> * <code><circle cx="50" cy="50" r="60" fill="#ffffff" stroke="black" stroke-width="3" /></code> * <code><ellipse cx="900" cy="200" rx="250" ry="100" fill="red"/></code> * <code><polygon fill="red" stroke="blue" strokewidth=" 10" points="350,75 379,161 469,161 397,215 423,301 350,250 277,301 303,215 231,161 321,161" /></code> * transform (TODO) * translate (translate(500 200)) * rotate (rotate(-30)) * animacje\\ wewnątrz znacznkie z jakąś figurą wstawia się: * animateMotion * animateColor * animateTransform ===== SMIL ===== <code> <?xml version="1.0"?> <!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN" "http://www.w3.org/2001/SMIL20/SMIL20.dtd"> <smil xmlns="http://www.w3.org/2001/SMIL20/Language" xml:lang="pl" title="SMIL szablon"> <head> </head> <body> </body> </smil> </code> Znaczniki: * img * video * clipBegin * clipEnd * audio * animation * text * textstream * region\\ head -> layout -> (region, region, region, ...) * atrybuty: * src * alt * longdesc * repeatCount * repeatDur * seq - sekwencje (następstwo animacji itp): * par - jednoczesne odtwarzanie kilku multimediów * animacje: * animate * animateMotion * animateColor ===== Podsumowania tekstów ===== zredukowana postać dokumentu tekstowego, sprowadzona do postaci podsumowania tekstu (streszczenia), otrzymanego przez redukcję tekstu na podstawie selekcji (pominięnia mało istotnych elementów) i/lub generalizacji elementów istotnych z dokumentu wejściowego * Luhn\\ wywalenie zaimków, agregacja na podstawie podobieństwa słów, filtrowanie, sortowanie zdań wg. wag, selekcja najważniejszych * Rozszerzenie\\ Różne długości streszczeń, wielojęzyczność, KWIC * Edmundson\\ "ważne, możliwy, rzadko", słowa tytułowe, nagłówkowe, położenie zdań, terminy kluczowe * Pollock, Zamora\\ słowa kluczowe dla danej dziedziny (np. chemia). dwa konteksty: pozytywny i negatywny. budowanie słowników dla tych dwóch kontekstów. frazy na liście słów podzielone na części mowy, uwgzlędnianie pozycji zdania w dokumencie i eliminacja zdań * Kupiec, Pedersen, Chen\\ etykietowanie w całym tekście wektorów zdań jako jako pozytywnych lub negatywnych słów. Następnie sieć Bayesa porównywała wszystkie zdania z dokumenty z tymi, które już są w podsumowaniu, aby ustalić, czy to zdanie tez pasuje do umieszczenia w podsumowaniu * Myaeng, Jang\\ metoda Kupca, Pedersena, Chena dla tekstów koreańskich. wykazali istotność sekcji "wstęp", "zakończenie" * Aone, Okurowski, Girlinski, Larsen\\ podejście podobne do KPC. Uwzględniają słowa mająće ten sam rdzeń ale także synonimy, uwzględnienie rozwijania nazw, skrótów, aliasów itp * Hovy, Lin\\ zdefiniowali tworzenia podsumowania jako 3-etapowy proces - identyfikacja tematu (najczęstsze słowa we wstępie, analiza statystyczna wstępu), interpretacja treści, generowanie podsumowania. Każdemu zdaniu przypisywana waga. * Stralskowski, Stein, Wang, Wise\\ większe wagi dla słów z tytułów dokumentów wejściowych. większe znaczenia dla akapitów będących bliżej początku dokumentu, roziwjanie pełnych nazw miejsc, nazwisk, aliasów, wyszukiwanie fragmentów oznaczających nawajżniejsze miejsca w dokumencie * Lehnert\\ rozpatrywanie tesktu jako zdań niosących za sobą jakieś emocje. Jest to pewien sposób wnioskowania * Morris, Kasper, Adams\\ usunięcie wtrąceń, ustalenie wag dla pozostalych zdań, wybór zdań z największymi wagami * Salton, Singhal, Miltra, Buckley\\ rozpatrują akapity z jednego dokumentu i porównują je z akapitami z pozostałych dokumentów - miara podobieństwa bazująca na podobieństwie słów * Mani, Bloedorn\\ używają grafu oznaczającego występujące słowa i związki między nimi miara tf.ide = t f_ij log_2 N/n Zbiór rozmyty, funkcja przynależności, **zmienna lingwistyczna**, klasy zmiennych lingwistycznych Podsumowania Yager'a\\ Q obiektów w bazie ma cechę S [T] Podsumowania wieloatrybutowe George'a i Srikanth'a\\ Q P jest/ma S [T] Relacja rozmyta - miara podobieństwa słów, zdań Wskaźniki jakości podsumowań Język - 4-ka uporządkowana: L(T,N,S,R) R - Relacje przepisywania, czyli elementy zbioru (T suma N) x (T suma N) <L, P> należace do R zapisywane jako L -> P Algorytm kodowania (tworzenia gramatyki): * reguły: * unikalności diagramów (nie ma identycznych ciągów sąsiednich symboli) * użyteczności produkcji (nie ma nieterminali nieużywanych lub używanych raz) Język L1: * czasowniki, rzeczowniki, przymiotniki, pewne spójniki * zdania orzekające, teraźniejsze Rozszerzenia: * kwantyfikatory * liczebniki Język L2: * przysłówki i przyimki * zaimki osobowe i dzierżawcze Hierarchia Chomsky'iego: * jezyki regularne\\ A -> tB\\ A -> t * bezkontekstowe * wrażliwe na kontekst * rekurencyjno-przeliczalne Parsowanie: * rekurencyjno-zstępujące * wstępujące Drzewa AND/OR dla gramatyk bezkontekstowych Predykatywno-argumentowy model zdania * złożony, abstrakcyjny obiekt, reprezentująćy na poziomie semantyczno-pragmatycznym zdanie pojedyncze proste * Pojęcie predykatu (**w sensie tego modelu**!) * Pozycje argumentowe * Argumenty referencyjne * Argumenty atrybutowe * Argumenty zdaniowe * Pozycje temporalne i lokatywne, kwalifikatywne **Wiedza** ogół treści utrwalonych w umyśle ludzkim, będącym wynikiem kumulowania doświadczeń oraz procesu uczenia się. Własności wiedzy: * Wiarygodność * Historyczność * Źródłowość * Relatywność * Strukturalność ===== Odnośniki zewnętrzne ===== * [[http://www.w3.org/TR/REC-xml/|W3C Extensible Markup Language (XML) 1.0 (Fourth Edition) Spec]] * [[http://www.w3schools.com/dtd/dtd_intro.asp|w3school DTD]] * [[http://www.w3schools.com/schema/schema_intro.asp|w3school XML Schema]] * [[http://www.kurshtml.boo.pl/|Super tutorial i rozpiska do CSS-a]] * [[http://www.w3.org/TR/xslt|W3C XSL Transformations (XSLT) Version 1.0 Spec]] * [[http://www.w3.org/TR/xpath|W3C XML Path Language (XPath) Version 1.0 Spec]]

przedmioty/programowanie_komunikacji_czlowiek-komputer.txt · ostatnio zmienione: 2007/01/08 13:32 (edycja zewnętrzna)
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki