Representing ontologies

Security:
Due to security issues, most Java programs are prohibited from all IO operations on the client site.  If a program
needs access to the client computer it can do so by taking several additional steps beyond the basic requirements.
To be specific, one approach that Java programs can take to overcome these restrictions or find a workaround to
this problem is implementing Remote Method Invocation (RMI) interface.  Another possibility is to overwrite
Java's own security mechanism provided that it is done safely.  Nonetheless, it is important to note that these
approaches are fairly complex and should be dealt with carefully.

Workaround:
JOE provides some useful features to facilitate knowledge sharing in a distributed environment such as the Internet. JOE can parse an URL that contains ontology represented in the standard Knowledge Interchange Format (KIF)
and generate three different graphical representations.

Displaying | Zooming | Defining | Storing

Displaying













Zooming

When displayed as ER, JOE allows limited zooming options that show the ontology at various abstraction levels.
Currently four levels of zooming is allowed. At this zoom level, all details are shown in addition to the actual
KIF definition that defined it. This information is shown when the mouse cursor is on top a node only (as in a popup window).







Defining

In addition to the above, JOE also provides the user an option to define a node in terms of KIF syntax.

Storing

Considering the restricted access for IO operations, JOE provides the user an option to save developed ontology on the client site. At users request, JOE will display the textual representation of the current ontology in a notepad like window and the user can copy the content and save it locally if desired. Currently, JOE can generate source in KIF format.

Fractions of sample ontolgies in KIF and LDL++:
KIFLDL++
(defrelation Person 
	(subclass-of Person Agent) 
	(class Person))

(deffunction person.last_name 
	(function person.last_name)
	(domain person.last_name Person)
	(range person.last_name Name) 
		(arity person.last_name 2))
frame('Agent_Person’),
name('Agent_Person', 'Person'),
member('Agent_Person', 'Agent'),	
				
slot('Agent_Person_last_name'),
name('Agent_Person_last_name','last_name'),
domain('Agent_Person_last_name','Agent_Person'),
range('Agent_Person_last_name',string),

back to the tutorial


Please send all bug reports and comments to:

Kuha at kuha@ieee.org