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 stanford.edu
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.

Tania

[1]: http://www.webont.org/owled/2008/papers/owled2008eu_submission_33.pdf



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 lists.stanford.edu
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03 
>
>   




More information about the protege-owl mailing list