ContentEngine

The ContentEngine is the foundation on which TopSoil is built.

Our engine borrows heavily from the concepts of the Git - Fast Version Control System.

To understand how Content Engine works, lets take an example in which Alex and Bob edit documents in the content engine. Lets say Alex creates a document named "ABC" in the content engine. Lets take the steps through which the Content Engine will go through

  • Intially, Content Engine wont have any name "ABC" that live in the system.
  • By creating the document "ABC", the system will add a name "ABC" in the engine and will point this to a vertex(chunk) i.e. first version of this document.

ABC ---> ( doc1 )

  • Now Alex edits the document and saves another version. At this stage, our system will add another vertex and will now point the name "ABC" to this newer version

(doc1) -> (doc2)

           ^
           |
          ABC

So, now ABC now points to doc2 i.e. the new version of the document.

  • Now, another user Bob comes and they both start editing the document pointed to by name "ABC" and Bob creates a new version

(doc1) -> (doc2) -> (doc3)

                     ^
                     |
                    ABC
  • Alice and Bob now decides that they have different views on topic "ABC" and they rather have their own versions of this topic. So, they the content engine looks like
                      -----> (doc5)  (doc2) -> (doc3) -> (doc4)  (doc5) -> (doc6)  (doc2) -> (doc3) -> (doc4) -----


  • The two different chunks with different names might intersect(i.e. their contents are same) at some point in time. The chunks might merge at this stage and follow the same path onwards or they may take the different paths altogether. At this stage, the users may decide to merge the two names together that is only one chunk with two names pointing to it OR they may want to follow different paths with names pointing to different chunks.

OfflineEditing

Users can edit documents in the offline mode. Just to make sure that they users have the latest copy of the chunk, the Content Engine send the hash along with the document. So, when user tries to synchronize with the server, system knows whether he had the latest copy of the chunk or the old one. If the user has the latest copy, the Content Engine just updates the page and point the name to the latest chunk.

In case, the user don't have the latest copy when they try to synchronize then they are given an option to merge the document with the latest copy or to overwrite the latest copy. The Content Engine will highlight the changes in the latest version and the users version.



Retrieved from "http://aboutus.com/index.php?title=ContentEngine&oldid=6566328"