RE: [chairs] need your comments on DocMgmt system requirements

From
Rogers, Tony <>
Date
2004-02-18T20:57:18+00:00
ID
Thread
RE: [chairs] need your comments on DocMgmt system requirements
Make a couple of changes in a Word document and store it in CVS (yeah, 
binary is probably how you'd do it) - it stores the entire file again, rather 
than the changes - that's what I'm calling inefficient, meaning "using more 
storage than is necessary to store the changes". I didn't say "bad". I didn't 
say "unusable". I said "inefficient", and I cordially disagree with your 
statement that "It is not.".

 

I have used CVS for over 10 years, and it's a useful place to store source 
code. It's a lot less useful when storing non-text files, however.

 

One of the features of CVS and ancilliary programs that I use frequently is 
a display of the differences between two versions of a file. I don't get that 
facility when CVS is storing Word documents - all I can do is retrieve the two 
Word documents and look at them (anyone got a good Diff for Word?). That's a big 
loss, especially in this environment, where we have multiple authors. To make 
matters worse, it encourages use of the "track changes" feature of Word, and 
that produces much larger Word documents...

 

So what I am asking is: is there a system which will give us this valuable 
feature for Word documents? (Ideally, also for PDF files) Something that will 
allow us to see things like "this paragraph was added by Mr Slowsteady on 
13 July, and modified by Ms Quicksmart on 14 August". If the answer to that is 
an expensive document management system, then let's consider it. If it can work 
on top of CVS so we can use native CVS facilities for text and html files, then 
that's a bonus.

 

Tony Rogers

  
-----Original Message----- 
From: Matthew 
  MacKenzie [mailto:] 
Sent: Thu 19-Feb-04 7:34 
  
To: Christopher B Ferris 
Cc: Rogers, Tony; 
  ; Chairs OASIS 
Subject: Re: [chairs] need 
  your comments on DocMgmt system requirements

  
cvs -z9 add -kb mydoc.doc 

  
You need to mark the document as "binary", and to not expand keywords. 
  The -z flag tells the client the level of compression to use. I've been using 
  CVS almost daily for 5 years, and there are several binary files in there 
  (jars, zips, docs, pdfs, ps, exe, gz, ...). 

  
Is CVS inefficient in storing and versioning MS Word, or other binary 
  documents? No. It is not. Does CVS integrate with MS Word to make the cvs diff 
  command and conflict resolution work? No. If we want that, OASIS will probably 
  want to pony up big bucks for a high end content management system. 
  

  
On Feb 18, 2004, at 4:23 PM, Christopher B Ferris wrote: 

  
    
Right, but you can store word docs in CVS... it's just inefficient. As 
    for 

    
HTML/XML, 

    
it works just fine. 

    
Cheers, 

    
Christopher Ferris 

    
STSM, Emerging e-business Industry Architecture 

    
email:  

    
blog: http://webpages.charter.net/chrisfer/blog.html 

    
phone: +1 508 377 9295 

    
"Rogers, Tony" <> wrote on 02/18/2004 03:13:55 
    PM: 

    
      
In my experience, CVS doesn't handle MS Word documents well. It is 
      

    
designed for plain-text source 

    
      
code, and MS Word's file format doesn't allow it to produce an 
    

    
economical diff between one version 

    
      
and the next. This means that it wastes considerable space when 
    

    
versioning Word. I cannot comment 

    
      
on its ability to version html, but I suspect it would do much better 
      on 

    
that. Perhaps we should 

    
      
all be using TeX, because that can be versioned more readily (ah, 
      that 

    
was a joke...) 

    

      
Is there a tool that would be able to version MS Word more 
      effectively? 

    
I certainly don't know. 

    
      
Does that mean we shouldn't use Word? I hope not - our TC has found 
      

    
Word's change tracking rather 

    
      
useful when working collaboratively. 

      
Tony Rogers 

      
 

      
co-chair UDDI TC 

      
-----Original Message----- 

      
From: Karl F. Best [mailto:] 

      
Sent: Thu 19-Feb-04 2:04 

      
To: Norman Walsh 

      
Cc: Chairs OASIS; Jeff Lomas 

      
Subject: Re: [chairs] need your comments on DocMgmt system 
      requirements 

    
      
Norman Walsh wrote: 

      
        
/ "Karl F. Best" <> was heard to say: 
        

        
| I've put together a draft functional requirements document for 
        this 

        
| doc mgmt system and would like to get your feedback. It is very 
        

        
| important that we have the requirements correct and complete 
        before 

    
we 

    
      
        
| start development of the project -- many of you are developers so 
        

    
I'm 

    
      
        
| sure that you understand the importance of this. 

        
High level comments: 

        
- I don't think these requirements adequately address the 
        distinction 

        
between a development system (where TCs actively revise documents, 
        

        
schemas, etc.) and a publication system (where TCs post working 
        

        
drafts, standards, and other "finished" work products). 

        
Is the proposal to develop one or the other, or both. If it's one 
        

    
or 

    
      
        
the other, then I think some of these requirements are completely 
        

        
inappropriate. If it's both, I think it might be useful to specify 
        

        
them separately. (And whether you imagine having resources to do 
        

        
them in sequence, or at the same time?) 

      
I've previously thought of having a two-phase system, the first of 
      which 

      
would provide a "sandbox" for the TC members to collaborate in 

      
developing a document. Then once the doc reached a certain stage it 
      

      
would then go into a more controlled environment with e.g. versioning 
      

      
and edited only by the TC. I've gotten the impression that most TCs 
      

      
would only use the second phase, but I could be wrong. 

      
Chairs: would you prefer having both of these phases built into the 
      doc 

      
mgmt system (open collaboration, followed by more rigourous control)? 
      or 

      
would you only use the second? 

      
        
- There are several places where the requirements seem to be 

        
self-contradictory. 

      
Specifics? This is obviously a draft so needs polishing, so 
      suggestions 

      
are welcome. 

      
        
- I think meeting all of the requirements listed below will be a 
        

        
significant challenge. A more detailed roadmap, showing staged 
        

        
progress with realistic time estimates would be very helpful. 
      

      
Yeah. That's the next step. But right now I'm just gathering 

      
requirements. I can't very well write a development schedule until I 
      

      
know what it is that we're trying to build. 

      
I'd also like suggestions on which parts of this are most important. 
      I'm 

      
debating whether we should try a phased development approach (i.e. 
      

      
provide base functionality now then add a more functionality over 
      time). 

      
Looking through the requirements that I have now, though, I'm not 
      sure 

      
which ones we could put off until later. 

      
Chairs: suggestions please. 

      
        
- A number of the features that you describe would seem to be at 
        least 

        
partially addressed by open source efforts like G-Forge (an open 
        

        
source version of SourceForge). Are you considering a system like 
        

        
that, or are you expecting to "roll your own" from scratch. 
      

      
I'm intending for us to build on top of an existing system. That's 
      why I 

      
said "probably CVS". We'd be silly to build something from scratch 
      when 

      
the engine already exists. We'll build some sort of customized web 
      

      
interface on top of the engine. Once we have the requirements we'll 
      know 

      
what it is that we need to build. I'd also like suggestions for the 
      

      
engine; is CVS the way to go, or do people recommend something else? 
      

      
        
          
OASIS DocMgmt Functional Requirements 

          
(17 February 2004) 

          
General Description: A repository providing storage/management of 
          

          
files created by TCs, SCs, and other OASIS groups 
        

        
Technical committees need to be able to store and manage a 
        collection 

        
of resources. Principal among these resources are documents, but 
        it's 

        
reasonable to consider other, related resources as well, including 
        

        
issue lists, archives, news items, and syndicated content. 
      

      
The doc mgmt system would store any type of file. Not just specs, but 
      

      
also the other doc types you mention. 

      
Would some of these stored objects be links and not files? 

      
        
          
o Probably based on CVS 

        
The requirements for a "development tree" are likely to be somewhat 
        

        
different than the requirements for a "publishing tree". In 

        
particular, I would expect published standards to be more-or-less 
        

        
immutable, to have persistent URIs, etc. In a development tree, 
        those 

        
constraints might be quite stifling. 

        
CVS supports a development system very well. It's not immediately 
        

        
clear to me if it supports a publication system equally well. 
      

      
I'm certainly not a CVS expert, though I'm aware that it was built 
      for 

      
development rather than documents. So it may not be ideal for what we 
      

    
want. 

    

      
Does anyone have suggestions for a better engine, better suited for 
      doc 

      
development and publishing, upon which to build our system? 

      
        
          
o A separate area in the repository for each TC/SC/group; both 
          

          
default and definable hierarchy within each TC area 
        

        
Can you elaborate on what you mean by "both default and definable"? 
        

        
What do you have in mind for "default"? 

      
When we create a new TC we would define hierarchy branches for such 
      

      
things as e.g. "drafts", "minutes", "contributions" etc. (TBD). Then 
      the 

      
TC chair could define additional branches as required. We'd want to 
      keep 

      
the hierarchy as flat as possible to keep the URLs short, and we'd 
      want 

      
some consistency, but I want to give the TCs some control over there 
      

    
space. 

    

      
        
          
o All documents are permanently archived (only Admin has delete 
          

          
rights) 

        
In CVS terms, you can delete a document, but you can always recover 
        

        
it. In a development tree, it's not uncommon to reorganize some 
        code 

        
or a document and want to remove modules from the current "head" of 
        

        
the development tree. This goes back to my comment before that the 
        

        
requirements for publication and development are somewhat 
        different. 

      
Maybe this is where the "sandbox" (above) comes in. I don't see the 
      need 

      
of permanently archiving early drafts, but once a doc is checked into 
      

      
the permanent repository it should be permanent. 

      
        
          
o All documents are publicly viewable, downloadable 

          
o Repository has a web interface for uploading and tree browsing, 
          

          
searching, and retrieval 

          
+ Support for all major browsers 

          
+ Listing of single files includes filename, title, description, 
          

          
date, creator, and language; listing of packages includes the 
          

          
list of single files in the package 

          
+ Search by filename, title, date, creator, and language; and 
          

          
full-text search of description and contents. 
        

        
Does it have other interfaces? Are you describing a front-end for 
        CVS 

        
here, or something else? Does it support Web-DAV? 
      

      
I would expect that most people would want to use a web interface, 
      but I 

      
suppose that power users may want to deal more directly with the 
      engine. 

      
But there's also certain safeguards (permissions, restrictions on 
      

      
naming, etc.) that may require that we use an interface. I don't know 
      

      
yet; this may depend on the engine. 

      
What are the benefits of Web-DAV? (I'm not an expert on this.) 
      

      
        
I think it would make sense to address searching as its own 
        top-level 

        
item. In particular, the description above suggests that every item 
        

        
will have a set of metadata that can be searched. Where/when is 
        this 

        
metadata created? Can I add my own? Is it expressed in an open 
        format, 

        
an XML vocabulary or RDF or a topic map, or is it proprietary? How 
        

        
does this metadata evolve as documents change in CVS? 
      

      
I see the metadata as comprised of the fields listed above. TBD. I 
      don't 

      
know yet how this would be expressed because we havne't selected an 
      

      
engine yet. 

      
How does this matter? Yes, we should use XML on principle, but I 
      don't 

      
see it as a requirement. 

      
        
As for searching the content, that's clearly going to depend on the 
        

        
type of content. What types will the system support? 
      

      
Obviously not all content will be searchable. If somebody uploads a 
      blob 

      
there's not much we'll be able to do with it besides just store it. 
      

      
We will store whatever types of files the TCs need to store. 
      

      
        
          
Persistent URLs 

          
o At file creation the document is assigned a URL according to 
          the 

          
OASIS file naming scheme. The URL will always resolve to the 
          latest 

          
version of the document, regardless of the documents (versioned) 
          

          
filename; a URL will identify a specification throughout its 
          entire 

          
lifetime from working draft to OASIS Standard. Previous versions 
          of 

          
the document will be accessible via a variant of the URL 
          containing 

          
the version number. 

        
This is fine for storing standards but it's in conflict with the 
        use 

        
of CVS and the reference above to a "definable hierarchy". 
      

      
Again, I'm not an expert on what you can and can't do with CVS. 

      
Suggestions welcome. 

      
        
I think this should apply to published standards and work products, 
        

        
but I don't think it can practically be applied to a development 
        

        
space. 

      
If we have a "sandbox" phase then we wouldn't expect a persistent URL 
      

      
for those items. Only once a doc is checked into the permanent 

      
repository would we do this. 

      
        
This suggests that the interface to the published standards space 
        

        
might require more constraints. I hope that these constraints can 
        be 

        
imposed without requiring me to interact with the system only 
        through 

        
a web interface. 

      
As above, power users like yourself may wish to talk directly to the 
      

      
engine, but there will be some constraints for security and 
      consistency. 

      
If it is practical to enforce those constraints via both a web 
      interface 

      
as well as a native interface then we will. But if it's not practical 
      

      
then we'll have to do everything through a browser. 

      
        
          
Multiple file types supported 

          
o TCs will store both source (e.g. MSWord or HTML) and compiled 
          (e.g. 

          
PDF) versions of each file; i.e. the repository should not allow 
          a 

          
PDF to be checked in without a matching .doc or .html file 
        

        
Uhm, what about documents that have a source which is neither a 
        

        
proprietary tool or HTML? 

      
The above is not an exhaustive list. I'm just suggesting that both 
      

      
source and compiled versions should be in the repository. Any 

      
responsible developer should agree with this philosophy. 

      
        
Imposing the requirement that the system check for classes of 

        
dependencies between files of different types is going to be 
        tricky, 

        
especially as the specs evolve. Suppose I rebuild the PDF, can I 
        check 

        
it in without checking in a new source document? What if I only 
        

        
corrected a formatting bug? If I check in a new source, what 
        happens 

        
to the PDF? 

      
Yeah, we'll have to figure this out. How do you do it when you write 
      

    
code? 

    

      
        
I think a lot more detail is required in this part of the 

        
requirements. 

      
That's why I'm asking for input. 

      
        
          
o HTML files may include graphics which will be stored with the 
          file 

          
(use relative URLs?) 

        
What about other cross-document links? What about XML files that 
        refer 

        
to both HTML and PDF presentations? What about document trees that 
        

        
consist of multiple chapters in a hierarchy with a common set of 
        

        
figures? 

        
More detail, please. 

      
More input, please. 

      
        
          
o use MIME types 

          
Packages 

          
o A specification may be composed of multiple documents. The 
          entire 

          
package may be uploaded or downloaded in a single operation. 
          

          
Individual documents in the package may also be uploaded or 

          
downloaded. 

        
I don't understand what you mean here. Are you suggesting that I 
        might 

        
upload a package (as a ZIP file? as a MIME multi-part related 
        stream?) 

        
and then several days later upload a new version of one component 
        in 

        
that package. Having done so, what "version" does the package have? 
        

        
Can I still download the original? Can I download the revised 
        version? 

      
Probably the package will just be an HTML file with links to all of 
      the 

      
components. In that case the package is updated by editing the links 
      in 

      
the package file. Each of the components are maintained by editing 
      them 

      
individually. Each component, as well as the package file, could have 
      

      
its own version number or date, but the entire set would collectively 
      

      
have to be versioned. Would this work? 

      
        
          
o Support for chapters or parts of a multi-part document (with 
          links 

          
between parts); a package could have a ToC with links to the 
          

          
individual files 

        
I think any attempt to describe the size and shape of a package 
        ("it 

    
will have 

    
      
        
a ToC and chapters" or "it will have a starting page and parts") 
        will 

    
be 

    
      
        
problematic. Best just to accept that a multi-part document is a 
        

    
directed 

    
      
        
graph (a web). 

      
Would my description (above) of a package work for this? The TC can 
      

      
decide how it wants to structure the multi-part spec. 

      
        
          
o Support for modular DTDs (e.g. DocBook) 

        
What does this requirement mean? Do you also mean modular W3C XML 
        

        
Schemas and RELAX NG grammars? Does this requirement differ from 
        the 

        
preceding one in a particular way? 

      
Pretty much the same, I think, but I'd be happy to hear other 

      
requirements not met by the above. 

      
        
          
o The entire package is addressable via a single URL, as are the 
          

          
individual documents. The package URL will link to an HTML page 
          

          
listing the package contents. 

        
Is that an HTML page constructed by the author of the package, or 
        

        
automatically from the content of the package? If it's the latter, 
        

        
what constraints, if any, does that impose on the contents of the 
        

        
package? 

        
          
Security 

          
o Check-in/out based on Kavi user authentication; different 

          
permissions for public, TC members, chair/secretary, etc. 
          

          
o TC members have ??? rights (TBD) 

          
o TC Chair and Secretary have create, edit rights for folders and 
          

          
checkin/out rights for documents in their respective TC area 
          

          
o Admin has admin rights (create, checkin/out, delete of all 
          folders 

    
and files) 

    
      
        

          
o Public has read rights for all documents 
        

        
How does "admin" differ from chair/secretary? 

      
"Admin" is the OASIS staff administrator of the dc mgmt system. 
      

      
        
          
Kavi integration 

          
o Kavi user acct/pswd used for authentication in doc mgmt system 
          

          
o Notification to the Kavi group when a document is uploaded 
          (same as 

          
current Kavi notification) 

          
o The current Kavi doc repository is disabled; links within Kavi 
          will 

          
go to this doc mgmt system instead (i.e. Kavi doc repository is 
          

          
hidden, this one drops in to replace it). 

          
o Docs currently in the Kavi repository will continue to be 

          
addressable and viewable by their Kavi URL (allow for migration 
          

    
over 

    
      
        
          
time) 

        
This requirement and the previous requirement seem to be in 
        conflict. 

        
Can you explain how "the links within Kavi will go to this doc mgmt 
        

        
system instead" supports the goal that "the Kavi repository will 
        

        
continue to be addressable and viewable by their Kavi URL (allow 
        for 

        
migration over time)"? 

      
Right now when you're in Kavi you can click on a link for "doc 

      
repository" and it will take you to that page in Kavi. I'd like it to 
      go 

      
to the new doc mgmt system instead. But we should allow current docs 
      in 

      
the Kavi repository to stay where they're at until the TC wants to 
      move 

      
them, so these docs need to remain addressable by the current URLs. 
      

      
We'll have to keep the Kavi search/browse accessible, but the default 
      

      
would go to the new doc mgmt system. 

      
        
          
o When new Kavi group (TC/SC) is created, a doc mgmt area for 
          that 

          
group and default folders are automatically created 
        

        
This goes back to the question of defaults before. What hierarchy 
        do 

        
you have in mind, and what are your motivations for creating it? I 
        

        
think it'll be easier in the long run to simply create an empty 
        

        
hierarchy and let the TCs populate it. 

        
If you have in mind that minutes should go in /minutes and press 
        

        
clippings should go in /press, etc., then I think a detailed 

        
description of the default hierarchy is required. 
      

      
See above. Still TBD, but we need both consistency as well as 
    

    
flexibility. 

    

      
        
          
File naming (automation of this done in a later phase; just do 
          this 

    
manually at first?) 

    
      
        

          
o Naming and versioning of documents follows OASIS file naming 
          scheme 

          
o When a new document is created it will be named according to 
          the 

          
scheme; automated helps to create/assign a name 
        

        
This seems to duplicate the requirements expressed under 
        "Persistent 

        
URLs". Is it intended to be different? I believe my comments there 
        

        
apply here as well. 

      
Th eintent is to provide (eventually, maybe a bit later) a GUI to 
      help 

      
name new files conformant with the OASIS doc naming scheme. I 
      envision 

      
pull-downs to select each of the components of the name. But this 
      will 

      
probably be later; the file creator would have to manually name the 
      file 

      
for now. 

      
        
          
Localizable interface, with localization to occur in a later 
          phase 

          
Later phase: Count/traffic report of downloads (how many people 
          have 

          
downloaded a particular doc?) 

        
Other later phase items? 

        
- Issue tracking? 

      
Sounds like a separate tool. Yes, we need this. Suggestions? 
      

      
        
- automatic generation of PDF/HTML from source formats? 
      

      
Yeah, we could add this, but is there a need? Can't people do this 
      

    
already? 

    

      
        
- validation? 

      
Ditto. Can't you do this already? 

      
But, yes, I see the utility of having validation on checkin, and 
      

      
publishing, as part of a doc mgmt system. 

      
        
- interactive forms (e.g., the ability to support an interface that 
        

        
asks a number of questions and then builds an appropriate schema 
        

        
customization layer)? 

      
That's the sort of interface I had in mind for the file naming 
      (above). 

      
But I see this as a separate tool for later. 

      
        
- Syndication of announcements 

        
- An informal "journal" space (or blog, if you will) for TC members 
        

        
to outline their thoughts and ideas? 

      
Both of those are separate tools. Not sure how those would be part of 
      a 

      
doc mgmt system. 

      
Thanks for the feedback. Much appreciated. 

      
-Karl 

      

        
Be seeing you, 

        
norm 

        
P.S. I'm happy to report that your requirements document can be 
        nicely 

        
presented in an open format (plain text, in this case) instead of a 
        

        
proprietary format. I hope that its greater accessibility in this 
        

        
format (and the fact that it's six times smaller) can be used to 
        

        
demonstrate once again the value of open standards. 

        
(For even more thoughts on this topic, see 

        
http://www.gnu.org/philosophy/no-word-attachments.html) 
      

      
-- 

      
================================================================= 
      

      
Karl F. Best 

      
Vice President, OASIS 

      
office +1 978.667.5115 x206 mobile +1 978.761.1648 

      
 http://www.oasis-open.org 
    

  
___________________________ 
  

  
Matthew MacKenzie 

  
Senior Architect 

  
Intelligent Documents Business Unit 

  
Adobe Systems Canada Inc. 

  
http://www.adobe.com/ 

  
506 869.0949