Programowanie komunikacji człowiek - komputer

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:

<![CDATA[
   ...
   <p>tutaj coś nie będzie interpretowane</p>
   ...
]]>

Walidowanie przez xmllint

DTD: xmllint --noout --valid plik.xml
XSD: xmllint --noout --schema plik.xsd plik.xml

Pliczek 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>

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
<?xml version="1.0"?>
<!DOCTYPE korzeń [
  <!ELEMENT dostawa (towar+)>
  <!ELEMENT towar (nazwa?, cena, ilosc)>
  <!ELEMENT nazwa (#PCDATA)>
]>
<!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>

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

  <prefix:element>
    <przestrzen2:child>
      <ns3:child/>
    </przestrzen2:child>
  </prefix:element>
  • skojarzenie z URI poprzez xmlns
  • <xmlns:ns1=„http://...” xmlns:ns2=„…” >
  • <!ATTLIST ns:cena ns:waluta CDATA #REQUIRED>

XML Schema

TODO:

  • <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:

<?xml-stylesheet href="style.css" type="text/css"?>
...
selektor {
  /* deklaracje */
  właściwość: wartość;
  właściwość: wartość;
  właściwość: wartość;
  ...
}
  • 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:

<?xml-stylesheet type="text/xsl" href="plik.xsl"?>
  • 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:

<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>

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

<?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>

Dołączanie:

<EMBED name="mojsvg" src="mojplik.svg" width="243" height="83"
pluginspage="http://www.adobe.com/svg/viewer/install/"/>

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
    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" />
  • <rect x="400" y="100" width="400" height="200"
     fill="yellow" stroke="black" stroke-width="10" rx="40" />
  • <circle cx="50" cy="50" r="60" fill="#ffffff"
    stroke="black" stroke-width="3" />
  • <ellipse cx="900" cy="200" rx="250" ry="100" fill="red"/>
  • <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" />
  • transform (TODO)
    • translate (translate(500 200))
    • rotate (rotate(-30))
  • animacje
    wewnątrz znacznkie z jakąś figurą wstawia się:
    • animateMotion
    • animateColor
    • animateTransform

SMIL

<?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>

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

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