XML i nowoczesne metody zarządzania treścią



Podobne dokumenty
Symbole wieloznaczne w XML Schema. Definiowanie typów dokumentów Część 4. XML Schema, RELAX NG, Schematron. Schematron

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Forma nazwy lokalnych elementów i atrybutów

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Dlaczego DTD nie wystarcza? Definiowanie typów dokumentów Część 2. XML Schema. Status XML Schema. DTD XML Schema. Definiowanie elementów i atrybutów

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

XML i nowoczesne metody zarządzania treścią

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Wprowadzenie do technologii XML

Kurs WWW Język XML, część I

Przykładowy dokument XML

29. Poprawność składniowa i strukturalna dokumentu XML

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

XML DTD XML Schema CSS

XML i nowoczesne metody zarządzania treścią

XML extensible Markup Language. Paweł Chodkiewicz

Rola języka XML narzędziem

Wprowadzenie do XML schema

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

XML i nowoczesne technologie zarządzania treścią

DTD - encje ogólne i parametryczne, przestrzenie nazw

Definiowanie typów dokumentów Część 4. XML Schema, RELAX NG, Schematron

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Część II. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Integracja Obieg Dokumentów - GiS Spis treści

XML w bazach danych i bezpieczeństwie

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

XML extensible Markup Language. część 4

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

Programowanie internetowe

Aplikacje internetowe laboratorium XML, DTD, XSL

Schematy XML. Tomasz Traczyk.

Dlaczego GML? Gdańsk r. Karol Stachura

Rzeszów, dnia 18 czerwca 2015 r. Poz UCHWAŁA NR IX RADY MIEJSKIEJ W BOGUCHWALE. z dnia 28 maja 2015 r.

Podstawy JavaScript ćwiczenia

Technologie zarządzania treścią

XML i nowoczesne metody zarządzania treścią

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

XML i nowoczesne metody zarządzania treścią

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

GML w praktyce geodezyjnej

Facelets ViewHandler

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

c TP: anything: 13 listopada 2004 roku 1

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Wprowadzenie do XML. Tomasz Przechlewski

Definiowanie typów dokumentów Część 1. DTD, XML Schema

Liczba godzin. N (nauczyciel) studia niestacjonarne

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML Schema w przykładach

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

Narzędzia informatyczne w językoznawstwie

Nazwa pliku XSD:

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 02

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

INTEGRACJA I EKSPLORACJA DANYCH

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

METODY REPREZENTACJI INFORMACJI

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

XML i nowoczesne metody zarządzania treścią

XML extensible Markup Language. część 3

Web frameworks do budowy aplikacji zgodnych z J2EE

Podstawy XML-a. Zaawansowane techniki programowania

Otwarte protokoły wymiany informacji w systemach ITS

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Korpusomat narzędzie do tworzenia przeszukiwalnych korpusów języka polskiego

Standard HL7 (cel, protokoły, zastosowanie) Piotr Dybski Jan Flik

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

BGK Zlecenia (Ferryt Enterprise)

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

The Binder Consulting

Jacek Tomaszczyk Instytut Bibliotekoznawstwa i Informacji Naukowej Uniwersytet Śląski

Tomasz Grześ. Systemy zarządzania treścią, cz. II

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Transkrypt:

XML i nowoczesne metody zarządzania treścią Wykład 5: Dokumentacja schematu oraz inne formalizmy modelowania dokumentów Maciej Ogrodniczuk MIMUW, 7 listopada 2011 Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 1

Trzy sposoby dokumentacji schematu Za pomocą: 1 specjalnego elementu <xsd:annotation>, 2 komentarzy XML-owych, 3 atrybutów dołączanych (ang. foreign attributes). Oraz oczywiście wykorzystując sposoby nieschematocentryczne: opisując schemat poza nim samym, przechowując łącznie opisy danego komponentu schematu, dostępne przekształcenia i style,... Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 2

<xsd:annotation> dokumentacja schematu Element <xsd:annotation> może wystąpić w dowolnym miejscu na poziomie globalnym oraz na początku wszystkich konstrukcji XML Schema. Jego zawartość to mieszanka elementów <xsd:documentation> i <xsd:appinfo> zawierających dodatkowe informacje (tekst i znaczniki) odpowiednio dla ludzi i maszyn. <xsd:element name="nazwisko" type="xsd:string"> <xsd:annotation> <xsd:documentation xml:lang="pl"> Nazwisko adresata. </xsd:documentation> <xsd:appinfo> <form:label>podaj nazwisko adresata:</form:label> </xsd:appinfo> </xsd:annotation> </xsd:element> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 3

Definicja <xsd:appinfo> <xsd:element name="appinfo"> <xsd:annotation> <xsd:documentation source="http://www.w3.org/tr/ xmlschema-1/#element-appinfo"/> </xsd:annotation> <xsd:complextype mixed="true"> <xsd:sequence minoccurs="0" maxoccurs="unbounded"> <xsd:any processcontents="lax"/> </xsd:sequence> <xsd:attribute name="source" type="xsd:anyuri"/> </xsd:complextype> </xsd:element> Oba elementy mogą zostać opatrzone opcjonalnym atrybutem source wskazującym źródło informacji. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 4

Co umieszczać w <xsd:appinfo>? Na przykład: dodatkowe reguły walidacji (np. schematronowe), odwzorowanie na inne technologie (np. schemat relacyjny), odwzorowanie na formularze (np. XHTML-owe znaczniki <form>). Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 5

Własne atrybuty dołączane Każdy komponent schematu może zawierać atrybuty pochodzące z dowolnej przestrzeni nazw. Atrybuty te nie są walidowane i nie trzeba ich deklarować. <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:doc="http://www.mimuw.edu.pl/xml"> <xsd:element name="wykład" type="typprezentacja" doc:opis="element główny prezentacji na potrzeby wykładu."/> </xsd:schema> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 6

Zarządzanie złożonymi schematami Warto standaryzować: nazewnictwo, sposób budowy schematu, sposoby rozszerzania schematu, zakres wykorzystania konstrukcji XML Schema. Często tego rodzaju zalecenia zapisuje się formalnie w dokumencie NDR (ang. naming and design rules). Warto też używać oprogramowania do kontroli nad: edycją: kto co zmienia, wersjami składników schematu, fragmentami schematu stosowanymi w różnych zastosowaniach. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 7

Jeszcze o samym procesie modelowania Jak modelować? analizując zależności między modelowanymi obiektami i ich częściami, wyodrębniając podstruktury obiektów, analizując dostępne dokumenty przykładowe, analizując potencjalne zastosowania dokumentów oraz przypadki użycia, budując abstrakcyjny projekt struktury, zapisując model, testując model w rzeczywistym świecie, utrzymując (pielęgnując) strukturę podczas jej wykorzystania, pamiętając o zarządzaniu zmianami. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 8

Zarządzanie zmianami struktury Problem: Konieczność zmiany struktury. Warianty rozwiązania: 1 wprowadzamy zmianę modelu kompatybilną wstecz (np. dodajemy elementy, ale opcjonalne), 2 używamy dwóch wersji schematu, 3 migrujemy dokumenty: przekształcamy automatycznie i/lub instruujemy użytkowników o konieczności migracji do nowej struktury. Najlepiej: tworzymy aplikację odporną na zmianę struktury dokumentów. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 9

Metody zapewniania odporności na zmianę struktury Kilka metod: przeniesienie sprawdzania poprawności dokumentu na poziom schematu, pomijanie nieistotnych elementów i atrybutów, unikanie zależności od struktury dokumentu: //produkt/numer zamiast /katalog/produkt/numer, parametryzacja schematem użycie atrybutów stałych np. do przechowania etykiet pól formularza, odwzorowania elementów na tabele i pola w bazie danych itp., użycie przestrzeni nazw (jak w standardzie XLink). Nadrzędna zasada: zdrowy rozsądek. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 10

O czym nie powiedzieliśmy (i nie powiemy) Zachęcam do samodzielnych studiów nad: zależnościami aspektów od typów danych, regułami walidacji i ograniczeniami budowy schematu, użyciem encji, notacji, odpowiedników konstrukcji z DTD, grupami zamiennymi (ang. substitution groups), modelami struktury schematów (Russian Doll, Salami Slice, Venetian Blind, Garden of Eden), specyfikacją XML Schema w oryginale. Polecam książkę Priscilli Walmsley Wszystko o XML Schema (WNT 2008). Przykłady z książki: http://www.datypic.com/books/defxmlschema/examples.html. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 11

Czego nie da się zrobić w XML Schema? Problem: kontekstowe sprawdzanie poprawności, np. zawartość elementu <cena-netto> jest mniejsza lub równa zawartości elementu <cena-brutto>, albo: lista liczb wylosowanych w Lotto jest posortowana. Rozwiązania: zaprogramować w kodzie aplikacji, wykorzystać XSLT, użyć innego języka schematów, np. Schematrona. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 12

Czego jeszcze? Problemy: niejednoznaczność (ang. ambiguity), czyli poprawność fragmentu względem kilku wzorców, niedeterminizm (ang. non-determinism), czyli sytuacja, w której procesor ma do wyboru wiele pasujących wzorców (produkcji gramatyki), a równoważny model deterministyczny nie istnieje. Rozwiązanie: Relax NG, czyli REgular LAnguage description for XML New Generation. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 13

Schematron Autorstwa Ricka Jelliffe a (1999). Standard ISO od 2006 r. (jako część 3 standardu DSDL Document Schema Definition Languages). Idea: wzorce (<pattern>) zawierające kontekstowe reguły walidacji (<rule>) złożone z posługujących się wyrażeniami XPath własności <assert> i <report> odpowiednio wymaganych do spełnienia i oznaczających błąd. Schemat schematronowy dla schematrona (www.schematron.com): <schema xmlns="http://www.mimuw.edu.pl/dsdl/schematron"> <ns prefix="sch" uri="http://www.mimuw.edu.pl/dsdl/schematron"> <pattern> <rule context="sch:schema"> <assert test="sch:pattern">schemat składa się z wzorców.</assert> <assert test="sch:pattern/sch:rule[@context]">wzorzec składa się z reguł. Każda powinna mieć atrybut context.</assert> <assert test="sch:pattern/sch:rule/sch:assert[@test] or sch:pattern/sch:rule/sch:report[@test]">reguła składa się z instrukcji assert i report, które muszą posiadać atrybut test.</assert> </rule> </pattern> </schema> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 14

Asercje wbudowane w schemat: przykład <xsd:element name="towar"> <xsd:annotation> <xsd:appinfo> <sch:pattern name="cena brutto większa od netto."> <sch:rule context="sklep:towar"> <sch:assert test="sklep:cenabrutto > sklep:cenanetto"> Zawartość elementu cenabrutto powinna być większa niż zawartość elementu cenanetto.</sch:assert> </sch:rule> </sch:pattern> </xsd:appinfo> </xsd:annotation> <xsd:complextype> <xsd:sequence> <xsd:element name="cenanetto" type="xsd:integer"/> <xsd:element name="cenabrutto" type="xsd:integer"/> </xsd:sequence> </xsd:complextype> </xsd:element> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 15

Relax NG w pigułce Autorstwa OASIS, bazuje na wcześniejszych propozycjach RELAX Makoto Muraty i TREX Jamesa Clarka. Od 2006 r. standard ISO jako część 2 standardu DSDL. Regular Language description for XML New Generation: dwa warianty składni: XML-owa i kompaktowa, wsparcie dla przestrzeni nazw, jednolite traktowanie elementów i atrybutów, wsparcie dla zawartości nieuporządkowanej i mieszanej, może funkcjonować wraz z osobnym językiem typów (np. XML Schema). W zasadzie same zalety: + prostszy w opisie schematu, + bardziej zaawansowany technicznie, + oferujący więcej możliwości, cieszący się zdecydowanie mniejszą popularnością (czyt.: wsparciem producentów oprogramowania). Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 16

Relax NG a DTD RELAX NG rozszerza funkcjonalność DTD w szczególności: wprowadza typy danych, integruje atrybuty z modelem zawartości, obsługuje przestrzenie nazw, zapewnia wsparcie dla dowolnej kolejności wystąpień elementów, obsługuje modele kontekstowe. Jednocześnie RELAX NG: nie zapewnia walidacji ID/IDREF (jest dodatek, który to umożliwia), nie obsługuje atrybutów domyślnych, nie obsługuje encji znakowych, notacji, nie pozwala na określenie, czy białe znaki są znaczące, nie określa sposobu powiązania schematu Relax NG z dokumentem. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 17

Dwie składnie RELAX NG DTD: <!ELEMENT wizytownik<!element wizytownik <!ELEMENT wizytówka<!element wizytówka (osoba, email)>(osoba, email)> <!ELEMENT osoba (#PCDATA)><!ELEMENT osoba (#PCDATA)> <!ELEMENT email (#PCDATA)><!ELEMENT email (#PCDATA)> Składnia skrócona: Składnia XML-owa: <element name="wizytownik"<element (wizytówka*)>(wizytówka*)> name="wizytownik" xmlns="http://relaxng.org/xmlns element wizytownik {element wizytownik { ns/structure/1.0">ns/str <zeroormore><zeroormore> <element<element name="wizytówka">name="wizy <element name="osoba"><element name="osoba"> <text/><text/> <element name="e-mail"><element Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 18

Kurs RELAX NG w przykładach: element wymagany RELAX NG: <element name="wizytownik" xmlns="http://relaxng.org/ns/structure/1.0"> <oneormore> <element name="wizytówka">... </oneormore> DTD: <!ELEMENT wizytownik (wizytówka+)> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 19

Kurs RELAX NG w przykładach: element opcjonalny RELAX NG: <element name="wizytówka"> <element name="osoba"> <text/> <element name="e-mail"> <text/> <optional> <element name="telefon"> <text/> </optional> DTD: <!ELEMENT wizytówka (osoba, e-mail, telefon?)> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 20

Kurs RELAX NG w przykładach: grupa i alternatywa RELAX NG: <element name="wizytówka"> <choice> <element name="osoba"> <text/> <group> <element name="imię"> <text/> <element name="nazwisko"> <text/> </group> </choice> DTD: <!ELEMENT wizytówka (osoba (imię, nazwisko))> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 21

Kurs RELAX NG w przykładach: element pusty i atrybuty RELAX NG: <element name="osoba"> <attribute name="telefon"/> Uwagi: <text/> jest domyślną zawartością atrybutów, atrybuty są domyślnie wymagane, IMPLIED wymaga użycia <optional>, gdy nie ma atrybutów, element pusty oznaczamy jako <empty/>. DTD: <!ELEMENT osoba EMPTY> <!ATTLIST osoba telefon CDATA REQUIRED> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 22

Kurs RELAX NG w przykładach: fragmenty i doctype RELAX NG: <grammar> <start> <element name="wizytownik"> <zeroormore> <element name="wizytówka"> <ref name="treśćwizytówki"/> </zeroormore> </start> <define name="treśćwizytówki"> <element name="osoba"> <text/> <element name="e-mail"> <text/> </define> </grammar> DTD: <!DOCTYPE wizytownik [<!ELEMENT wizytownik (wizytówka*)> <!ENTITY % treśćwizytówki "osoba, e-mail"> <!ELEMENT wizytówka (%treśćwizytówki;)> <!ELEMENT osoba (#PCDATA)> <!ELEMENT e-mail (#PCDATA)>] Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 23

Kurs RELAX NG w przykładach: typy danych RELAX NG: <element name="e-mail" datatypelibrary= "http://www.w3.org/2001/xmlschema-datatypes"> <data type="string"> <param name="maxlength">127</param> </data> XML Schema: <xsd:element name="e-mail"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:maxlength value="127"/> </xsd:restriction> </xsd:simpletype> </xsd:element> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 24

Kurs RELAX NG w przykładach: wyliczenia RELAX NG: <element name="plik"> <attribute name="format"> <choice> <value>html</value> <value>pdf</value> </choice> </attribute> W podobny sposób można wyliczać zawartość elementów (jak w XML Schema). DTD: <!ATTLIST plik format (HTML PDF) #REQUIRED> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 25

Kurs RELAX NG w przykładach: listy RELAX NG: <element name="listaparzysta"> <list> <oneormore> <data type="integer"/> <data type="integer"/> </oneormore> </list> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 26

Kurs RELAX NG: dowolny porządek, zawartość mieszana RELAX NG: <element name="head"> <interleave> <ref name="title"/> <zeroormore> <ref name="meta"/> </zeroormore> </interleave> <element name="p"> <mixed> <ref name="b"/> <ref name="i"/> <ref name="u"/> </mixed> DTD dla modelu mieszanego: <!ELEMENT p (#PCDATA b i u)*> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 27

RELAX NG: jeszcze raz (prawie) wszystko razem <element name="nazwa ">, <attribute name="nazwa ">, <optional> atrybut lub element opcjonalny (domyślnie atrybuty wymagane), <text/> to samo, co #PCDATA <empty/> element pusty, <zeroormore>, <oneormore>, <choice>, <group>, <interleave> (dowolny porządek), <mixed>, <grammar> element główny gramatyki, <start> element główny dokumentu,... Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 28

RELAX NG: zawartość prosta lub elementowa <element name="osoba"> <choice> <text/> <group> <element name="imię"> <data type="token"/> <optional> <element name="drugieimię"> <data type="token"/> </optional> <element name="nazwisko"> <data type="token"/> </group> </choice> </name> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 29

Examplotron Autorstwa Erica van der Vlista, prace rozpoczęte w 2001 r., zamarły w 2003 r. Idea: definicja przez przykład egzemplarze dokumentów definiują schemat. Jak to działa? Przekształcenie XSLT zamienia egzemplarze na prawdziwy schemat RELAX NG. Obsługuje w prosty sposób 80% przypadków: definicja elementów i atrybutów, kontrola nad liczbą wystąpień elementów, zawartość mieszana, predefiniowane typy proste XML Schema. http://examplotron.org Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 30

Examplotron: przykład Examplotron: <osoba> <imię>petronela</imię> <imię>zenobia</imię> </osoba> Relax NG: <grammar xmlns:ega="http://examplotron.org/annotations/" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://www.ascc.net/xml/schematron" datatypelibrary="http://www.w3.org/2001/xmlschema-datatypes"> <start> <element name="osoba"> <oneormore> <element name="imię"> <text><ega:example>petronela</ega:example>/text> </oneormore> </start> </grammar> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 31

ODD: One Document Does It All Format pochodzący z Text Encoding Initiative standardu zapisu danych humanistycznych i lingwistycznych: prace od 1987 r., początkowo wersje SGML-owe, obecnie XML-owa, obecna wersja: P5 z 2007 r., schemat zawiera moduły (zestawy znaczników) włączane w zależności od potrzeb. Format ODD umożliwia zawarcie w jednym dokumencie: fragmentów schematu, dokumentacji w formacie zgodnym z typem dokumentów TEI w sposób uniezależniający model od rodzaju schematu (DTD, XML Schema, Relax NG), Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 32

ODD TEI przykład <TEI xmlns="http://www.tei-c.org/ns/1.0"> <teiheader>... </teiheader> <text> <body> <schemaspec ident="odd1" start="tei"> <moduleref key="header"/> <moduleref key="core"/> <moduleref key="tei"/> <moduleref key="textstructure"/> </schemaspec> </body>... </text> </TEI> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 33

ODD: operacje na modelu <schemaspec xmlns:r="http://relaxng.org/ns/structure/1.0" ident="oddex1.5" start="tei" xml:base="examples/odd1.5.xml"> <moduleref key="header"/> <moduleref key="core"/> <moduleref key="tei"/> <moduleref key="textstructure"/> <elementspec ident="soundclip" mode="add"> <classes> <memberof key="model.ppart.data"/> </classes> <content> <r:text/> </content> </elementspec> </schemaspec> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 34

Case study z użycia TEI: NKJP Narodowy Korpus Języka Polskiego (http://nkjp.pl): to największy korpus językowy dla polszczyzny, powstały w latach 2007-2011 w ramach projektu badawczo-rozwojowego MNiSW, stworzony przez konsorcjum w składzie: Instytut Podstaw Informatyki PAN (koordynator), Instytut Języka Polskiego PAN, Wydawnictwo Naukowe PWN, Zakład Językoznawstwa Komputerowego i Korpusowego Uniwersytetu Łódzkiego, zawiera 1B segmentów, z czego 250M to korpus zrównoważony, a 1M anotowany ręcznie. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 35

XML-owe warstwy anotacji Idea: anotacja zewnętrzna (ang. stand-off ). Elementy opisu: nagłówek korpusu, nagłówek próbki, struktura tekstu, segmentacja (zdania, tokeny), morfoskładnia (zestaw analiz morfologicznych z lematami, ujednoznacznienie), słowa składniowe ( po prostu ), grupy składniowe ( upadek komunizmu ), nazwy własne, sensy słów. Zachęcam do zajrzenia na stronę http://nlp.ipipan.waw.pl/tei4nkjp/. Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 36

Nagłówki korpusu (skrót) <teiheader> <filedesc> <titlestmt> <title xml:lang="pl">narodowy Korpus Języka Polskiego</title> <title xml:lang="en">national Corpus of Polish</title> <funder>ministry of Science and Higher Education</funder> <respstmt> <persname>adam Przepiórkowski</persName> <resp>project coordinator</resp> </respstmt> </titlestmt>... </filedesc> </teiheader> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 37

Nagłówki korpusu (skrót) <teiheader> <filedesc> <titlestmt>... </titlestmt> <publicationstmt> <publisher>institute of Computer Science, Polish Academy of Sciences</publisher> </publicationstmt> <sourcedesc> <p>the origin of texts in NKJP may be <list type="bulleted"> <item>the IPI PAN Corpus</item>... </list> </p> </sourcedesc> </filedesc> </teiheader> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 38

Struktura tekstu i segmentacja <text> <body> <p xml:id="txt 1-p">Ważny list? Tu go miałem.</p> </body> </text> <text xml:id="p-text1"> <body> <p xml:id="segm_1-p" corresp="text.xml#txt_1-p"> <s xml:id="segm_1.1-s"> <!--... --> <!-- list --> <seg xml:id="segm_1.1.3-seg" corresp="text.xml#string-range(txt_1-p,8,4)"/> <!--... --> </body> </text> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 39

Morfoskładnia <p xml:id="morph_1-p" corresp="ann segmentation.xml#segm_1-p"> <s xml:id="morph_1.1-s" corresp="ann segmentation.xml#segm_1.1-s"> <!--... --> <seg xml:id="morph_1.1.3-seg" corresp="ann segmentation#segm_1.1.3-seg"> <fs type="morph"> <f name="orth"> <string>list</string> </f> <f name="interps"> <!--... --> </f> <f name="disamb"> <!--... --> </f> </fs> </seg> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 40

Interpretacje morfoskładniowe <f name="interps"> <fs type="lex" xml:id="morph_1.1.3.1-lex"> <f name="base"> <string>list</string> </f> <f name="ctag"> <symbol value="subst"/> </f> <f name="msd"> <valt> <symbol xml:id="morph_1.1.3.1.1-msd" value="sg:nom:m3"/> <symbol xml:id="morph_1.1.3.1.2-msd" value="sg:acc:m3"/> </valt> </f> </fs> <!--... --> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 41

Interpretacje morfoskładniowe <f name="interps"> <fs type="lex" xml:id="morph_1.1.3.1-lex"> <!--... --> </fs> <fs type="lex" xml:id="morph_1.1.3.2-lex"> <f name="base"> <string>lista</string> </f> <f name="ctag"> <symbol value="subst"/> </f> <f name="msd"> <symbol xml:id="morph_1.1.3.2.1-msd" value="pl:gen:f"/> </f> </fs> </f> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 42

Ujednoznacznienie morfoskładni <f name="interps"> <fs type="lex" xml:id="morph_1.1.3.1-lex"> <f name="msd"> <valt> <symbol xml:id="morph_1.1.3.1.1-msd" value="sg:nom:m3"/> <symbol xml:id="morph_1.1.3.1.2-msd" value="sg:acc:m3"/> </valt> </f> </fs> <!--... --> </f> <f name="disamb"> <fs type="tool_report"> <f fval="#morph_1.1.3.1.2-msd" name="choice"/> <!--... --> </fs> </f> Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 43

Paczkowy wariant formatu Zaimplementowany na potrzeby Multiserwisu (http://chopin.ipipan.waw.pl/multiservice/): poziomy anotacji jako elementy <TEI> wewnątrz elementów <teicorpus>, minimalne nagłówki (<teiheader>) zawierające: nazwę warstwy (<titlestmt>/<title>), informację o narzędziu wykorzystanym do jej stworzenia (<publicationstmt>/<distributor>), datę/czas przetwarzania (<publicationstmt>/<date>). Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 44

Co dalej? Na następnych wykładach: 14 XI: Patryk Czarnik o tym, jak prezentować XML-a, 21 XI: Patryk Czarnik o standardach XPath/XQuery, 28 XI: Patryk Czarnik o XSLT, 5 XII: ja o XPointerze, XInclude i zastosowaniach XML-a (XML DocBook, SVG, MathML, OOXML vs. OpenDocument). Wykład 5: Dokumentacja i inne formalizmy modelowania XML i nowoczesne metody zarządzania treścią 45