Displaying and editing ontology items
using a mind mapping paradigm.

A contribution to the development of web-protégé1


Development Roadmap


Working Draft 10 July 2012



This version:
http://democritique.org/softs/WebProtege/mindmapping/docs/roadmap.xhtml


Editor:
Henry Boccon-Gibod - h.c.boccongibod@gmail.com



See also :
A mind mapping user interface for WebProtege
specification of the displaying algorithm of the current version
list and roles of implied code resources in version 0



Preamble
__________________________________________________________________________________


The first version of the graphic visualisation portlet is an alpha test prototype that works on the version 1 of webprotege, and do not allow ontology modification.

The next iteration is intended to work on the version 2 of webprotege, will allow edition of OWL2 ontologies.

This page describe the roadmap for the development we foresee for that future iteration.




A) Define a clean access layer to ontology entities
__________________________________________________________________________________


The next iteration of the portlet will introduce an ontology layer in order to make it more easy to develop and maintain, and adaptable on other development contexts.

In order to be as far as possible easily adaptable to any evolution of an underneath API, the following pseudo-code is based on the associated development of a set of specific java classes each corresponding to an OWL metaClass as defined in the W3C standard, as follow, with their main suggested methods :


class OWLClass subclass of EntityData, with mehods :

getClassSuperClasses

getClassSubClasses

getClassDisjointClasses

getClassEquivalentClasses

getClassIndividuals

getClassObjectProperties

getClassObjectPropertyRestrictions

getClassDatatypePropertyRestrictions


setClassSuperClass

setClassEquivalentClass

setClassDisjointClass

setClassFunctionalObjectProperty

setClassTransitivelObjectProperty

setClassSymmetricObjectProperty

setClassDatatypeProperty

setClassFunctionalDatatypeProperty


createClassSubClass

createClassIndividuals

createClassFunctionalObjectProperty

createClassTransitivelObjectProperty

createClassSymmetricObjectProperty

createClassDatatypeProperty

createClassFunctionalDatatypeProperty

createClassPropertyRestriction


class OWLIndividual subclass of EntityData, with mehods :

getIndividualDatatypeProperties

getIndividualObjectProperties

createIndividualDatatypeProperty

createIndividualDatatypeValue

createIndividualObjectProperty

setIndividualObjectPropertyTarget(OWLObjectProperty,OWLIndividual)


class OWLObjectProperty subclass of PropertyData, with mehods :

getObjectPropertyKind

getObjectPropertyDomainClasses

getObjectPropertyRangeClasses


setObjectPropertyKind

setObjectPropertyDomainClasses

setObjectPropertyRangeClasses


class OWLFunctionalObjectProperty (subclass of OWLObjectProperty)


class OWLTransitiveObjectProperty (subclass of OWLObjectProperty)


class OWLSymmetricObjectProperty (subclass of OWLObjectProperty)


class OWLDatatypeProperty subclass of PropertyData, with mehods :

getDatatypePropertyDomainClasses

getDatatypePropertyRangeXsdType


setDatatypePropertyDomainClasses

setDatatypePropertyRangeXsdType


class OWLFunctionalDatatypeProperty (subclass of owlDatatypeProperty)


class OWLAnnotationProperty, with mehods :

getAnnotationPropertyDomainClasses

getAnnotationPropertyRangeClasses

getAnnotationPropertyRangeXsdType


B) Enable interaction between graph visualisation portlet and other portlets
__________________________________________________________________________________


The current version do not synchronize properly the navigation between the graph visualisation portlet and any others.

clicking in the graph visualisation portlet or in the Class Tree portlet must set it automatically as the controlling one, and synchronize the display of others.


C) Display labels on the graph when it is possible (as currently only the IDs are displayed)
__________________________________________________________________________________


That feature is based on the setup of a "current language"

The first accessed rdfs:label int the current language is displayed, as it is supposed to be unique


D) implement mind map features of edition with javascript library (rubberbanding)
___________________________________________________________________________________


The editing process depends on the verified rights of the user.

They may be of three levels :

read only, abox edition, tbox edition (during tbox edition, abox edition is inhibited)


The edition (create, modify delete ontology elements) of the ontology is allowed from the graph visualisation portlet with the following features :

- one may click on the right mouse button when the mouse is

on the current item name or

on one of its properties.

on one of its property values.


- to click on the right mouse button displays a context menu linked by a dynamic leg to the current clicked item (that can be either the current item or one of its property).

- to move the mouse with right button down move the popup menu and adapt the shape of the link between the displayed current item origin and the popup menu. see here a prototype example of that feature


D.1) Delete OWL entity


That feature acts on the current element : the popup menu provide a delete button. Click on the left button initiate the element deleting process as it is in web-protégé.

protégé-server take care of the consistancy of any OWL entity which were related to the deleted element


D.2) Create OWL entity


That feature acts only on the current element and/or its properties: the popup menu provides a set of possible creations, the list of which depends on clicked element


to mouse down on the right button initiate the creation process.

The creation process depends on the kind of object to be created :

Typically the process get Five steps :

- One : to mouse down on the right button and move display an attached menu with the list of allowed properties

- Two : release the button let the attached menu where it is.

- Three : to click on one of the property list in the attached menu :

- create the potential property

- display a second property menu allowing either :

- to create the target element ;

- to choose the target element in a list;

- in both case, one or two attached menu displays the list of allowed possibilities.

- Four : to click on one of the possibility either :

- establish the chosen link with the existing chosen existing entity.

- create the new entity in the chosen context with default values.

- Five : update the graph of current element.


D.3) Modify OWL entity


That feature acts only on values of properties of the current element : the popup menu provides a set of possible actions, the list of which depends on the current element.

these actions may be :

- removing an objectProperty value.

- editing a dataTypeProperty value.

on clicking with right button on a property value :

- on an objectProperty value, a menu ask to confirm the property removal.

- on a datatypeProperty value, a menu display the text content and its attributes, with an ok and a cancel button.


back to documentation home





1 Protégé and WebProtégé are national resources for biomedical ontologies and knowledge bases supported by the National Institute of General Medical Sciences
Protégé is a core component of The National Center for Biomedical Ontology
Copyright © 2012 Stanford Center for Biomedical Informatics Research