DDI & Model-View-Controller: An Architectural Perspective Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl,
Page 2 Overview Architecture Missy/StarDat Presentation Business Logic Abstract Persistence MVC Persistence
Software Management - Maven & GIT Apache Maven –software project management and comprehension tool Maven Modules for data modelling in our projects: –Abstract module for DDI (based on DDI ontology) –Concrete modules for each project that Inherit from abstract ddi module Add project-specific data fields Sharing via VersionControlSystem –Project sources in internal VCS (GESIS-SVN) –Data Module shared externally (GIT) DDI model DDI model + Missy Extensions DDI model + StarDat Extensions
Missy Maven Structure
Data model & presentation - MVC MVC design pattern Model –Domain classes –Attributes –Relations View –Representation –JSP, Velocity, XML, JSON, … Controller –Commands –RESTful interface
RESTful interface Well-defined interface based on HTTP –With few basic methods: GET, POST, PUT, DELETE –Response codes (e.g. 200 OK, 404 Not Found) –Data supported described by MIME types (e.g. text/xml, application/json) Resources are identified using URIs –Collection URI (like –Element URI (like Resources could map to domain classes / entities of the DDI ontology
Data model & persistance – API Once you have the model you can… –Generate views / user interfaces –Generate storage model (in RDB via hibernate) Abstract persistance API –To be published … Concrete Implementations –Relational DB –DDI XML files –…
Missy Example Question: –DDI Ontology: class Question, fields like dcterms_identifier, …, field question text Variable: –DDI Ontology: class Variable, fields like dcterms_identifier,… –Missy: inherits class Variable, adds fields variable name, variable label, classification, … Relation: –Variable * hasQuestion 1 Question –Defined at level of DDI Ontology
Page 9 Missy Extension DDI Ontology
Key Messages & Questions DDI model implemented as abstract data model in OO programming language –According to MVC - domain classes with attributes & relations –Do we need a standard REST interface? DDI model not directly based on XML representation –„Data model vs. Data format“ –Export mechanisms for XML based representation DDI model integrated into project‘s architectures –Does it make sense to create a reference architecture? Reuse of software modules is possible –We already share modules/code between internal projects Missy & StarDat –Is anyone else interested in sharing?
Architecture - LOD LOD compatibility –abstract data model based on DDI ontology –Ontology as rdf already available Services and Interfaces –based on abstract model –E.g. SPARQL endpoint, export,…
StarDat example
Missy Software Architecture