Spis treści
Programowanie komunikacji człowiek - komputer
- 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 <, > 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
- 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:
<?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: = != < >
- //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ść