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:31:02 PDT 2009

Hi Alan,

Alan Ruttenberg wrote:
> Hi Tanya,
> While I agree with the general sentiment, I don't agree that text 
> diffs won't be useful. In fact in many cases they will be. I think 
> that by default, protege should try as hard as it can to have a stable 
> rendering of the ontology, and this isn't *that* hard to do. There 
> isn't any good reason, as far as I can tell, for the current 
> situation, in which even ontologies that are not changed at all are 
> serialized in a different order each time.

Agreed. Protege 3.x uses Jena for the default serialization and we used 
it as a kind of black box. We cannot really control the writing out part 
except for the types of serializations (RDF/XML, RDF/XML Abbrev - this 
is what we use, etc.). If there is some configuration in Jena to make it 
output in a more predictable way, we are happy to integrate that into 
Protege for a patch release.

> Regarding the prompt plugin, I just tried it and was put off by the 
> fact that I couldn't point it at an OWL file - it only takes pprjs and 
> I didn't have one for our previous release.

You are right. This is a reminiscent of old days. If you do have a pprj 
file for the owl file, it will work fine. If this is an impediment, we 
might change this in a future patch release. The change is trivial.

> I'm aware of the experimental serialization method. It's a reasonable 
> start. If it's past being experimental, then I suggest removing the 
> label and making it the default serialization. If it is still 
> experimental, then it would be good to know how much it can be trusted 
> currently and when it can be expected to be stable enough to use for 
> 'production'.

Our fault. It's not experimental anymore, we just forgot to remove the 

> Past that, what would be very helpful would be for the NCBO to put out 
> a command line tool OWL diff tool that can be configured for uses with 
> svn (via --diff-cmd) and instructions for how to set it up. There is a 
> significant clientel for tools that play nice on the command line.

I'll pass this to the NCBO folks. I think they plan to, or already have 
web services for retrieving the structural diff between 2 ontology 
versions stored in BioPortal.

Thanks for the feedback,

> Regards,
> -Alan
> On Tue, Mar 17, 2009 at 2:54 PM, Tania Tudorache 
> <tudorache at <mailto:tudorache at>> 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.
>     There are other alternatives:
>     1. Rather than using Protege 3.x, you should use Protege 4 which uses
>     the OWL-API and has a much nicer and user-friendly serialization
>     of OWL.
>     It also has support for OWL 2 features that Protege 3.x does not. It
>     also supports the rendering of an OWL ontology in different
>     formats that
>     might be more "SVN friendly".
>     2. Protege 3.x already has support for collaborative ontology
>     development that is integrated in the tool. You can take a look at
>     Collaborative Protege [1]
>     3. There is a web-based repository tool that might be interesting that
>     works with protege as a backend for OWL and RDF.  It keeps track of
>     changes, dumps them as RDF files, and has many other nice features
>     (visualization, annotation, search, etc.). The tool is open source and
>     is domain-independent. You can see an example of the tool here,
>     BioPortal [2].
>     Tania
>     [1]:
>     [2]:
>     Eric Peterson wrote:
>     >
>     > Hi folks;  (I misposted this as a followup)
>     >
>     > I'm having a hard time collaborating Protege-wise with my
>     cohorts.  We
>     > are a Subversion shop, but due to the fact the Protege serializes
>     > vastly differently for small changes, we can't diff and merge
>     > conflicting versions of our OWL files.
>     >
>     > I don't think I could sell the use of Protege's collaboration tools,
>     > but would value suggestions for solving this problem.
>     >
>     > I'm considering writing my own serialization plugin for Protege
>     using
>     > Jena.
>     >
>     > Thanks!
>     >
>     > -Eric Peterson
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > protege-owl mailing list
>     > protege-owl at
>     <mailto:protege-owl at>
>     >
>     >
>     > Instructions for unsubscribing:
>     >
>     _______________________________________________
>     protege-owl mailing list
>     protege-owl at <mailto:protege-owl at>
>     Instructions for unsubscribing:
> ------------------------------------------------------------------------
> _______________________________________________
> protege-owl mailing list
> protege-owl at
> Instructions for unsubscribing: 

More information about the protege-owl mailing list