Presentation on theme: "IMS5401 Web-based Systems Development"— Presentation transcript:
1IMS5401 Web-based Systems Development Topic 2: Elements of the Web(g) Metadata and meaning (the semantic web)(h) Interactivity
2Agenda Topic 2 (g): The Semantic web: Rationale Key elements of the semantic webImplications for system developersTopic 2 (h) Web interactivityTypes of web interactivityImplications for web developers2
3Elements of the Web Connecting computers Display and organisation of documentsDigitalrepresentationof documentsLinkingdocuments3
4Topic 2(g): The Semantic Web: Rationale The imprecision/variability of languageThe importance of context in human communication and informationThe inadequacy of computers in dealing with human communicationTopic-based searches in search enginesAttempted solutions and their failingsMetadata“Smart (er)” search softwareSemantics = the study of meaning; hence the semantic web
5Including semantics in the web Existing web elements: lots of information content, but little semantic content (HTML)Therefore the user must interpret context and meaning to identify relevant pages; (problems for computers)Want to include the meaning of information as well as the informationComputer-based searches of the web must be able to match the meaning of the query with the meaning of the web information
6Changing the web Should we change the web or build a second version? Existing web works and has too much existing content to be re-builtTherefore, continue to use existing web as the method for storing and accessing documentsExisting web is poorly-designed for precise searching and data-centred transactionsTherefore, build semantic web separately from it(Can this approach work?)
7The web as a database Databases The web Limited/defined scope ControlledStructuredPrecisely-defined dataStructured queries (SQL)The webUnlimitedUncontrolledUnstructuredPoorly-defined (undefined?) dataUnstructured queries (Google, etc)
82. Key elements of the semantic web The semantic web concept has many theoretical elements. Key ones include:Metadata, HTML and XMLXML and XML SchemaResource Description Framework (RDF) and RDF SchemaOntologies and OWLIntelligent agents and computerised searchesDigital signaturesLevel of theoretical and practical development of these elements is very variable
9Metadata, HTML and XMLRemember the limitations of HTML for storing metadata?XML (eXtensible Mark-up Language) gives improved mark-up capabilities to enable data in documents to be tagged to incorporate meaningXML enables all page elements to be taggedXML enables web page creators to define their own tags to define page elements which don’t fit ‘normal’ tags
10XML and XML SchemaXML tags to define meaning are not enough for true database functionality; need uniformity in document structuresXML Schema is a language for defining standard structures to XML documentsOriginally implemented in XML (copied from SGML) with document type definitions (DTDs)DTDs are generally too limited; hence other schema languages like XML SchemaDocument is associated with a schema and can be checked for validity
11RDF and RDF SchemaRDF is a data modelling language used to identify specific types of objects and relationships between them in a form which can be represented in an XML documentRDF uses Uniform Resource Indicators (URIs) to identify objects and relationships between themeg <Martin> <created> <slides> can be represented as a set of URIsRDF Schema defines object structures which enable checking that a given RDF uses valid objects and relationships
12Ontologies and OWLAn ontology defines what things (objects) can exist in the worldCreate ontologies which provide standard terminologies for objects and their propertiesOntologies can be cross-referenced from XML documents to relate objects being described in different documentsOWL: Web Ontology Language for creating an ontologyDublin Core = one example of an ontology
13“Intelligent” agents and computerised searches Semantic web envisages a high level of automated (machine-based) searches for objectsAgents: software which can do the searching, checking and retrieval of data objects on the semantic webAgents can be user-driven (function on command) or built-in to physical devices (function automatically when triggered by some signal)
14Digital signaturesHow do we (or our agents) decide on the reliability of the information we get from the semantic web (ie who provided it)?Digital signatures can be attached to documents to verify who created themAgents can check the digital signature of the information they get and verify with the user that this is a satisfactory sourceDigital signatures will be encrypted to protect from fraud
15OthersLots and lots of variants of these plus different forms of implementation of themHeavy overlap with the artificial intelligence community. Replace search for intelligent machines with search for means for embedding meaning into documents, so they can be accessed ‘intelligently’ by dumb machinesSee tute material for a bewildering variety of initiatives/ideas/products
163. Implications for Systems Developers Attempts to structure and classify knowledge have gone on for thousands of years. Level of success? … depends on your point of view!Developers of web metadata and the semantic web are trying to repeat this work on an even larger range of media and information typesThe anarchic nature of the web means that the standards people can work only by persuasionWho will be willing to conform, and for what purposes?
17Using the web Can the web be made to function as: A network of documents?A network of indexed and classified documents?A network of linked data-containing objects?A network of “intelligent” data-containing objects structured to work like a giant database?How achievable are each of these possibilities?What does this mean for web usage and applications?What does it mean for web development?
184. Topic 2 (h): Web Interactivity We are used to computer systems which are designed to be interactive:prompt us with options about what is possibleaccept and store input from us as usersprovide output as requiredEg automatic teller machine, reservation system, etcSystem has a programmed interface which changes in response to our input, and which allows us to enter queries or data for storageHow well can the web support interactivity?
19Interactivity in a ‘normal’ system UserInterface(prompts userfor input - query or new data for database;Displays output)DatabaseNew data/ query detailsUser(makes queryor provides input to database)InputOutputResponse to query
20Programming and interactivity in ‘normal’ systems User(client) creates connection to host machine (server) on which programme is runningConnection remains ‘live’ while user session is runningUser is prompted by programme and provides input which the programme accepts and responds toProgrammimg languages enable an extremely wide range of types of user input and machine response
215. Web interactivityIdeal model of dynamic web site content and user input:Up-dated databasecontent to displayDatabaseWeb PagePrompt forinputUserUserinputUser input toup-date database
22Actual interactivity in web-based systems The web has several features in its design which limit its ability to handle interactivityIt is designed around pages, not dataIt is based on static, not dynamic page contentHTTP establishes no on-going connection between the client machine and the server machine. Therefore, requests for information by the client and responses and information from the server are passed separately and independently from one anotherInteractivity is much harder to achieve - restricted and more messy
23Web Interactivity: Two types Client-side interactivity: designed to change the appearance or behaviour of the web page in response to the user’s input (ie left-hand side of earlier diagram)Server-side interactivity: designed to enable a user’s input to be taken by web page and sent back to the server web site to be used as input to another program running on the server (ie right hand side of earlier diagram)In both cases the interaction is done via scripts (a form of programming language)
245(a) Web interactivity: Client-side Used to modify the way in which a page is displayed to the userThe script which does the work is embedded in the web page HTMLA variety of HTML tags allow you to use scripts in various ways to get different effectsInterface features commonly created using scripts include mouse roll-overs, animation, creation of dialogue boxes to accept user input and modify the way a page or its elements is displayed, etc
25Scripting languages for client-side interactivity The original was Java Script (note, nothing to do with the Java programming language!)ECMAscript is a W3C ‘standard’ for scripting, based around Java scriptThe Java programming language can be used to create applets, which are small programs embedded in the web page HTML - same effect as Java ScriptJava Script can be run by the browser; Java applets need the Java plug-in to run them
26More fun with the marketplace Netscape developed the first version of Java Script for the Netscape browserMicrosoft followed a couple of years later with their own version, called J Script for the IE browserThe two languages are similar, but not identical to each other NOR to the W3C ‘standard’ ECMAscript!More problems for web page developers who want their page to work the same in any browser!
275(b) Web interactivity: Server-side Used to enable a user to enter information on a web page and send it as input to a program running on the server (eg a database program)Any web system, must use a server-side script to get the user input to the main program and send a reply. For example:a system which stores transaction details (order, payment, etc) in a database on a server;any web interface set up to enable a user to interact with a system (eg a web-based user query of the Monash library catalogue)
28Server-side scripts and CGI (Common Gateway Interface) CGI is a protocol for enabling exchange of data between a web page and a program running on the serverCGI scripts run on the server; activated by user input to a web page formA CGI script can provide web form input data to another program running on the server (eg a database)It can also accept data from a program on the server and provide it to the web pageWrite CGI scripts in many scripting languages - Perl, etc
29Cookies: A way of achieving server-side interactivity A cookie is a text file which a server sends you with the web page you requestedThe cookie is stored by your browser; sometimes temporarily and sometimes permanently (or until you remove it)The cookie stores information about the user computer or user input to the web pageWhen the browser asks for another page from that server, information in the cookie is sent to the server along with the request for the page
30Using cookies: A simple example When you buy something from Amazon.com:Amazon puts a cookie on your machine to identify youAmazon records your details, your purchase and your cookie details in its sales databaseNext time you ask your browser to get you the Amazon web site:the browser sends your customer number from the cookie back to a CGI script on the Amazon serverThe CGI script checks you on the customer database and uses it to personalise the page it sends you
316. Implications for web developers (1) Building either client-side or server-side interactivity needed programming skills to write the scriptsProgramming languages are not well-structured to deal with web interactivity needsA range of scripting languages have been developed and new scripting capabilities built into HTML, new plug-ins for browsers, etcNow we have many different options for writing scripts - Microsoft’s Active Server Pages, PHP, Perl, Python, etc etc …. Very confusing!
32Implications for web developers (2) As with writing HTML, products have also been developed to generate scripts for database interactivity, so you don’t have to programHowever, these products apparently generate code like HTML generators generate HTML - yes, it’s there, but does it work? … and with what browsers?Therefore, texts still recommend you write it yourself, or at least patch it yourself
33Summary The web is not well designed for dealing with interactivity It’s messy, inefficient and limited in flexibility (compared to ‘normal’ system connectivity and interactivity)It requires significant technical skills (programming, etc) which are not easily learned (unlike HTML, for example)Products which make it easier are coming, but they still fall well short of making it easyImplications for web systems?