34
Úvod do XML Technologie BI-TWA Peter Vojtáš s korekturou Martina Kruliše 4TVEZE WXYHMNRLS TVSKVEQY -RJSVQEXMOE NI TSHTSVSZ/RE TVSNIOXIQ RERGSZERQ ^ )ZVSTWO‹LS WSGM/PRLS JSRHY E VS^TS—XY LPEZRLS QWXE 4VEL] 4VELE )9 -RZIWXYNIQI HS ZE% FYHSYGRSWXM

Úvod do XML Technologie - edux.fit.cvut.cz · BI-TWA Úvod do XML 2 TWA –kde jsme, co dál … V dvou třetinách přednášky „HTML a PHP“svět, s relačními daty (1NF, CWA,

Embed Size (px)

Citation preview

Úvod do XML Technologie

BI-TWA

Peter Vojtáš

s korekturou Martina Kruliše

4�°TVEZE�WXYHMNR°LS�TVSKVEQY�-RJSVQEXMOE�NI�TSHTSVSZ¤RE�TVSNIOXIQ��RERGSZERÀQ�^�)ZVSTWO¬LS�WSGM¤PR°LS�JSRHY�E�VS^TSÐXY�LPEZR°LS�QÞWXE�4VEL]�

4VELE��)9��-RZIWXYNIQI�HS�ZE%°�FYHSYGRSWXM

BI-TWA Úvod do XML 2

TWA – kde jsme, co dál …

V dvou třetinách přednášky „HTML a PHP“svět, s

relačními daty (1NF, CWA, …)

Problémy a potřeby dat na webu, různé cesty

- XML - standard pro data (bez 1NF, OWA, …)

- Sémantický web (automatizace – web of data)

- Web 2.0 (sociální web, wisdom of crowds, Web

Science (WSRI), …)

- Sémantizace webu (proces, WIE, anotace, …)

Dnes – datový model – XML, příště dotazování, RDF, …

BI-TWA Úvod do XML 3

data processing or keypunch cards

Copyrighted pictures used only for teaching purpose

Práce s velikými daty již 1890

BI-TWA Úvod do XML 4

Web stránky

Internet

Google

Sémantický web

(IMS)

Analogie – motivace?

Copyrighted pictures used only for teaching purpose

BI-TWAÚvod do XML 5

Propojit celé lidské know-how v 1945

Wikipedia

The memex is the name

given by Vannevar Bush

to the theoretical proto

-hypertext computer system

in As We May Think.

The memex has influenced

the hypertext and

intellect augmenting

computer systems. V roce 1945…

dnes?

Copyrighted pictures used only for teaching purpose

BI-TWA Úvod do XML 6

Tříúrovňový model

• Fyzická úroveň

• Fyzikální princip

• papír

• mikrofilm

• magnetizmus

• …

• Reprezentační (datová) vrstva

• vnitřní reprezentace dat, např. stoh

• XML

• …

• Logická úroveň

• Prezentační (externí úroveň)

Copyrighted pictures used only for teaching purpose

BI-TWA Úvod do XML 7

Značkovací jazyky – MarkUp languages

IBM Generalized Markup Language už tady byl 1960

Myšlenka dodat sémantiku (metadata) pomocí značek

Standard Generalized Markup Language

(ISO 8879:1986 SGML)

Značky lze vnořit, měly by zachovat strom. strukturu

nelze např. <a> …<b>…</a>…</b>

Někdy ale se sémantika (kontext) překrývají, lze pak

<aBegin> …<bBegin>…<aEnd>…<bEnd>…???

BI-TWA Úvod do XML 8

Myšlenka „MarkUp“ – značkování, anotace.

příklad HTML

<i>Tato přednáška</i> má název <b>Tvorba webovských aplikací</b>

V prohlížeči to pak vypadáTato přednáška má název Tvorba webovských aplikací

Cíle HTML• Dříve především úprava vzhledu obsahu

• Dnes definuje „typ“ obsahu• Tohle je nadpis, tohle odstavec, …

• Vzhled určuje prohlížeč (a CSS)

HTML 5 už dál…

Značkovací jazyky – HTML

J. Pokorný a kol. XML technologie Principy a aplikace v praxi, Grada 2009

BI-TWA Úvod do XML 9

XML• Pravidla pro značkování

• Značky si zvolí uživatel sám (program, který je

zpracovává musí vědět, co znamenají)

<NSWI108>Tato přednáška</ NSWI108 > má název

<název> Tvorba webovských aplikací </ název>

Formát XML dokumentu• Preambule

<?xml version=“1.0” encoding=“utf-8”?>

• Právě jeden kořenový element

<můj_dokument>…

</můj_dokument>

XML – syntax (stručně)

J. Pokorný a kol. XML technologie Principy a aplikace v praxi, Grada 2009

BI-TWA Úvod do XML 10

<přednáška>

<název>

Úvod

</název>

<přednášející>

<Titul>

Prof.

</Titul>

<křestní>

Peter

</ křestní>

<příjmení>

Vojtáš

</příjmení>

</přednášející>

</přednáška>

XML – syntax – stromová struktura

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

Značky lze vnořit, ale zachovat strom, nelze např. <a> …<b>…</a>…</b>

přednáška

název Úvod

přednášející

Titul

křestní

příjmení

Prof.

Peter

Vojtáš

elementpodelement

BI-TWA Úvod do XML 11

<přednáška>

<název>

Úvod

</název>

<přednášející Titul=„Prof.“>

<křestní jméno>

Peter

</ křestní jméno>

<příjmení>

Vojtáš

</příjmení>

</přednášející>

</přednáška>

XML – syntax – stromová struktura

Jednoduché hodnoty lze psát dovnitř elementu jako hodnoty atributů (různě)

<přednáška název=„Úvod“>

<přednášející

Titul=„Prof.“

křestní=„Peter“

příjmení=„Vojtáš“

/> <!– komentář uzavření -->

</přednáška>

Lze psát

také

Rozdíl: Atributy se na rozdíl od elementů

nemůžou opakovat a obsahují pouze literál.

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 12

Na webu je první problém s identifikací

URI – Uniform Resource Identifier, URI schema

<SchemeName>:<HierarchicalPart>[?<Query>][#<Fragment>]

„SchemeName“ může být

•protokol (ftp, http, mailto, gopher, …)

•ale také jiné (např. fax, news, about, javascript …)

XML – (globální) identifikátory - URI

BI-TWA Úvod do XML 13

<hierarchical part> obvykle začíná // a může být např.

[uzivatel[:heslo]@]server[:port]/cesta

Např.

http://www.ksi.mff.cuni.cz:8080/bib/?section=publications

URI vs. URL•URL je speciálním případem URI

•URI slouží především k identifikaci zdroje

•URL slouží především jako cesta k dosažení zdroje

XML – (globální) identifikátory - URI

BI-TWA Úvod do XML 14

• XML dokument ~ data, databáze

• Dobře vytvořený (well formed) XML dokument –

preambule, jeden kořen a správně vytvořené entity

(elementy, atributy, odkazy)

• XML dokument může být validní vzhledem ke

schématu – specifikaci struktury (DTD, Schema, …)• DTD (už SGML) je bezkontextová gramatika

• XML Schema, silnější než DTD (např. typy)

• Další (Schematron, RelaxNG, …)

• je to vhodná sémantika pro automatizaci webu ?

Příklad z W3C materiálu Resource Description Framework (RDF) Primer http://www.w3.org/TR/rdf-primer/

DTD, Schema, sémantika v XML

BI-TWA Úvod do XML 15

<bib>

<paper id="o12">

<title>Foundations of Databases</title>

<author>

<firstname>Serge</firstname>

<lastname>Abiteboul</lastname>

</author>

<year>1997</year>

<publisher>Addison Wesley</publisher>

</paper>

...

</bib>

DTD pro XML

Jaké elementy jsou povoléné?

Jak se do sebe smí vnořovat?

Kolikrát se můžou opakovat?

Kde tyhle věci definovat?

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 16

DTD pro XML

<bib>

<paper id="o12">

<title>Foundations of Databases</title>

<author>

<firstname>Serge</firstname>

<lastname>Abiteboul</lastname>

</author>

<year>1997</year>

<publisher>Addison Wesley</publisher>

</paper>

...

</bib><!DOCTYPE bib [

<!ELEMENT bib (paper*)>

<!ELEMENT paper (author+, year, publisher?)>

<!ATTLIST paper id ID #REQUIRED>

<!ELEMENT author (firstname*, lastname)>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT year (#PCDATA)>

<!ELEMENT publisher (#PCDATA)>

...]>

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 17

DTD pro XML – deklarace elementů

<!DOCTYPE bib [

<!ELEMENT bib (paper*)>

<!ELEMENT paper (author+, year, publisher?)>

<!ATTLIST paper id ID #REQUIRED>

<!ELEMENT author (firstname*, lastname)>

<!ATTLIST author age CDATA #IMPLIED>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT year (#PCDATA)>

<!ELEMENT publisher (#PCDATA)>

...

]>

<!ELEMENT Name (Definition)>

Definition - Atomární typ #PCDATA (Parsed Character DATA)

- (a, b, c) seznam podelementů

- (a|b|c) alternativy

- * + ? EMPTYbib je kořenový prvek

bib může obsahovat libovolně

elementů paper

paper má alespoň jeden podele-

ment autor, jeden year, může …

Firstname je typu řetězec znaků

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 18

DTD pro XML – deklarace atributů

<!DOCTYPE bib [

<!ELEMENT bib (paper*)>

<!ELEMENT paper (author+, year, publisher?)>

<!ATTLIST paper id ID #REQUIRED>

<!ELEMENT author (firstname*, lastname)>

<!ATTLIST author age CDATA #IMPLIED>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT year (#PCDATA)>

<!ELEMENT publisher (#PCDATA)>

...

]>

<!ATTLIST názevElementu defAtributu1 defAtributu2 …>

defAtributu = název typ volitelnost [výchozíHodnota]

Typ může být CDATA (řetězec znaků), ID (OID), IDREF (odkaz na ID) nebo

IDREFS (množina odkazů)

Volitelnost REQUIRED, IMPLIED

paper má jeden atribut který

musí mít jednoznačnou hodnotu

author může mít atribut age

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 19

<family>

<person id= mother=“mary”

father=“john”>

<name> Jane Doe </name>

</person>

<person id=“john”

children= >

<name> John Doe </name>

</person>

<person id=“mary”

children=“jane jack”>

<name> Mary Smith </name>

</person>

<person id=

mother=“mary” father=“john”>

<name> Jack Smith </name>

</person>

</family>

DTD pro XML - OID a odkazy

<!DOCTYPE family [

<!ELEMENT family (person*)>

<!ELEMENT person (name)>

<!ELEMENT name (#PCDATA)>

<!ATTLIST person

id ID #REQUIRED

mother IDREF #IMPLIED

father IDREF #IMPLIED

children IDREFS #IMPLIED> ]>

„jane“

„jack“

„jane jack“

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 20

• Alternativní jazyk pro zápis XML schémat• Silnější než DTD

• Přidává typy a integritní omezení na literály

• Schéma (v XML Schema) je také XML dokument

• XML Schema vs. DTD• Příklad: chceme definovat element A, který může

obsahovat podelementy X, Y, Z v libovolném pořadí

(každý právě jednou)

• DTD – musíme vypsat všechny permutace<!ELEMENT A ((X,Y,Z)|(Y,X,Z)|(Z,X,Y)|,...)>

• XML Schema – máme k dispozici kontajner all,

který povoluje, aby podelementy byly v lib. pořadí.

XML Schema

BI-TWA Úvod do XML 21

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name=“bib”>

<xsd:complexType>

<xsd:element name=“paper” minOccurs=“0”

maxOccurs=“unbounded”>

<xsd:complexType>

<xsd:attribute name=“id” type=“ID” use=“required”/>

<xsd:sequence>

<xsd:element name=“author” type=“authorType”

maxOccurs=“unbounded”/>

<xsd:element name=“year” type="xsd:string"/>

<xsd:element name=“publisher” type="xsd:string"

minOccurs=“0”/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:complexType>

</xsd:element>

</xsd:schema>

XML Schema je XML dokument s jazykem

<!DOCTYPE bib [

<!ELEMENT bib (paper*)>

<!ELEMENT paper (author+, year, publisher?)>

<!ATTLIST paper id ID #REQUIRED>

<!ELEMENT author (firstname*, lastname)>

<!ATTLIST author age CDATA #IMPLIED>

<!ELEMENT firstname (#PCDATA)>

<!ELEMENT lastname (#PCDATA)>

<!ELEMENT year (#PCDATA)>

<!ELEMENT publisher (#PCDATA)> ...]>

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 22

XML Schema prvky, atributy, typy, …

<xsd:element name=“bib”/>

<xsd:element name=“paper” minOccurs=“0” maxOccurs=“unbounded”/>

<xsd:element name=“publisher” type="xsd:string" minOccurs=“0”/>

<xsd:attribute name=“id” type=“ID” use=“required”/>

<xsd:attribute name=“age” type="xsd:string" use=“optional”/>

<xsd:attribute name=“language” type="xsd:string" use=“default” value=“de”/>

atomární: xsd:year, “xsd:positiveInteger, xsd:unsignedShort

jednoduché: <xsd:simpleType name=“humanAge“ base=“xsd:unsignedShort“>

<xsd:maxInclusive value=“200“/> </xsd:simpleType>

<xsd:attribute name=“age“ type=“humanAge“/>

komplexní: vytvořené pomocí konstrukcí

<xsd:sequence> … </xsd:sequence> pevné pořadí

<xsd:all> … </xsd:all> volné pořadí

<xsd:choice> … </xsd:choice> jedno z …

nese sémantiku

v angličtině

nenese sémantiku

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 23

• Jména elementů a atributů by měla platit obecně• XML aplikace je musí jednoznačně interpretovat

• XML dokument může obsahovat integrovaná

data z různých slovníků• Každý má vlastní schéma

• Názvy elementů můžou kolidovat

• Jmenné prostory zamezí konfliktům

Prefix:JménoZnačky (elementu, atributu, …)

Prefix definuje jmenný prostor

XML – jmenné prostory

BI-TWA Úvod do XML 24

<Buch xmlns =''http://www.semanticweb-grundlagen.de/''

xmlns:aifb =''http://www.aifb.Uni-karlsruhe.de/''>

<Titel>Semantic Web Grundlagen</Titel>

<aifb:Autor>

<aifb:Name>Pascal Hitzler</aifb:Name>

<aifb:Titel>Dr.</aifb:Titel>

</aifb:Autor>

<aifb: Autor>

<aifb:Name>York Sure</aifb:Name>

<aifb:Titel>Dr.</aifb:Titel>

</aifb:Autor>

</Buch>

XML – jmenné prostory - příklad

Příklad z P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 25

<Kniha xmlns:náš ='' https://edux.fit.cvut.cz/courses/BI-TWA/ ''

xmlns:aifb =''http://www.aifb.Uni-karlsruhe.de/''>

<náš:Název>Semantic Web Grundlagen</náš:Název>

<aifb:Autor>

<aifb:Name>Pascal Hitzler</aifb:Name>

<aifb:Titel>Dr.</aifb:Titel>

</aifb:Autor>

<aifb: Autor>

<aifb:Name>York Sure</aifb:Name>

<aifb:Titel>Dr.</aifb:Titel>

</aifb:Autor>

</Kniha>

XML – jmenné prostory - příklad

Příklad z P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 26

XML Schema pro XML Schema …

Hierarchie typů

Rozšíření, restrikce (databázové pokušení)

Jakou nesou sémantiku, jakou lidi rozumí …

Jmenné prostory mohou pomoci

Hlavní omezení – stromová struktura

Jak kódovat „Informační zdroj IZ1 si myslí že

přednáška P1 odzněla na AWIC09 a přednesl ji

L1“ a „IZ2 si myslí že na DATAKON08 odzněla

přednáška jejíž název obsahuje „sémantizace“… “…

XML Schema rozšíření typů, …omezení…

BI-TWA Úvod do XML 27

<vydal>

<vydavatelstvi>Springer-Verlag</vydavatelstvi>

<kniha>Semantic Web - Grundlagen</kniha>

<autor> P. Hitzler a kol.</autor>

</vydal>

Jaká je sémantika <vydavatelstvi Name="Springer-Verlag">

<vydal kniha="Semantic Web – Grundlagen“/>

element-podelement </vydavatelstvi>

<autor> P. Hitzler

<kniha Name="Semantic Web - Grundlagen">

<vydavatel vydavatelstvi="Springer-Verlag">

</kniha>

<kniha …>…

</kniha>

</autor>

XML Schema, …omezení… RDF

Motivováno P. Hitzler, M. Krötzsch, S. Rudolph, Y. Sure. Semantic Web Grundlagen

BI-TWA Úvod do XML 28

XML v podstatě stromy (i když reference - rekurze)

RDF model je orientovaný graf, … později

Další info

J. Pokorný a kol. XML technologie Principy a

aplikace v praxi, Grada 2009

W3C ,

Foundations of Semantic Web Technologies,

Chapman & Hall, P. Hitzler, M. Krötzsch, S. Rudolph

XML and Semantic Web Technologies, Lars

Schmidt-Thieme, přednášky na webu ,

Pokračování – od stromů ke grafům

BI-TWA Úvod do XML 29

Více detailů, XML and Semantic Web Technologies,

Lars Schmidt-Thieme, přednášky na webu ,

XML pro programátory

XML databáze

XML dotazovací jazyky

Příklad z W3C materiálu Resource Description Framework (RDF) Primer http://www.w3.org/TR/rdf-primer/

Více …

BI-TWA Úvod do XML 30

XML pro programátory

XML databáze

XML dotazovací jazyky

Google images „Hype curve“ a Gartner Hype Curve

Více …

BI-TWA Úvod do XML 31

Více …

Google images „Hype curve“ a Gartner Hype Curve 2009

BI-TWA Úvod do XML 32

Více …

Google images „Hype curve“ a Gartner Social Hype Curve

BI-TWA Úvod do XML 33

Více …

Google images „Hype curve“ a Gartner 2006

BI-TWA Úvod do XML 34

Dotazy?

Závěr, příklady, materiály, …