This document summarizes a presentation on the Deme architecture for building a collaborative digital environment. It describes the motivation to create a system with hierarchical item types, versioning for all items, embedded views, and granular permissions. The architecture sections cover how items, agents, collections, documents, and relationships are modeled as ontologies and how viewers are used to process requests and display items through RESTful URLs.
ISO 25964: Thesauri and Interoperability with Other VocabulariesMarcia Zeng
ISO 25964: Thesauri and Interoperability with Other Vocabularies + IFLA Guidelines for Multilingual Thesauri + A KOS Resource Application Profile. Presented at 2009 NKOS Workshop.
See why PoolParty is the most efficient thesaurus management tool on planet earth. See how to integrate PoolParty semantic technologies with SharePoint, Confluence or Drupal. With PoolParty Semantic Integrator complex queries can be executed: Combine text search with the power of knowledge graphs!
Connecting the dots:
* Publishing SKOS thesauri as linked data
* Generate SKOS from LOD sources
* Usage of SKOS thesauri for entity extraction & content enrichment from LOD sources
* Use linked data mechanisms for collaborative thesaurus management
* Usage of SKOS for linked data alignment & disambiguation
PoolParty Team gave a webinar on Wednesday, November 28, 2012. We talked about scenarios and applications using semantics in enterprises. Some of the use cases we discussed were:
- Semi-automatic tagging of content (Sharepoint, Confluence, …)
- Semantic enterprise search (Mindbreeze, FAST, Exalead, …)
- Linked Enterprise Vocabularies
- Enterprise linked data integration (queries across Oracle databases and unstructured text)
We also showed the latest developments of PoolParty platform and we gave insights how structured data from relational databases can be mashed with unstructured text when using linked data alignment. We showcased how we mashed a large text corpus with statistical financial data on top of PoolParty and UltraWrap.
The document provides an introduction and overview of design patterns. It defines design patterns as common solutions to recurring problems in software design. The document discusses the origin of design patterns in architecture, describes the four essential parts of a design pattern (name, problem, solution, consequences), and categorizes patterns into creational, structural, and behavioral types. Examples of commonly used patterns like Singleton and State patterns are also presented.
This document provides an overview of domain-driven design (DDD) patterns and concepts. It discusses when DDD is applicable, specifically for complex systems. The core concepts of DDD building blocks are then summarized, including layered architecture, entities, value objects, aggregates, factories, repositories, services, and domain events. Examples are provided for some of the concepts. Meeting topics are listed that will cover strategic patterns, tactical patterns, communication tips, and code examples related to DDD.
The importance to be Driven
There are many buzzwords and acronyms to describe how the software should be designed. TDD (Test Driven), BDD (Behaviour Driven), DDD (Domain Driven) are the most well known. In this speech we'll run thought all these techniques comparing each one of those with TDD and finding what are the common concepts. An exercise will show to the students how different the code will be using different design methodologies as driver.
This document discusses Domain Driven Design (DDD). It provides an overview of DDD, including that it focuses on removing translation barriers between a domain, development team, and software design. It also describes common building blocks of domain models such as entities, value objects, factories, repositories, and services. Additionally, it discusses refactoring a model to gain deeper insight, including making implicit concepts explicit.
ISO 25964: Thesauri and Interoperability with Other VocabulariesMarcia Zeng
ISO 25964: Thesauri and Interoperability with Other Vocabularies + IFLA Guidelines for Multilingual Thesauri + A KOS Resource Application Profile. Presented at 2009 NKOS Workshop.
See why PoolParty is the most efficient thesaurus management tool on planet earth. See how to integrate PoolParty semantic technologies with SharePoint, Confluence or Drupal. With PoolParty Semantic Integrator complex queries can be executed: Combine text search with the power of knowledge graphs!
Connecting the dots:
* Publishing SKOS thesauri as linked data
* Generate SKOS from LOD sources
* Usage of SKOS thesauri for entity extraction & content enrichment from LOD sources
* Use linked data mechanisms for collaborative thesaurus management
* Usage of SKOS for linked data alignment & disambiguation
PoolParty Team gave a webinar on Wednesday, November 28, 2012. We talked about scenarios and applications using semantics in enterprises. Some of the use cases we discussed were:
- Semi-automatic tagging of content (Sharepoint, Confluence, …)
- Semantic enterprise search (Mindbreeze, FAST, Exalead, …)
- Linked Enterprise Vocabularies
- Enterprise linked data integration (queries across Oracle databases and unstructured text)
We also showed the latest developments of PoolParty platform and we gave insights how structured data from relational databases can be mashed with unstructured text when using linked data alignment. We showcased how we mashed a large text corpus with statistical financial data on top of PoolParty and UltraWrap.
The document provides an introduction and overview of design patterns. It defines design patterns as common solutions to recurring problems in software design. The document discusses the origin of design patterns in architecture, describes the four essential parts of a design pattern (name, problem, solution, consequences), and categorizes patterns into creational, structural, and behavioral types. Examples of commonly used patterns like Singleton and State patterns are also presented.
This document provides an overview of domain-driven design (DDD) patterns and concepts. It discusses when DDD is applicable, specifically for complex systems. The core concepts of DDD building blocks are then summarized, including layered architecture, entities, value objects, aggregates, factories, repositories, services, and domain events. Examples are provided for some of the concepts. Meeting topics are listed that will cover strategic patterns, tactical patterns, communication tips, and code examples related to DDD.
The importance to be Driven
There are many buzzwords and acronyms to describe how the software should be designed. TDD (Test Driven), BDD (Behaviour Driven), DDD (Domain Driven) are the most well known. In this speech we'll run thought all these techniques comparing each one of those with TDD and finding what are the common concepts. An exercise will show to the students how different the code will be using different design methodologies as driver.
This document discusses Domain Driven Design (DDD). It provides an overview of DDD, including that it focuses on removing translation barriers between a domain, development team, and software design. It also describes common building blocks of domain models such as entities, value objects, factories, repositories, and services. Additionally, it discusses refactoring a model to gain deeper insight, including making implicit concepts explicit.
The document discusses software design principles and methods. It notes that software design is a creative problem-solving activity that requires expertise rather than following rigid recipes or methods. While early design methods aimed to systematize development, they have increased complexity and may not reflect how expert designers work opportunistically. The field would benefit from developing designers' skills rather than pretending design is just following procedures.
These are the slides for the second lecture of the course "Model-Driven Software Development" taught at Delft University of Technology in the academic year 2009-2010.
Explaining what is software architecture from a different point of view and giving the fundamentals for understanding what software architecture is and how it should be created
The document discusses the three core topic types of concept, task, and reference for organizing information. It describes the characteristics of well-formed topics, including using heading syntax to indicate topic type, focusing on one question, and linking to related topics. The document provides examples of restructuring topics to better fit the core types and improve usability.
This session from the TYPO3 Conference 2007 gives you a peek into the current development state of the TYPO3 Framework and its main features such as Aspect Oriented Programming, Dependency Injection and the Model View Controller Framework. Bottom line of all development with 5.0 is: Domain Driven Design.
The document discusses the Nuxeo Platform, a content application platform that improves productivity for application developers and deliverers. It enables them to provide successful content-driven applications by providing a comprehensive ecosystem across application development, delivery, and management. This includes tools for content modeling, configuration, deployment, and runtime execution of custom content applications.
This document provides an introduction to object-oriented programming concepts. It defines OOP as a system where computation occurs through objects communicating by message passing. It discusses different definitions of OOP and how the OOP mindset differs from procedural programming by focusing on data over process. Key OOP concepts discussed include abstraction, encapsulation, polymorphism, modularity, and object-object relationships.
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...recsysfr
RecSys conference was held in Como at the end of August. We will summarize for you the most trendy techniques and results presented at this conference.
This document analyzes the technical features, affordances, and pedagogical uses of Prezi presentation software. It notes that Prezi is web-based, allows users to access presentations from any computer, and easily share collaboratively. Its zooming feature allows emphasis on major points and grouping of concepts spatially rather than linearly. This spatial format employs conventions of "stretchtext" and provides flexibility in design, content, and navigation order, affording more engagement and interaction than traditional presentations.
This presentation addresses how some of the challenges that have historically confronted implementers of markup technologies (SGML and XML) and how DITA, together with some of the usability innovations associated with Web 2.0, can be used to address them. Presented at Content Convergence and Integration in Vancouver (12 March 2008).
Domain driven design and model driven developmentDmitry Geyzersky
This document discusses domain driven design and model driven development. It introduces ontology and how it relates to domain driven design. The document outlines key domain driven design building blocks like the domain model, entities, value objects, repositories, services, and aggregates. It also discusses challenges of domain driven design and code generation techniques.
Over the past decade, as the scholarly community’s reliance on e-content has increased, so too has the development of preservation-related digital repositories. The need for descriptive, administrative, and structural metadata for each digital object in a preservation repository was clearly recognized by digital archivists and curators. However, in the early 2000’s, most of the published specifications for preservation-related metadata were either implementation specific or broadly theoretical. In 2003, the Online Computer Library Center (OCLC) and Research Libraries Group (RLG) established an international working group called PREMIS (Preservation Metadata: Implementation Strategies) to develop a common core set of metadata elements for digital preservation. The first version of the PREMIS Data Dictionary for Preservation Metadata and its supporting XML schema was issued in 2005. Experience using its specifications in preservation repositories has led to several revisions, with the completion of a version 2.0 in 2008. The Data Dictionary is now in version 2.2 (July 2012), and it is widely implemented in preservation repositories throughout the world in multiple domains.
The slides of my talk at PUGRoma.
Here, a complete sample code
https://github.com/leopro/trip-planner
Presentation is also here: http://t.co/5EK56yYBmQ
How to Make a Field Mandatory in Odoo 17Celine George
In Odoo, making a field required can be done through both Python code and XML views. When you set the required attribute to True in Python code, it makes the field required across all views where it's used. Conversely, when you set the required attribute in XML views, it makes the field required only in the context of that particular view.
How to Manage Your Lost Opportunities in Odoo 17 CRMCeline George
Odoo 17 CRM allows us to track why we lose sales opportunities with "Lost Reasons." This helps analyze our sales process and identify areas for improvement. Here's how to configure lost reasons in Odoo 17 CRM
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
More Related Content
Similar to Deme Presentation at Stanford Open Source (un)conference '08
The document discusses software design principles and methods. It notes that software design is a creative problem-solving activity that requires expertise rather than following rigid recipes or methods. While early design methods aimed to systematize development, they have increased complexity and may not reflect how expert designers work opportunistically. The field would benefit from developing designers' skills rather than pretending design is just following procedures.
These are the slides for the second lecture of the course "Model-Driven Software Development" taught at Delft University of Technology in the academic year 2009-2010.
Explaining what is software architecture from a different point of view and giving the fundamentals for understanding what software architecture is and how it should be created
The document discusses the three core topic types of concept, task, and reference for organizing information. It describes the characteristics of well-formed topics, including using heading syntax to indicate topic type, focusing on one question, and linking to related topics. The document provides examples of restructuring topics to better fit the core types and improve usability.
This session from the TYPO3 Conference 2007 gives you a peek into the current development state of the TYPO3 Framework and its main features such as Aspect Oriented Programming, Dependency Injection and the Model View Controller Framework. Bottom line of all development with 5.0 is: Domain Driven Design.
The document discusses the Nuxeo Platform, a content application platform that improves productivity for application developers and deliverers. It enables them to provide successful content-driven applications by providing a comprehensive ecosystem across application development, delivery, and management. This includes tools for content modeling, configuration, deployment, and runtime execution of custom content applications.
This document provides an introduction to object-oriented programming concepts. It defines OOP as a system where computation occurs through objects communicating by message passing. It discusses different definitions of OOP and how the OOP mindset differs from procedural programming by focusing on data over process. Key OOP concepts discussed include abstraction, encapsulation, polymorphism, modularity, and object-object relationships.
Highlights on most interesting RecSys papers - Elena Smirnova, Lowik Chanusso...recsysfr
RecSys conference was held in Como at the end of August. We will summarize for you the most trendy techniques and results presented at this conference.
This document analyzes the technical features, affordances, and pedagogical uses of Prezi presentation software. It notes that Prezi is web-based, allows users to access presentations from any computer, and easily share collaboratively. Its zooming feature allows emphasis on major points and grouping of concepts spatially rather than linearly. This spatial format employs conventions of "stretchtext" and provides flexibility in design, content, and navigation order, affording more engagement and interaction than traditional presentations.
This presentation addresses how some of the challenges that have historically confronted implementers of markup technologies (SGML and XML) and how DITA, together with some of the usability innovations associated with Web 2.0, can be used to address them. Presented at Content Convergence and Integration in Vancouver (12 March 2008).
Domain driven design and model driven developmentDmitry Geyzersky
This document discusses domain driven design and model driven development. It introduces ontology and how it relates to domain driven design. The document outlines key domain driven design building blocks like the domain model, entities, value objects, repositories, services, and aggregates. It also discusses challenges of domain driven design and code generation techniques.
Over the past decade, as the scholarly community’s reliance on e-content has increased, so too has the development of preservation-related digital repositories. The need for descriptive, administrative, and structural metadata for each digital object in a preservation repository was clearly recognized by digital archivists and curators. However, in the early 2000’s, most of the published specifications for preservation-related metadata were either implementation specific or broadly theoretical. In 2003, the Online Computer Library Center (OCLC) and Research Libraries Group (RLG) established an international working group called PREMIS (Preservation Metadata: Implementation Strategies) to develop a common core set of metadata elements for digital preservation. The first version of the PREMIS Data Dictionary for Preservation Metadata and its supporting XML schema was issued in 2005. Experience using its specifications in preservation repositories has led to several revisions, with the completion of a version 2.0 in 2008. The Data Dictionary is now in version 2.2 (July 2012), and it is widely implemented in preservation repositories throughout the world in multiple domains.
The slides of my talk at PUGRoma.
Here, a complete sample code
https://github.com/leopro/trip-planner
Presentation is also here: http://t.co/5EK56yYBmQ
Similar to Deme Presentation at Stanford Open Source (un)conference '08 (15)
How to Make a Field Mandatory in Odoo 17Celine George
In Odoo, making a field required can be done through both Python code and XML views. When you set the required attribute to True in Python code, it makes the field required across all views where it's used. Conversely, when you set the required attribute in XML views, it makes the field required only in the context of that particular view.
How to Manage Your Lost Opportunities in Odoo 17 CRMCeline George
Odoo 17 CRM allows us to track why we lose sales opportunities with "Lost Reasons." This helps analyze our sales process and identify areas for improvement. Here's how to configure lost reasons in Odoo 17 CRM
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
This presentation was provided by Steph Pollock of The American Psychological Association’s Journals Program, and Damita Snow, of The American Society of Civil Engineers (ASCE), for the initial session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session One: 'Setting Expectations: a DEIA Primer,' was held June 6, 2024.
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
Executive Directors Chat Leveraging AI for Diversity, Equity, and InclusionTechSoup
Let’s explore the intersection of technology and equity in the final session of our DEI series. Discover how AI tools, like ChatGPT, can be used to support and enhance your nonprofit's DEI initiatives. Participants will gain insights into practical AI applications and get tips for leveraging technology to advance their DEI goals.
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Deme Presentation at Stanford Open Source (un)conference '08
1. Motivation
Architecture
Implementation
Demo
Deme Architecture
Todd Davies Mike Mintz
Stanford University
Stanford Open Source (un)conference ’08
Davies, Mintz Deme Architecture
6. Motivation
Architecture
Implementation
Demo
Objectives
Hierarchy of item types with shared functionality
Versioning for every item type
Not just documents
Highly collaborative
Every item type supports discussion
Very granular permissions
Easily Extensible
Embedded views
Davies, Mintz Deme Architecture
7. Motivation
Architecture
Implementation
Demo
Objectives
Hierarchy of item types with shared functionality
Versioning for every item type
Not just documents
Highly collaborative
Every item type supports discussion
Very granular permissions
Easily Extensible
Embedded views
Davies, Mintz Deme Architecture
8. Motivation
Architecture
Implementation
Demo
Objectives
Hierarchy of item types with shared functionality
Versioning for every item type
Not just documents
Highly collaborative
Every item type supports discussion
Very granular permissions
Easily Extensible
Embedded views
Davies, Mintz Deme Architecture
9. Motivation
Architecture
Implementation
Demo
Objectives
Hierarchy of item types with shared functionality
Versioning for every item type
Not just documents
Highly collaborative
Every item type supports discussion
Very granular permissions
Easily Extensible
Embedded views
Davies, Mintz Deme Architecture
10. Motivation
Architecture
Implementation
Demo
Objectives
Hierarchy of item types with shared functionality
Versioning for every item type
Not just documents
Highly collaborative
Every item type supports discussion
Very granular permissions
Easily Extensible
Embedded views
Davies, Mintz Deme Architecture
11. Motivation
Architecture
Implementation
Demo
Objectives
Hierarchy of item types with shared functionality
Versioning for every item type
Not just documents
Highly collaborative
Every item type supports discussion
Very granular permissions
Easily Extensible
Embedded views
Davies, Mintz Deme Architecture
13. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is an item?
All persistent data abstracted as items
E.g., documents, users, settings, etc.
Items are instances of “item types”
Item types specify structure of fields
Items provide values for fields
E.g. “Person” is item type, “Mike” and “Todd” are items of
that type
First Name Last Name
Mike Mintz
Todd Davies
Davies, Mintz Deme Architecture
14. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is an item?
All persistent data abstracted as items
E.g., documents, users, settings, etc.
Items are instances of “item types”
Item types specify structure of fields
Items provide values for fields
E.g. “Person” is item type, “Mike” and “Todd” are items of
that type
First Name Last Name
Mike Mintz
Todd Davies
Davies, Mintz Deme Architecture
15. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is an item?
All persistent data abstracted as items
E.g., documents, users, settings, etc.
Items are instances of “item types”
Item types specify structure of fields
Items provide values for fields
E.g. “Person” is item type, “Mike” and “Todd” are items of
that type
First Name Last Name
Mike Mintz
Todd Davies
Davies, Mintz Deme Architecture
16. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Item inheritance
Item types can inherit from other item types
“Item” is at top of the hierarchy
E.g., Item -> Document -> Comment
Item types inherit existing fields, add additional fields
Item: name, description
Document: name, description, body
Comment: name, description, body, commented_item
Davies, Mintz Deme Architecture
17. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Item inheritance
Item types can inherit from other item types
“Item” is at top of the hierarchy
E.g., Item -> Document -> Comment
Item types inherit existing fields, add additional fields
Item: name, description
Document: name, description, body
Comment: name, description, body, commented_item
Davies, Mintz Deme Architecture
20. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
All Items
All items share metadata structure:
Unique ID
Name
Description
Creator / Create Time
Updater / Update Time
Versions
Trashed?
Davies, Mintz Deme Architecture
21. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Agents
Agents
Item that can “do” things
(Given permissions, can appear as creator/updater)
Application user is always a specific Agent
Subclasses: Person, AnonymousAgent, Group
Groups
Collection of Agents
Members can share common permissions
Accounts
Channel of authentication
Subclasses: PasswordAccount, OpenId
Davies, Mintz Deme Architecture
22. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Agents
Agents
Item that can “do” things
(Given permissions, can appear as creator/updater)
Application user is always a specific Agent
Subclasses: Person, AnonymousAgent, Group
Groups
Collection of Agents
Members can share common permissions
Accounts
Channel of authentication
Subclasses: PasswordAccount, OpenId
Davies, Mintz Deme Architecture
23. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Agents
Agents
Item that can “do” things
(Given permissions, can appear as creator/updater)
Application user is always a specific Agent
Subclasses: Person, AnonymousAgent, Group
Groups
Collection of Agents
Members can share common permissions
Accounts
Channel of authentication
Subclasses: PasswordAccount, OpenId
Davies, Mintz Deme Architecture
24. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Collections
ItemSets
Arbitrary collection of items
Subclasses: Folio
Folio
Every group has one folio
Contains items shared among all members
Davies, Mintz Deme Architecture
25. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Collections
ItemSets
Arbitrary collection of items
Subclasses: Folio
Folio
Every group has one folio
Contains items shared among all members
Davies, Mintz Deme Architecture
26. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Documents
Main unit of collaborative work
Different item types for different formats
Subclasses
TextDocument
HtmlDocument
DjangoTemplateDocument
Comment
FileDocument
ImageDocument
Comments refer to other Items
Sometimes specific versions and locations
Davies, Mintz Deme Architecture
27. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Documents
Main unit of collaborative work
Different item types for different formats
Subclasses
TextDocument
HtmlDocument
DjangoTemplateDocument
Comment
FileDocument
ImageDocument
Comments refer to other Items
Sometimes specific versions and locations
Davies, Mintz Deme Architecture
28. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Documents
Main unit of collaborative work
Different item types for different formats
Subclasses
TextDocument
HtmlDocument
DjangoTemplateDocument
Comment
FileDocument
ImageDocument
Comments refer to other Items
Sometimes specific versions and locations
Davies, Mintz Deme Architecture
29. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Relationships
Explicit items for relationships between items
Subclasses: GroupMembership, ItemsetMembership
Davies, Mintz Deme Architecture
30. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Permissions
Specifies who can do what to which items
Agent
Ability
Item
Three levels
Direct
Groupwide
Default
Roles
Customizable sets of abilities
Davies, Mintz Deme Architecture
31. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Permissions
Specifies who can do what to which items
Agent
Ability
Item
Three levels
Direct
Groupwide
Default
Roles
Customizable sets of abilities
Davies, Mintz Deme Architecture
32. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Permissions
Specifies who can do what to which items
Agent
Ability
Item
Three levels
Direct
Groupwide
Default
Roles
Customizable sets of abilities
Davies, Mintz Deme Architecture
33. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Custom URLs
Users can create custom URLs to point to items
Each domain can have separate namespace of URLs
Davies, Mintz Deme Architecture
34. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Custom URLs
Users can create custom URLs to point to items
Each domain can have separate namespace of URLs
Davies, Mintz Deme Architecture
36. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is a viewer?
A Django class that processes browser or API requests
URLs that begin with /resource/ are routed to viewers
Viewers handle items of specific type
Viewers inherit from other viewers
Everything ultimately inherits from ItemViewer
ItemViewer is about 80% of view code
Davies, Mintz Deme Architecture
37. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is a viewer?
A Django class that processes browser or API requests
URLs that begin with /resource/ are routed to viewers
Viewers handle items of specific type
Viewers inherit from other viewers
Everything ultimately inherits from ItemViewer
ItemViewer is about 80% of view code
Davies, Mintz Deme Architecture
38. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is a viewer?
A Django class that processes browser or API requests
URLs that begin with /resource/ are routed to viewers
Viewers handle items of specific type
Viewers inherit from other viewers
Everything ultimately inherits from ItemViewer
ItemViewer is about 80% of view code
Davies, Mintz Deme Architecture
39. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
What is a viewer?
A Django class that processes browser or API requests
URLs that begin with /resource/ are routed to viewers
Viewers handle items of specific type
Viewers inherit from other viewers
Everything ultimately inherits from ItemViewer
ItemViewer is about 80% of view code
Davies, Mintz Deme Architecture
42. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Authentication
There is always an authenticated agent in a viewer
(If user does not log in, it is AnonymousAgent.)
Viewer takes care of checking permissions for
authenticated agent
Davies, Mintz Deme Architecture
43. Motivation
Item Structure
Architecture
Item Ontology
Implementation
Viewers
Demo
Authentication
There is always an authenticated agent in a viewer
(If user does not log in, it is AnonymousAgent.)
Viewer takes care of checking permissions for
authenticated agent
Davies, Mintz Deme Architecture
44. Motivation
Architecture
Implementation
Demo
Deme is written in Django
Deme is:
A collection of Django models
A system of hierarchical viewers that use Django templates
Additional components that handle Deme-specific features
Versioning
Permissions
Commenting
Davies, Mintz Deme Architecture
45. Motivation
Architecture
Implementation
Demo
Why Django?
Big developer community
Now supports multi-table inheritance
Davies, Mintz Deme Architecture
46. Motivation
Architecture
Implementation
Demo
Models –> Item types
A Django model corresponds to an item type
An item is:
A Django model instance
A row in a table
Davies, Mintz Deme Architecture
47. Motivation
Architecture
Implementation
Demo
Models –> Item types
A Django model corresponds to an item type
An item is:
A Django model instance
A row in a table
Davies, Mintz Deme Architecture
49. Motivation
Architecture
Implementation
Demo
Versioning
Every table has a dual version-table
Person
ID First Name Last Name
1 Mike Mintz
PersonVersion
ID Version First Name Last Name
1 1 Michael Mintz
1 2 Mike Mintz
Davies, Mintz Deme Architecture