260 likes | 403 Views
This review explores the landscape of web development frameworks shaped by Web 2.0 and 3.0, which aim to enhance speed, intelligence, and multimedia richness. It highlights key frameworks like Ruby on Rails, Grails, Django, and Symfony that utilize MVC architecture and focus on backend efficiency. Additionally, it examines advancements in rich web interfaces through tools like Flash Builder and the evolving capabilities of HTML5. Finally, it addresses the significance of the Semantic Web in improving automated searchability and data mining across hidden databases, offering an overview of tools like XML and XPath. ### Relevant
E N D
Web X.0 and the Semantic Web And NoSQL Database Systems
Quick review: Web development frameworks • Web 2.0/3.0 is about making websites faster, smarter, more media rich and more intuitive • There is a generation of web development frameworks that focus on faster and smarter, they attack the back end, not the front end • Ruby on Rails, Grails, Django, Symfony, and others • They tend to use some kind of relational to object mapping/wrapping • They support and in fact enforce the MVC approach to developing websites – Model (the database with mapping/wrapping), View (web pages), Controller (pieces of code that map view manipulation into model manipulations and vice-versa). • They are AJAX friendly
Client-side web development • There is another generation of web frameworks that focus on making it easy to create rich web interfaces • Flash Builder (gone open source from Adobe) • Silverlight (from Microsoft and perhaps dead?) • They support 2D and some 3D graphics • They use upfront loading to minimize interaction with server • There is a newer effort involving HTML5 • Graphics is supported, with 2D and some 3D • Local storage with simple insert, delete, can use SQLite • Better multimedia support • More powerful Javascript libraries are coming out, e.g. JQuery, as well
Important to note • Web X.0 efforts try to make use of graphics in interfaces, as well as provide better displaying of media • But supporting blob and continuous data access is still very rudimentary (images, video, audio, etc.) • Problem: we cannot screen media in real time • Problem: it is very difficult to capture the semantics of media
Quick review: the Semantic Web • This is oriented around making the web more automatically searchable • Main foci: • Assertions and inferences • Exposing databases that contain “hidden” data • Searching of media bases (blog and continuous), i.e., exposing them • Searching document bases, i.e., exposing them • Data mining
The Semantic Web, continued • Main tools • Namespaces posted on web and shared • XML • Ontologies of assertions • Tall people play basketball – Joe is tall (note both schema and instance based) • Walking paths linked by assertions with languages like SPARQL • Forming inferences from assertions along the way • XML extensions to accommodate complex data and non-string data and querying of large datasets • Support pointers to namespaces • Support complex, non-textual documents, along with object IDs, keys and foreign keys
Accommodating complex data • Schemas • Initially – DTDs • Later – XML schema • Save schema fragments and import them • Non-string data types • Keys and FKs • Type constructors • Primitive – integer, float, boolean, date, ID • Simple – list, union • Complex – groups of elements
XPATH – for searching XML schemas hierarchically • An XPath expression takes a document tree as input and returns a multi-set of nodes of the tree • Expressions that start with / are absolute path expressions • Expression / – returns root node of XPath tree • /Students/Student – returns all Student-elements that are children of Students elements, which in turn must be children of the root • /Student – returns empty set (no such children at root
XPATH continued • Current (or context node) – exists during the evaluation of XPath expressions (and in other XML query languages) • . – denotes the current node; .. – denotes the parent • foo/bar – returns all bar-elements that are children of foo nodes, which in turn are children of the current node • ./foo/bar – same • ../abc/cde – all cde e-children of abc e-children of the parent of the current node • Expressions that don’t start with / are relative (to the current node)
Attributes, text, … • /Students/Student/@StudentId – returns all StudentId a-children of Student, which are e-children of Students, which are children of the root • /Students/Student/Name/Last/text() – returns all t-children of Last e-children of … • /comment( ) – returnscomment nodes under root • XPath provides means to select other document components as well
XQuery • General structure: FOR variable declarations WHERE condition RETURN document • Example: (: students who took MAT123 :) FOR $t IN doc(“http://xyz.edu/transcript.xml”)//Transcript WHERE $t/CrsTaken/@CrsCode = “MAT123” RETURN $t/Student • Result: <Student StudId=“111111111” Name=“John Doe” /> <Student StudId=“123454321” Name=“Joe Blow” />
XML and Web X.0: Flash Builder <?xml version="1.0" encoding="utf-8"?> <s:Applicationxmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <mx:DateChooser x="527" y="142"/> </s:Application>
Semantic Web big problems • Massive reengineering effort to make use of Semantic Web technology • Assertions that span nodes can be extremely time consuming to traverse • Making media accessible • Easy enough to generate low level assertions automatically • Very time consuming to add assertions manually by experts • Our main tools are tagging and image/sound processing packages that are very complex and very heuristic driven • XML Schema, the big XML extension, is unwieldy
Web X.0 big problems • We are not just trying to search relational databases • Graphics is often used in a gratuitous, non-useful, even distracting fashion, and they eat up download time and computational time • We still cannot manipulate or search or interpret media
Comparison with NoSQL DBs • Key-document and key-value databases are a way of organizing document and value (blob) and continuous databases so they can be searched quickly by next generation web applications, as well as by programs automatically searching the web • Graph databases are a way of dynamically extending assertions between objects, but don’t play well with large networks
Nice things about NOSQL DBS andthe Semantic Web and Web X.0 • NoSQL DBs are minimalistic in just the right way • Much easier to plug in than complex XML Schema front ends to databases and can work with existing relational dbs • Documents are natural to both efforts • Media blogs are natural to both efforts • Graphs are natural to the Semantic Web
The Future…? • HTML5, with graphics and local databases • Document, value, and graph dbs • Use traditional languages already in place, like Javascript and XML • A lightweight, very incremental approach