Upload
phamhanh
View
221
Download
0
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
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 …