XML Prague/eXist BOFChris Wallace, UWE, Bristol 1 eXist in the Faculty Chris Wallace Senior Lecturer School of Information Systems UWE, Bristol XML Prague.

Slides:



Advertisements
Similar presentations
Chapter 10: Designing Databases
Advertisements

Business Development Suit Presented by Thomas Mathews.
XML: Extensible Markup Language
XML DOCUMENTS AND DATABASES
C6 Databases.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
The CEMS Faculty Information System Project 23 June 2006.
Technical Tips and Tricks for User Support Mike Gardner
Week 23 - Revision1 Week 23 Revision DSA. Week 23 - Revision2 Agenda Section A: Multiple choice Section B: Problem-oriented questions Topics for revision.
Introduction to XQuery and eXist DSA. XSLT Tutorial Problems Bad language : – No ! – for XML schema –Some XSLT engines tolerant of extra tags (permissive),
1 Introduction The Database Environment. 2 Web Links Google General Database Search Database News Access Forums Google Database Books O’Reilly Books Oracle.
CONTENT: A model for collaborative database building Trevor Bond Alan Cornish Washington State University Libraries.
Native XML Databases for Information Systems Chris Wallace XQuery workshop April 2006.
Academic Services Interactive Media Managing the Web with Java JA-SIG Winter 2002 Robert Sherratt Academic Services, Interactive Media.
XML –Query Languages, Extracting from Relational Databases ADVANCED DATABASES Khawaja Mohiuddin Assistant Professor Department of Computer Sciences Bahria.
M1G Introduction to Database Development 1. Databases and Database Design.
Native XML Database for Information Systems Chris Wallace SMRG Seminar Feb 2006.
Chapter 1: The Database Environment
1 1 Roadmap to an IEPD What do developers need to do?
UNIT-V The MVC architecture and Struts Framework.
Page 1 ISMT E-120 Desktop Applications for Managers Introduction to Microsoft Access.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
XML, distributed databases, and OLAP/warehousing The semantic web and a lot more.
OFC302 Building Smart Document Solutions in Word & Excel Martin Sawicki Lead Program Manager.
1 Programming Concepts Module Code : CMV6107 Class Contact Hours: 45 hours (Lecture 15 hours) (Laboratory/Tutorial 30 hours) Module Value: 1 Textbook:
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
OCLC Online Computer Library Center CONTENTdm ® Digital Collection Management Software Ron Gardner, OCLC Digital Services Consultant ICOLC Meeting April.
Welcome to CPT 499 XML Course Introduction Eugenia Fernandez IUPUI.
XML Overview. Chapter 8 © 2011 Pearson Education 2 Extensible Markup Language (XML) A text-based markup language (like HTML) A text-based markup language.
Information Systems Design 3 UFIE8V Lecture topics Admin –StaffingStaffing –UWE OnlineUWE Online –AssessmentAssessment Themes Case studies.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Introduction to Databases A line manager asks, “If data unorganized is like matter unorganized and God created the heavens and earth in six days, how come.
In addition to Word, Excel, PowerPoint, and Access, Microsoft Office® 2013 includes additional applications, including Outlook, OneNote, and Office Web.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
Tech Terminology for non-technical people Tim Bornholtz 2006 Annual Conference.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
© 2007 by Prentice Hall 1 Introduction to databases.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
CITA 330 Section 6 XSLT. Transforming XML Documents to XHTML Documents XSLT is an XML dialect which is declared under namespace "
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 1: The Database Environment Modern Database Management 9 th Edition Jeffrey A. Hoffer,
Oliver, 2010 July.  Define target audience  Decide on stastistics  Make Data Requests  Chase data requests  Collate Data  Check the data  Run analysis.
interactive logbook Larry Bridgefoot Paul Kiddie Neil Sandle Tom Marianczak Dan Williams Chet.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
C6 Databases. 2 Traditional file environment Data Redundancy and Inconsistency: –Data redundancy: The presence of duplicate data in multiple data files.
Database System Introduction to Database Environment October 31, 2009 Software Park, Bangkok Thailand Pree Thiengburanathum College of Arts and Media Chiang.
Lesson Overview 3.1 Components of the DBMS 3.1 Components of the DBMS 3.2 Components of The Database Application 3.2 Components of The Database Application.
1 CS 430 Database Theory Winter 2005 Lecture 2: General Concepts.
1 Team Members: William Busby, Lindsey Gray, & David Meffe Sponsor: Lockheed Martin Reconnaissance Systems Bill Rawlings and Marvin Kliene.
SimDB Implementation & Browser IVOA InterOp 2008 Meeting, Theory Session 1. Baltimore, 26/10/2008 Laurent Bourgès This work makes use of EURO-VO software,
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
IS6146 Databases for Management Information Systems Lecture 1: Introduction to IS6146 Rob Gleasure robgleasure.com.
Business Data Integration with MOSS 2007 Naveedullah Khan PMP, MCAD.NET Senior Consultant.
Introduction: Databases and Database Systems Lecture # 1 June 19,2012 National University of Computer and Emerging Sciences.
Generating XML Data from a Database Eugenia Fernandez IUPUI.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
Databases and DBMSs Todd S. Bacastow January 2005.
Database System Concepts and Architecture
Active Server Pages Computer Science 40S.
PHP Training at GoLogica in Bangalore
Using Access and the Web
Microsoft Office Illustrated
Data, Databases, and DBMSs
MANAGING DATA RESOURCES
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Presentation transcript:

XML Prague/eXist BOFChris Wallace, UWE, Bristol 1 eXist in the Faculty Chris Wallace Senior Lecturer School of Information Systems UWE, Bristol XML Prague 18 th June 2006

XML Prague/eXist BOFChris Wallace, UWE, Bristol 2 My tag cloud Smalltalk mathematics New Zealand Object-Orientation Java 3 years cruising XML PHPMySQL COBOL Fortran Algol APL Jackson Structured Programming JSD Alloy Software Design Data Modelling Information Systems commerce eXist Process Modelling Web2.0 Requirements Engineering UML UWE 1984 XQuery SMS

XML Prague/eXist BOFChris Wallace, UWE, Bristol 3 UWE –University of the West of England, BristolBristol –Ex Polytechnic –23,000 students –1000 teaching staff –9 Faculties (Law, Business, Art Media and Design,.. CEMS) –Central student records, payroll, finance –Administrative systems devolved to Faculties

XML Prague/eXist BOFChris Wallace, UWE, Bristol 4 Computing, Engineering and Mathematical Sciences (and Information Systems) 2000 students 450 taught modules 100 Programmes (Courses) 350 staff 150 organisational units (schools, functional groups, committees, research groups

XML Prague/eXist BOFChris Wallace, UWE, Bristol 5 Two kinds of data XML Database (FOLD) –Structured data with controlled update –Data is well-defined and hence easily searchable –Aim is to provide a single point of definition of faculty information by integrating a range of data sources Content Management System (DOMUS) –Implemented using Plone –Any staff member can set up a section, store documents, create discussion groups.. –Aim is to support collaboration e.g. Documentation on this project Information Systems Field information Faculty Board Agenda and Minutes

XML Prague/eXist BOFChris Wallace, UWE, Bristol 6 FOLD – Faculty OnLine Data FOLD Scope –Descriptions of all resources within the Faculty –Teaching and assessment management –Intranet for staffIntranet for staff –Public site students, prospective students, the publicPublic site students, prospective students, the public In the past –Information distributed over word documents, spreadsheets, access databases, SQL database, flat text files, LDAP…. Aims –To support distributed data ownership –To provide a web of data within and between systems –To support organisational processes –To support student choices –To improve information quality and availability

XML Prague/eXist BOFChris Wallace, UWE, Bristol 7 Internal Links Programme Structure Module Run Module Specification Person Group Event Assessment Element Student

XML Prague/eXist BOFChris Wallace, UWE, Bristol 8 External Links Programme Structure Module Run Module Specification Person Group Event Assessment Element Student UCAS Marketing Timetabling Student Records Library Other Faculties

XML Prague/eXist BOFChris Wallace, UWE, Bristol 9 FOLD Entity Types (extract) Entity TypeIdentifier No of instancesDocument Map No of documents (year) Document Type Module SpecificationModuleCode/Version450one each450 (80) complex structure Module RunModuleCode/Year/Runno460one per field/year6table Module assessments ModuleCode/Year/Runno/Eleme tNo800one per field/year6Table ExaminationModuleCode/Year/Exam420one per year1 Student numbersDate/ModuleCode450 * 4one per date5table Award typesPrimaryAward8one only1simple structure ProgrammesProgrammeCode/Year100one per year1table Programme Structure ProgrammeCode/Pathway/Versi on110one each110 (20) complex structure Organisational structureGroupName100 several per major group60simple structure EventsEventGroup/EventID300all events in a group50simple structure StaffName400per responsibility5table with reps TrainingName/Course200one only1table Training CoursesCourse40one only1table ucasKey wordsUCASCode/Keyword4000one only1table UWE calendarDate365one only1table SuggestedHoursLevel5one only1simple structure Entity Type metadataDatasetName20one only1table System ConfigurationFaculty1one only1table

XML Prague/eXist BOFChris Wallace, UWE, Bristol 10

XML Prague/eXist BOFChris Wallace, UWE, Bristol 11 Composites Documents as Coherent Composites –Hierarchy of composition relationships –Structured relationships – and/or expressions –Ordered relationships –Subtypes –Structured text – restricted HTML –Composite has organisational meaning – ownership, editorship, viewing

XML Prague/eXist BOFChris Wallace, UWE, Bristol 12 A Network Database Associations –Links implemented with shared identifiers –Identifiers are ‘natural’ to reduce RW/model gap to support unanticipated linking Issues –Duplication Issue in the real world too, so social mechanisms to resolve ‘realm’ (cf namespace in the schema domain) –Change No deletion – past is always true Multiple primary keys

XML Prague/eXist BOFChris Wallace, UWE, Bristol 13 Development Approach ‘Agile Information Systems development’ –Concurrent development of data content and software –Concurrent learning about the application domain and how to represent it Data / Structure / Code dialectic –Incremental take-on of content –Both data and code need re-factoring Just the job for XSLT and xmldb:store –Staying in the shallows…

XML Prague/eXist BOFChris Wallace, UWE, Bristol 14 FOLD current stats Code –XQuery –XSLT –XSD (one schema) –CSS –PHP (SMS) Sites –One internal, 1 public –about 40 pages Information System development –CW (6 months) –Placement Student (10 months) –Admin users –Tech support –Phase allocation: Project (20%) Code (20%) Data – gathering, conversion, cleaning (60%)

XML Prague/eXist BOFChris Wallace, UWE, Bristol 15 Staying in the shallows Jetty installation Staying a couple of snapshots removed from the leading edge No attributes (in base data) –Never can decide which to use –Hard to edit in Word or Excel –Meta-data is complex too No schemas –Too much work to keep in line during development –‘XML is self-describing’ –Users create documents by example –Model fidelity more important than model integrity No indexes (except free-text) –Save this optimisation for the future No forms (yet) –All data edited as XML –Word and Excel 2003 as editors –XForms (with FormFaces ?)

XML Prague/eXist BOFChris Wallace, UWE, Bristol 16 Application architecture Data access functions Data assembly Page layout Browser db XQuery Browser XSLT CSS

XML Prague/eXist BOFChris Wallace, UWE, Bristol 17 Tricky Bits Value Inheritance Document Versioning Computed Views Expression evaluation

XML Prague/eXist BOFChris Wallace, UWE, Bristol 18 Value Inheritance Value inheritance is inheritance in a network of instances –c.f. Class inheritance in a network of classes Where path is hard-coded –SQL provides coalese() –XQuery node sequence ignores nulls declare function modprog:currentYear() { let $sessionYear := request:get-session-attribute("currentYear") let $defaultYear := modprog:config()/currentYear return ($sessionYear,$defaultYear,"2005")[1] };

XML Prague/eXist BOFChris Wallace, UWE, Bristol 19 Versioning Changes every year –Explicit versioning –Every year has a document Operational data – runs of modules Changes infrequently –Applicable version at any time must be inferred Specifications of modules and programmes declare function modprog:moduleSpecification($moduleCode,$year) { (: get the set of versions prior to and including this year :) let $modspecs := collection('/db/fold1/modules/specs/')/ModuleSpecification [ModuleCode=$moduleCode] [Version <= $year] (: select the version which is the latest version :) let $modspec := $modspecs[Version = max($modspecs/Version)] return $modspec };

XML Prague/eXist BOFChris Wallace, UWE, Bristol 20 Computed View declare function modprog:courseworkElement($moduleCode, $year, $runNo, $elementNo) { let $mod := modprog:moduleSpecification($moduleCode,$year), $run := modprog:moduleRun($moduleCode,$year,$runNo), $elementRun := modprog:elementRun($moduleCode,$year,$runNo,"B", $elementNo), $elementSpec := $mod/Assessment/FirstAttempt/Components/ComponentB/Element [position() = $elementNo], $dueDate := $elementRun/DueDate, $lateDate := events:workingDays($dueDate,10), $returnDate := events:workingDays($dueDate,20), $componentWeight := $mod/Assessment/Weighting/ComponentWeightB, $weightInComponent := xs:decimal($elementSpec/Weight), $weightInModule := round($weightInComponent * $componentWeight div 100), $load := modprog:load($mod/Level), $hrs := round(xs:decimal($mod/UWERating) div xs:decimal($load/Credits) * $weightInModule div 100 * data($load/Hours)), $year := modprog:academicYear(modprog:currentYear()) };

XML Prague/eXist BOFChris Wallace, UWE, Bristol 21 return {$moduleCode} {$mod/Title} {$year} {$runNo} {$run/ModuleLeader} {$run/ActingModuleLeader} {$run/Tutors} {$run/InternalModerator} {$run/ExternalExaminer} CW {$elementNo} {$elementSpec/Description} {$hrs} {$weightInComponent} {$weightInModule} {string($dueDate)} {string($lateDate)} {string($returnDate)}

XML Prague/eXist BOFChris Wallace, UWE, Bristol 22 Expression evaluation Module Pre-requisites A and B and (C or D) Display Evaluation Reduction A B C D

XML Prague/eXist BOFChris Wallace, UWE, Bristol 23 Expression Evaluation declare function andor:exp($e, $list) { if (name($e) = "Code") then andor:code($e,$list ) else if (name($e) = "orexp") then andor:orexp($e, $list) else if (name($e) = "andexp") then andor:andexp($e, $list) else true()}; declare function andor:andexp($e,$list) { every $exp in $e/* satisfies andor:exp($exp,$list)}; declare function andor:orexp($e, $list) { if (count($e/*) > 0 ) then some $exp in $e/* satisfies andor:exp($exp,$list) else true()}; declare function andor:code($e, $list) { $e = $list};

XML Prague/eXist BOFChris Wallace, UWE, Bristol 24 Breaking Down walls Shared identifiers ISBN in-house identifier standards Standard schemas icalendar data from events for Outlook KML for GoogleEarth Voice+XML for Opera to provide text-to-speech Multimedia/ multimodal –Graph generation using Graphviz –Tag clouds –SMS (texting)

XML Prague/eXist BOFChris Wallace, UWE, Bristol 25 Lessons Learnt Naming conventions –XML elements –functions –scripts –documents –Collections Micro-schemas –Small reusable fragments XSLT for schema transformation

XML Prague/eXist BOFChris Wallace, UWE, Bristol 26 Little things to sort out Executing a server process –e.g. GraphViz for graph generation Relative pathnames in: –doc() and collection() –module inclusion –path to stylesheet in a PI cycles in module inclusion deep-equals (for unit tests in XQuery) improvements to the Java Client as an IDE

XML Prague/eXist BOFChris Wallace, UWE, Bristol 27 Big things to do eXist –LDAP authentication –Webdav with Microsoft Office –XForms Development –A decent XML database case tool Global model mapping to multiple schemas –Code management

XML Prague/eXist BOFChris Wallace, UWE, Bristol 28 Takeaways XQuery and the eXist Native XML database are the most fun I’ve had since Smalltalk –actually more because it delivers useful systems ‘Take the code to the data, not the data to the code’ –Move to XForms ‘It’s the data, stupid’ –A successful Information system depends on: Data quality – model fidelity more than model integrity Handling multiple, sometimes inconsistent, views of the world