220 likes | 329 Views
CXPath. Do tazování nad heterogenními XML zdroji s pomocí konceptuálního schéma. Jan Vávra, 21. dubna 2004 jan.vavra @matfyz.cz. Heterogenní xml zdroje . stejná aplikační doména rozdílné schémata xml zdrojů využítí: sémantický web. Principy dotazování.
E N D
CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004 jan.vavra@matfyz.cz
Heterogenní xml zdroje ... • stejná aplikační doména • rozdílné schémata xml zdrojů využítí: • sémantický web
Principy dotazování • globální (jednotná) reprezentace XML schémat • uživatel nemusí znát jednotlivá schémata pro formulaci dotazu • překlad globálního dotazu na dotazy odpovídající danému schématu • zpětné převedení výsledků tak, aby odpovídaly globálnímu shcématu
Překlad globálního dotazu • máme globální schéma (konceptuální) • překládáme dotaz • nad globálním schématem • do každého jednotlivého lokálního XML schématu • za pomoci mapování (globál. → lokál. schéma)
Proč ne XML schema? Relace vs. hiearchie <article> <author/> </article> <author> <article/> </author> • rozdílné vyjádření N:Nvztahu • globální XML schéma schopno vyjádřit jen jednu z možností
Globální jazyk – CXPathConceptual XPath • Na čem založit globální jazyk? • operace spojení – relační algebra, SQL • výraz cesty – OQL, Lorel, XPath • Byl zvolen XPath 1.0 • XPath vs. CXPath • hierchické vztahy vs. vztahy bez hierchií • kořenový element vs. dotazování se odkudkoliv
Konceptuální model • založen na ORM / NIAM • (Object Role Modeling / Natural language Information Analysis Method) • varianta ER modelu • definuje: • koncept • lexikální ... #PCDATA • nelexikální … elementy • vztahy mezi koncepty
ORM model vs. ER model • ER atribut × ORM entita, relace • pro některé dotazy je třeba, aby atribut byl entita. • není třeba definovat integritní omezení zvláštˇ pro atributy a relace.
ORM model vs. XML model (1) • název konceptu vs. název elementu • elementů stejného jména může být více na různých úrovních a mohou mít tak jiný význam • koncept stejného jména může být jen jeden • název konceptu = { synonyma, překlady elementů } • kořenový element v XML modelu • ORM nemá kořenový koncept • v ORM lze se dotazovat na libovolný koncept
CXPath ( Conceptual Xpath ) • jazyk pro dotazování nad ORM modelem • navigační operátor (/) • XPath: book/ ... „vyber potomky elementu book“ • CXPath: book/ ... „vyber koncepty v relaci s book“ • příklad: Vyber instance konceptu Title, které jsou v relaci instacemi konceptu Article, které jsou vztaženy k instacím konceptu Year s hodnotou 2004 / Article [Year = “2004” ] / Title / Title / Article [ Year = “2004” ]
CXPath a XPath ... • kvalifikovaný navigační operátor – název relace • př.: mezi Article a Person definovány dvě relace • co znamená Article / Person ? • => ‘/’ se musí upřesnit – kvalifikovat názvem relace • Article /{author} Person • kvalifikovaný navigační operátor – název role • někdy je ještě potřeba vyjádřit směr • u relace mezi instancemi téhož konceptu
Kvalifikovaný navigační operátor – název role /Person/{CurrentMarriage.husband}/Person/Name
CXPath a XPath ... • hiearchické operátory .., // • nejsou v CXPath definovány • pozn. operátor / zachován, pozměněn význam z “otec-syn” na “vztažen“
Mapování CXPath do XPath • je potřeba mít mapování mezi konceptuálním a XML schematem • mapovací katalog • pohledy • pro každý konstrukt v konceptu definován XPath výraz, který vrací odpovídající množinu elementů • XPath výraz je definován pro: • koncept • každý směr relace
Překlad CXPath na XPath • přepisovací strategie: • vstup je analyzován zleva doprava • první / vynecháno • první koncept ... odpovídající XPath výraz • každý další koncept je relativní • je třeba před něj vypsat XPath výraz pro příslušnou relaci • pozn. takových relací může být více – kvalifikované relace
Příklady překladu (1) • Title „→“ Heading: • Titleje relativní koncept • Article je kontextem • přelož relaci • Article → Title
Příklady překladu (2) • prostor pro optimalizaci generovaných výrazů: • /references/paper/referee/../@title
Závěr • CXPath je jazyk založený na Xpath • dotazuje se nad abstrakcí několika heterogenních XML zdrojů • CXPath se mapuje do výrazů jazyka XPath • výsledné výrazy by se daly optimalizovat
Literatura • Querying Heterogenous XML Sources through a Conceptual Schema, S.D. Camillo, 2003, LNCS 2813, p. 186-199, • http://www.firmar.com.br/sandro/paper254.pdf • Object-Role Modeling (ORM/NIAM), T. Halpin, 1998, • http://www.orm.net/pdf/springer.pdf