The annotation_essential_am_repository.pprj file.

Post Reply
stsytsik
Posts: 8
Joined: 22 Feb 2012, 19:07

The installation didn't create the annotation_essential_am_repository.pprj project. The Protege server keeps complaining. We would like to use the collaboration feature with our project. Can you point me to where I can download the annotation_essential_am_repository.pprj project. Can you send it to me by email. Thank you.
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

The annotations file is the Protege project file that describes the Changes Ontology. This is generated automatically when you switch on Collaborative Protege.

To do this, stop your Protege server and open the Essential repository project file in a stand-alone Protege client. Select the option to turn on Collaborative Protege and Protege will prompt you for the Changes Ontology to use. We recommend strongly that you use a database to hold this ontology as it rapidly becomes very large and this can cause memory issues if the changes ontology is using a file-based project (as it has to be managed in-memory).

This tutorial on the Protege Wiki describes how to set up Collaborative Protege. We recommend that the middle option in the 'Choose Associate ChAO' dialog to 'Create ChAO to store in a database'

Let me know how you get on

Jonathan
Essential Project Team
ulfl
Posts: 15
Joined: 01 Feb 2010, 10:47

What is the best practices regarding change tracking for an Essential project? The integrated ChAO does provide a fine grained change log, but even with a database backend (Oracle) the performance degrades over time if the ChAO is not archived regularly. Furthermore we would like to see information from ChAO in the web viewer. At least we would like to display information about the last change for an instance (without detailed slot or before/after information). Currently we are even thinking about creating dedicated slots for this information in the Essential meta model and updating these automatically instead of accessing the ChAO from the web viewer. What do others do?

Best regards,
Ulf
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Hi Ulf,

This is a very interesting post. Thanks!

When the ChAO was file-based only, I found that it had to be archived and cleared every few days otherwise performance was badly affected. Does the database back end improve this much?

Any changes that are made to repository are made through Protege, so that's the natural place to be tracking changes. I assume that you have explored all the options on the Collaborative Protege components in terms of what to track, e.g. can we make it less detailed?

We have been doing quite a lot of changes via integration / importing and if you're doing that, the overhead of tracking all those changes can be too much and I would recommend switching off change tracking while doing any automated updates to the repository content.

Very interesting idea to view these / include these in Essential Viewer. This is not something that we have considered, although interestingly, we recently added the slot to the External Reference Link class to track when this was last updated so that we can get a feel for how reliable that link might be - very much along the lines of what you are describing.

I have not heard from other users about how they are tracking changes but perhaps there's an ECP in here to provide some coarser-grained change tracking that may even be largely manual, provided by extending the meta model as opposed to using the Protege platform capabilities.

Jonathan
Essential Project Team
ulfl
Posts: 15
Joined: 01 Feb 2010, 10:47

Hello Jonathan,

my experience is that even with the database backend the ChAO performance degrades quickly. We will definately see to disable change tracking when doing mass updates to see if this helps with ChAO performance. Otherwise the only option is to archive and clear the ChAO in short intervalls but this reduces the time range for which change tracking is easily analyzable.

We did not yet look into modification of ChAO to reduce the level of detail. But your mention of the ExternalInstanceReference (EIR) class made us think about a mechanism/plugin that would automatically create an EIR instances for each update of a Protege slot for an instance. This would give us change tracking on instance level. The ExternalRepository would be "Manual", the ExternalInstance would be the name of the logged on user and the current date would be used as update date. Since information about EIRs is already included in the WebViewer we would not have to do any work on this side. Maybe even the ChAO mechanism can be reused to implement this. Detailed change information on slot level would still need to be extracted from the standard ChAO on demand.

Ulf
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

That's a really interesting idea.

We use a similar approach as part of the integration framework. You might have noticed the External Instance Reference class. The idea with this class (which has been in the meta model since before version 1.0) is to connect a particular instance in the Essential repository to an instance in an external repository such as a CMDB. This instance has a slot to capture when it was last updated and from this we can tell when an instance in the Essential repository was last updated and from which source external repository.

The integration frameworks (Essential Integration Tab and the about-to-be-released-as-a-beta-version Essential Import Utility) create these instances automatically as an import is performed. Note that this is at the instance rather than the slot level - so we don't track exactly what has changed on the instance, just that the instance has changed. However, this might be a more useful/realistic level of detail to manage AND these instances are in the repository and therefore already available to the Essential Viewer. I have put views together that make use of these.

The tricky part is how to automatically create these instances as our users update the data in the model. Within the Essential Project Team, we've been extensively road-testing the Import Utility to provide easy-to-update, task-oriented spreadsheets for people to update the data and then we have the import framework to automatically capture any update history.

But if our users are modelling in Protege, we either have to create our own hooks into the GUI to capture the events or maybe modify the Change Tracking the Collaborative Protege components. All of which is possible but takes us off the core product.

The other option is to have users manually track the changes they make - but I'm not sure how that would be accepted!

On the meta model front, I think a new class - something like the External Reference or the External Instance Reference - would probably be better than stretching the semantics of these existing classes.

Perhaps we should kick off a new ECP to take a look at this - perhaps starting by looking at what we can do with the existing ChAO framework.

Jonathan
Essential Project Team
Post Reply