48
XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Embed Size (px)

Citation preview

Page 1: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML, Ajax, Web Services, Semantic Web

Week 13

INFM 603

Page 2: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Agenda• XML• Ajax• Web Services• Semantic Web

Page 3: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML• XML eXtensible Markup Language• XML

• An XML document is a text-based document• XML is a language for describing data or for creating markup languages• Allows data to be structured, stored and transmitted in a hierarchical

fashion• XML tags (element type names) provide a reader an idea of what data

means• XML is human-readable

• Goals for XML• Easily adapted to specific tasks (e.g., Rendering Web pages, Encoding

metadata, Semantic Web)• Easily created/processed/read• Concise

Page 4: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML• Example (Providing information about a course)

<?xml version="1.0" encoding="ISO-8859-1"?> <semester>

<course courseNum=“bio101”><name>Intro to Biology</name><instructor>Prof Cell</instructor>

</course> </semester>

Page 5: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML• XML is case sensitive• XML declaration is the first statement

– <?xml version="1.0"?>• An XML document is a “tree”

– Must contain one root element– Other elements must be properly nested

• All start tags must have end tags• Attribute values must have quotation marks

– <item id=“33905”>• Certain characters are “reserved”

– For example: &lt; is used to represent <• You can generate different types of documents from an XML document

(through a process call Transformation). You could generate HTML, CD, DVD, Video, etc.

Page 6: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Some XML Applications• Text Encoding Initiative

– For adding annotation to historical manuscripts– http://www.tei-c.org/

• Encoded Archival Description– To enhance automated processing of finding aids– http://www.loc.gov/ead/

• Metadata Encoding and Transmission Standard– Bundles descriptive and administrative metadata– http://www.loc.gov/standards/mets/

Page 7: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

The XML Family Tree

SGML

XML

HTML TEI

. . .

. . .

XHTML

SMIL

MathML

VoiceXML

RDF

RSS

Page 8: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Some languages based on XML• XHTML• SMIL Demo available at

http://www.umiacs.umd.edu/~oard/teaching/603/spring12/slides/13/media.html

• SVG XML application language that replaces many uses of bitmap graphics

• RSS• Rich Site Summary or Really Simple Syndication• Format for delivering changing web content

• MathML• Used to describe mathematical notations

• WAP and WML• For handheld devices

Languages Based on XML

Page 9: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Used with XML documents to transform data into a particular context (e.g., HTML, word, pdf, etc.) or another XML document

• In order to define the transformation an XSLT stylesheet is defined• The stylesheet is an XML document

9

XSLT

Page 10: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML Example• View “The Song of the Wandering Aengus”• http://www.umiacs.umd.edu/~oard/teaching/603/spring12/slides/13/xml.htm

Page 11: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

XML Example<?xml version="1.0"?>

<!DOCTYPE POEM SYSTEM "poem01.dtd">

<?xml-stylesheet type="text/xsl" href="poem01.xsl"?>

<POEM>

<TITLE>The Song of Wandering Aengus</TITLE>

<AUTHOR> <FIRSTNAME>W.B.</FIRSTNAME>

<LASTNAME>Yeats</LASTNAME>

</AUTHOR>

<STANZA>

<LINE>I went on to the hazel wood,</LINE>

<LINEIN>Because a fire was in my head,</LINEIN>

<LINE>And cut and peeled a hazel wand,</LINE>

</STANZA>

</POEM>

Page 12: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Document Type Definition (DTD)

<!ELEMENT poem ( (title, author, stanza)* )>

<!ELEMENT title (#PCDATA) >

<!ELEMENT author (firstname, lastname) >

<!ELEMENT firstname (#PCDATA) >

<!ELEMENT lastname (#PCDATA) >

<!ELEMENT stanza (line+ | linein+) >

<!ELEMENT line (#PCDATA) >

<!ELEMENT linein (#PCDATA) >#PCDATA span of text a,b a followed by ba|b either a or ba* 0 or more a’sa+ 1 or more a’s

Page 13: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Specifying Appearance: XSL(T)

<xsl:template match="POEM">

<HTML>

<BODY BGCOLOR="#FFFFCC">

<xsl:apply-templates/>

</BODY>

</HTML>

</xsl:template>

<xsl:template match="TITLE">

<H1>

<FONT COLOR="Green">

<xsl:value-of/>

</FONT>

</H1>

</xsl:template>

Page 14: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• From:• http://www.w3.org/Style/CSS-vs-XSL

• We have two different style languages. Which one to use?• CSS when you can• XSL when you must

CSS vs XSL

Page 15: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• XML and HTML derive from a meta language called SGML (Standard Generalized Markup Language)

• XML Uses a subset of syntax rules allowed in SGML• XML tags are specific to applications and users know what

they mean, while HTML tags have fixed meaning and browsers know what they are

• HTML tags are used for display purposes while XML tags are used to describe data and documents

15

XML vs. HTML

Page 16: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Well-Formed XML Documents• An XML document that follows the XML syntax rules is said to be

well-formed• XML Parser/XML Processor allow us to detect whether a

document is well-formed• Two types of Parsers

• Non-validating XML Parser checks whether document satisfies XML syntax rules (well-formed), but does not check for any specific structure of elements/attributes

• Validating XML Parser checks whether document is well-formed and also verifies it satisfies the specific structure of elements/attributes

Page 17: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

JSON• JavaScript Object Notation• Text-based standard for data interchange• Light-weight alternative to XML• Derived from JavaScript but it is language independent• JSON Example: http://json.org/example.html

Page 18: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Synchronized Multimedia Integration Language (SMIL)

• SMIL Enables simple authoring of interactive audiovisual presentations– Utilized for rich media/multimedia presentations that integrate streaming

audio and video with images, text or any other media type• Window controls (in <head>)

– Controlling layout: <region>, <root-layout>• Timeline controls (in <body>)

– Sequence control: <seq>, <excl>, <par>– Timing control: <begin>, <end>, <dur>

• Content types (in <body>)– <audio>, <video>, <img>, <ref>

• http://www.w3.org/AudioVideo/• Example:

– http://www.umiacs.umd.edu/~oard/teaching/603/spring12/slides/13/media.html

Page 19: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Ajax• Traditional interaction with web server

• Nothing happens until we submit data• We must wait until the server request is processed (cannot do

anything with the page)• A page must be completed loaded even if most of the content

identical to previous page• Compare with a desktop application• Can we do better? Can the page be updated without requiring a

page load?• Ajax is the answer• Example (AjaxExamples):

• directoryLookup.html, directory.php, processMemo.php in TypicalASynchronous folder

Page 20: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Ajax

Page 21: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Ajax

Page 22: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Ajax• Ajax Asynchronous JavaScript and XML• Combination of technologies• Adds a layer between the browser and the web server, handling

server requests and processing the results• Layer Name Ajax Framework/Ajax Engine

• The requests are not synchronized with user actions (e.g., clicking on links, buttons, etc.). User can continue interacting with the browser while request is being processed

Page 23: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Ajax• In the traditional client/server model we submit server requests by

clicking on a link or via submit (this generates the HTTP request for us)• Notice we get a new web page as a result

• XMLHTTPRequest• JavaScript object that will issue the HTTP request• No page load is generated as a result of the request• Can only issue request to URLs within the same domain• Cannot directly access a remote server

• There is nothing the server needs to do just because the request is associated with AJAX. The server is just receiving an HTTP request

• Ajax application just care about receiving an HTTP response

Page 25: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Database

Server-side Programming

Interchange Language

Client-side Programming

Web Browser

Client Hardware

Server Hardware (PC, Unix)

(MySQL)

(PHP)

(HTML, XML)

(JavaScript)

(IE, Firefox)

(PC)

Bus

ines

sru

les

Inte

ract

ion

Des

ign

Inte

rfac

eD

esig

n

• Relational normalization• Structured programming• Software patterns• Object-oriented design• Functional decomposition

Page 26: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Model-View-Controller

Page 27: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Web Service • Web API (Application Programming Interface) that can be accessed over a

network and executed at a remote system• Allows client applications to build interfaces to the service

• From webopedia.com • Web services allow different applications from different sources to

communicate with each other without time-consuming custom coding, and because all communication is in XML, Web services are not tied to any one operating system or programming language

• Web services do not provide the user with a GUI. Web services instead share business logic, data and processes through a programmatic interface across a network

• Web Service (From Wikipedia)• W3C defines a "Web service" as a software system designed to support

interoperable machine-to-machine interaction over a network• Example:

• http://code.google.com/apis/maps/documentation/webservices/#WebServices

Web Services

Page 28: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Services can range from simple requests to complicated business processes• Payment processing• Content Syndication• Currency conversion• Language translation

• Any internet protocol can be used to build web services but HTTP and XML are often used

• By using web services, your application can publish its function to the world

• Web services can be created in any programming language• Web services enable us to solve interoperability problems between

systems by allowing data exchange between different applications and different platforms.• With web services a company billing system can connect with a

supplier server

Web Services

Page 29: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Several protocols and techniques have been developed to create and utilize web services. Two main ones:• REST Representational State Transfer• SOAP Simple Object Access Protocol

• In General• REST light-weight interactions• SOAP secure, reliable interactions• Each has its advantages

• From Wikipedia• REST primary purpose of the service is to manipulate XML

representations of Web resources using a uniform set of "stateless" operations

• SOAP  the service may expose an arbitrary set of operations

Web Services

Page 30: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• REST (Representational State Transfer)• Resources are represented by URLs

• Resource document, person, location• Each resource has a unique URL

• Each resource does not need to have an actual page/document. It can be generated dynamically

• A resource is considered a “noun”• Operations are performed via HTTP methods (GET, POST, PUT,

DELETE)• Methods are considered “verbs”

• REST designed to operate with resource-oriented services (locate/manipulate resource)

Web Services (REST)

Page 31: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Example:• Web service that allows individuals to manage file backups• Each backup has an URL

http://backupFake.doesnotexist.org/backups/1938• Server responses will use XML• Using HTTP GET we can get the backup• Using HTTP PUT we can update a backup• Using HTTP POST we can upload a backup

• We can receive a URL that corresponds to the new backup• Using HTTP DELETE we can delete a backup

• Notice that REST relies on a familiar approach (HTTP methods) to ask for services (we don’t need to create a new interface/approach)

Web Services (REST)

Page 32: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• SOAP (Simple Object Access Protocol)• SOAP Designed for action-oriented services (actions a web server

can carry out)• Designed as a way to package remote procedure calls into XML

wrappers• SOAP is an XML-based messaging protocol• SOAP request

• XML document• Has three components

• Envelop defines document as SOAP request• Body provides information about the call and responses• Optional header and fault elements

• SOAP response is an XML document

Web Services(SOAP)

Page 33: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Web Service example• http://www.w3schools.com/webservices/ws_example.asp• Using web service example http://

www.w3schools.com/webservices/ws_use.asp• Many popular organizations provide web services

• Amazon http://aws.amazon.com/• Netflix http://developer.netflix.com/docs

• Netflix Web API allows you to• Search movies, TV series, etc.• Retrieve catalog titles• Manage and displaying queues for users

• Yahoo• http://developer.yahoo.com/everything.html

• eBay http://developer.ebay.com/products/shopping/

Web Services (Examples)

Page 34: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• WSDL (Web Services Description Language)• XML-based language for describing and locating web services• W3C standard• It is machine-readable

• UDDI (Universal Description, Discovery and Integration)• Directory service where companies can search and register for

web services described by WSDL• Service Broker

• Wikipedia Image for Service Broker/Requester/Provider• http://en.wikipedia.org/wiki/File:Webservices.png

Web Services (Platform Elements)

Page 35: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• http://www.youtube.com/watch?v=v3OMEAU_4HI• http://spf13.com/post/soap-vs-rest

REST vs. SOAP

Page 36: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Frapi• FRAPI is a RESTful API Framework that allows

developers to develop RESTful APIs that• http://getfrapi.com/

Frapi (RESTful API Framework)

Page 37: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Mashup• Web page or application that uses and combines data and/or

functionality from several sources. Sources are often based on web services.

• Relies on open APIs• Allow us to create new views of data

• Mashup Genres• Video and Photo Mashups• Mapping Mashups

• Big player Google Maps API• Search and Shopping Mashups• News Mashups

• Example: Diggdot.us (combines news from Digg.com, Del.icio.us and Slashdot.org)

Mashups

Page 38: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Google vs Yahoo• http://www.langreiter.com/exec/yahoo-vs-google.html

• Popular MashUp Listing• http://www.programmableweb.com/popular

Mashup Examples

Page 39: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• From:• http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html

• Semantic web• Adds structure to the meaningful content of web pages• Most data in the web is for human consumption, rather than data that can

be processed automatically by computers. Semantic Web will enable computers to be able to understand the data, instead of just displaying it

• Allows for complex queries. For example:• How many stores are open when I am not at work or traveling in

June?• It is not a separate web, but an extension of our present web

• Semantic web – Term coined by Tim Berners-Lee• http://www.w3.org/People/Berners-Lee/

Semantic Web

Page 40: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Semantic web needs• Access to structured collections of information• Sets of inference rules to conduct automated reasoning

• Semantic Web Challenge• Provide a language that expresses both data and rules for

reasoning about data• Allowing rules from knowledge-representation system to be

exported to the web• Technologies for developing the semantic web

• XML – Allows users to add arbitrary structure to their documents• RDF – Allows users to add meaning to their documents

Semantic Web

Page 41: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• RDF Resource Description Framework• Allow us to express meaning

• In RDF a document makes assertions that particular entities (people, web pages, etc.) have properties (e.g., “father of”) with certain values (e.g. another person)

• Meaning is encoded in triples• Triple has subject, verb/predicate and object (all expressed

using URIs)• <#john> pref:loves <#cheescake>.

• Written in XML

• RDF Example http://www.cs.umd.edu/~golbeck/INFM743/sample.owl

• RDF triples form web of information about related things

Semantic Web

Page 42: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Document that formally defines terms and inference rules as to how terms relate

• Used for reasoning about data• Typical ontology for the web has taxonomy and inference rules• Example of page marked up for ontology use:• http://www.cs.rpi.edu/~hendler/• Notice the <USE-ONTOLOGY> tag• Using ontology’s concepts, information about where Dr.

Hendler obtained his PhD is provided• Allows a computer to answer the question: “Where Dr.

Hendler received his degree?”

Semantic Web: Ontology

Page 43: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Impact of semantic web will be seen when:• Programs are created that combine information from

different sources, process the information and exchange results with other programs

• Providing web-based services with semantics will • Allow for service discovery• Understanding of functions offered and how to take

advantage of such functionality

Semantic Web

Page 44: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

Microformats

<div id="contact" class="vcard"><h2>Contact Me</h2> <h3 class="fn">Jane Doe</h3> <p> You can contact me via email to <a class="email" href="mailto:[email protected]">[email protected]</a>, or reach me at the following address:</p> <div class="adr"> <div class="street-address">255 Some Street</div> <div class="locality">Some Town</div> <div class="region">Some Place</div> </div> </div>

<div id="contact"> <h2>Contact Me</h2> <p> You can contact me via email to <a href="mailto:[email protected]">[email protected]</a>, or send stuff to me at the following address:</p> <p>255 Some Street,<br /> Some Place,<br /> Some Town</p> </div>

Human-Readable Human- and Machine-Readable

Page 45: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• From Wikipedia• Process of automatically collecting information from the web

• From www.webopedia.com• Application that processes HTML of a web page to extract data• Web scrapping applications simulate a person viewing a web site

• You may need to rely on web scrapping when no API is provided to access data

• ScraperWiki• Platform that enables building of programs to extract and

analyze data

• https://scraperwiki.com/

Web Scraping

Page 46: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• Introduction• http://www.youtube.com/watch?v=OGg8A2zfWKg

• Demo of Semantic Web Portal• http://www.youtube.com/watch?v=X6WcpG5EEeI&feature=related

• Semantic Web of Data Tim Berners-Lee• http://www.youtube.com/watch?v=HeUrEh-nqtU&feature=related

• Tim Berners-Lee: The next Web of open, linked data• http://www.youtube.com/watch?v=OM6XIICm_qo&feature=related

• RDF Basics• http://www.youtube.com/watch?v=ldl0m-5zLz4&feature=related

• http://videolectures.net/training06_sure_stsw/• Notice slides on the side move automatically

Semantic Web Videos

Page 47: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

• http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol• http://www.w3schools.com/webservices/• AJAX in 10 Minutes ISBN-10: 0672328682• http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29• http://www.ibm.com/developerworks/xml/library/x-mashups.html• Sams Teach Yourself Perl in 24 Hours

• Great Reference to learn Perl• ISBN: 0-672-32793-7

References

Page 48: XML, Ajax, Web Services, Semantic Web Week 13 INFM 603

References• http://www.cs.umd.edu/~golbeck/INFM743/xml.ppt

• http://www.xml.com/• XML in 10 Minutes (ISBN: 0-672-32471-7)• http://www.xmlhack.com/• http://www.w3.org/XML/• http://www.w3schools.com/xml/xml_whatis.asp• http://blogspace.com/rss/readers• http://www.w3.org/TR/REC-xml/• http://cyber.law.harvard.edu/rss/rss.html