SlideShare une entreprise Scribd logo
1  sur  50
How  XQuery and AtomPub Are About To Change Your World
Speaker: Kurt Cagle ,[object Object],[object Object],[object Object],[object Object]
Overview ,[object Object],[object Object],[object Object],[object Object]
The Web is not built around process. Rather, the Web should be seen as a database predicated not on the notion of absolute data but instead upon the idea that behind every address is a multifaceted thing, one that, like the shadows upon Plato’s cave, never reveals itself  in toto  but instead only give hints about its true shape to those who are patient. That is what the RESTFUL web is all about.
Defining Resource ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exploring Resources Resources: Not Resources*: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Representations A  representation  is a description of a resource that is used for some computational purpose.   Representations can be thought of as  models  of the resource in question, and as is the case with any modeling, a given resource may have any number of distinct representations.
A Presentation of Representations Rendered Graphics Bitmap Images Jane Doe, Engineer (resource)‏ Jane Doe is an employee who works at ACME Widget Works as a Senior Design Engineer. He’s been here  nce 1995 .... Text Description Video Audio <employee> <firstname> Jane </firstname> <lastname> Doe </lastname> <title> Engineer </title> XML Print Formatted (PDF)‏
Representational State Transfer ,[object Object],[object Object],[object Object]
REST is .... ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Importance of Collections ,[object Object],[object Object],[object Object],[object Object]
Identifying  RESTful  Services ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sample RESTful Services (Atom)‏ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST and Databases In essence, a RESTful approach uses a similar metaphor to the CRUD (Create, Read, Update, Delete) methods that a database uses, in the form (Post, Get, Put, Delete). Because of this, one way of summarizing RESTful services is that it is a way to treat the Web as a database.
If the web is becoming a database, then XQuery will very likely end up becoming its global query language.  Developed as part of the W3C core services, XQuery uses XML as an abstraction layer for working with data repositories, though neither the source nor the output of such a query needs in fact to be XML itself. As such, XQuery would be the next stage of data abstraction.
Data Abstraction 1990 In the late 1980s and early 1990s, the database market coalesced around a new standard called the Structured Query Language, better known as SQL. SQL used set theory and tables with relational keys in order to construct complex queries. SQL focused on querying and data system updates, rather than serialization.
Data Abstraction 2000 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Data Abstraction 2010 ,[object Object],[object Object]
Components of XQuery 1.0 ,[object Object],[object Object],[object Object],[object Object]
XQuery’s FLOWR ,[object Object],SQL XQuery SELECT a FROM b F or $a in $b SET a = b L et $a := $b ORDER BY O rder by WHERE W here {result of set} R eturn
<employee id=&quot;be129&quot;> <firstname>Jane</firstname> <lastname>Doe</lastname> <title>Engineer</title> <division>Materials</division> <building>327</building> <room>19</room> <supervisor>be131</supervisor> </employee> <employee id=&quot;be130&quot;> <firstname>William</firstname> <lastname>Defoe</lastname> <title>Accountant</title> <division>AcctsPayable</division> ... <building>326</building> <room>14a</room> </employee> <employee id=&quot;be131&quot;> <firstname>Jack</firstname> <lastname>Dee</lastname> <title>Manager</title> <division>Materials</division> <building>327</building> <room>21</room> </employee> <!-- more employees -->
let $employees := collection(&quot;/db/assets/employees&quot;)‏ let $mat_employees := for $employee in $employees  where $employee/division = &quot;Materials&quot; order by $employee/lastname ascending return $employee return <html> <head> <title>Materials Employees</title> <style type= &quot;text/css“>@import url(&quot;style.css&quot;);</style> </head> <body> <h1>Materials Employees</h1> <table border=&quot;1&quot;> <tr> <th>Name</th> <th>Title</th> <th>Location</th> </tr> {for $emp in $mat_employees return <tr class=&quot;{ if (index-of($mat_employees,$emp) mod 2 = 0)  then 'even'  else 'odd' }&quot;>  <td>{concat($emp/firstname,&quot; &quot;,$emp/lastname)}</td> <td>{string($emp/title)}</td> <td>Building {string($emp/building)}, Room {string($emp/room)}</td> </tr> } </table> </body> </html>
 
XQuery Modulization ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(: Module emp.xq :)‏ module namespace emp = &quot;http://www.myco.com/xmlns/emp&quot;; declare function emp:division-employees($employees as element()*,$div-name as xs:string){ for $employee in $employees  where $employee/division = $div-name order by $employee/lastname ascending return $employee }; declare function emp:employee-table($employees as element()*,$div-name as xs:string){ <h:html xmlns:h=&quot;http://www.w3.org/1999/xhtml&quot;> <h:head> <h:title>{$div-name} Employees</h:title> <h:style type=&quot;text/css&quot;><![CDATA[ ... Style inf .... ]]></h:style> </h:head> <h:body> <h:h1>{$div-name} Employees</h:h1> <h:table> <h:tr> <h:th>Employee Name</h:th> <h:th>Employee Title</h:th> <h:th>Location</h:th> </h:tr> {for $emp in $employees return …  as previous … } </h:table> </h:body> </h:html>  };
(: Module emp.xq :)‏ import module namespace emp=&quot;http://www.myco.com/xmlns/emp&quot; at &quot;emp.xq&quot;; let $employees := collection(“/db/assets/employees“)‏ let $division := &quot;Materials&quot; let $div_employees := emp:division-employees($employees,$division)‏ let $output := emp:employee-table($div_employees,$division)‏ return $output
Extension Modules for eXist ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XQuery Server Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
If you can abstract your data on the back end, shift towards a RESTful representation of that data through the server, then provide a compelling mechanism for displaying and editing that data, you will collapse most contemporary multi-tiered application architectures. That is the promise of  XRX . The Prescription of XRX
XQuery and AtomPub ,[object Object],[object Object],[object Object],[object Object]
XQuery and AtomPub (II)‏ ,[object Object],[object Object],[object Object]
Typical AtomPub Pipeline Source Feed Sort Filter Query Filter Paging Filter Transform Filter Output URL Parameters
XRX ,[object Object],[object Object],[object Object],[object Object],[object Object]
XRX and AtomPub Projects ,[object Object],[object Object],[object Object],[object Object]
XForms Engines ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST (or Resource) Oriented Architectures represent a significant shift in the web services model, though one that is not necessarily adversarial to the more familiar SOA model (indeed, it complements the model in places where SOA is weakest). This suggests that the return on investment on an ROA application should be relatively high, especially as the back-end Xquery engine market matures.
REST vs. SOA REST SOA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ROA As SOA Complement ,[object Object],[object Object],[object Object]
Upcoming Xquery Standards ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object],[object Object]
 
The market for XQuery Engines and XML Databases has  exploded in the last couple of years, but there are a few that are becoming dominant in the marketplace
eXist XML Database ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MarkLogic XML Server ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IBM DB2 9 pureXML Database ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DataDirect XQuery ,[object Object],[object Object],[object Object],[object Object],[object Object]
Oracle XML DB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft SQL Server ,[object Object],[object Object],[object Object]
TigerLogic Dynamic Data Hub ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 

Contenu connexe

Tendances

Object models and object representation
Object models and object representationObject models and object representation
Object models and object representationJulie Allinson
 
Repositories thru the looking glass
Repositories thru the looking glassRepositories thru the looking glass
Repositories thru the looking glassEduserv Foundation
 
The Standardization of Semantic Web Ontology
The Standardization of Semantic Web OntologyThe Standardization of Semantic Web Ontology
The Standardization of Semantic Web OntologyMyungjin Lee
 
Building a Digital Library
Building a Digital LibraryBuilding a Digital Library
Building a Digital Librarytomasz
 
Knowledge graphs on the Web
Knowledge graphs on the WebKnowledge graphs on the Web
Knowledge graphs on the WebArmin Haller
 
Semantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic WebSemantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic WebEditor IJCATR
 
SWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly worksSWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly worksJulie Allinson
 
Data modelingpresentation
Data modelingpresentationData modelingpresentation
Data modelingpresentationfikirabc
 
Semantic Web: introduction & overview
Semantic Web: introduction & overviewSemantic Web: introduction & overview
Semantic Web: introduction & overviewAmit Sheth
 
THGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus managementTHGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus management@CULT Srl
 
Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...Amit Sheth
 
Semantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-WorldSemantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-WorldAmit Sheth
 
Open Conceptual Data Models
Open Conceptual Data ModelsOpen Conceptual Data Models
Open Conceptual Data Modelsrumito
 

Tendances (18)

NIF as a Multi-Model Semantic Information System
NIF as a Multi-Model Semantic Information SystemNIF as a Multi-Model Semantic Information System
NIF as a Multi-Model Semantic Information System
 
Object models and object representation
Object models and object representationObject models and object representation
Object models and object representation
 
Repositories thru the looking glass
Repositories thru the looking glassRepositories thru the looking glass
Repositories thru the looking glass
 
The Standardization of Semantic Web Ontology
The Standardization of Semantic Web OntologyThe Standardization of Semantic Web Ontology
The Standardization of Semantic Web Ontology
 
Building a Digital Library
Building a Digital LibraryBuilding a Digital Library
Building a Digital Library
 
Knowledge graphs on the Web
Knowledge graphs on the WebKnowledge graphs on the Web
Knowledge graphs on the Web
 
Semantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic WebSemantic Annotation: The Mainstay of Semantic Web
Semantic Annotation: The Mainstay of Semantic Web
 
SWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly worksSWAP : A Dublin Core Application Profile for desribing scholarly works
SWAP : A Dublin Core Application Profile for desribing scholarly works
 
Jpl presentation
Jpl presentationJpl presentation
Jpl presentation
 
Data modelingpresentation
Data modelingpresentationData modelingpresentation
Data modelingpresentation
 
Semantic Web: introduction & overview
Semantic Web: introduction & overviewSemantic Web: introduction & overview
Semantic Web: introduction & overview
 
THGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus managementTHGenius, rdf and open linked data for thesaurus management
THGenius, rdf and open linked data for thesaurus management
 
Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...Semantic Web in Action: Ontology-driven information search, integration and a...
Semantic Web in Action: Ontology-driven information search, integration and a...
 
Semantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-WorldSemantic Web: Technolgies and Applications for Real-World
Semantic Web: Technolgies and Applications for Real-World
 
RDBMS with MySQL
RDBMS with MySQLRDBMS with MySQL
RDBMS with MySQL
 
Open Conceptual Data Models
Open Conceptual Data ModelsOpen Conceptual Data Models
Open Conceptual Data Models
 
Bt0066 dbms
Bt0066 dbmsBt0066 dbms
Bt0066 dbms
 
Ijert semi 1
Ijert semi 1Ijert semi 1
Ijert semi 1
 

Similaire à How XQuery and AtomPub Will Change Data Access

Xml Java
Xml JavaXml Java
Xml Javacbee48
 
IBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedIBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedTed Leung
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Marco Gralike
 
Semantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesSemantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesDeniz Kılınç
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1Marco Gralike
 
Facet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLFacet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLLeigh Dodds
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And XmlDavid Truxall
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesCHOOSE
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyondCarles Farré
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuseejlp12
 
XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7Deniz Kılınç
 
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationEllerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationAlex Henderson
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R StudioRupak Roy
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsRinke Hoekstra
 

Similaire à How XQuery and AtomPub Will Change Data Access (20)

Xml Java
Xml JavaXml Java
Xml Java
 
IBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons LearnedIBM Solutions '99 XML and Java: Lessons Learned
IBM Solutions '99 XML and Java: Lessons Learned
 
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
Real World Experience With Oracle Xml Database 11g An Oracle Ace’s Perspectiv...
 
Semantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sourcesSemantic RDF based integration framework for heterogeneous XML data sources
Semantic RDF based integration framework for heterogeneous XML data sources
 
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
OPP2010 (Brussels) - Programming with XML in PL/SQL - Part 1
 
Basics of XML
Basics of XMLBasics of XML
Basics of XML
 
SCDJWS 6. REST JAX-P
SCDJWS 6. REST  JAX-PSCDJWS 6. REST  JAX-P
SCDJWS 6. REST JAX-P
 
Facet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQLFacet: Building Web Pages with SPARQL
Facet: Building Web Pages with SPARQL
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
 
Introduction to odbms
Introduction to odbmsIntroduction to odbms
Introduction to odbms
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond[DSBW Spring 2010] Unit 10: XML and Web And beyond
[DSBW Spring 2010] Unit 10: XML and Web And beyond
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
 
XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7XML, XML Databases and MPEG-7
XML, XML Databases and MPEG-7
 
Ellerslie User Group - ReST Presentation
Ellerslie User Group - ReST PresentationEllerslie User Group - ReST Presentation
Ellerslie User Group - ReST Presentation
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R Studio
 
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
Unit 10: XML and Beyond (Sematic Web, Web Services, ...)
 
Processing XML with Java
Processing XML with JavaProcessing XML with Java
Processing XML with Java
 
Xml
XmlXml
Xml
 
SemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n BoltsSemanticWeb Nuts 'n Bolts
SemanticWeb Nuts 'n Bolts
 

Dernier

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Dernier (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

How XQuery and AtomPub Will Change Data Access

  • 1. How XQuery and AtomPub Are About To Change Your World
  • 2.
  • 3.
  • 4. The Web is not built around process. Rather, the Web should be seen as a database predicated not on the notion of absolute data but instead upon the idea that behind every address is a multifaceted thing, one that, like the shadows upon Plato’s cave, never reveals itself in toto but instead only give hints about its true shape to those who are patient. That is what the RESTFUL web is all about.
  • 5.
  • 6.
  • 7. Representations A representation is a description of a resource that is used for some computational purpose. Representations can be thought of as models of the resource in question, and as is the case with any modeling, a given resource may have any number of distinct representations.
  • 8. A Presentation of Representations Rendered Graphics Bitmap Images Jane Doe, Engineer (resource)‏ Jane Doe is an employee who works at ACME Widget Works as a Senior Design Engineer. He’s been here nce 1995 .... Text Description Video Audio <employee> <firstname> Jane </firstname> <lastname> Doe </lastname> <title> Engineer </title> XML Print Formatted (PDF)‏
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. REST and Databases In essence, a RESTful approach uses a similar metaphor to the CRUD (Create, Read, Update, Delete) methods that a database uses, in the form (Post, Get, Put, Delete). Because of this, one way of summarizing RESTful services is that it is a way to treat the Web as a database.
  • 15. If the web is becoming a database, then XQuery will very likely end up becoming its global query language. Developed as part of the W3C core services, XQuery uses XML as an abstraction layer for working with data repositories, though neither the source nor the output of such a query needs in fact to be XML itself. As such, XQuery would be the next stage of data abstraction.
  • 16. Data Abstraction 1990 In the late 1980s and early 1990s, the database market coalesced around a new standard called the Structured Query Language, better known as SQL. SQL used set theory and tables with relational keys in order to construct complex queries. SQL focused on querying and data system updates, rather than serialization.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. <employee id=&quot;be129&quot;> <firstname>Jane</firstname> <lastname>Doe</lastname> <title>Engineer</title> <division>Materials</division> <building>327</building> <room>19</room> <supervisor>be131</supervisor> </employee> <employee id=&quot;be130&quot;> <firstname>William</firstname> <lastname>Defoe</lastname> <title>Accountant</title> <division>AcctsPayable</division> ... <building>326</building> <room>14a</room> </employee> <employee id=&quot;be131&quot;> <firstname>Jack</firstname> <lastname>Dee</lastname> <title>Manager</title> <division>Materials</division> <building>327</building> <room>21</room> </employee> <!-- more employees -->
  • 22. let $employees := collection(&quot;/db/assets/employees&quot;)‏ let $mat_employees := for $employee in $employees where $employee/division = &quot;Materials&quot; order by $employee/lastname ascending return $employee return <html> <head> <title>Materials Employees</title> <style type= &quot;text/css“>@import url(&quot;style.css&quot;);</style> </head> <body> <h1>Materials Employees</h1> <table border=&quot;1&quot;> <tr> <th>Name</th> <th>Title</th> <th>Location</th> </tr> {for $emp in $mat_employees return <tr class=&quot;{ if (index-of($mat_employees,$emp) mod 2 = 0) then 'even' else 'odd' }&quot;> <td>{concat($emp/firstname,&quot; &quot;,$emp/lastname)}</td> <td>{string($emp/title)}</td> <td>Building {string($emp/building)}, Room {string($emp/room)}</td> </tr> } </table> </body> </html>
  • 23.  
  • 24.
  • 25. (: Module emp.xq :)‏ module namespace emp = &quot;http://www.myco.com/xmlns/emp&quot;; declare function emp:division-employees($employees as element()*,$div-name as xs:string){ for $employee in $employees where $employee/division = $div-name order by $employee/lastname ascending return $employee }; declare function emp:employee-table($employees as element()*,$div-name as xs:string){ <h:html xmlns:h=&quot;http://www.w3.org/1999/xhtml&quot;> <h:head> <h:title>{$div-name} Employees</h:title> <h:style type=&quot;text/css&quot;><![CDATA[ ... Style inf .... ]]></h:style> </h:head> <h:body> <h:h1>{$div-name} Employees</h:h1> <h:table> <h:tr> <h:th>Employee Name</h:th> <h:th>Employee Title</h:th> <h:th>Location</h:th> </h:tr> {for $emp in $employees return … as previous … } </h:table> </h:body> </h:html> };
  • 26. (: Module emp.xq :)‏ import module namespace emp=&quot;http://www.myco.com/xmlns/emp&quot; at &quot;emp.xq&quot;; let $employees := collection(“/db/assets/employees“)‏ let $division := &quot;Materials&quot; let $div_employees := emp:division-employees($employees,$division)‏ let $output := emp:employee-table($div_employees,$division)‏ return $output
  • 27.
  • 28.
  • 29. If you can abstract your data on the back end, shift towards a RESTful representation of that data through the server, then provide a compelling mechanism for displaying and editing that data, you will collapse most contemporary multi-tiered application architectures. That is the promise of XRX . The Prescription of XRX
  • 30.
  • 31.
  • 32. Typical AtomPub Pipeline Source Feed Sort Filter Query Filter Paging Filter Transform Filter Output URL Parameters
  • 33.
  • 34.
  • 35.
  • 36. REST (or Resource) Oriented Architectures represent a significant shift in the web services model, though one that is not necessarily adversarial to the more familiar SOA model (indeed, it complements the model in places where SOA is weakest). This suggests that the return on investment on an ROA application should be relatively high, especially as the back-end Xquery engine market matures.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.  
  • 42. The market for XQuery Engines and XML Databases has exploded in the last couple of years, but there are a few that are becoming dominant in the marketplace
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.