Storage Model for V2
Table of Contents
I'll give here an example of a fictitious repository with sample resources, that I will represent with their URL (I removed the URL prefix that could be for example: http://resources.calenco.com/workspaces/neodoc/)
A few files aka the real content:
- content/en/userguide.xml
- content/en/intro.xml
- content/fr/intro.xml
- content/fr/userguide.xml
- content/logo.png
- content/docbook-fo.xsl
Workflows
I'm not sure about this part. There are Open-Source workflow engine we could reuse ( http://www.manageability.org/blog/stuff/workflow_in_java http://java-source.net/open-source/workflow-engines)
- workflows/myworkflow[type=content]/write
- workflows/myworkflow/proofread
- workflows/myworkflow/validate
- workflows/myworkflow/publish
- workflows/mycomments[type=comment]/tobedone
- workflows/mycomments/discarded
- workflows/mycomments/fixed
Ontologies
- ontologies/classification/technology/OpenOffice
- ontologies/classification/marketing
Publications
- publications/1[content/en/userguide.xml|content/docbook-fo.xsl|.......]1
Comments
- comments/1[This paragraph is too vague, must be rephrased]
- comments/2[Can you be more specific? What's Wrong?]
Releases
- releases/1[1.0|2008-04-12]
- releases/2[1.1|2009-01-04]
- releases/3[2009Spring|2009-05-14]
Associations
- rdf/1[content/en/userguide.xml|hasADepCalled|content/en/intro.xml]
- rdf/2[content/en/userguide.xml|hasADepCalled|content/logo.png]
- rdf/3[content/fr/userguide.xml|hasADepCalled|content/fr/intro.xml]
- rdf/4[content/fr/userguide.xml|hasADepCalled|content/logo.png]
- rdf/5[content/fr/userguide.xml|isTranslationOf|content/en/userguide.xml]
- rdf/6[content/fr/intro.xml|isTranslationOf|content/en/intro.xml]
- rdf/7[content/en/userguide.xml|isSortedAs|classification/technology/OpenOffice]
- rdf/8[content/logo.png|isSortedAs|classification/marketing]
- rdf/9[content/en/userguide.xml|currentTaskIs|workflow/myworkflow/write]
- rdf/10[workflow/myworkflow/write|defaultOwnerIs| http://resources.calenco.com/system/users/camille]
- rdf/11[content/en/userguide.xml|currentTaskOwnerIs| http://resources.calenco.com/system/users/fabian] 2
- rdf/12[publications/1|hasADepCalled|content/en/userguide.xml]
- rdf/13[publications/1|hasADepCalled|content/docbook-fo.xsl]
- rdf/14[content/fr/intro.xml#p12|hasAComment|comments/1]
- rdf/15[comments/1|hasAComment|comments/2]
- rdf/16[content/en/userguide.xml|hasAuthor| http://resources.calenco.com/system/users/camille]
- rdf/17[comments/1|hasAuthor| http://resources.calenco.com/system/users/fabian]
- rdf/18[comments/2|hasAuthor| http://resources.calenco.com/system/users/camille]
- rdf/19[comments/1|currentTaskIs|workflows/mycomments/tobedone] 3
- rdf/20[releases/1|hasADepCalled|content/en/userguide.xml|45]
- rdf/20[releases/1|hasADepCalled|content/logo.png|5]
- rdf/20[releases/1|hasADepCalled|content/docbook-fo.xsl|12]
- rdf/20[releases/1|hasADepCalled|content/publications/1|16]
A Note About versioning
Only content is versionned. So modules can be referenced as content/en/userguide.xml?rev=1.2
The text below is obsolete.
Let's see what happens for example when a task is passed on a specific XML file:
| Association \ Version | N | N+1 |
| en/userguide.xml current Task | rdf/9[content/en/userguide.xml|currentTaskIs|workflow/myworkflow/write] | rdf/9[content/en/userguide.xml|currentTaskIs|workflow/myworkflow/write] |
| en/userguide.xml current Task Owner | rdf/11[content/en/userguide.xml|currentTaskOwnerIs|system/users/fabian] | rdf/11[content/en/userguide.xml|currentTaskOwnerIs|system/users/john] |
Thanks to this, one can know the exact workflow state of a module at all versions, who was in charge, what was the module content at that time, etc.
That also means that there must be a version parameter for all the URLs of this page. It is set to HEAD by default.
For more details see VersioningSpecs
- 1. See PublicationsManagement
- 2. currentTaskOwner is defaultOwner unless currentTaskOwner attributes the task to someone else
- 3. The user that writes the comment optionaly chooses a workflow for it
