CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004
Heterogenní xml zdroje... stejná aplikační doména rozdílné schémata xml zdrojů využítí: sémantický web
Principy dotazování 1. globální (jednotná) reprezentace XML schémat uživatel nemusí znát jednotlivá schémata pro formulaci dotazu 2. překlad globálního dotazu na dotazy odpovídající danému schématu 3. 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 rozdílné vyjádření N:N vztahu globální XML schéma schopno vyjádřit jen jednu z možností
Globální jazyk – CXPath Conceptual 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
Příklad ORM/NIAM modelu
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
Koncept / relaceMapování do XML 1Mapování do XML 2 Article/references/paper/publications/author/article Koncept / relaceMapování do XML 1Mapování do XML 2 Person/references/paper/*[local- name(.)=‘author’ or local- name(.)=‘referee’ /publications/author Koncept / relaceMapování do XML 1Mapování do XML 2 Article {author} →Personauthor.. Koncept / relaceMapování do XML 1Mapování do XML 2 Article← {author} Person[local-name(.)=“author”]/..article
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: Title je relativní koncept Article je kontextem přelož relaci Article → Title
Příklady překladu (2) prostor pro optimalizaci generovaných výrazů:
Příklady překladu (3)
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 1. Querying Heterogenous XML Sources through a Conceptual Schema, S.D. Camillo, 2003, LNCS 2813, p , 2. Object-Role Modeling (ORM/NIAM), T. Halpin, 1998,