260 likes | 386 Views
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
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