3. 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) DDI model
– Concrete modules for each project that
• Inherit from abstract ddi module DDI model DDI model
• Add project-specific data fields + Missy + StarDat
Extensions Extensions
• Sharing via VersionControlSystem
– Project sources in internal VCS (GESIS-SVN)
– Data Module shared externally (GIT)
• https://github.com/missy-project/ddi-model
6. 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 http://missy.org/studies)
– Element URI (like http://missy.org/studies/studyZA1000)
• Resources could map to domain classes / entities of the
DDI ontology
7. 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
–…
8. 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
10. 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?