Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Unique cannonical serialization (using Subversion or some such)

Tania Tudorache tudorache at
Tue Mar 17 17:57:28 PDT 2009

I don't have all the answers to your questions :)

What I can tell you, is that the current implementation of PromptDiff 
would give you only the diff part, not the "go from version n  to n+1" part.

However, we do have plans for implementing a generic OWL Server that 
would work in an SVN like of way by managing sets of changes. We have 
described the architecture in a paper at OWLED [1]. This server would 
give you all the flexibility - retrieving the diffs between two 
revisions, switching between revisions, undo changes, etc.

The ontology server will be implemented for the OWL-API and the clients 
for Protege 4. But his should be a generic architecture and it should be 
easy to add other clients or to switch the underlying OWL API.

I remember there was some times ago an announcement on this list about 
an OWL diff tool for SVN. You should be able to find it in the archives.



James Howison wrote:
> On 17 Mar 2009, at 2:54 PM, Tania Tudorache wrote:
>> Hi Eric,
>> I don't think it is a good idea relying on a particular serialization,
>> but I understand your set up. Protege 3.x IS using Jena to write out  
>> the
>> OWL file, that is why it is different each time, so writing your own
>> serialization using Jena won't help :)
>> Instead, you can use the native writer which you can configure from  
>> OWL
>> menu -> Preferences -> Experimental native writer. If you will also
>> enable the 'Sort resources alphabetically' checkbox, then the output
>> will be repeatable across different Protege work sessions.
>> There have been several emails on the list about using OWL files  
>> stored
>> in SVN. You should be able to find them in the archive. Main problem  
>> is
>> that a text-based diff of an RDF serialization of OWL will not be
>> useful, as the same OWL axiom can be expressed and serialized in
>> different ways (e.g. rdfs:subclass of A -> B, B-> A; and A
>> owl:equivalentClass B, etc.)
>> So, a text diff will not give the users what they want. There are
>> several structural diff tools that you could use that will give a much
>> better result. PromptDiff is one of them, is already integrated in
>> Protege, and is also used in another project in a production setting.
>> So, a combination of SVN with PromptDiff (or another OWL diff tool)
>> would work.
> This suggestion is spot-on, I think.  diffs in a version control  
> system serve two purposes, the first is to move from version to  
> version, by being applied in sequence.  The second is being (near?)  
> human readable to see what has changed, in conjunction with a possible  
> narrative log message.
> Straight-up text diffs serve the first function fine regardless of the  
> serialization, even if they are just the fully degenerate 'delete all  
> lines of version t, add all lines of version t+1' extreme.  Obviously  
> those are basically useless for the second function.
> PromptDiff output should serve the second function, if I understand  
> correctly, so I think a possible strategy would be to use PromptDiff  
> to generate the 'bottom-half' of an explanatory log message, while  
> either allowing plain text diff to handle the moving from version to  
> version, or (strongly preferred) marking the files as binary (which  
> are treated as full replacements by SVN).
> Was that kind of what you had in mind?  I'm not quite sure how one  
> would implement it, SVN doesn't immediately have a way of separating  
> the two functions of diff, at least that I can see.  It's some sort of  
> combination of --diff-cmd and a repository hook like (but not quite  
> like) pre-commit...  Of course you could fake it by running something  
> like a svn diff --diff-cmd='path/to/promtdiff' new-version-of- 
> ontology.owl > tempfile, then copying the contents of tempfile into  
> the SVN log message ...
> Perhaps that's already implemented somewhere and I'm just not finding  
> it!
> Of course one could generate an ontology for describing changes to an  
> ontology, and have the individuals of that be the log message and have  
> a diff-like command that applies them to move from version to  
> version... :)
> --J
> _______________________________________________
> protege-owl mailing list
> protege-owl at
> Instructions for unsubscribing: 

More information about the protege-owl mailing list