<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://protegewiki.stanford.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nickdrummond</id>
		<title>Protege Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://protegewiki.stanford.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nickdrummond"/>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/wiki/Special:Contributions/Nickdrummond"/>
		<updated>2026-04-09T17:30:48Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6660</id>
		<title>Protege4DevDocs</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6660"/>
				<updated>2009-12-04T11:54:15Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Building  Protege4.1 from scratch using ant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 Developer Documentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
'''If you are writing code for P4, please compile it with java 1.5 for compatibility.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
All current Protege 4.0 code is written in '''java 1.5'''. This will continue to be the case until Apple supports Java 6.&lt;br /&gt;
&lt;br /&gt;
'''Please consider writing any P4 code as a plugin'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you cannot do this for various reasons, please let us&lt;br /&gt;
know as we may be able to improve the core design in order to support you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Protege 4.0 has been written specifically to be modular. It uses '''equinox''', one implementation of an '''OSGi framework''' to allow&lt;br /&gt;
plugins to be created easily. &lt;br /&gt;
&lt;br /&gt;
'''Please share.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
It is surprising how many people have written plugins for P4 that we just don't hear about.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with the Protege source code ==&lt;br /&gt;
&lt;br /&gt;
=== Compiling and Running ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in IntelliJ ====&lt;br /&gt;
&lt;br /&gt;
* [[CompileProtege4InIntelliJ|Setup and run the Protege 4 Editor in IntelliJ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in Eclipse ====&lt;br /&gt;
&lt;br /&gt;
* [[CompileProtege4InEclipse|Setup and run the Protege 4.1 Editor in Eclipse]]&amp;lt;br /&amp;gt;This page gives directions for compiling and running Protege 4.1 using Eclipse's plugin development framework.&lt;br /&gt;
* [http://www.cs.man.ac.uk/~iannonel/eclipseSetup/eclipseSetupMain.html Setup and run the Protege 4 Editor in Eclipse] (External link) &amp;lt;br /&amp;gt;This page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''. This page has not yet been updated for Protege 4.1.&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in a Generic IDE ====&lt;br /&gt;
&lt;br /&gt;
This section describes how to set up an IDE for plugin development.  While we have used eclipse to illustrate these pages, we have tried to &lt;br /&gt;
describe an approach that is generic and will work for all IDE platforms.  We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE.  We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created.  &lt;br /&gt;
&lt;br /&gt;
* Downloading, compiling and running the core Protege sources.  The following links cover much the same ground.&lt;br /&gt;
** [[CompileProtege4InEclipseOneProject|Compile and run the Protege-OWL editor in a Generic IDE]] - this page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''.&lt;br /&gt;
&lt;br /&gt;
==== Building  Protege4.1 from scratch using ant ====&lt;br /&gt;
&lt;br /&gt;
First  you must set the PROTEGE_HOME environment variable which is described [[ConfiguringAntBuildFiles|here]].  Then you can build Protege 4.1 by  following the following steps.&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/protege-base/trunk protege-base''&lt;br /&gt;
# ''cd protege-base'' and ''ant install'' and ''cd ..''.  '''Warning:''' this step deletes the existing contents of ${PROTEGE_HOME}.&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.protege.common/trunk org.protege.common''&lt;br /&gt;
# ''cd org.protege.common'' and ''ant install' and ''cd ..'''&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.protege.editor.core.application/trunk org.protege.editor.core.application''&lt;br /&gt;
# ''cd org.protege.editor.core.application'' and ''ant install'' and ''cd ..''&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.semanticweb.owl.owlapi/trunk org.semanticweb.owl.owlapi''&lt;br /&gt;
# ''cd org.semanticweb.owl.owlapi'' and ''ant install'' and ''cd ..''&lt;br /&gt;
# ''svn checkout http://smi-protege.stanford.edu/repos/protege/protege4/plugins/org.protege.editor.owl/trunk org.protege.editor.owl''&lt;br /&gt;
# ''cd org.protege.editor.owl'' and ''ant install'' and ''cd ..''&lt;br /&gt;
This will give a minimal installation and other  plugins can be added as desired.  Source plugins can be created by adding ''ant add.source'' before the ''ant install'' step.  A full run on an extremely slow machine is shown [[Protege41FullBuild|here]].&lt;br /&gt;
&lt;br /&gt;
=== Anatomy of a Plugin ===&lt;br /&gt;
&lt;br /&gt;
A short guide to [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php writing a plug-in] to show the class hierarchy.&lt;br /&gt;
This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in.&lt;br /&gt;
&lt;br /&gt;
[[PluginAnatomy|This page]] also contains some information about the different parts of a plugin and how they work together.  It also includes a very simple plugin and shows how to install it into the eclipse development environment.&lt;br /&gt;
&lt;br /&gt;
The example delves into producing a view plugin, but we also have a short list of other useful [[PluginTypes|plugin types]] that you may wish to implement (such as menu items etc).&lt;br /&gt;
&lt;br /&gt;
Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and [[EnablePluginAutoUpdate|enable auto-update]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege APIs ====&lt;br /&gt;
&lt;br /&gt;
Here is a summary of the main parts of the [[P4APIOverview|Protege 4 API]] for gaining access to the model and various utilities. &lt;br /&gt;
&lt;br /&gt;
Also see the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UI components ====&lt;br /&gt;
&lt;br /&gt;
The Protege core and the OWL editor kit both provide a large number of [[P4UiComponentSummary|reuseable components]] and utilities for generating user interfaces for ontologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating to Protege 4.1 ==&lt;br /&gt;
&lt;br /&gt;
A short [[P4_1PortingGuide|guide]] to migrating plugins from Protege4.0 to Protege4.1 (in progress).&lt;br /&gt;
&lt;br /&gt;
== Misc == &lt;br /&gt;
&lt;br /&gt;
For people embedding Protege 4 services inside a non-OSGi based applications [[Embedding OSGi|here]] is a short example showing how this can work.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* [[SolvingClassLoaderProblems|Troubleshooting class loader issues]]&lt;br /&gt;
* [[BuildingTheFactJniLibrary|Building the FaCT++ JNI Library]] - issues with FaCT++ libraries not found, linking errors etc&lt;br /&gt;
* [[DealingWithJava5CompilerIssues|Troubleshooting and fixing problems with the Java 5 compiler]]&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6202</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6202"/>
				<updated>2009-07-27T14:14:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Protege changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
In your plugin manifest.mf file, where the bundle dependencies are stated in '''Require-Bundle''' the protege core bundles should have a version specified to prevent your plugin being accidentally loaded by an earlier version of Protege:&lt;br /&gt;
&lt;br /&gt;
  Require-Bundle:&lt;br /&gt;
   org.eclipse.equinox.registry,&lt;br /&gt;
   org.eclipse.equinox.common,&lt;br /&gt;
   org.protege.editor.core.application''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.protege.editor.owl''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.semanticweb.owl.owlapi''';bundle-version=&amp;quot;3.0&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
This has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
==== Further changes ====&lt;br /&gt;
&lt;br /&gt;
* '''OWLModelManager.getOWLClass(), getObjectProperty()''' etc should now use '''OWLModelManager.getOWLEntityFinder().getOWLClass()''' etc&lt;br /&gt;
* '''OWLModelManager.getOWLXXXHierarchyProvider()''' etc should now use '''OWLModedelManager.getOWLHierarchyManager().getOWLXXXHierarchyProvider()'''&lt;br /&gt;
* '''AnnotationURIList''' now longer exists. Use an '''OWLAnnotationPropertySelectorPanel''' instead&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* The convenience method on AbstractOWLSelectionViewComponent to update the global selection has renamed from '''setSelectedEntity()''' to '''setGlobalSelection'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLStringLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6201</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6201"/>
				<updated>2009-07-27T10:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Protege changes */ OWLEntityFinder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
In your plugin manifest.mf file, where the bundle dependencies are stated in '''Require-Bundle''' the protege core bundles should have a version specified to prevent your plugin being accidentally loaded by an earlier version of Protege:&lt;br /&gt;
&lt;br /&gt;
  Require-Bundle:&lt;br /&gt;
   org.eclipse.equinox.registry,&lt;br /&gt;
   org.eclipse.equinox.common,&lt;br /&gt;
   org.protege.editor.core.application''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.protege.editor.owl''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.semanticweb.owl.owlapi''';bundle-version=&amp;quot;3.0&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
This has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
==== Further changes ====&lt;br /&gt;
&lt;br /&gt;
* '''OWLModelManager.getOWLClass(), getObjectProperty()''' etc should now use '''OWLModelManager.getOWLEntityFinder().getOWLClass()''' etc&lt;br /&gt;
* '''OWLModelManager.getOWLXXXHierarchyProvider()''' etc should now use '''OWLModedelManager.getOWLHierarchyManager().getOWLXXXHierarchyProvider()'''&lt;br /&gt;
* '''AnnotationURIList''' now longer exists. Use an '''OWLAnnotationPropertySelectorPanel''' instead&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLStringLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6198</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6198"/>
				<updated>2009-07-24T12:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* OWL API Vocabulary Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
In your plugin manifest.mf file, where the bundle dependencies are stated in '''Require-Bundle''' the protege core bundles should have a version specified to prevent your plugin being accidentally loaded by an earlier version of Protege:&lt;br /&gt;
&lt;br /&gt;
  Require-Bundle:&lt;br /&gt;
   org.eclipse.equinox.registry,&lt;br /&gt;
   org.eclipse.equinox.common,&lt;br /&gt;
   org.protege.editor.core.application''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.protege.editor.owl''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.semanticweb.owl.owlapi''';bundle-version=&amp;quot;3.0&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
This has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
==== Further changes ====&lt;br /&gt;
&lt;br /&gt;
* '''OWLModelManager.getOWLClass(), getObjectProperty()''' etc should now use '''OWLModelManager.getEntityFinder().getOWLClass()''' etc&lt;br /&gt;
* '''OWLModelManager.getOWLXXXHierarchyProvider()''' etc should now use '''OWLModedelManager.getOWLHierarchyManager().getOWLXXXHierarchyProvider()'''&lt;br /&gt;
* '''AnnotationURIList''' now longer exists. Use an '''OWLAnnotationPropertySelectorPanel''' instead&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLStringLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6197</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6197"/>
				<updated>2009-07-24T12:53:57Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Protege changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
In your plugin manifest.mf file, where the bundle dependencies are stated in '''Require-Bundle''' the protege core bundles should have a version specified to prevent your plugin being accidentally loaded by an earlier version of Protege:&lt;br /&gt;
&lt;br /&gt;
  Require-Bundle:&lt;br /&gt;
   org.eclipse.equinox.registry,&lt;br /&gt;
   org.eclipse.equinox.common,&lt;br /&gt;
   org.protege.editor.core.application''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.protege.editor.owl''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.semanticweb.owl.owlapi''';bundle-version=&amp;quot;3.0&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
This has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
==== Further changes ====&lt;br /&gt;
&lt;br /&gt;
* '''OWLModelManager.getOWLClass(), getObjectProperty()''' etc should now use '''OWLModelManager.getEntityFinder().getOWLClass()''' etc&lt;br /&gt;
* '''OWLModelManager.getOWLXXXHierarchyProvider()''' etc should now use '''OWLModedelManager.getOWLHierarchyManager().getOWLXXXHierarchyProvider()'''&lt;br /&gt;
* '''AnnotationURIList''' now longer exists. Use an '''OWLAnnotationPropertySelectorPanel''' instead&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6196</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6196"/>
				<updated>2009-07-24T12:12:25Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Protege changes */ added manifest dependency version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
In your plugin manifest.mf file, where the bundle dependencies are stated in '''Require-Bundle''' the protege core bundles should have a version specified to prevent your plugin being accidentally loaded by an earlier version of Protege:&lt;br /&gt;
&lt;br /&gt;
  Require-Bundle:&lt;br /&gt;
   org.eclipse.equinox.registry,&lt;br /&gt;
   org.eclipse.equinox.common,&lt;br /&gt;
   org.protege.editor.core.application''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.protege.editor.owl''';bundle-version=&amp;quot;4.1&amp;quot;''',&lt;br /&gt;
   org.semanticweb.owl.owlapi''';bundle-version=&amp;quot;3.0&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
This has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
==== Further changes ====&lt;br /&gt;
&lt;br /&gt;
* '''OWLModelManager.getOWLClass(), getObjectProperty()''' etc should now use '''OWLModelManager.getEntityFinder().getOWLClass()''' etc&lt;br /&gt;
* '''OWLModelManager.getOWLXXXHierarchyProvider()''' etc should now use '''OWLModedelManager.getOWLHierarchyManager().getOWLXXXHierarchyProvider()'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6195</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6195"/>
				<updated>2009-07-22T12:20:05Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Protege changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
This has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
==== Further changes ====&lt;br /&gt;
&lt;br /&gt;
* '''OWLModelManager.getOWLClass(), getObjectProperty()''' etc should now use '''OWLModelManager.getEntityFinder().getOWLClass()''' etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6193</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6193"/>
				<updated>2009-07-22T09:35:34Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* OWL API package Changes */ krss and rdf package changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
Finally, this has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|-&lt;br /&gt;
| de.uulm.ecs.ai.owl.krssparser&lt;br /&gt;
| de.uulm.ecs.ai.owlapi.krssparser&lt;br /&gt;
|-&lt;br /&gt;
| edu.unika.aifb.rdf.api.syntax&lt;br /&gt;
| org.semanticweb.owlapi.rdf.syntax&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6152</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6152"/>
				<updated>2009-07-01T14:36:57Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Added open issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
=== Open issues ===&lt;br /&gt;
&lt;br /&gt;
* Editing of annotation axioms is not implemented (adding one will cause a NPE)&lt;br /&gt;
* Editing of SWRL rules is not currently implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
Finally, this has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6151</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6151"/>
				<updated>2009-07-01T10:45:35Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Reference */ OWL API package changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
Finally, this has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API package Changes ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| org.semanticweb.owl&lt;br /&gt;
| org.semanticweb.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.manchesterowlsyntax&lt;br /&gt;
| org.coode.owlapi.manchesterowlsyntax&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.obo&lt;br /&gt;
| org.coode.owlapi.obo&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf.turtle&lt;br /&gt;
| org.coode.owlapi.turtle&lt;br /&gt;
|-&lt;br /&gt;
| uk.ac.manchester.cs.owl&lt;br /&gt;
| uk.ac.manchester.cs.owl.owlapi&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdfxml&lt;br /&gt;
| org.coode.owlapi.rdfxml&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.rdf&lt;br /&gt;
| org.coode.owlapi.rdf&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalparser&lt;br /&gt;
| org.coode.owlapi.functionalparser&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.functionalrenderer&lt;br /&gt;
| org.coode.owlapi.functionalrenderer&lt;br /&gt;
|-&lt;br /&gt;
| org.coode.owl.latex&lt;br /&gt;
| org.coode.owlapi.latex&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6150</id>
		<title>Protege4DevDocs</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6150"/>
				<updated>2009-06-30T15:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: More rejigging&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 Developer Documentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
'''If you are writing code for P4, please compile it with java 1.5 for compatibility.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
All current Protege 4.0 code is written in '''java 1.5'''. This will continue to be the case until Apple supports Java 6.&lt;br /&gt;
&lt;br /&gt;
'''Please consider writing any P4 code as a plugin'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you cannot do this for various reasons, please let us&lt;br /&gt;
know as we may be able to improve the core design in order to support you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Protege 4.0 has been written specifically to be modular. It uses '''equinox''', one implementation of an '''OSGi framework''' to allow&lt;br /&gt;
plugins to be created easily. &lt;br /&gt;
&lt;br /&gt;
'''Please share.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
It is surprising how many people have written plugins for P4 that we just don't hear about.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with the Protege source code ==&lt;br /&gt;
&lt;br /&gt;
=== Compiling and Running ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in IntelliJ ====&lt;br /&gt;
&lt;br /&gt;
* [[CompileProtege4InIntelliJ|Setup and run the Protege 4 Editor in IntelliJ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in Eclipse ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.man.ac.uk/~iannonel/eclipseSetup/eclipseSetupMain.html Setup and run the Protege 4 Editor in Eclipse] (External link) '''RECOMMENDED''' &amp;lt;br /&amp;gt;This page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project'' &lt;br /&gt;
* [[CompileProtege4InEclipse|Setup and run the Protege 4 Editor in Eclipse]] (In Progress) &amp;lt;br /&amp;gt;This page gives directions for compiling and running Protege 4.0 using Eclipse's plugin development framework.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in a Generic IDE ====&lt;br /&gt;
&lt;br /&gt;
This section describes how to set up an IDE for plugin development.  While we have used eclipse to illustrate these pages, we have tried to &lt;br /&gt;
describe an approach that is generic and will work for all IDE platforms.  We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE.  We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created.  &lt;br /&gt;
&lt;br /&gt;
* Downloading, compiling and running the core Protege sources.  The following links cover much the same ground.&lt;br /&gt;
** [[CompileProtege4InEclipseOneProject|Compile and run the Protege-OWL editor in a Generic IDE]] - this page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anatomy of a Plugin ===&lt;br /&gt;
&lt;br /&gt;
A short guide to [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php writing a plug-in] to show the class hierarchy.&lt;br /&gt;
This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in.&lt;br /&gt;
&lt;br /&gt;
[[PluginAnatomy|This page]] also contains some information about the different parts of a plugin and how they work together.  It also includes a very simple plugin and shows how to install it into the eclipse development environment.&lt;br /&gt;
&lt;br /&gt;
The example delves into producing a view plugin, but we also have a short list of other useful [[PluginTypes|plugin types]] that you may wish to implement (such as menu items etc).&lt;br /&gt;
&lt;br /&gt;
Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and [[EnablePluginAutoUpdate|enable auto-update]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Protege APIs ====&lt;br /&gt;
&lt;br /&gt;
Here is a summary of the main parts of the [[P4APIOverview|Protege 4 API]] for gaining access to the model and various utilities. &lt;br /&gt;
&lt;br /&gt;
Also see the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UI components ====&lt;br /&gt;
&lt;br /&gt;
The Protege core and the OWL editor kit both provide a large number of [[P4UiComponentSummary|reuseable components]] and utilities for generating user interfaces for ontologies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating to Protege 4.1 ==&lt;br /&gt;
&lt;br /&gt;
A short [[P4_1PortingGuide|guide]] to migrating plugins from Protege4.0 to Protege4.1 (in progress).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* [[SolvingClassLoaderProblems|Troubleshooting class loader issues]]&lt;br /&gt;
* [[BuildingTheFactJniLibrary|Building the FaCT++ JNI Library]] - issues with FaCT++ libraries not found, linking errors etc&lt;br /&gt;
* [[DealingWithJava5CompilerIssues|Troubleshooting and fixing problems with the Java 5 compiler]]&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6149</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6149"/>
				<updated>2009-06-30T15:19:22Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Rejig&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). An [[P4_1PortingGuide#OWL_API_Vocabulary_Changes|incomplete list]] is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
Finally, this has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Package changes in P4.1 ====&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API Vocabulary Changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the [http://www.w3.org/TR/owl2-quick-reference/ OWL 2 quick reference guide] for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6148</id>
		<title>P4 1PortingGuide</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4_1PortingGuide&amp;diff=6148"/>
				<updated>2009-06-30T15:00:09Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Initial porting guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.1 Migration Guide&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the major differences between Protege4.0 and Protege4.1 for developers of plugins to allow for smooth migration of plugins.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The [http://www.w3.org/2007/OWL/wiki/OWL_Working_Group OWL 2 specification] has been a slowly moving target in the 2 years preceding the release of Protege 4.0.&lt;br /&gt;
&lt;br /&gt;
In order for the platform to be reasonably stable for developers we have been using a version of the OWL API that approximately implements OWL 1.1 (the initial iteration of the OWL 1 specification). In the background work has been going on to bring the OWL API in line with the OWL 2 specification and Protege 4.1 was branched in Spring 2009 to allow migration to this version (OWL API v3).&lt;br /&gt;
&lt;br /&gt;
The code for Protege 4.1 (working title) is available in svn at ''protege4/protege-standalone/branches/protege4_1_port/''. It can be built and run in the same way as the current codebase. Although most new work will be on this branch, the code will remain branched until the OWL API is deemed stable. As of late June 2009, there are still some fairly large refactoring exercises going on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What has changed? ==&lt;br /&gt;
&lt;br /&gt;
=== OWL API changes ===&lt;br /&gt;
&lt;br /&gt;
The OWL API v3 now implements the OWL 2 specification and has matched, wherever possible, the OWL vocabulary.&lt;br /&gt;
&lt;br /&gt;
This means that some classes, such as '''OWLDescription''' have now been changed (it is now '''OWLClassExpression'''). A more substantial but not complete list is below.&lt;br /&gt;
&lt;br /&gt;
It was also decided to rename the packages in the new version of the OWL API so that name clashes could be avoided completely (so that implementors could bundle implementations that run on both versions).&lt;br /&gt;
&lt;br /&gt;
There are several major structural changes:&lt;br /&gt;
* All named things are now referred to by '''IRI''' (unicode version of URI) instead of URI&lt;br /&gt;
* Ontologies are now referred to by an '''OWLOntologyID''' which may be anonymous, contain a single URI or additionally a version URI&lt;br /&gt;
* '''Annotation properties''' have been re-introduced as entities - replacing annotations using just URIs&lt;br /&gt;
* OWLIndividuals are no longer entities as they can be anonymous - '''OWLNamedIndividual'''s (a subclass) are entities&lt;br /&gt;
* '''Top level object and data properties''' are now in existence.&lt;br /&gt;
* '''Axiom annotations''' are no longer stand-off axioms in there own right. They are now part of other axioms&lt;br /&gt;
* Annotations can be on entities or on IRIs&lt;br /&gt;
* There have been some extra constructs added to the vocabulary (such as '''OWLDatatypeDefinition''') which means that visitor implementations must be updated&lt;br /&gt;
* Imports are no longer axioms&lt;br /&gt;
* The changes API has been extended to support ontology name, annotation and import changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Protege changes ===&lt;br /&gt;
&lt;br /&gt;
Fundamentally, Protege 4.1 has tried to remain fairly unchanged where possible. Most of the changes have been to match the new names for OWLObjects and aligning method names etc.&lt;br /&gt;
&lt;br /&gt;
Most notably in the UI, we now have an annotation property hierarchy (and appropriate hierarchy provider) and additional views for describing annotation properties (so that annotations, superproperties, domain and range can be added) as well as support for rendering, finding etc.&lt;br /&gt;
&lt;br /&gt;
There is also support for the additional vocabulary - '''Keys''' and '''Datatype definitions'''.&lt;br /&gt;
&lt;br /&gt;
Finally, this has been a good opportunity to remove deprecated classes and a number of classes have been moved to make the package structure a bit more clear.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Package changes in P4.1 ==&lt;br /&gt;
&lt;br /&gt;
The following packages have been restructured:&lt;br /&gt;
* '''org.protege.editor.owl.ui.view''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
* Class hierarchy views have been moved from '''org.protege.editor.owl.ui.clshierarchy''' to '''org.protege.editor.owl.ui.view.cls'''&lt;br /&gt;
* '''org.protege.editor.owl.ui.frame''' has been split up into more categorised sub-packages based on type&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
As of the end of June 2009, the OWL API is still in flux and changes will be reflected in Protege 4.1 as soon as it is possible to do so.&lt;br /&gt;
&lt;br /&gt;
The codebase builds and seems to run fairly smoothly, but has not been significantly regression tested, so please use with care - particularly with new features.&lt;br /&gt;
&lt;br /&gt;
The code still has a few unported features or open questions - these are currently marked with '''@@TODO v3 port'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OWL API Vocabulary Changes ==&lt;br /&gt;
&lt;br /&gt;
The OWL API should be in line with the vocabulary described in the OWL 2 specification. This list is incomplete, but shows the most likely renames that will be required. Consult the OWL 2 specification for additional pointers.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! OWL API v2&lt;br /&gt;
! OWL API v3&lt;br /&gt;
|-&lt;br /&gt;
| OWLDescription&lt;br /&gt;
| OWLClassExpression&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectSomeRestriction&lt;br /&gt;
| OWLObjectSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLObjectAllRestriction&lt;br /&gt;
| OWLObjectAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataSomeRestriction&lt;br /&gt;
| OWLDataSomeValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataAllRestriction&lt;br /&gt;
| OWLDataAllValuesFrom&lt;br /&gt;
|-&lt;br /&gt;
| OWLTypedConstant&lt;br /&gt;
| OWLTypedLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLUntypedConstant&lt;br /&gt;
| OWLRDFTextLiteral&lt;br /&gt;
|-&lt;br /&gt;
| OWLRestrictedDataRangeFacetVocabulary&lt;br /&gt;
| OWLFacet&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataRangeFacetRestriction&lt;br /&gt;
| OWLFacetRestriction&lt;br /&gt;
|-&lt;br /&gt;
| OWLDataType&lt;br /&gt;
| OWLDatatype&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6147</id>
		<title>P4APIOverview</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6147"/>
				<updated>2009-06-30T13:42:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Added links to the UI page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 APIs&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Protege 4.0 OWL support is built on top of the [[P4APIOverview#OWL_API_basics|OWL API]], which provides all of the model manipulation and querying functionality.&lt;br /&gt;
&lt;br /&gt;
On top of this, Protege supports further functionality for developer's convenience - hierarchies, renderer management, search etc.&lt;br /&gt;
&lt;br /&gt;
Most of the behaviour of the application can be accessed through the main points below, whether accessing the model or the UI.&lt;br /&gt;
&lt;br /&gt;
However, there are also many utility classes provided by Protege or the OWL API.&lt;br /&gt;
&lt;br /&gt;
For reusable UI elements we have a separate [[P4UiComponentSummary|page]] with examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access points ==&lt;br /&gt;
&lt;br /&gt;
The most important three Protege 4 classes you will have access to from most plugins are:&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager ===&lt;br /&gt;
&lt;br /&gt;
Access to the ontologies, reasoners, search renderings, change management etc. Useful services that it provides are described below.&lt;br /&gt;
The most important thing to understand about the OWLModelManager is how [[P4APIOverview#Active_ontologies|active ontologies]] are managed.&lt;br /&gt;
&lt;br /&gt;
==== Active ontologies ====&lt;br /&gt;
&lt;br /&gt;
A single editor kit in P4 can have several ontologies loaded (whether these are imports or otherwise). There needs to be some way to determine which ontology edits are performed on by default. It is reasonable that the user might want to look at, edit or reason with only a subset of those loaded ontologies.&lt;br /&gt;
&lt;br /&gt;
* '''Active ontology''' is the ontology currently visible in the navigation bar at the top of the workspace. By convention all new additions to the model are made in the active ontology.&lt;br /&gt;
* '''Active ontologies''' is a set of ontologies including the active ontology. These are the ontologies whose contents are visible in the interface. The ontologies in this set is determined by which strategy is currently selected in the [[Protege4Shortcuts#Ontologies|Ontologies menu]]. The active ontologies are all sent to the reasoner when classification is requested. Edits that affect multiple ontologies should act on the active ontologies.&lt;br /&gt;
* '''Loaded ontologies''' is the set of all ontologies loaded into this OWLModelManager. Any ontologies that are loaded but not active should not show up in the interface.&lt;br /&gt;
&lt;br /&gt;
The '''OWLModelManager''' simply uses the OWL API's '''OWLOntologyManager''' to manage these ontologies, however the OWL API manager only has a notion of ''loaded ontologies''. If you write code that is designed to be portable (by using the OWL API OWLOntologyManager directly) you should respect the active ontologies and operate on this set only by passing them around (or having a central manager). In other words, don't just operate on all the loaded ontologies by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLWorkspace ===&lt;br /&gt;
&lt;br /&gt;
This is the environment presented to the user. This class provides access to the core UI elements (menus, cell renderers, handy entity selectors), global selection management etc.&lt;br /&gt;
&lt;br /&gt;
For building UIs out of reusable elements we have a separate [[P4UiComponentSummary|page]] with examples.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEditorKit ===&lt;br /&gt;
&lt;br /&gt;
The central access point for all of the model and UI elements of the OWL editor - you can get to both of the above from the editor kit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful subsidiary classes ==&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityRenderer ===&lt;br /&gt;
&lt;br /&gt;
The current renderer can be retrieved from the OWLModelManager and is used to get the short name for any entity based on the renderer preferences.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== EntityFinder===&lt;br /&gt;
&lt;br /&gt;
The finder can be used to find classes, properties and individuals by partial name or regular expression match. This is different from the utility methods on OWLModelManager which perform an exact match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityFactory ===&lt;br /&gt;
&lt;br /&gt;
The current factory attached to the OWLModelManager should be used to create classes, properties and individuals using the naming conventions in the '''New entities''' preferences. The factory returns a creation set which contains the changes required to create the entity. This must be applied explicitly by your code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLReasoner (OWLAPI) ===&lt;br /&gt;
&lt;br /&gt;
The current reasoner as selected in the reasoner menu can be retrieved from the OWLModelManager. To check if it currently contains a classified model with '''isClassified()'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLHierarchyManager ===&lt;br /&gt;
&lt;br /&gt;
A central place to get to shared '''OWLObjectHierarchyProvider'''s. These providers are convenient tree models that can be directly handed to a OWLModelManagerTree or used to traverse the various asserted or inferred hierarchies of classes and properties. Get this from the OWLModelManager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
Protege has several event models that can be subscribed to in order to keep your plugins aware of changes to the model or the system.&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager events ===&lt;br /&gt;
&lt;br /&gt;
You can add an '''OWLModelManagerListener''' using '''addListener''' to be notified about large granularity changes to the set of ontologies loaded.&lt;br /&gt;
Get the type of the event to determine the change that has occured&lt;br /&gt;
ACTIVE_ONTOLOGY_CHANGED, ONTOLOGY_VISIBILITY_CHANGED, ENTITY_RENDERER_CHANGED, ENTITY_RENDERING_CHANGED, REASONER_CHANGED, ABOUT_TO_CLASSIFY, ONTOLOGY_CLASSIFIED, ONTOLOGY_CREATED, ONTOLOGY_LOADED, ONTOLOGY_RELOADED, ONTOLOGY_SAVED&lt;br /&gt;
&lt;br /&gt;
Adding an '''OWLOntologyChangeListener''' will allow you to keep track of changes to any of the loaded ontologies to allow you to keep a view in sync with the model for example. You will receive a list of the changes to determine if they are pertinent to your plugin.&lt;br /&gt;
&lt;br /&gt;
An '''IOListener''' can be useful to get notification before or after an ontology is loaded or saved. This could be used to provide standard transforms or quality control warnings on ontology loading/serialisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OWL API basics ==&lt;br /&gt;
&lt;br /&gt;
Ontologies, classes, properties, individuals, datatypes class expressions, axioms, changes, reasoners and other fundamental parts of the OWL model are managed by the OWL API.&lt;br /&gt;
&lt;br /&gt;
Full docs for the OWL API are available on the [http://owlapi.sourceforge.net/ OWL API website], but here some some pointers:&lt;br /&gt;
&lt;br /&gt;
=== OWL what Manager? ===&lt;br /&gt;
Don't be confused by some classes that have a name similar to the '''OWLModelManager''' class:&lt;br /&gt;
* '''OWLOntologyManager''' is a class in the OWL API that is not specific to Protege 4.  The OWLOntologyManager plays a central role in the development of OWLAPI code.  It provides access to the ontologies, change management, etc.  An '''OWLModelManager''' has a getter method that will recover the OWLOntologyManager.&lt;br /&gt;
* '''OWLManager''' is utility class in the OWL API that you can use to create an OWLOntologyManager class.  In general you probably won't need this when writing Protege 4 code but it is the starting point for most OWL API code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating OWL objects ===&lt;br /&gt;
&lt;br /&gt;
All OWL objects (classes, properties, expressions, axioms) are created by an '''OWLDataFactory''' that can be retrieved from the OWLModelManager or directly from the OWLOntologyManager (it is the same factory).&lt;br /&gt;
&lt;br /&gt;
The factory provides a getter method for every object&lt;br /&gt;
&lt;br /&gt;
eg ''getOWLObjectProperty(uri)'' or ''getOWLSubClassOfAxiom(expr, expr)''&lt;br /&gt;
&lt;br /&gt;
The objects returned are immutable and implement structural equality, therefore two OWL objects of the same type that were created at different times but with the same parameters are considered the same object. All OWL objects can exist independent of an ontology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Making changes to the ontology ===&lt;br /&gt;
&lt;br /&gt;
An OWL ontology is simply a set of '''OWLAxiom'''s plus a few annotations and a name. In order to change the ontology you can add or remove axioms from the ontology. First, create the axiom using the OWLDataFactory or search for an appropriate axiom in the ontology. Then, create an '''AddAxiom''' or '''RemoveAxiom''' OWLOntologyChange object - there is no factory for these, just create them as needed - by supplying the axiom plus the ontology the change will affect.&lt;br /&gt;
&lt;br /&gt;
If you have a compound change (multiple axioms added or removed) then add all of these to a list.&lt;br /&gt;
&lt;br /&gt;
Use the OWLOntologyManager (or, for convenience the OWLModelManager) '''applyChanges(changes)''' method to cause the changes to take effect. Anything that has an OWLOntologyChangeListener attached to this manager will get notified.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Visitors ===&lt;br /&gt;
&lt;br /&gt;
Because the OWL vocabulary is fixed(!), there are a set number of OWLObject types that an algorithm may want to act on.&lt;br /&gt;
&lt;br /&gt;
In many cases an algorithm may want to implement behaviour for a broad range range of OWLObject - say we want to be able to render any class expression.&lt;br /&gt;
&lt;br /&gt;
Instead of having a large if statement with lots of&lt;br /&gt;
&lt;br /&gt;
  if (expr instanceof OWLObjectSomeRestriction){&lt;br /&gt;
    OWLObjectSomeRestriction restr = (OWLObjectSomeRestriction)expr;&lt;br /&gt;
    // do something&lt;br /&gt;
  }&lt;br /&gt;
  else if (expr instanceof OWLObjectAllRestriction){&lt;br /&gt;
    OWLObjectAllRestriction restr = (OWLObjectAllRestriction)expr;&lt;br /&gt;
    // do something else&lt;br /&gt;
  }&lt;br /&gt;
  else...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWLObjects are implemented so they can use the [http://en.wikipedia.org/wiki/Visitor_pattern visitor pattern]:&lt;br /&gt;
&lt;br /&gt;
  MyRenderer myRenderer = new MyRenderer();&lt;br /&gt;
  expr.accept(myRenderer);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  class MyRenderer extends OWLDescriptionVisitorAdapter{ // or implement OWLDescriptionVisitor if you want behaviour for all expressions&lt;br /&gt;
    &lt;br /&gt;
    public void visit(OWLObjectSomeRestriction r){&lt;br /&gt;
      // do something with r&lt;br /&gt;
    }&lt;br /&gt;
    public void visit(OWLObjectAllRestriction r){&lt;br /&gt;
      // do something else with r&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6146</id>
		<title>P4APIOverview</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6146"/>
				<updated>2009-06-30T13:36:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Added backlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 APIs&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Protege 4.0 OWL support is built on top of the [[P4APIOverview#OWL_API_basics|OWL API]], which provides all of the model manipulation and querying functionality.&lt;br /&gt;
&lt;br /&gt;
On top of this, Protege supports further functionality for developer's convenience - hierarchies, renderer management, search etc.&lt;br /&gt;
&lt;br /&gt;
Most of the behaviour of the application can be accessed through the main points below, whether accessing the model or the UI.&lt;br /&gt;
&lt;br /&gt;
However, there are also many utility classes provided by Protege or the OWL API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access points ==&lt;br /&gt;
&lt;br /&gt;
The most important three Protege 4 classes you will have access to from most plugins are:&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager ===&lt;br /&gt;
&lt;br /&gt;
Access to the ontologies, reasoners, search renderings, change management etc. Useful services that it provides are described below.&lt;br /&gt;
The most important thing to understand about the OWLModelManager is how [[P4APIOverview#Active_ontologies|active ontologies]] are managed.&lt;br /&gt;
&lt;br /&gt;
==== Active ontologies ====&lt;br /&gt;
&lt;br /&gt;
A single editor kit in P4 can have several ontologies loaded (whether these are imports or otherwise). There needs to be some way to determine which ontology edits are performed on by default. It is reasonable that the user might want to look at, edit or reason with only a subset of those loaded ontologies.&lt;br /&gt;
&lt;br /&gt;
* '''Active ontology''' is the ontology currently visible in the navigation bar at the top of the workspace. By convention all new additions to the model are made in the active ontology.&lt;br /&gt;
* '''Active ontologies''' is a set of ontologies including the active ontology. These are the ontologies whose contents are visible in the interface. The ontologies in this set is determined by which strategy is currently selected in the [[Protege4Shortcuts#Ontologies|Ontologies menu]]. The active ontologies are all sent to the reasoner when classification is requested. Edits that affect multiple ontologies should act on the active ontologies.&lt;br /&gt;
* '''Loaded ontologies''' is the set of all ontologies loaded into this OWLModelManager. Any ontologies that are loaded but not active should not show up in the interface.&lt;br /&gt;
&lt;br /&gt;
The '''OWLModelManager''' simply uses the OWL API's '''OWLOntologyManager''' to manage these ontologies, however the OWL API manager only has a notion of ''loaded ontologies''. If you write code that is designed to be portable (by using the OWL API OWLOntologyManager directly) you should respect the active ontologies and operate on this set only by passing them around (or having a central manager). In other words, don't just operate on all the loaded ontologies by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLWorkspace ===&lt;br /&gt;
&lt;br /&gt;
Access to the UI elements (menus, cell renderers, handy entity selectors), global selection management etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEditorKit ===&lt;br /&gt;
&lt;br /&gt;
The central access point for all of the model and UI elements of the OWL editor - you can get to both of the above from the editor kit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful subsidiary classes ==&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityRenderer ===&lt;br /&gt;
&lt;br /&gt;
The current renderer can be retrieved from the OWLModelManager and is used to get the short name for any entity based on the renderer preferences.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== EntityFinder===&lt;br /&gt;
&lt;br /&gt;
The finder can be used to find classes, properties and individuals by partial name or regular expression match. This is different from the utility methods on OWLModelManager which perform an exact match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityFactory ===&lt;br /&gt;
&lt;br /&gt;
The current factory attached to the OWLModelManager should be used to create classes, properties and individuals using the naming conventions in the '''New entities''' preferences. The factory returns a creation set which contains the changes required to create the entity. This must be applied explicitly by your code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLReasoner (OWLAPI) ===&lt;br /&gt;
&lt;br /&gt;
The current reasoner as selected in the reasoner menu can be retrieved from the OWLModelManager. To check if it currently contains a classified model with '''isClassified()'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLHierarchyManager ===&lt;br /&gt;
&lt;br /&gt;
A central place to get to shared '''OWLObjectHierarchyProvider'''s. These providers are convenient tree models that can be directly handed to a OWLModelManagerTree or used to traverse the various asserted or inferred hierarchies of classes and properties. Get this from the OWLModelManager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
Protege has several event models that can be subscribed to in order to keep your plugins aware of changes to the model or the system.&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager events ===&lt;br /&gt;
&lt;br /&gt;
You can add an '''OWLModelManagerListener''' using '''addListener''' to be notified about large granularity changes to the set of ontologies loaded.&lt;br /&gt;
Get the type of the event to determine the change that has occured&lt;br /&gt;
ACTIVE_ONTOLOGY_CHANGED, ONTOLOGY_VISIBILITY_CHANGED, ENTITY_RENDERER_CHANGED, ENTITY_RENDERING_CHANGED, REASONER_CHANGED, ABOUT_TO_CLASSIFY, ONTOLOGY_CLASSIFIED, ONTOLOGY_CREATED, ONTOLOGY_LOADED, ONTOLOGY_RELOADED, ONTOLOGY_SAVED&lt;br /&gt;
&lt;br /&gt;
Adding an '''OWLOntologyChangeListener''' will allow you to keep track of changes to any of the loaded ontologies to allow you to keep a view in sync with the model for example. You will receive a list of the changes to determine if they are pertinent to your plugin.&lt;br /&gt;
&lt;br /&gt;
An '''IOListener''' can be useful to get notification before or after an ontology is loaded or saved. This could be used to provide standard transforms or quality control warnings on ontology loading/serialisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OWL API basics ==&lt;br /&gt;
&lt;br /&gt;
Ontologies, classes, properties, individuals, datatypes class expressions, axioms, changes, reasoners and other fundamental parts of the OWL model are managed by the OWL API.&lt;br /&gt;
&lt;br /&gt;
Full docs for the OWL API are available on the [http://owlapi.sourceforge.net/ OWL API website], but here some some pointers:&lt;br /&gt;
&lt;br /&gt;
=== OWL what Manager? ===&lt;br /&gt;
Don't be confused by some classes that have a name similar to the '''OWLModelManager''' class:&lt;br /&gt;
* '''OWLOntologyManager''' is a class in the OWL API that is not specific to Protege 4.  The OWLOntologyManager plays a central role in the development of OWLAPI code.  It provides access to the ontologies, change management, etc.  An '''OWLModelManager''' has a getter method that will recover the OWLOntologyManager.&lt;br /&gt;
* '''OWLManager''' is utility class in the OWL API that you can use to create an OWLOntologyManager class.  In general you probably won't need this when writing Protege 4 code but it is the starting point for most OWL API code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating OWL objects ===&lt;br /&gt;
&lt;br /&gt;
All OWL objects (classes, properties, expressions, axioms) are created by an '''OWLDataFactory''' that can be retrieved from the OWLModelManager or directly from the OWLOntologyManager (it is the same factory).&lt;br /&gt;
&lt;br /&gt;
The factory provides a getter method for every object&lt;br /&gt;
&lt;br /&gt;
eg ''getOWLObjectProperty(uri)'' or ''getOWLSubClassOfAxiom(expr, expr)''&lt;br /&gt;
&lt;br /&gt;
The objects returned are immutable and implement structural equality, therefore two OWL objects of the same type that were created at different times but with the same parameters are considered the same object. All OWL objects can exist independent of an ontology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Making changes to the ontology ===&lt;br /&gt;
&lt;br /&gt;
An OWL ontology is simply a set of '''OWLAxiom'''s plus a few annotations and a name. In order to change the ontology you can add or remove axioms from the ontology. First, create the axiom using the OWLDataFactory or search for an appropriate axiom in the ontology. Then, create an '''AddAxiom''' or '''RemoveAxiom''' OWLOntologyChange object - there is no factory for these, just create them as needed - by supplying the axiom plus the ontology the change will affect.&lt;br /&gt;
&lt;br /&gt;
If you have a compound change (multiple axioms added or removed) then add all of these to a list.&lt;br /&gt;
&lt;br /&gt;
Use the OWLOntologyManager (or, for convenience the OWLModelManager) '''applyChanges(changes)''' method to cause the changes to take effect. Anything that has an OWLOntologyChangeListener attached to this manager will get notified.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Visitors ===&lt;br /&gt;
&lt;br /&gt;
Because the OWL vocabulary is fixed(!), there are a set number of OWLObject types that an algorithm may want to act on.&lt;br /&gt;
&lt;br /&gt;
In many cases an algorithm may want to implement behaviour for a broad range range of OWLObject - say we want to be able to render any class expression.&lt;br /&gt;
&lt;br /&gt;
Instead of having a large if statement with lots of&lt;br /&gt;
&lt;br /&gt;
  if (expr instanceof OWLObjectSomeRestriction){&lt;br /&gt;
    OWLObjectSomeRestriction restr = (OWLObjectSomeRestriction)expr;&lt;br /&gt;
    // do something&lt;br /&gt;
  }&lt;br /&gt;
  else if (expr instanceof OWLObjectAllRestriction){&lt;br /&gt;
    OWLObjectAllRestriction restr = (OWLObjectAllRestriction)expr;&lt;br /&gt;
    // do something else&lt;br /&gt;
  }&lt;br /&gt;
  else...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWLObjects are implemented so they can use the [http://en.wikipedia.org/wiki/Visitor_pattern visitor pattern]:&lt;br /&gt;
&lt;br /&gt;
  MyRenderer myRenderer = new MyRenderer();&lt;br /&gt;
  expr.accept(myRenderer);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  class MyRenderer extends OWLDescriptionVisitorAdapter{ // or implement OWLDescriptionVisitor if you want behaviour for all expressions&lt;br /&gt;
    &lt;br /&gt;
    public void visit(OWLObjectSomeRestriction r){&lt;br /&gt;
      // do something with r&lt;br /&gt;
    }&lt;br /&gt;
    public void visit(OWLObjectAllRestriction r){&lt;br /&gt;
      // do something else with r&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6145</id>
		<title>P4APIOverview</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6145"/>
				<updated>2009-06-30T13:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 APIs&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Protege 4.0 OWL support is built on top of the [[P4APIOverview#OWL_API_basics|OWL API]], which provides all of the model manipulation and querying functionality.&lt;br /&gt;
&lt;br /&gt;
On top of this, Protege supports further functionality for developer's convenience - hierarchies, renderer management, search etc.&lt;br /&gt;
&lt;br /&gt;
Most of the behaviour of the application can be accessed through the main points below, whether accessing the model or the UI.&lt;br /&gt;
&lt;br /&gt;
However, there are also many utility classes provided by Protege or the OWL API.&lt;br /&gt;
&lt;br /&gt;
== Access points ==&lt;br /&gt;
&lt;br /&gt;
The most important three Protege 4 classes you will have access to from most plugins are:&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager ===&lt;br /&gt;
&lt;br /&gt;
Access to the ontologies, reasoners, search renderings, change management etc. Useful services that it provides are described below.&lt;br /&gt;
The most important thing to understand about the OWLModelManager is how [[P4APIOverview#Active_ontologies|active ontologies]] are managed.&lt;br /&gt;
&lt;br /&gt;
==== Active ontologies ====&lt;br /&gt;
&lt;br /&gt;
A single editor kit in P4 can have several ontologies loaded (whether these are imports or otherwise). There needs to be some way to determine which ontology edits are performed on by default. It is reasonable that the user might want to look at, edit or reason with only a subset of those loaded ontologies.&lt;br /&gt;
&lt;br /&gt;
* '''Active ontology''' is the ontology currently visible in the navigation bar at the top of the workspace. By convention all new additions to the model are made in the active ontology.&lt;br /&gt;
* '''Active ontologies''' is a set of ontologies including the active ontology. These are the ontologies whose contents are visible in the interface. The ontologies in this set is determined by which strategy is currently selected in the [[Protege4Shortcuts#Ontologies|Ontologies menu]]. The active ontologies are all sent to the reasoner when classification is requested. Edits that affect multiple ontologies should act on the active ontologies.&lt;br /&gt;
* '''Loaded ontologies''' is the set of all ontologies loaded into this OWLModelManager. Any ontologies that are loaded but not active should not show up in the interface.&lt;br /&gt;
&lt;br /&gt;
The '''OWLModelManager''' simply uses the OWL API's '''OWLOntologyManager''' to manage these ontologies, however the OWL API manager only has a notion of ''loaded ontologies''. If you write code that is designed to be portable (by using the OWL API OWLOntologyManager directly) you should respect the active ontologies and operate on this set only by passing them around (or having a central manager). In other words, don't just operate on all the loaded ontologies by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLWorkspace ===&lt;br /&gt;
&lt;br /&gt;
Access to the UI elements (menus, cell renderers, handy entity selectors), global selection management etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEditorKit ===&lt;br /&gt;
&lt;br /&gt;
The central access point for all of the model and UI elements of the OWL editor - you can get to both of the above from the editor kit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful subsidiary classes ==&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityRenderer ===&lt;br /&gt;
&lt;br /&gt;
The current renderer can be retrieved from the OWLModelManager and is used to get the short name for any entity based on the renderer preferences.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== EntityFinder===&lt;br /&gt;
&lt;br /&gt;
The finder can be used to find classes, properties and individuals by partial name or regular expression match. This is different from the utility methods on OWLModelManager which perform an exact match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityFactory ===&lt;br /&gt;
&lt;br /&gt;
The current factory attached to the OWLModelManager should be used to create classes, properties and individuals using the naming conventions in the '''New entities''' preferences. The factory returns a creation set which contains the changes required to create the entity. This must be applied explicitly by your code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLReasoner (OWLAPI) ===&lt;br /&gt;
&lt;br /&gt;
The current reasoner as selected in the reasoner menu can be retrieved from the OWLModelManager. To check if it currently contains a classified model with '''isClassified()'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLHierarchyManager ===&lt;br /&gt;
&lt;br /&gt;
A central place to get to shared '''OWLObjectHierarchyProvider'''s. These providers are convenient tree models that can be directly handed to a OWLModelManagerTree or used to traverse the various asserted or inferred hierarchies of classes and properties. Get this from the OWLModelManager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
Protege has several event models that can be subscribed to in order to keep your plugins aware of changes to the model or the system.&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager events ===&lt;br /&gt;
&lt;br /&gt;
You can add an '''OWLModelManagerListener''' using '''addListener''' to be notified about large granularity changes to the set of ontologies loaded.&lt;br /&gt;
Get the type of the event to determine the change that has occured&lt;br /&gt;
ACTIVE_ONTOLOGY_CHANGED, ONTOLOGY_VISIBILITY_CHANGED, ENTITY_RENDERER_CHANGED, ENTITY_RENDERING_CHANGED, REASONER_CHANGED, ABOUT_TO_CLASSIFY, ONTOLOGY_CLASSIFIED, ONTOLOGY_CREATED, ONTOLOGY_LOADED, ONTOLOGY_RELOADED, ONTOLOGY_SAVED&lt;br /&gt;
&lt;br /&gt;
Adding an '''OWLOntologyChangeListener''' will allow you to keep track of changes to any of the loaded ontologies to allow you to keep a view in sync with the model for example. You will receive a list of the changes to determine if they are pertinent to your plugin.&lt;br /&gt;
&lt;br /&gt;
An '''IOListener''' can be useful to get notification before or after an ontology is loaded or saved. This could be used to provide standard transforms or quality control warnings on ontology loading/serialisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OWL API basics ==&lt;br /&gt;
&lt;br /&gt;
Ontologies, classes, properties, individuals, datatypes class expressions, axioms, changes, reasoners and other fundamental parts of the OWL model are managed by the OWL API.&lt;br /&gt;
&lt;br /&gt;
Full docs for the OWL API are available on the [http://owlapi.sourceforge.net/ OWL API website], but here some some pointers:&lt;br /&gt;
&lt;br /&gt;
=== OWL what Manager? ===&lt;br /&gt;
Don't be confused by some classes that have a name similar to the '''OWLModelManager''' class:&lt;br /&gt;
* '''OWLOntologyManager''' is a class in the OWL API that is not specific to Protege 4.  The OWLOntologyManager plays a central role in the development of OWLAPI code.  It provides access to the ontologies, change management, etc.  An '''OWLModelManager''' has a getter method that will recover the OWLOntologyManager.&lt;br /&gt;
* '''OWLManager''' is utility class in the OWL API that you can use to create an OWLOntologyManager class.  In general you probably won't need this when writing Protege 4 code but it is the starting point for most OWL API code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating OWL objects ===&lt;br /&gt;
&lt;br /&gt;
All OWL objects (classes, properties, expressions, axioms) are created by an '''OWLDataFactory''' that can be retrieved from the OWLModelManager or directly from the OWLOntologyManager (it is the same factory).&lt;br /&gt;
&lt;br /&gt;
The factory provides a getter method for every object&lt;br /&gt;
&lt;br /&gt;
eg ''getOWLObjectProperty(uri)'' or ''getOWLSubClassOfAxiom(expr, expr)''&lt;br /&gt;
&lt;br /&gt;
The objects returned are immutable and implement structural equality, therefore two OWL objects of the same type that were created at different times but with the same parameters are considered the same object. All OWL objects can exist independent of an ontology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Making changes to the ontology ===&lt;br /&gt;
&lt;br /&gt;
An OWL ontology is simply a set of '''OWLAxiom'''s plus a few annotations and a name. In order to change the ontology you can add or remove axioms from the ontology. First, create the axiom using the OWLDataFactory or search for an appropriate axiom in the ontology. Then, create an '''AddAxiom''' or '''RemoveAxiom''' OWLOntologyChange object - there is no factory for these, just create them as needed - by supplying the axiom plus the ontology the change will affect.&lt;br /&gt;
&lt;br /&gt;
If you have a compound change (multiple axioms added or removed) then add all of these to a list.&lt;br /&gt;
&lt;br /&gt;
Use the OWLOntologyManager (or, for convenience the OWLModelManager) '''applyChanges(changes)''' method to cause the changes to take effect. Anything that has an OWLOntologyChangeListener attached to this manager will get notified.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Visitors ===&lt;br /&gt;
&lt;br /&gt;
Because the OWL vocabulary is fixed(!), there are a set number of OWLObject types that an algorithm may want to act on.&lt;br /&gt;
&lt;br /&gt;
In many cases an algorithm may want to implement behaviour for a broad range range of OWLObject - say we want to be able to render any class expression.&lt;br /&gt;
&lt;br /&gt;
Instead of having a large if statement with lots of&lt;br /&gt;
&lt;br /&gt;
  if (expr instanceof OWLObjectSomeRestriction){&lt;br /&gt;
    OWLObjectSomeRestriction restr = (OWLObjectSomeRestriction)expr;&lt;br /&gt;
    // do something&lt;br /&gt;
  }&lt;br /&gt;
  else if (expr instanceof OWLObjectAllRestriction){&lt;br /&gt;
    OWLObjectAllRestriction restr = (OWLObjectAllRestriction)expr;&lt;br /&gt;
    // do something else&lt;br /&gt;
  }&lt;br /&gt;
  else...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWLObjects are implemented so they can use the [http://en.wikipedia.org/wiki/Visitor_pattern visitor pattern]:&lt;br /&gt;
&lt;br /&gt;
  MyRenderer myRenderer = new MyRenderer();&lt;br /&gt;
  expr.accept(myRenderer);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  class MyRenderer extends OWLDescriptionVisitorAdapter{ // or implement OWLDescriptionVisitor if you want behaviour for all expressions&lt;br /&gt;
    &lt;br /&gt;
    public void visit(OWLObjectSomeRestriction r){&lt;br /&gt;
      // do something with r&lt;br /&gt;
    }&lt;br /&gt;
    public void visit(OWLObjectAllRestriction r){&lt;br /&gt;
      // do something else with r&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6144</id>
		<title>P4APIOverview</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6144"/>
				<updated>2009-06-30T13:33:36Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Added OWL API basics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 APIs&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Protege 4.0 OWL support is built on top of the [P4APIOverview#OWL_API_basics|OWL API], which provides all of the model manipulation and querying functionality.&lt;br /&gt;
&lt;br /&gt;
On top of this, Protege supports further functionality for developer's convenience - hierarchies, renderer management, search etc.&lt;br /&gt;
&lt;br /&gt;
Most of the behaviour of the application can be accessed through the main points below, whether accessing the model or the UI.&lt;br /&gt;
&lt;br /&gt;
However, there are also many utility classes provided by Protege or the OWL API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access points ==&lt;br /&gt;
&lt;br /&gt;
The most important three Protege 4 classes you will have access to from most plugins are:&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager ===&lt;br /&gt;
&lt;br /&gt;
Access to the ontologies, reasoners, search renderings, change management etc. Useful services that it provides are described below.&lt;br /&gt;
The most important thing to understand about the OWLModelManager is how [[P4APIOverview#Active_ontologies|active ontologies]] are managed.&lt;br /&gt;
&lt;br /&gt;
==== Active ontologies ====&lt;br /&gt;
&lt;br /&gt;
A single editor kit in P4 can have several ontologies loaded (whether these are imports or otherwise). There needs to be some way to determine which ontology edits are performed on by default. It is reasonable that the user might want to look at, edit or reason with only a subset of those loaded ontologies.&lt;br /&gt;
&lt;br /&gt;
* '''Active ontology''' is the ontology currently visible in the navigation bar at the top of the workspace. By convention all new additions to the model are made in the active ontology.&lt;br /&gt;
* '''Active ontologies''' is a set of ontologies including the active ontology. These are the ontologies whose contents are visible in the interface. The ontologies in this set is determined by which strategy is currently selected in the [[Protege4Shortcuts#Ontologies|Ontologies menu]]. The active ontologies are all sent to the reasoner when classification is requested. Edits that affect multiple ontologies should act on the active ontologies.&lt;br /&gt;
* '''Loaded ontologies''' is the set of all ontologies loaded into this OWLModelManager. Any ontologies that are loaded but not active should not show up in the interface.&lt;br /&gt;
&lt;br /&gt;
The '''OWLModelManager''' simply uses the OWL API's '''OWLOntologyManager''' to manage these ontologies, however the OWL API manager only has a notion of ''loaded ontologies''. If you write code that is designed to be portable (by using the OWL API OWLOntologyManager directly) you should respect the active ontologies and operate on this set only by passing them around (or having a central manager). In other words, don't just operate on all the loaded ontologies by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLWorkspace ===&lt;br /&gt;
&lt;br /&gt;
Access to the UI elements (menus, cell renderers, handy entity selectors), global selection management etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEditorKit ===&lt;br /&gt;
&lt;br /&gt;
The central access point for all of the model and UI elements of the OWL editor - you can get to both of the above from the editor kit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful subsidiary classes ==&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityRenderer ===&lt;br /&gt;
&lt;br /&gt;
The current renderer can be retrieved from the OWLModelManager and is used to get the short name for any entity based on the renderer preferences.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== EntityFinder===&lt;br /&gt;
&lt;br /&gt;
The finder can be used to find classes, properties and individuals by partial name or regular expression match. This is different from the utility methods on OWLModelManager which perform an exact match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEntityFactory ===&lt;br /&gt;
&lt;br /&gt;
The current factory attached to the OWLModelManager should be used to create classes, properties and individuals using the naming conventions in the '''New entities''' preferences. The factory returns a creation set which contains the changes required to create the entity. This must be applied explicitly by your code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLReasoner (OWLAPI) ===&lt;br /&gt;
&lt;br /&gt;
The current reasoner as selected in the reasoner menu can be retrieved from the OWLModelManager. To check if it currently contains a classified model with '''isClassified()'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLHierarchyManager ===&lt;br /&gt;
&lt;br /&gt;
A central place to get to shared '''OWLObjectHierarchyProvider'''s. These providers are convenient tree models that can be directly handed to a OWLModelManagerTree or used to traverse the various asserted or inferred hierarchies of classes and properties. Get this from the OWLModelManager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
Protege has several event models that can be subscribed to in order to keep your plugins aware of changes to the model or the system.&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager events ===&lt;br /&gt;
&lt;br /&gt;
You can add an '''OWLModelManagerListener''' using '''addListener''' to be notified about large granularity changes to the set of ontologies loaded.&lt;br /&gt;
Get the type of the event to determine the change that has occured&lt;br /&gt;
ACTIVE_ONTOLOGY_CHANGED, ONTOLOGY_VISIBILITY_CHANGED, ENTITY_RENDERER_CHANGED, ENTITY_RENDERING_CHANGED, REASONER_CHANGED, ABOUT_TO_CLASSIFY, ONTOLOGY_CLASSIFIED, ONTOLOGY_CREATED, ONTOLOGY_LOADED, ONTOLOGY_RELOADED, ONTOLOGY_SAVED&lt;br /&gt;
&lt;br /&gt;
Adding an '''OWLOntologyChangeListener''' will allow you to keep track of changes to any of the loaded ontologies to allow you to keep a view in sync with the model for example. You will receive a list of the changes to determine if they are pertinent to your plugin.&lt;br /&gt;
&lt;br /&gt;
An '''IOListener''' can be useful to get notification before or after an ontology is loaded or saved. This could be used to provide standard transforms or quality control warnings on ontology loading/serialisation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OWL API basics ==&lt;br /&gt;
&lt;br /&gt;
Ontologies, classes, properties, individuals, datatypes class expressions, axioms, changes, reasoners and other fundamental parts of the OWL model are managed by the OWL API.&lt;br /&gt;
&lt;br /&gt;
Full docs for the OWL API are available on the [http://owlapi.sourceforge.net/ OWL API website], but here some some pointers:&lt;br /&gt;
&lt;br /&gt;
=== OWL what Manager? ===&lt;br /&gt;
Don't be confused by some classes that have a name similar to the '''OWLModelManager''' class:&lt;br /&gt;
* '''OWLOntologyManager''' is a class in the OWL API that is not specific to Protege 4.  The OWLOntologyManager plays a central role in the development of OWLAPI code.  It provides access to the ontologies, change management, etc.  An '''OWLModelManager''' has a getter method that will recover the OWLOntologyManager.&lt;br /&gt;
* '''OWLManager''' is utility class in the OWL API that you can use to create an OWLOntologyManager class.  In general you probably won't need this when writing Protege 4 code but it is the starting point for most OWL API code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating OWL objects ===&lt;br /&gt;
&lt;br /&gt;
All OWL objects (classes, properties, expressions, axioms) are created by an '''OWLDataFactory''' that can be retrieved from the OWLModelManager or directly from the OWLOntologyManager (it is the same factory).&lt;br /&gt;
&lt;br /&gt;
The factory provides a getter method for every object&lt;br /&gt;
&lt;br /&gt;
eg ''getOWLObjectProperty(uri)'' or ''getOWLSubClassOfAxiom(expr, expr)''&lt;br /&gt;
&lt;br /&gt;
The objects returned are immutable and implement structural equality, therefore two OWL objects of the same type that were created at different times but with the same parameters are considered the same object. All OWL objects can exist independent of an ontology.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Making changes to the ontology ===&lt;br /&gt;
&lt;br /&gt;
An OWL ontology is simply a set of '''OWLAxiom'''s plus a few annotations and a name. In order to change the ontology you can add or remove axioms from the ontology. First, create the axiom using the OWLDataFactory or search for an appropriate axiom in the ontology. Then, create an '''AddAxiom''' or '''RemoveAxiom''' OWLOntologyChange object - there is no factory for these, just create them as needed - by supplying the axiom plus the ontology the change will affect.&lt;br /&gt;
&lt;br /&gt;
If you have a compound change (multiple axioms added or removed) then add all of these to a list.&lt;br /&gt;
&lt;br /&gt;
Use the OWLOntologyManager (or, for convenience the OWLModelManager) '''applyChanges(changes)''' method to cause the changes to take effect. Anything that has an OWLOntologyChangeListener attached to this manager will get notified.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Visitors ===&lt;br /&gt;
&lt;br /&gt;
Because the OWL vocabulary is fixed(!), there are a set number of OWLObject types that an algorithm may want to act on.&lt;br /&gt;
&lt;br /&gt;
In many cases an algorithm may want to implement behaviour for a broad range range of OWLObject - say we want to be able to render any class expression.&lt;br /&gt;
&lt;br /&gt;
Instead of having a large if statement with lots of&lt;br /&gt;
&lt;br /&gt;
  if (expr instanceof OWLObjectSomeRestriction){&lt;br /&gt;
    OWLObjectSomeRestriction restr = (OWLObjectSomeRestriction)expr;&lt;br /&gt;
    // do something&lt;br /&gt;
  }&lt;br /&gt;
  else if (expr instanceof OWLObjectAllRestriction){&lt;br /&gt;
    OWLObjectAllRestriction restr = (OWLObjectAllRestriction)expr;&lt;br /&gt;
    // do something else&lt;br /&gt;
  }&lt;br /&gt;
  else...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OWLObjects are implemented so they can use the [http://en.wikipedia.org/wiki/Visitor_pattern visitor pattern]:&lt;br /&gt;
&lt;br /&gt;
  MyRenderer myRenderer = new MyRenderer();&lt;br /&gt;
  expr.accept(myRenderer);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  class MyRenderer extends OWLDescriptionVisitorAdapter{ // or implement OWLDescriptionVisitor if you want behaviour for all expressions&lt;br /&gt;
    &lt;br /&gt;
    public void visit(OWLObjectSomeRestriction r){&lt;br /&gt;
      // do something with r&lt;br /&gt;
    }&lt;br /&gt;
    public void visit(OWLObjectAllRestriction r){&lt;br /&gt;
      // do something else with r&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6143</id>
		<title>P4APIOverview</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4APIOverview&amp;diff=6143"/>
				<updated>2009-06-30T11:13:02Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Starting point&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 APIs&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;Work in progress&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Protege 4.0 OWL support is built on top of the OWL API, which provides all of the model manipulation and navigation functionality.&lt;br /&gt;
&lt;br /&gt;
On top of this, Protege supports further functionality for developer's convenience - hierarchies, renderer management, search etc.&lt;br /&gt;
&lt;br /&gt;
Most of the behaviour of the application can be accessed through the main points below, whether accessing the model or the UI.&lt;br /&gt;
&lt;br /&gt;
However, there are also many utility classes provided by Protege or the OWL API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Access points ==&lt;br /&gt;
&lt;br /&gt;
The most important three Protege 4 classes you will have access to from most plugins are:&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager ===&lt;br /&gt;
&lt;br /&gt;
Access to the ontologies, reasoners, search renderings, change management etc. Useful services that it provides are described below.&lt;br /&gt;
The most important thing to understand about the OWLModelManager is how [[P4APIOverview#Active_ontologies|active ontologies]] are managed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLWorkspace ===&lt;br /&gt;
&lt;br /&gt;
Access to the UI elements (menus, cell renderers, handy entity selectors), global selection management etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWLEditorKit ===&lt;br /&gt;
&lt;br /&gt;
The central access point for all of the model and UI elements of the OWL editor - you can get to both of the above from the editor kit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OWL API classes ==&lt;br /&gt;
&lt;br /&gt;
Don't be confused by some classes that have a name similar to the '''OWLModelManager''' class:&lt;br /&gt;
&lt;br /&gt;
* '''OWLOntologyManager''' is a class in the OWL API that is not specific to Protege 4.  The OWLOntologyManager plays a central role in the development of OWLAPI code.  It provides access to the ontologies, change management, etc.  An '''OWLModelManager''' has a getter method that will recover the OWLOntologyManager.&lt;br /&gt;
* '''OWLManager''' is utility class in the OWL API that you can use to create an OWLOntologyManager class.  In general you probably won't need this when writing Protege 4 code but it is the starting point for most OWL API code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Active ontologies ==&lt;br /&gt;
&lt;br /&gt;
A single workspace in P4 can have several ontologies loaded (whether these are imports or otherwise). There needs to be some way to determine which ontology edits are performed on by default. It is reasonable that the user might want to look at, edit or reason with only a subset of those loaded ontologies.&lt;br /&gt;
&lt;br /&gt;
* '''Active ontology''' is the ontology currently visible in the navigation bar at the top of the workspace. By convention all new additions to the model are made in the active ontology.&lt;br /&gt;
* '''Active ontologies''' is a set of ontologies including the active ontology. These are the ontologies whose contents are visible in the interface. The ontologies in this set is determined by which strategy is currently selected in the [[Protege4Shortcuts#Ontologies|Ontologies menu]]. The active ontologies are all sent to the reasoner when classification is requested. Edits that affect multiple ontologies should act on the active ontologies.&lt;br /&gt;
* '''Loaded ontologies''' is the set of all ontologies loaded into this OWLModelManager. Any ontologies that are loaded but not active should not show up in the interface.&lt;br /&gt;
&lt;br /&gt;
The '''OWLModelManager''' simply uses the OWL API's '''OWLOntologyManager''' to manage these ontologies, however the OWL API manager only has a notion of ''loaded ontologies''. If you write code that is designed to be portable (by using the OWL API OWLOntologyManager directly) you should respect the active ontologies and operate on this set only by passing them around (or having a central manager). In other words, don't just operate on the &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Useful subsidiary classes ==&lt;br /&gt;
&lt;br /&gt;
=== From the OWLModelManager ===&lt;br /&gt;
&lt;br /&gt;
* The current '''OWLEntityRenderer''' is used to get the short name for any entity based on the renderer preferences.&lt;br /&gt;
* '''EntityFinder''' can be used to find classes, properties and individuals by name.&lt;br /&gt;
* '''OWLEntityFactory''' should be used to create classes, properties and individuals using the naming conventions in the '''New entities''' preferences. The factory returns a creation set which contains the changes required to create the entity. This must be applied explicitly by your code.&lt;br /&gt;
* The current '''OWLReasoner''' can be retrieved. To check if it currently contains a classified model with '''isClassified()'''.&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
Protege has several event models that can be subscribed to in order to keep your plugins aware of changes to the model or the system.&lt;br /&gt;
&lt;br /&gt;
=== OWLModelManager events ===&lt;br /&gt;
&lt;br /&gt;
You can add an '''OWLModelManagerListener''' using '''addListener''' to be notified about large granularity changes to the set of ontologies loaded.&lt;br /&gt;
Get the type of the event to determine the change that has occured&lt;br /&gt;
ACTIVE_ONTOLOGY_CHANGED, ONTOLOGY_VISIBILITY_CHANGED, ENTITY_RENDERER_CHANGED, ENTITY_RENDERING_CHANGED, REASONER_CHANGED, ABOUT_TO_CLASSIFY, ONTOLOGY_CLASSIFIED, ONTOLOGY_CREATED, ONTOLOGY_LOADED, ONTOLOGY_RELOADED, ONTOLOGY_SAVED&lt;br /&gt;
&lt;br /&gt;
Adding an '''OWLOntologyChangeListener''' will allow you to keep track of changes to any of the loaded ontologies to allow you to keep a view in sync with the model for example. You will receive a list of the changes to determine if they are pertinent to your plugin.&lt;br /&gt;
&lt;br /&gt;
An '''IOListener''' can be useful to get notification before or after an ontology is loaded or saved. This could be used to provide standard transforms or quality control warnings on ontology loading/serialisation.&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=6142</id>
		<title>Protege4Shortcuts</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=6142"/>
				<updated>2009-06-30T10:59:30Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Added ontologies menu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Menu Actions and Keyboard Shortcuts&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of Protege 4.x menu items and keyboard shortcuts.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
All mnemonics are displayed next to the appropriate menu items.&lt;br /&gt;
&lt;br /&gt;
On a mac, the '''Command''' key is used in place of the '''Ctrl''' key.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-N &lt;br /&gt;
| '''New...'''&lt;br /&gt;
| Create a new ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
| '''Open...'''&lt;br /&gt;
| Open an ontology (and its imports) from a file into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Open recent'''&lt;br /&gt;
| Open a recently worked on ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-O&lt;br /&gt;
| '''Open from URI...'''&lt;br /&gt;
| Open an ontology from the web into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
| '''Save...'''&lt;br /&gt;
| Save any changed open ontologies&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-S&lt;br /&gt;
| '''Save as...'''&lt;br /&gt;
| Save the currently active ontology as a new ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-G&lt;br /&gt;
| '''Gather Ontologies...'''&lt;br /&gt;
| Saves all open ontologies into a single folder (useful for ontologies that have been opened from the web or from other libraries)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export inferred axioms as ontology...'''&lt;br /&gt;
| After classification, save the inferred hierarchy as an ontology. The current ontology source files are unaffected, and the save status of any open ontologies is preserved.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-L&lt;br /&gt;
| '''Ontology Libraries...'''&lt;br /&gt;
| Manage locations for commonly used shared ontologies to reside&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Loaded ontology sources...'''&lt;br /&gt;
| Show a summary of the loaded ontologies showing their physical locations and allowing several actions such as reload, close, navigate to source &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-,&lt;br /&gt;
| [[Protege4Preferences|'''Preferences...''']]&lt;br /&gt;
| Configure behaviour for Protege 4.0&lt;br /&gt;
|''Mac users: preferences are found in the Protege menu''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| '''Check for plugins...'''&lt;br /&gt;
| Use [[EnablePluginAutoUpdate|auto-update]] to find new plugins or updates to existing plugins&lt;br /&gt;
|(from build 112)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
| '''Close'''&lt;br /&gt;
| Close the active workspace and return to the welcome window.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Edit ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
| '''Undo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-Z&lt;br /&gt;
| '''Redo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-X&lt;br /&gt;
| '''Cut'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-C&lt;br /&gt;
| '''Copy'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-V&lt;br /&gt;
| '''Paste'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Backspace&lt;br /&gt;
| '''Delete...'''&lt;br /&gt;
| Delete the last selected element in the focused view. If this is an entity in one of the class/property trees or individual list then it removes every statement that references this entity. If this is an assertion in a description view then it removes that assertion from the ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
| '''Find in view'''&lt;br /&gt;
| Perform a name search in the currently active view (the one that currently has focus - often the last used)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
| '''Create New'''&lt;br /&gt;
| Create a new entity of a type dependant on the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-\&lt;br /&gt;
| '''Create Child'''&lt;br /&gt;
| Create a subclass/subproperty of the current selection in the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-/&lt;br /&gt;
| '''Create Sibling'''&lt;br /&gt;
| Create a subclass/subproperty of the parents of the current selection in the active view (in effect, on the same level as the current selection)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-C&lt;br /&gt;
| '''Duplicate selected class'''&lt;br /&gt;
| Create a copy of the selected class including all asserted superclass and equivalent class axioms (not including annotations)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
| '''Convert to primitive class'''&lt;br /&gt;
| Move all equivalent classes for the currently selected class to superclasses (and split an intersection into separate superclass axioms)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
| '''Convert to defined class'''&lt;br /&gt;
| Move all superclasses for the currently selected class into a new equivalent class (by building an intersection of the superclasses)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Add covering axiom'''&lt;br /&gt;
| Add an equivalent class to the currently selected class containing a union of its subclasses&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Make all individuals distinct...'''&lt;br /&gt;
| Create an allDifferent axiom containing all of the individuals in the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-J&lt;br /&gt;
| '''Make primitive siblings disjoint'''&lt;br /&gt;
| Create an allDisjoint axiom containing the currently selected class and all of its siblings&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-P&lt;br /&gt;
| '''Prefixes...'''&lt;br /&gt;
| Manage renderings of namespaces&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ontologies==&lt;br /&gt;
&lt;br /&gt;
The '''Active ontology''' is the ontology currently ticked in this menu and also visible in the navigation bar at the top of the workspace. By convention all additions to the model are made in the active ontology.&lt;br /&gt;
&lt;br /&gt;
The '''Active ontologies''' is a set of ontologies including the active ontology. These are the ontologies whose contents are visible in the interface. The ontologies in this set is determined by which strategy is currently selected in this menu.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Show only the active ontology'''&lt;br /&gt;
| Show only the active ontology itself, regardless of imports&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Show all loaded ontologies'''&lt;br /&gt;
| Show all of the ontologies currently loaded in the workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Show the imports closure of the active ontology'''&lt;br /&gt;
| Show all of the ontologies imported directly or indirectly by the active ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''A list of the loaded ontologies'''&lt;br /&gt;
| Select the active ontology from the list presented here&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reasoner==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
| '''Classify...'''&lt;br /&gt;
| Compute the inferred class hierarchy (and enable this view if it is in the current tab)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Fact++'''&lt;br /&gt;
| Select a C++ reasoner developed at The University of Manchester&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''None'''&lt;br /&gt;
| Select the default reasoner that does not perform any inference&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Pellet 1.5'''&lt;br /&gt;
| Select a Java reasoner developed by Clark &amp;amp; Parsia (pellet 2 now available)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
Additional tools will depend on which plugins you have installed (eg '''Export OWLDoc...'''). The default tools are shown below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create class hierarchy...'''&lt;br /&gt;
| Enter a tab indented list of classes that will be added to the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Usage'''&lt;br /&gt;
| Display a view showing global usage of the currently selected entity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Refactor==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
| '''Change entity URI...'''&lt;br /&gt;
| Previously ''Rename...''. Globally change the URI for the selected entity (not the label of the entity)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[Protege4RenameEntities|'''Change multiple entity URIs...''']]&lt;br /&gt;
| Previously ''Rename entities...''. Globally change the URIs for entities by search and replace (does not change the labels of the entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Change ontology URI...&amp;quot;&lt;br /&gt;
| Change the URI for the active ontology (note, this does not change the URIs of any entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert entity URIs to labels'''&lt;br /&gt;
| Changes the fragment of every entity URI into an auto ID and places the original fragment text in a label (using the current [[Protege4Preferences#New_Entities|New Entities preferences]])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert property assertion on class/individual puns to annotations'''&lt;br /&gt;
| Converts any property assertions with a subject which is a pun to an annotation on the class which is punned&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Split subclass axioms'''&lt;br /&gt;
| Splits subclass axioms in the active ontologies into more fine grained axioms.  For example, A subClassOf (B and C) would be split into A subClassOf B, and A subClassOf C&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|'''Amalgamate subclass axioms'''&lt;br /&gt;
| Merges subclass axioms that have a common left hand side.  For example, A subClassOf B, A subClassOf C would be merged into a single subclass axiom, A subClassOf (B and C)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[P4MoveAxioms|'''Copy/move/delete axioms...''']]&lt;br /&gt;
| Previously ''Extract/move axioms''. Select axioms using several different methods. These axioms can then be deleted or moved/copied to an existing or new ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Merge ontologies...'''&lt;br /&gt;
| Merge one or more ontologies into an existing or new ontology&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tabs==&lt;br /&gt;
&lt;br /&gt;
The tabs that are available may be larger depending on which plugins you have installed. The default tabs are below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Active Ontology'''&lt;br /&gt;
| Metadata, imports and metrics for the active ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Entities'''&lt;br /&gt;
| A view of the currently selected class, property or individual (can be used to replace the other entities tabs)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Classes'''&lt;br /&gt;
| A tab specifically for viewing classes&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Object Properties'''&lt;br /&gt;
| A tab specifically for viewing object properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Data Properties'''&lt;br /&gt;
| A tab specifically for viewing data properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Individuals'''&lt;br /&gt;
| A tab specifically for viewing individuals&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''OWLViz'''&lt;br /&gt;
| A graphical representation of the asserted and inferred subclass heirarchy (requires [http://www.graphviz.org Graphviz])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''DL Query'''&lt;br /&gt;
| A tab for querying the reasoner with arbitrary class expressions (the ontology must be classified first)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also options for creating, sharing and managing tabs.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create new tab...'''&lt;br /&gt;
| Create a new empty tab for you to configure&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Delete custom tabs...'''&lt;br /&gt;
| Allows you to remove custom tabs from the menu and workspace (from build 105)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export current tab...'''&lt;br /&gt;
| Share your layout with other users&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Import tab...'''&lt;br /&gt;
| Load layouts that other users have provided&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Save current layout'''&lt;br /&gt;
| Force the current layout to be saved (Will happen on a normal shutdown of Protege)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Reset selected tab to default'''&lt;br /&gt;
| Factory reset for the current tab layout&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
All interface components in a tab are Ontology Views. The views are categorised for ease of navigation. The contents of this menu depend on which plugins you have installed. Selecting a view will allow you to add it to the currently selected tab. You can configure any of your tabs by adding and deleting new views.&lt;br /&gt;
&lt;br /&gt;
For details of how to configure tabs please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|notes on configuring the interface]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Window==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-=&lt;br /&gt;
| '''Increase font size'''&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl--&lt;br /&gt;
| '''Decrease font size'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Look &amp;amp; Feel'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Help==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''About'''&lt;br /&gt;
| Version and build numbers for the core system and all installed plugins (please supply these in bug reports - Hint-hint)&lt;br /&gt;
''Mac users: this feature is in the Protege menu''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege Documentation'''&lt;br /&gt;
| Open these pages in your browser&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege-OWL Plugins'''&lt;br /&gt;
| Opens the P4 compatible plugins page in your browser (also see [[EnablePluginAutoUpdate#Plugin_preferences|auto update]])&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6141</id>
		<title>Protege4DevDocs</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6141"/>
				<updated>2009-06-30T09:59:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 Developer Documentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
'''If you are writing code for P4, please compile it with java 1.5 for compatibility.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
All current Protege 4.0 code is written in '''java 1.5'''. This will continue to be the case until Apple supports Java 6.&lt;br /&gt;
&lt;br /&gt;
'''Please consider writing any P4 code as a plugin'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you cannot do this for various reasons, please let us&lt;br /&gt;
know as we may be able to improve the core design in order to support you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Protege 4.0 has been written specifically to be modular. It uses '''equinox''', one implementation of an '''OSGi framework''' to allow&lt;br /&gt;
plugins to be created easily. &lt;br /&gt;
&lt;br /&gt;
'''Please share.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
It is surprising how many people have written plugins for P4 that we just don't hear about.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]].&lt;br /&gt;
&lt;br /&gt;
== Working with the Protege source code ==&lt;br /&gt;
&lt;br /&gt;
=== Compiling and Running ===&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in IntelliJ ====&lt;br /&gt;
* [[CompileProtege4InIntelliJ|Setup and run the Protege 4 Editor in IntelliJ]]&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in Eclipse ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.man.ac.uk/~iannonel/eclipseSetup/eclipseSetupMain.html Setup and run the Protege 4 Editor in Eclipse] (External link) '''RECOMMENDED''' &amp;lt;br /&amp;gt;This page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project'' &lt;br /&gt;
* [[CompileProtege4InEclipse|Setup and run the Protege 4 Editor in Eclipse]] (In Progress) &amp;lt;br /&amp;gt;This page gives directions for compiling and running Protege 4.0 using Eclipse's plugin development framework.&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in a Generic IDE ====&lt;br /&gt;
This section describes how to set up an IDE for plugin development.  While we have used eclipse to illustrate these pages, we have tried to &lt;br /&gt;
describe an approach that is generic and will work for all IDE platforms.  We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE.  We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created.  &lt;br /&gt;
&lt;br /&gt;
* Downloading, compiling and running the core Protege sources.  The following links cover much the same ground.&lt;br /&gt;
** [[CompileProtege4InEclipseOneProject|Compile and run the Protege-OWL editor in a Generic IDE]] - this page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''.&lt;br /&gt;
&lt;br /&gt;
=== Anatomy of a Plugin ===&lt;br /&gt;
A short guide to [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php writing a plug-in] to show the class hierarchy.&lt;br /&gt;
This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in.&lt;br /&gt;
&lt;br /&gt;
[[PluginAnatomy|This page]] also contains some information about the different parts of a plugin and how they work together.  It also includes a very simple plugin and shows how to install it into the eclipse development environment.&lt;br /&gt;
&lt;br /&gt;
The example delves into producing a view plugin, but we also have a short list of other useful [[PluginTypes|plugin types]] that you may wish to implement (such as menu items etc).&lt;br /&gt;
&lt;br /&gt;
Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and [[EnablePluginAutoUpdate|enable auto-update]].&lt;br /&gt;
&lt;br /&gt;
=== Key classes ===&lt;br /&gt;
&lt;br /&gt;
Here is a summary of the main parts of the [[P4APIOverview|Protege 4 API]] for gaining access to the model and various utilities. &lt;br /&gt;
&lt;br /&gt;
Also see the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code].&lt;br /&gt;
&lt;br /&gt;
==== UI classes ====&lt;br /&gt;
&lt;br /&gt;
The Protege core and the OWL editor kit both provide a large number of reuseable components and utilities for generating user interfaces for ontologies.&lt;br /&gt;
&lt;br /&gt;
* [[P4UiComponentSummary]] a short list of some of the main components etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Updating to Protege4.1 ===&lt;br /&gt;
&lt;br /&gt;
A short [[P4_1PortingGuide|guide]] to migrating plugins from Protege4.0 to Protege4.1 (in progress).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* [[SolvingClassLoaderProblems|Troubleshooting class loader issues]]&lt;br /&gt;
* [[BuildingTheFactJniLibrary|Building the FaCT++ JNI Library]] - issues with FaCT++ libraries not found, linking errors etc&lt;br /&gt;
* [[DealingWithJava5CompilerIssues|Troubleshooting and fixing problems with the Java 5 compiler]]&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6140</id>
		<title>Protege4DevDocs</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4DevDocs&amp;diff=6140"/>
				<updated>2009-06-22T12:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Compiling and Running */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4 Developer Documentation&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Pointers for developers of plugins and understanding the core APIs of Protege 4.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
'''If you are writing code for P4, please compile it with java 1.5 for compatibility.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
All current Protege 4.0 code is written in '''java 1.5'''. This will continue to be the case until Apple supports Java 6.&lt;br /&gt;
&lt;br /&gt;
'''Please consider writing any P4 code as a plugin'''.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you cannot do this for various reasons, please let us&lt;br /&gt;
know as we may be able to improve the core design in order to support you.&amp;lt;br /&amp;gt;&lt;br /&gt;
Protege 4.0 has been written specifically to be modular. It uses '''equinox''', one implementation of an '''OSGi framework''' to allow&lt;br /&gt;
plugins to be created easily. &lt;br /&gt;
&lt;br /&gt;
'''Please share.'''&amp;lt;br /&amp;gt;&lt;br /&gt;
It is surprising how many people have written plugins for P4 that we just don't hear about.&amp;lt;br /&amp;gt;&lt;br /&gt;
If you wish to publish to the community, please see our notes on [[Protege4Contributing#Code_submissions|code contributions]].&lt;br /&gt;
&lt;br /&gt;
== Working with the Protege source code ==&lt;br /&gt;
&lt;br /&gt;
=== Compiling and Running ===&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in IntelliJ ====&lt;br /&gt;
* [[CompileProtege4InIntelliJ|Setup and run the Protege 4 Editor in IntelliJ]]&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in Eclipse ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.man.ac.uk/~iannonel/eclipseSetup/eclipseSetupMain.html Setup and run the Protege 4 Editor in Eclipse] (External link) '''RECOMMENDED''' &amp;lt;br /&amp;gt;This page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project'' &lt;br /&gt;
* [[CompileProtege4InEclipse|Setup and run the Protege 4 Editor in Eclipse]] (In Progress) &amp;lt;br /&amp;gt;This page gives directions for compiling and running Protege 4.0 using Eclipse's plugin development framework.&lt;br /&gt;
&lt;br /&gt;
==== Protege 4 OWL editor in a Generic IDE ====&lt;br /&gt;
This section describes how to set up an IDE for plugin development.  While we have used eclipse to illustrate these pages, we have tried to &lt;br /&gt;
describe an approach that is generic and will work for all IDE platforms.  We welcome others to add pages above to describe how to get Protege 4 running in their favorite IDE.  We describe this in two steps - first the core Protege sources are downloaded and compiled and then a plugin project is created.  &lt;br /&gt;
&lt;br /&gt;
* Downloading, compiling and running the core Protege sources.  The following links cover much the same ground.&lt;br /&gt;
** [[CompileProtege4InEclipseOneProject|Compile and run the Protege-OWL editor in a Generic IDE]] - this page gives directions for compiling Protege 4.0 sources in Eclipse where ''all bundles are encapsulated in one Eclipse project''.&lt;br /&gt;
&lt;br /&gt;
=== Anatomy of a Plugin ===&lt;br /&gt;
A short guide to [http://www.co-ode.org/downloads/protege-x/plugin-code-example.php writing a plug-in] to show the class hierarchy.&lt;br /&gt;
This doesn't delve deeply into setting up your build environment, but concentrates on a simple code example and making sure you understand the components and the structure of a plug-in.&lt;br /&gt;
&lt;br /&gt;
[[PluginAnatomy|This page]] also contains some information about the different parts of a plugin and how they work together.  It also includes a very simple plugin and shows how to install it into the eclipse development environment.&lt;br /&gt;
&lt;br /&gt;
The example delves into producing a view plugin, but we also have a short list of other useful [[PluginTypes|plugin types]] that you may wish to implement (such as menu items etc).&lt;br /&gt;
&lt;br /&gt;
Once you have written a plugin you want people to use it. Some very simple steps allow you to advertise your plugin and [[EnablePluginAutoUpdate|enable auto-update]].&lt;br /&gt;
&lt;br /&gt;
=== Key Classes ===&lt;br /&gt;
Please check out the [http://protege.stanford.edu/protege/4.0/docs/api/ javadoc for Protege 4.0 code].&lt;br /&gt;
&lt;br /&gt;
The most important three classes you will have access to from most plugins are:&lt;br /&gt;
* '''OWLModelManager''' Access to the ontologies, reasoners, search renderings, change management etc&lt;br /&gt;
* '''OWLWorkspace''' Access to the UI elements (menus, cell renderers, handy entity selectors), global selection management etc&lt;br /&gt;
* '''OWLEditorKit''' The central access point for all of the model and UI elements of the OWL editor - you can get to both of the above from the editor kit&lt;br /&gt;
&lt;br /&gt;
Don't be confused by some classes that have a name similar to the OWLModelManager class:&lt;br /&gt;
* '''OWLModelManager''' is a Protege 4 class which give access to the ontologies, reasoners, search renderings, change management etc.&lt;br /&gt;
* '''OWLManager''' is utility class in the OWL API that you can use to create an OWLOntologyManager class.  In general you probably won't need this when writing Protege 4 code but it is the starting point for most OWL API code.&lt;br /&gt;
* '''OWLOntologyManager''' is a class in the OWL API that is not specific to Protege 4.  The OWLOntologyManager plays a central role in the development of OWLAPI code.  It provides access to the ontologies, reasoners, change management, etc.  An OWLModelManager has a getter method that will recover the OWLOntologyManager.&lt;br /&gt;
&lt;br /&gt;
==== UI classes ====&lt;br /&gt;
&lt;br /&gt;
The Protege core and the OWL editor kit both provide a large number of reuseable components and utilities for generating user interfaces for ontologies.&lt;br /&gt;
&lt;br /&gt;
* [[P4UiComponentSummary]] a short list of some of the main components etc&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* [[SolvingClassLoaderProblems|Troubleshooting class loader issues]]&lt;br /&gt;
* [[BuildingTheFactJniLibrary|Building the FaCT++ JNI Library]] - issues with FaCT++ libraries not found, linking errors etc&lt;br /&gt;
* [[DealingWithJava5CompilerIssues|Troubleshooting and fixing problems with the Java 5 compiler]]&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Preferences&amp;diff=6084</id>
		<title>Protege4Preferences</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Preferences&amp;diff=6084"/>
				<updated>2009-06-10T10:01:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Preferences&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a guide to customising Protege 4.x through its preferences menu.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Many Protege 4.x features can be configured using the inbuilt preferences.&lt;br /&gt;
Preferences are stored in a system-specific way and are persistent across new installations of the tool.&lt;br /&gt;
&lt;br /&gt;
Find them under '''File | Preferences'''.&lt;br /&gt;
&lt;br /&gt;
Installed plugins may add further panels to this dialog. Below is a list of the default preferences:&lt;br /&gt;
&lt;br /&gt;
== Annotations ==&lt;br /&gt;
&lt;br /&gt;
Control over the visibility of given annotations.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4GeneralPrefs.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Preferences about the general look and feel of the application, including responsiveness to input&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
Control over how the expression editors behave&lt;br /&gt;
* '''Editor delay''' how long before the expression is checked to enable a dialog to be accepted&lt;br /&gt;
&lt;br /&gt;
=== Search ===&lt;br /&gt;
Control over how the find / search functionality behaves&lt;br /&gt;
* '''Search delay''' how long after the user stops typing before the search is carried out&lt;br /&gt;
* '''Simple search''' faster searching using the * as a wildcard&lt;br /&gt;
* '''Full regular expression search''' note that searching using full regular expressions can be slow for large ontologies&lt;br /&gt;
&lt;br /&gt;
'''Centre dialogs on workspace''' by default, view specific dialogs (find, add, edit etc) centre on the view. For small screens this option can be used to centre all dialogs on the main workspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== New Entities ==&lt;br /&gt;
&lt;br /&gt;
Control how URIs and labels get generated when creating new classes/properties and individuals (including automatic ID formulation).&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4NamingAndRendering#New_entity_creation_preferences | New Entity Preferences]] for a more detailed description of these preferences.&lt;br /&gt;
&lt;br /&gt;
== New Ontologies ==&lt;br /&gt;
&lt;br /&gt;
Control over the default behaviour when creating ontologies from scratch.&lt;br /&gt;
&lt;br /&gt;
== Plugins ==&lt;br /&gt;
&lt;br /&gt;
Download or update plugins using the [[EnablePluginAutoUpdate#Plugin_preferences|plugin preferences]].&lt;br /&gt;
&lt;br /&gt;
== Renderer ==&lt;br /&gt;
&lt;br /&gt;
Control how entities are displayed using the [[Protege4NamingAndRendering#Rendering_preferences|renderer preferences]].&lt;br /&gt;
&lt;br /&gt;
== Tree Preferences ==&lt;br /&gt;
&lt;br /&gt;
How deep to open up hierarchies when they are first shown.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Control over what axioms are shown in the usage views. Hiding some axioms can make the view more concise.&lt;br /&gt;
&lt;br /&gt;
'''Simple subclass axioms''' subclass axioms that have a named superclass or for which the current class is the superclass&lt;br /&gt;
&lt;br /&gt;
== XML Writer ==&lt;br /&gt;
&lt;br /&gt;
Control over the form of XML serialisations (eg whether or not to use XML entities to shorten file length).&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Preferences&amp;diff=6083</id>
		<title>Protege4Preferences</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Preferences&amp;diff=6083"/>
				<updated>2009-06-10T10:01:06Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Find / Search */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Preferences&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a guide to customising Protege 4.x through its preferences menu.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Many Protege 4.x features can be configured using the inbuilt preferences.&lt;br /&gt;
Preferences are stored in a system-specific way and are persistent across new installations of the tool.&lt;br /&gt;
&lt;br /&gt;
Find them under '''File | Preferences'''.&lt;br /&gt;
&lt;br /&gt;
Installed plugins may add further panels to this dialog. Below is a list of the default preferences:&lt;br /&gt;
&lt;br /&gt;
== Annotations ==&lt;br /&gt;
&lt;br /&gt;
Control over the visibility of given annotations.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4GeneralPrefs.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Preferences about the general look and feel of the application, including responsiveness to input&lt;br /&gt;
&lt;br /&gt;
===Editor===&lt;br /&gt;
Control over how the expression editors behave&lt;br /&gt;
* '''Editor delay''' how long before the expression is checked to enable a dialog to be accepted&lt;br /&gt;
&lt;br /&gt;
=== Search ===&lt;br /&gt;
Control over how the find / search functionality behaves&lt;br /&gt;
* '''Search delay''' how long after the user stops typing before the search is carried out&lt;br /&gt;
* '''Simple search''' faster searching using the * as a wildcard&lt;br /&gt;
* '''Full regular expression search''' note that searching using full regular expressions can be slow for large ontologies&lt;br /&gt;
&lt;br /&gt;
'''Centre dialogs on workspace''' by default, view specific dialogs (find, add, edit etc) centre on the view. For small screens this option can be used to centre all dialogs on the main workspace&lt;br /&gt;
&lt;br /&gt;
== New Entities ==&lt;br /&gt;
&lt;br /&gt;
Control how URIs and labels get generated when creating new classes/properties and individuals (including automatic ID formulation).&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4NamingAndRendering#New_entity_creation_preferences | New Entity Preferences]] for a more detailed description of these preferences.&lt;br /&gt;
&lt;br /&gt;
== New Ontologies ==&lt;br /&gt;
&lt;br /&gt;
Control over the default behaviour when creating ontologies from scratch.&lt;br /&gt;
&lt;br /&gt;
== Plugins ==&lt;br /&gt;
&lt;br /&gt;
Download or update plugins using the [[EnablePluginAutoUpdate#Plugin_preferences|plugin preferences]].&lt;br /&gt;
&lt;br /&gt;
== Renderer ==&lt;br /&gt;
&lt;br /&gt;
Control how entities are displayed using the [[Protege4NamingAndRendering#Rendering_preferences|renderer preferences]].&lt;br /&gt;
&lt;br /&gt;
== Tree Preferences ==&lt;br /&gt;
&lt;br /&gt;
How deep to open up hierarchies when they are first shown.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Control over what axioms are shown in the usage views. Hiding some axioms can make the view more concise.&lt;br /&gt;
&lt;br /&gt;
'''Simple subclass axioms''' subclass axioms that have a named superclass or for which the current class is the superclass&lt;br /&gt;
&lt;br /&gt;
== XML Writer ==&lt;br /&gt;
&lt;br /&gt;
Control over the form of XML serialisations (eg whether or not to use XML entities to shorten file length).&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=File:P4GeneralPrefs.png&amp;diff=6082</id>
		<title>File:P4GeneralPrefs.png</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=File:P4GeneralPrefs.png&amp;diff=6082"/>
				<updated>2009-06-10T09:48:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=DLQueryTab&amp;diff=6048</id>
		<title>DLQueryTab</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=DLQueryTab&amp;diff=6048"/>
				<updated>2009-06-04T14:58:49Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Manchester OWL syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DL Query tab =&lt;br /&gt;
&lt;br /&gt;
[[Image:Protege4DLQueryTab.gif|left|thumb]]&lt;br /&gt;
The DL Query tab provides a powerful and easy-to-use feature for searching a classified ontology. It is a standard Protégé 4 plugin, available both as a tab and also as a view widget that can be positioned into any other tab. The query language (''class expression'') supported by the plugin is based on the Manchester OWL syntax, a user-friendly syntax for OWL DL that is fundamentally based on collecting all information about a particular class, property, or individual into a single construct, called a frame.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
[[Image:UnclassifiedVsClassifiedOntology.gif|right]]&lt;br /&gt;
&lt;br /&gt;
If the DL Query tab is unavailable in your Protégé workspace, make sure the DL Query item in the Tabs menu is checked. Alternatively, you can add the Query view widget to any other tab by selecting '''View | Misc views | Query''' and then placing the widget anywhere in a layout.&lt;br /&gt;
&lt;br /&gt;
You can only execute a query on a classified ontology. Before attempting to execute a query, run a classifier:&lt;br /&gt;
&lt;br /&gt;
* Ensure that one of the built-in reasoners (a.k.a classifiers) is selected. From the Reasoner menu, select FaCT++ or Pellet. When you first select a reasoner, the active ontology will be classified. You can also select '''Reasoner | Classify...''' to classify again at any time. &lt;br /&gt;
* Validate that your ontology is classified by selecting the Entities tab and then the Inferred Class Hierarchy tab that appears in the class hierarchy view. It should contain classes that sub-class Thing. If you see only the root class, Thing, your ontology may not be classified. Following is an example comparing what an Inferred Class Hierarchy looks like before and after classification.&lt;br /&gt;
&lt;br /&gt;
* Once you've validated that your ontology is classified, you can execute a query.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual query examples ==&lt;br /&gt;
&lt;br /&gt;
[[Image:DLQueryResults.gif|right]]&lt;br /&gt;
[[Image:DLQueryIndividualsOfAClass.gif|right]]&lt;br /&gt;
&lt;br /&gt;
Suppose we have an ontology like this:&lt;br /&gt;
&lt;br /&gt;
* Class:&lt;br /&gt;
** Person &lt;br /&gt;
* Data Properties:&lt;br /&gt;
** hasGivenName&lt;br /&gt;
** hasSurname&lt;br /&gt;
&lt;br /&gt;
And suppose also that we have several hundred instances of class Person in our ontology. To find an individual named &amp;quot;Matthew&amp;quot;, we could enter the following query:&lt;br /&gt;
&lt;br /&gt;
'''hasGivenName value &amp;quot;Matthew&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
But clicking on the execute button may not return any results. We also need to check the &amp;quot;Individuals&amp;quot; option. Any individuals found will then be displayed in the query results as shown below:&lt;br /&gt;
&lt;br /&gt;
The following query would also be valid for the same result:&lt;br /&gt;
&lt;br /&gt;
'''Person and hasGivenName value &amp;quot;Matthew&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We could also show all instances of person by simply providing the class in the query like this:&lt;br /&gt;
&lt;br /&gt;
Of course, these are extremely simple queries; the Manchester syntax is much more capable.&lt;br /&gt;
&lt;br /&gt;
Literal constants can be expressed with type by using ^^ and then the type:&lt;br /&gt;
&lt;br /&gt;
'''hasAge value &amp;quot;21&amp;quot;^^long'''&lt;br /&gt;
&lt;br /&gt;
Or, a more general expression that uses type:&lt;br /&gt;
&lt;br /&gt;
'''hasAge some int'''&lt;br /&gt;
&lt;br /&gt;
Following are just a few more examples to get you going:&lt;br /&gt;
&lt;br /&gt;
'''hasChild some Man'''&lt;br /&gt;
&lt;br /&gt;
'''hasSibling only Woman'''&lt;br /&gt;
&lt;br /&gt;
'''hasCountryOfOrigin value England'''&lt;br /&gt;
&lt;br /&gt;
'''hasChild min 3'''&lt;br /&gt;
&lt;br /&gt;
'''hasChild exactly 3'''&lt;br /&gt;
&lt;br /&gt;
'''hasChild max 3'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Class query examples ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|right|400px]]&lt;br /&gt;
[[Image:Dl-query-lens.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Here are some examples of class queries that can be performed on the [http://www.co-ode.org/ontologies/photography/ ontology of photography] (work in progress).&lt;br /&gt;
&lt;br /&gt;
Firstly, it can be useful to see which things classify &amp;quot;under&amp;quot; this expression.&lt;br /&gt;
&lt;br /&gt;
'''Q: &amp;quot;Which equipment can reduce blur?&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We need to get the subclasses of the expression (or descendants if the hierarchy of equipment is deeper than 1 level):&lt;br /&gt;
  Equipment and reduces some Blur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, we might be interested to see under which existing classes in our hierarchy a given class will classify:&lt;br /&gt;
&lt;br /&gt;
'''Q: &amp;quot;What types of lens is a 35-120mm?&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We need to get the superclasses of the expression:&lt;br /&gt;
  Lens and (hasMinEffectiveFocalLength value 35) and (hasMaxEffectiveFocalLength value 120)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other examples might be:&lt;br /&gt;
&lt;br /&gt;
'''Q: &amp;quot;Which adjustments can I use to increase the exposure without affecting the depth of field&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We need to get the subclasses of the expression:&lt;br /&gt;
  Adjustment and increases some ExposureLevel and not(affects some DepthOfField)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving a query in the ontology ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl_query_add_to_ontology.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
This feature that will be available from build 105 onwards.&lt;br /&gt;
&lt;br /&gt;
The DL Query tab becomes a useful way of testing a definition before creating appropriate classes.&lt;br /&gt;
&lt;br /&gt;
If you find a particular query useful and would like to create a class to represent it you can now select '''Add to ontology'''.&lt;br /&gt;
&lt;br /&gt;
This will create a defined class in the ontology and the dialog allows you to either name it or leave it as [[P4AnonymousClasses|anonymous]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manchester OWL syntax ==&lt;br /&gt;
&lt;br /&gt;
We have only provided a few simple examples here designed to help you understand how to use the DL Query tab and the Query view widget. To learn more about the Manchester syntax, check out these resources:&lt;br /&gt;
&lt;br /&gt;
* [http://www.co-ode.org/resources/reference/manchester_syntax/ The Manchester Syntax] - describes the syntax for class expressions and is aimed at people who already know the previous Protege-OWL compact class expression syntax.&lt;br /&gt;
* [[media:Owled2008dc_paper_11.pdf‎|Manchester Syntax for OWL 1.1]] - a more detailed whitepaper (PDF) including revisions for OWL 1.1.&lt;br /&gt;
* [http://www.w3.org/2007/OWL/wiki/ManchesterSyntax Manchester Syntax for OWL 2] - the official OWL 2 working group note&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=DLQueryTab&amp;diff=6047</id>
		<title>DLQueryTab</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=DLQueryTab&amp;diff=6047"/>
				<updated>2009-06-04T14:57:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Manchester OWL syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DL Query tab =&lt;br /&gt;
&lt;br /&gt;
[[Image:Protege4DLQueryTab.gif|left|thumb]]&lt;br /&gt;
The DL Query tab provides a powerful and easy-to-use feature for searching a classified ontology. It is a standard Protégé 4 plugin, available both as a tab and also as a view widget that can be positioned into any other tab. The query language (''class expression'') supported by the plugin is based on the Manchester OWL syntax, a user-friendly syntax for OWL DL that is fundamentally based on collecting all information about a particular class, property, or individual into a single construct, called a frame.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
&lt;br /&gt;
[[Image:UnclassifiedVsClassifiedOntology.gif|right]]&lt;br /&gt;
&lt;br /&gt;
If the DL Query tab is unavailable in your Protégé workspace, make sure the DL Query item in the Tabs menu is checked. Alternatively, you can add the Query view widget to any other tab by selecting '''View | Misc views | Query''' and then placing the widget anywhere in a layout.&lt;br /&gt;
&lt;br /&gt;
You can only execute a query on a classified ontology. Before attempting to execute a query, run a classifier:&lt;br /&gt;
&lt;br /&gt;
* Ensure that one of the built-in reasoners (a.k.a classifiers) is selected. From the Reasoner menu, select FaCT++ or Pellet. When you first select a reasoner, the active ontology will be classified. You can also select '''Reasoner | Classify...''' to classify again at any time. &lt;br /&gt;
* Validate that your ontology is classified by selecting the Entities tab and then the Inferred Class Hierarchy tab that appears in the class hierarchy view. It should contain classes that sub-class Thing. If you see only the root class, Thing, your ontology may not be classified. Following is an example comparing what an Inferred Class Hierarchy looks like before and after classification.&lt;br /&gt;
&lt;br /&gt;
* Once you've validated that your ontology is classified, you can execute a query.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual query examples ==&lt;br /&gt;
&lt;br /&gt;
[[Image:DLQueryResults.gif|right]]&lt;br /&gt;
[[Image:DLQueryIndividualsOfAClass.gif|right]]&lt;br /&gt;
&lt;br /&gt;
Suppose we have an ontology like this:&lt;br /&gt;
&lt;br /&gt;
* Class:&lt;br /&gt;
** Person &lt;br /&gt;
* Data Properties:&lt;br /&gt;
** hasGivenName&lt;br /&gt;
** hasSurname&lt;br /&gt;
&lt;br /&gt;
And suppose also that we have several hundred instances of class Person in our ontology. To find an individual named &amp;quot;Matthew&amp;quot;, we could enter the following query:&lt;br /&gt;
&lt;br /&gt;
'''hasGivenName value &amp;quot;Matthew&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
But clicking on the execute button may not return any results. We also need to check the &amp;quot;Individuals&amp;quot; option. Any individuals found will then be displayed in the query results as shown below:&lt;br /&gt;
&lt;br /&gt;
The following query would also be valid for the same result:&lt;br /&gt;
&lt;br /&gt;
'''Person and hasGivenName value &amp;quot;Matthew&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We could also show all instances of person by simply providing the class in the query like this:&lt;br /&gt;
&lt;br /&gt;
Of course, these are extremely simple queries; the Manchester syntax is much more capable.&lt;br /&gt;
&lt;br /&gt;
Literal constants can be expressed with type by using ^^ and then the type:&lt;br /&gt;
&lt;br /&gt;
'''hasAge value &amp;quot;21&amp;quot;^^long'''&lt;br /&gt;
&lt;br /&gt;
Or, a more general expression that uses type:&lt;br /&gt;
&lt;br /&gt;
'''hasAge some int'''&lt;br /&gt;
&lt;br /&gt;
Following are just a few more examples to get you going:&lt;br /&gt;
&lt;br /&gt;
'''hasChild some Man'''&lt;br /&gt;
&lt;br /&gt;
'''hasSibling only Woman'''&lt;br /&gt;
&lt;br /&gt;
'''hasCountryOfOrigin value England'''&lt;br /&gt;
&lt;br /&gt;
'''hasChild min 3'''&lt;br /&gt;
&lt;br /&gt;
'''hasChild exactly 3'''&lt;br /&gt;
&lt;br /&gt;
'''hasChild max 3'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Class query examples ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|right|400px]]&lt;br /&gt;
[[Image:Dl-query-lens.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Here are some examples of class queries that can be performed on the [http://www.co-ode.org/ontologies/photography/ ontology of photography] (work in progress).&lt;br /&gt;
&lt;br /&gt;
Firstly, it can be useful to see which things classify &amp;quot;under&amp;quot; this expression.&lt;br /&gt;
&lt;br /&gt;
'''Q: &amp;quot;Which equipment can reduce blur?&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We need to get the subclasses of the expression (or descendants if the hierarchy of equipment is deeper than 1 level):&lt;br /&gt;
  Equipment and reduces some Blur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, we might be interested to see under which existing classes in our hierarchy a given class will classify:&lt;br /&gt;
&lt;br /&gt;
'''Q: &amp;quot;What types of lens is a 35-120mm?&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We need to get the superclasses of the expression:&lt;br /&gt;
  Lens and (hasMinEffectiveFocalLength value 35) and (hasMaxEffectiveFocalLength value 120)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other examples might be:&lt;br /&gt;
&lt;br /&gt;
'''Q: &amp;quot;Which adjustments can I use to increase the exposure without affecting the depth of field&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
We need to get the subclasses of the expression:&lt;br /&gt;
  Adjustment and increases some ExposureLevel and not(affects some DepthOfField)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Saving a query in the ontology ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl_query_add_to_ontology.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
This feature that will be available from build 105 onwards.&lt;br /&gt;
&lt;br /&gt;
The DL Query tab becomes a useful way of testing a definition before creating appropriate classes.&lt;br /&gt;
&lt;br /&gt;
If you find a particular query useful and would like to create a class to represent it you can now select '''Add to ontology'''.&lt;br /&gt;
&lt;br /&gt;
This will create a defined class in the ontology and the dialog allows you to either name it or leave it as [[P4AnonymousClasses|anonymous]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Manchester OWL syntax ==&lt;br /&gt;
&lt;br /&gt;
We have only provided a few simple examples here designed to help you understand how to use the DL Query tab and the Query view widget. To learn more about the Manchester syntax, check out these resources:&lt;br /&gt;
&lt;br /&gt;
* [http://www.co-ode.org/resources/reference/manchester_syntax/ The Manchester Syntax] - describes the syntax for class expressions and is aimed at people who already know the previous Protege-OWL compact class expression syntax.&lt;br /&gt;
* [[media:Owled2008dc_paper_11.pdf‎|Manchester Syntax for OWL 1.1]] - a more detailed whitepaper (PDF) including revisions for OWL 1.1.&lt;br /&gt;
* [http://www.w3.org/2007/OWL/wiki/ManchesterSyntax Manchester syntax OWL 2 spec] - the full OWL2 language&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=CompileProtege4InIntelliJ&amp;diff=6023</id>
		<title>CompileProtege4InIntelliJ</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=CompileProtege4InIntelliJ&amp;diff=6023"/>
				<updated>2009-05-26T14:09:13Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Running */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Setup and Run P4.x in IntelliJ&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the simple steps required to setup P4.x for development in jetbrains [http://www.jetbrains.com/idea/ IntelliJ].&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Check out sources ==&lt;br /&gt;
&lt;br /&gt;
Use an SVN client to checkout the Protege 4 trunk from SVN to a local directory (say ''trunk'').&lt;br /&gt;
    svn co https://smi-protege.stanford.edu/repos/protege/protege4/protege-standalone/trunk/ trunk&lt;br /&gt;
&lt;br /&gt;
If using IntelliJ to checkout the sources and it prompts you to create a new project, select '''No'''.&lt;br /&gt;
&lt;br /&gt;
== Create the IntelliJ project files  ==&lt;br /&gt;
&lt;br /&gt;
Matthew Horridge has created a very easy to use tool to create a nice tidy intelliJ project.&lt;br /&gt;
You can download this from [http://www.co-ode.org/downloads/protege-x/Protege4IntelliJProjectBuilder.jar here].&lt;br /&gt;
&lt;br /&gt;
* Open a command line&lt;br /&gt;
&lt;br /&gt;
* Change directory into ''trunk''&lt;br /&gt;
    cd trunk&lt;br /&gt;
&lt;br /&gt;
* Run the command line tool (notice the current path - dot - is a parameter)&lt;br /&gt;
    java -jar Protege4IntelliJProjectBuilder.jar .&lt;br /&gt;
&lt;br /&gt;
* Open the project in IntelliJ&lt;br /&gt;
&lt;br /&gt;
You should now have a multi-module project containing the various pieces of the core and owl editor, as well as several plugins that are part of the default distribution (DL Query, OWLViz, pellet and FaCT++)&lt;br /&gt;
&lt;br /&gt;
== Building  ==&lt;br /&gt;
&lt;br /&gt;
Build the project the usual way. Some versions of IntelliJ may complain that the directory could not be created. Just try again and it should be built.&lt;br /&gt;
&lt;br /&gt;
Build products are placed into the ''build/dist/equinox directory'', which is in the Protege trunk directory.&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
&lt;br /&gt;
You can add a run configuration by specifying the following settings:&lt;br /&gt;
&lt;br /&gt;
  Main class: '''org.eclipse.core.runtime.adaptor.EclipseStarter'''&lt;br /&gt;
  VM parameters: '''-Dosgi.clean=true'''&lt;br /&gt;
  Working directory: '''&amp;lt;PATH TO PROTEGE TRUNK&amp;gt;/build/dist/equinox'''&lt;br /&gt;
  Use classpath and JDK of module: '''runtime'''&lt;br /&gt;
&lt;br /&gt;
See the screen shot below.  It is particularly important that the working directory is set to be the equinox build directory and that the class path and JDK module be set to runtime.&lt;br /&gt;
&lt;br /&gt;
[[Image:RunP4inIntelliJ.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
On running, if you have errors in your log window, check that a '''logs/''' directory exists in the '''equinox''' directory. If not, create an empty one.&lt;br /&gt;
&lt;br /&gt;
Also, '''log4j.xml''' should exist in the '''equinox''' directory. If it does not then copy it from the root of your source directory.&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=CompileProtege4InIntelliJ&amp;diff=6022</id>
		<title>CompileProtege4InIntelliJ</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=CompileProtege4InIntelliJ&amp;diff=6022"/>
				<updated>2009-05-26T13:12:40Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Setup and Run P4.x in IntelliJ&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes the simple steps required to setup P4.x for development in jetbrains [http://www.jetbrains.com/idea/ IntelliJ].&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Check out sources ==&lt;br /&gt;
&lt;br /&gt;
Use an SVN client to checkout the Protege 4 trunk from SVN to a local directory (say ''trunk'').&lt;br /&gt;
    svn co https://smi-protege.stanford.edu/repos/protege/protege4/protege-standalone/trunk/ trunk&lt;br /&gt;
&lt;br /&gt;
If using IntelliJ to checkout the sources and it prompts you to create a new project, select '''No'''.&lt;br /&gt;
&lt;br /&gt;
== Create the IntelliJ project files  ==&lt;br /&gt;
&lt;br /&gt;
Matthew Horridge has created a very easy to use tool to create a nice tidy intelliJ project.&lt;br /&gt;
You can download this from [http://www.co-ode.org/downloads/protege-x/Protege4IntelliJProjectBuilder.jar here].&lt;br /&gt;
&lt;br /&gt;
* Open a command line&lt;br /&gt;
&lt;br /&gt;
* Change directory into ''trunk''&lt;br /&gt;
    cd trunk&lt;br /&gt;
&lt;br /&gt;
* Run the command line tool (notice the current path - dot - is a parameter)&lt;br /&gt;
    java -jar Protege4IntelliJProjectBuilder.jar .&lt;br /&gt;
&lt;br /&gt;
* Open the project in IntelliJ&lt;br /&gt;
&lt;br /&gt;
You should now have a multi-module project containing the various pieces of the core and owl editor, as well as several plugins that are part of the default distribution (DL Query, OWLViz, pellet and FaCT++)&lt;br /&gt;
&lt;br /&gt;
== Building  ==&lt;br /&gt;
&lt;br /&gt;
Build the project the usual way. Some versions of IntelliJ may complain that the directory could not be created. Just try again and it should be built.&lt;br /&gt;
&lt;br /&gt;
Build products are placed into the ''build/dist/equinox directory'', which is in the Protege trunk directory.&lt;br /&gt;
&lt;br /&gt;
== Running ==&lt;br /&gt;
&lt;br /&gt;
You can add a run configuration by specifying the following settings:&lt;br /&gt;
&lt;br /&gt;
  Main class: '''org.eclipse.core.runtime.adaptor.EclipseStarter'''&lt;br /&gt;
  VM parameters: '''-Dosgi.clean=true'''&lt;br /&gt;
  Working directory: '''&amp;lt;PATH TO PROTEGE TRUNK&amp;gt;/build/dist/equinox'''&lt;br /&gt;
  Use classpath and JDK of module: '''runtime'''&lt;br /&gt;
&lt;br /&gt;
See the screen shot below.  It is particularly important that the working directory is set to be the equinox build directory and that the class path and JDK module be set to runtime.&lt;br /&gt;
&lt;br /&gt;
[[Image:RunP4inIntelliJ.png]]&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=5936</id>
		<title>Protege4Shortcuts</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=5936"/>
				<updated>2009-05-19T13:43:14Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Reasoner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Menu Actions and Keyboard Shortcuts&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of Protege 4.x menu items and keyboard shortcuts.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
All mnemonics are displayed next to the appropriate menu items.&lt;br /&gt;
&lt;br /&gt;
On a mac, the '''Command''' key is used in place of the '''Ctrl''' key.&lt;br /&gt;
&lt;br /&gt;
== File ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-N &lt;br /&gt;
| '''New...'''&lt;br /&gt;
| Create a new ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
| '''Open...'''&lt;br /&gt;
| Open an ontology (and its imports) from a file into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Open recent'''&lt;br /&gt;
| Open a recently worked on ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-O&lt;br /&gt;
| '''Open from URI...'''&lt;br /&gt;
| Open an ontology from the web into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
| '''Save...'''&lt;br /&gt;
| Save any changed open ontologies&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-S&lt;br /&gt;
| '''Save as...'''&lt;br /&gt;
| Save the currently active ontology as a new ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-G&lt;br /&gt;
| '''Gather Ontologies...'''&lt;br /&gt;
| Saves all open ontologies into a single folder (useful for ontologies that have been opened from the web or from other libraries)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export inferred axioms as ontology...'''&lt;br /&gt;
| After classification, save the inferred hierarchy as an ontology. The current ontology source files are unaffected, and the save status of any open ontologies is preserved.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-L&lt;br /&gt;
| '''Ontology Libraries...'''&lt;br /&gt;
| Manage locations for commonly used shared ontologies to reside&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Loaded ontology sources...'''&lt;br /&gt;
| Show a summary of the loaded ontologies showing their physical locations and allowing several actions such as reload, close, navigate to source &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-,&lt;br /&gt;
| [[Protege4Preferences|'''Preferences...''']]&lt;br /&gt;
| Configure behaviour for Protege 4.0&lt;br /&gt;
|''Mac users: preferences are found in the Protege menu''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| '''Check for plugins...'''&lt;br /&gt;
| Use [[EnablePluginAutoUpdate|auto-update]] to find new plugins or updates to existing plugins&lt;br /&gt;
|(from build 112)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
| '''Close'''&lt;br /&gt;
| Close the active workspace and return to the welcome window.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Edit ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
| '''Undo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-Z&lt;br /&gt;
| '''Redo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-X&lt;br /&gt;
| '''Cut'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-C&lt;br /&gt;
| '''Copy'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-V&lt;br /&gt;
| '''Paste'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Backspace&lt;br /&gt;
| '''Delete...'''&lt;br /&gt;
| Delete the last selected element in the focused view. If this is an entity in one of the class/property trees or individual list then it removes every statement that references this entity. If this is an assertion in a description view then it removes that assertion from the ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
| '''Find in view'''&lt;br /&gt;
| Perform a name search in the currently active view (the one that currently has focus - often the last used)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
| '''Create New'''&lt;br /&gt;
| Create a new entity of a type dependant on the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-\&lt;br /&gt;
| '''Create Child'''&lt;br /&gt;
| Create a subclass/subproperty of the current selection in the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-/&lt;br /&gt;
| '''Create Sibling'''&lt;br /&gt;
| Create a subclass/subproperty of the parents of the current selection in the active view (in effect, on the same level as the current selection)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-C&lt;br /&gt;
| '''Duplicate selected class'''&lt;br /&gt;
| Create a copy of the selected class including all asserted superclass and equivalent class axioms (not including annotations)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
| '''Convert to primitive class'''&lt;br /&gt;
| Move all equivalent classes for the currently selected class to superclasses (and split an intersection into separate superclass axioms)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
| '''Convert to defined class'''&lt;br /&gt;
| Move all superclasses for the currently selected class into a new equivalent class (by building an intersection of the superclasses)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Add covering axiom'''&lt;br /&gt;
| Add an equivalent class to the currently selected class containing a union of its subclasses&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Make all individuals distinct...'''&lt;br /&gt;
| Create an allDifferent axiom containing all of the individuals in the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-J&lt;br /&gt;
| '''Make primitive siblings disjoint'''&lt;br /&gt;
| Create an allDisjoint axiom containing the currently selected class and all of its siblings&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-P&lt;br /&gt;
| '''Prefixes...'''&lt;br /&gt;
| Manage renderings of namespaces&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reasoner==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
| '''Classify...'''&lt;br /&gt;
| Compute the inferred class hierarchy (and enable this view if it is in the current tab)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Fact++'''&lt;br /&gt;
| Select a C++ reasoner developed at The University of Manchester&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''None'''&lt;br /&gt;
| Select the default reasoner that does not perform any inference&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Pellet 1.5'''&lt;br /&gt;
| Select a Java reasoner developed by Clark &amp;amp; Parsia (pellet 2 now available)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
Additional tools will depend on which plugins you have installed (eg '''Export OWLDoc...'''). The default tools are shown below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create class hierarchy...'''&lt;br /&gt;
| Enter a tab indented list of classes that will be added to the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Usage'''&lt;br /&gt;
| Display a view showing global usage of the currently selected entity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactor==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
| '''Change entity URI...'''&lt;br /&gt;
| Previously ''Rename...''. Globally change the URI for the selected entity (not the label of the entity)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[Protege4RenameEntities|'''Change multiple entity URIs...''']]&lt;br /&gt;
| Previously ''Rename entities...''. Globally change the URIs for entities by search and replace (does not change the labels of the entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Change ontology URI...&amp;quot;&lt;br /&gt;
| Change the URI for the active ontology (note, this does not change the URIs of any entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert entity URIs to labels'''&lt;br /&gt;
| Changes the fragment of every entity URI into an auto ID and places the original fragment text in a label (using the current [[Protege4Preferences#New_Entities|New Entities preferences]])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert property assertion on class/individual puns to annotations'''&lt;br /&gt;
| Converts any property assertions with a subject which is a pun to an annotation on the class which is punned&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Split subclass axioms'''&lt;br /&gt;
| Splits subclass axioms in the active ontologies into more fine grained axioms.  For example, A subClassOf (B and C) would be split into A subClassOf B, and A subClassOf C&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|'''Amalgamate subclass axioms'''&lt;br /&gt;
| Merges subclass axioms that have a common left hand side.  For example, A subClassOf B, A subClassOf C would be merged into a single subclass axiom, A subClassOf (B and C)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[P4MoveAxioms|'''Copy/move/delete axioms...''']]&lt;br /&gt;
| Previously ''Extract/move axioms''. Select axioms using several different methods. These axioms can then be deleted or moved/copied to an existing or new ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Merge ontologies...'''&lt;br /&gt;
| Merge one or more ontologies into an existing or new ontology&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tabs==&lt;br /&gt;
&lt;br /&gt;
The tabs that are available may be larger depending on which plugins you have installed. The default tabs are below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Active Ontology'''&lt;br /&gt;
| Metadata, imports and metrics for the active ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Entities'''&lt;br /&gt;
| A view of the currently selected class, property or individual (can be used to replace the other entities tabs)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Classes'''&lt;br /&gt;
| A tab specifically for viewing classes&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Object Properties'''&lt;br /&gt;
| A tab specifically for viewing object properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Data Properties'''&lt;br /&gt;
| A tab specifically for viewing data properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Individuals'''&lt;br /&gt;
| A tab specifically for viewing individuals&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''OWLViz'''&lt;br /&gt;
| A graphical representation of the asserted and inferred subclass heirarchy (requires [http://www.graphviz.org Graphviz])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''DL Query'''&lt;br /&gt;
| A tab for querying the reasoner with arbitrary class expressions (the ontology must be classified first)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also options for creating, sharing and managing tabs.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create new tab...'''&lt;br /&gt;
| Create a new empty tab for you to configure&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Delete custom tabs...'''&lt;br /&gt;
| Allows you to remove custom tabs from the menu and workspace (from build 105)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export current tab...'''&lt;br /&gt;
| Share your layout with other users&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Import tab...'''&lt;br /&gt;
| Load layouts that other users have provided&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Save current layout'''&lt;br /&gt;
| Force the current layout to be saved (Will happen on a normal shutdown of Protege)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Reset selected tab to default'''&lt;br /&gt;
| Factory reset for the current tab layout&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
All interface components in a tab are Ontology Views. The views are categorised for ease of navigation. The contents of this menu depend on which plugins you have installed. Selecting a view will allow you to add it to the currently selected tab. You can configure any of your tabs by adding and deleting new views.&lt;br /&gt;
&lt;br /&gt;
For details of how to configure tabs please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|notes on configuring the interface]].&lt;br /&gt;
&lt;br /&gt;
==Window==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-=&lt;br /&gt;
| '''Increase font size'''&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl--&lt;br /&gt;
| '''Decrease font size'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Look &amp;amp; Feel'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Help==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''About'''&lt;br /&gt;
| Version and build numbers for the core system and all installed plugins (please supply these in bug reports - Hint-hint)&lt;br /&gt;
''Mac users: this feature is in the Protege menu''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege Documentation'''&lt;br /&gt;
| Open these pages in your browser&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege-OWL Plugins'''&lt;br /&gt;
| Opens the P4 compatible plugins page in your browser (also see [[EnablePluginAutoUpdate#Plugin_preferences|auto update]])&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=5935</id>
		<title>Protege4Shortcuts</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=5935"/>
				<updated>2009-05-19T13:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Edit */ updated for build112&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Menu Actions and Keyboard Shortcuts&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of Protege 4.x menu items and keyboard shortcuts.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
All mnemonics are displayed next to the appropriate menu items.&lt;br /&gt;
&lt;br /&gt;
On a mac, the '''Command''' key is used in place of the '''Ctrl''' key.&lt;br /&gt;
&lt;br /&gt;
== File ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-N &lt;br /&gt;
| '''New...'''&lt;br /&gt;
| Create a new ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
| '''Open...'''&lt;br /&gt;
| Open an ontology (and its imports) from a file into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Open recent'''&lt;br /&gt;
| Open a recently worked on ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-O&lt;br /&gt;
| '''Open from URI...'''&lt;br /&gt;
| Open an ontology from the web into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
| '''Save...'''&lt;br /&gt;
| Save any changed open ontologies&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-S&lt;br /&gt;
| '''Save as...'''&lt;br /&gt;
| Save the currently active ontology as a new ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-G&lt;br /&gt;
| '''Gather Ontologies...'''&lt;br /&gt;
| Saves all open ontologies into a single folder (useful for ontologies that have been opened from the web or from other libraries)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export inferred axioms as ontology...'''&lt;br /&gt;
| After classification, save the inferred hierarchy as an ontology. The current ontology source files are unaffected, and the save status of any open ontologies is preserved.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-L&lt;br /&gt;
| '''Ontology Libraries...'''&lt;br /&gt;
| Manage locations for commonly used shared ontologies to reside&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Loaded ontology sources...'''&lt;br /&gt;
| Show a summary of the loaded ontologies showing their physical locations and allowing several actions such as reload, close, navigate to source &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-,&lt;br /&gt;
| [[Protege4Preferences|'''Preferences...''']]&lt;br /&gt;
| Configure behaviour for Protege 4.0&lt;br /&gt;
|''Mac users: preferences are found in the Protege menu''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| '''Check for plugins...'''&lt;br /&gt;
| Use [[EnablePluginAutoUpdate|auto-update]] to find new plugins or updates to existing plugins&lt;br /&gt;
|(from build 112)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
| '''Close'''&lt;br /&gt;
| Close the active workspace and return to the welcome window.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Edit ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
| '''Undo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-Z&lt;br /&gt;
| '''Redo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-X&lt;br /&gt;
| '''Cut'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-C&lt;br /&gt;
| '''Copy'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-V&lt;br /&gt;
| '''Paste'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Backspace&lt;br /&gt;
| '''Delete...'''&lt;br /&gt;
| Delete the last selected element in the focused view. If this is an entity in one of the class/property trees or individual list then it removes every statement that references this entity. If this is an assertion in a description view then it removes that assertion from the ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
| '''Find in view'''&lt;br /&gt;
| Perform a name search in the currently active view (the one that currently has focus - often the last used)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
| '''Create New'''&lt;br /&gt;
| Create a new entity of a type dependant on the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-\&lt;br /&gt;
| '''Create Child'''&lt;br /&gt;
| Create a subclass/subproperty of the current selection in the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-/&lt;br /&gt;
| '''Create Sibling'''&lt;br /&gt;
| Create a subclass/subproperty of the parents of the current selection in the active view (in effect, on the same level as the current selection)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-C&lt;br /&gt;
| '''Duplicate selected class'''&lt;br /&gt;
| Create a copy of the selected class including all asserted superclass and equivalent class axioms (not including annotations)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
| '''Convert to primitive class'''&lt;br /&gt;
| Move all equivalent classes for the currently selected class to superclasses (and split an intersection into separate superclass axioms)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
| '''Convert to defined class'''&lt;br /&gt;
| Move all superclasses for the currently selected class into a new equivalent class (by building an intersection of the superclasses)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Add covering axiom'''&lt;br /&gt;
| Add an equivalent class to the currently selected class containing a union of its subclasses&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Make all individuals distinct...'''&lt;br /&gt;
| Create an allDifferent axiom containing all of the individuals in the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-J&lt;br /&gt;
| '''Make primitive siblings disjoint'''&lt;br /&gt;
| Create an allDisjoint axiom containing the currently selected class and all of its siblings&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-P&lt;br /&gt;
| '''Prefixes...'''&lt;br /&gt;
| Manage renderings of namespaces&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reasoner==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
| '''Classify...'''&lt;br /&gt;
| Compute the inferred class hierarchy (and enable this view if it is in the current tab)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Fact++'''&lt;br /&gt;
| Select a C++ reasoner developed at The University of Manchester&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''None'''&lt;br /&gt;
| Select the default reasoner that does not perform any inference&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Pellet'''&lt;br /&gt;
| Select a java reasoner developed by Clark &amp;amp; Parsia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
Additional tools will depend on which plugins you have installed (eg '''Export OWLDoc...'''). The default tools are shown below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create class hierarchy...'''&lt;br /&gt;
| Enter a tab indented list of classes that will be added to the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Usage'''&lt;br /&gt;
| Display a view showing global usage of the currently selected entity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactor==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
| '''Change entity URI...'''&lt;br /&gt;
| Previously ''Rename...''. Globally change the URI for the selected entity (not the label of the entity)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[Protege4RenameEntities|'''Change multiple entity URIs...''']]&lt;br /&gt;
| Previously ''Rename entities...''. Globally change the URIs for entities by search and replace (does not change the labels of the entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Change ontology URI...&amp;quot;&lt;br /&gt;
| Change the URI for the active ontology (note, this does not change the URIs of any entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert entity URIs to labels'''&lt;br /&gt;
| Changes the fragment of every entity URI into an auto ID and places the original fragment text in a label (using the current [[Protege4Preferences#New_Entities|New Entities preferences]])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert property assertion on class/individual puns to annotations'''&lt;br /&gt;
| Converts any property assertions with a subject which is a pun to an annotation on the class which is punned&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Split subclass axioms'''&lt;br /&gt;
| Splits subclass axioms in the active ontologies into more fine grained axioms.  For example, A subClassOf (B and C) would be split into A subClassOf B, and A subClassOf C&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|'''Amalgamate subclass axioms'''&lt;br /&gt;
| Merges subclass axioms that have a common left hand side.  For example, A subClassOf B, A subClassOf C would be merged into a single subclass axiom, A subClassOf (B and C)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[P4MoveAxioms|'''Copy/move/delete axioms...''']]&lt;br /&gt;
| Previously ''Extract/move axioms''. Select axioms using several different methods. These axioms can then be deleted or moved/copied to an existing or new ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Merge ontologies...'''&lt;br /&gt;
| Merge one or more ontologies into an existing or new ontology&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tabs==&lt;br /&gt;
&lt;br /&gt;
The tabs that are available may be larger depending on which plugins you have installed. The default tabs are below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Active Ontology'''&lt;br /&gt;
| Metadata, imports and metrics for the active ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Entities'''&lt;br /&gt;
| A view of the currently selected class, property or individual (can be used to replace the other entities tabs)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Classes'''&lt;br /&gt;
| A tab specifically for viewing classes&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Object Properties'''&lt;br /&gt;
| A tab specifically for viewing object properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Data Properties'''&lt;br /&gt;
| A tab specifically for viewing data properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Individuals'''&lt;br /&gt;
| A tab specifically for viewing individuals&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''OWLViz'''&lt;br /&gt;
| A graphical representation of the asserted and inferred subclass heirarchy (requires [http://www.graphviz.org Graphviz])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''DL Query'''&lt;br /&gt;
| A tab for querying the reasoner with arbitrary class expressions (the ontology must be classified first)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also options for creating, sharing and managing tabs.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create new tab...'''&lt;br /&gt;
| Create a new empty tab for you to configure&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Delete custom tabs...'''&lt;br /&gt;
| Allows you to remove custom tabs from the menu and workspace (from build 105)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export current tab...'''&lt;br /&gt;
| Share your layout with other users&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Import tab...'''&lt;br /&gt;
| Load layouts that other users have provided&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Save current layout'''&lt;br /&gt;
| Force the current layout to be saved (Will happen on a normal shutdown of Protege)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Reset selected tab to default'''&lt;br /&gt;
| Factory reset for the current tab layout&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
All interface components in a tab are Ontology Views. The views are categorised for ease of navigation. The contents of this menu depend on which plugins you have installed. Selecting a view will allow you to add it to the currently selected tab. You can configure any of your tabs by adding and deleting new views.&lt;br /&gt;
&lt;br /&gt;
For details of how to configure tabs please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|notes on configuring the interface]].&lt;br /&gt;
&lt;br /&gt;
==Window==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-=&lt;br /&gt;
| '''Increase font size'''&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl--&lt;br /&gt;
| '''Decrease font size'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Look &amp;amp; Feel'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Help==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''About'''&lt;br /&gt;
| Version and build numbers for the core system and all installed plugins (please supply these in bug reports - Hint-hint)&lt;br /&gt;
''Mac users: this feature is in the Protege menu''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege Documentation'''&lt;br /&gt;
| Open these pages in your browser&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege-OWL Plugins'''&lt;br /&gt;
| Opens the P4 compatible plugins page in your browser (also see [[EnablePluginAutoUpdate#Plugin_preferences|auto update]])&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=5934</id>
		<title>Protege4Shortcuts</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Shortcuts&amp;diff=5934"/>
				<updated>2009-05-19T13:18:19Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* File */ updated for build 112&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Menu Actions and Keyboard Shortcuts&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of Protege 4.x menu items and keyboard shortcuts.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
All mnemonics are displayed next to the appropriate menu items.&lt;br /&gt;
&lt;br /&gt;
On a mac, the '''Command''' key is used in place of the '''Ctrl''' key.&lt;br /&gt;
&lt;br /&gt;
== File ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-N &lt;br /&gt;
| '''New...'''&lt;br /&gt;
| Create a new ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-O&lt;br /&gt;
| '''Open...'''&lt;br /&gt;
| Open an ontology (and its imports) from a file into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Open recent'''&lt;br /&gt;
| Open a recently worked on ontology into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-O&lt;br /&gt;
| '''Open from URI...'''&lt;br /&gt;
| Open an ontology from the web into the current or new workspace&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-S&lt;br /&gt;
| '''Save...'''&lt;br /&gt;
| Save any changed open ontologies&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-S&lt;br /&gt;
| '''Save as...'''&lt;br /&gt;
| Save the currently active ontology as a new ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-G&lt;br /&gt;
| '''Gather Ontologies...'''&lt;br /&gt;
| Saves all open ontologies into a single folder (useful for ontologies that have been opened from the web or from other libraries)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export inferred axioms as ontology...'''&lt;br /&gt;
| After classification, save the inferred hierarchy as an ontology. The current ontology source files are unaffected, and the save status of any open ontologies is preserved.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-L&lt;br /&gt;
| '''Ontology Libraries...'''&lt;br /&gt;
| Manage locations for commonly used shared ontologies to reside&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Loaded ontology sources...'''&lt;br /&gt;
| Show a summary of the loaded ontologies showing their physical locations and allowing several actions such as reload, close, navigate to source &lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-,&lt;br /&gt;
| [[Protege4Preferences|'''Preferences...''']]&lt;br /&gt;
| Configure behaviour for Protege 4.0&lt;br /&gt;
|''Mac users: preferences are found in the Protege menu''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| '''Check for plugins...'''&lt;br /&gt;
| Use [[EnablePluginAutoUpdate|auto-update]] to find new plugins or updates to existing plugins&lt;br /&gt;
|(from build 112)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-W&lt;br /&gt;
| '''Close'''&lt;br /&gt;
| Close the active workspace and return to the welcome window.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Edit ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Z&lt;br /&gt;
| '''Undo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-Z&lt;br /&gt;
| '''Redo'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-X&lt;br /&gt;
| '''Cut'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-C&lt;br /&gt;
| '''Copy'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-V&lt;br /&gt;
| '''Paste'''&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-Backspace&lt;br /&gt;
| '''Delete...'''&lt;br /&gt;
| Delete the most recently selected entity and all references to it&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-F&lt;br /&gt;
| '''Find in view'''&lt;br /&gt;
| Perform a name search in the currently active view (the one that currently has focus - often the last used)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-N&lt;br /&gt;
| '''Create New'''&lt;br /&gt;
| Create a new entity of a type dependant on the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-\&lt;br /&gt;
| '''Create Child'''&lt;br /&gt;
| Create a subclass/subproperty of the current selection in the active view&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-/&lt;br /&gt;
| '''Create Sibling'''&lt;br /&gt;
| Create a subclass/subproperty of the parents of the current selection in the active view (in effect, on the same level as the current selection)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-C&lt;br /&gt;
| '''Duplicate selected class'''&lt;br /&gt;
| Create a copy of the selected class including all asserted superclass and equivalent class axioms (not including annotations)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-P&lt;br /&gt;
| '''Convert to primitive class'''&lt;br /&gt;
| Move all equivalent classes for the currently selected class to superclasses (and split an intersection into separate superclass axioms)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-D&lt;br /&gt;
| '''Convert to defined class'''&lt;br /&gt;
| Move all superclasses for the currently selected class into a new equivalent class (by building an intersection of the superclasses)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Add covering axiom'''&lt;br /&gt;
| Add an equivalent class to the currently selected class containing a union of its subclasses&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Make all individuals distinct...'''&lt;br /&gt;
| Create an allDifferent axiom containing all of the individuals in the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-J&lt;br /&gt;
| '''Make primitive siblings disjoint'''&lt;br /&gt;
| Create an allDisjoint axiom containing the currently selected class and all of its siblings&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Shift-Ctrl-P&lt;br /&gt;
| '''Prefixes...'''&lt;br /&gt;
| Manage renderings of namespaces&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Reasoner==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-R&lt;br /&gt;
| '''Classify...'''&lt;br /&gt;
| Compute the inferred class hierarchy (and enable this view if it is in the current tab)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Fact++'''&lt;br /&gt;
| Select a C++ reasoner developed at The University of Manchester&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''None'''&lt;br /&gt;
| Select the default reasoner that does not perform any inference&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Pellet'''&lt;br /&gt;
| Select a java reasoner developed by Clark &amp;amp; Parsia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
Additional tools will depend on which plugins you have installed (eg '''Export OWLDoc...'''). The default tools are shown below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create class hierarchy...'''&lt;br /&gt;
| Enter a tab indented list of classes that will be added to the ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Usage'''&lt;br /&gt;
| Display a view showing global usage of the currently selected entity&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactor==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Ctrl-U&lt;br /&gt;
| '''Change entity URI...'''&lt;br /&gt;
| Previously ''Rename...''. Globally change the URI for the selected entity (not the label of the entity)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[Protege4RenameEntities|'''Change multiple entity URIs...''']]&lt;br /&gt;
| Previously ''Rename entities...''. Globally change the URIs for entities by search and replace (does not change the labels of the entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Change ontology URI...&amp;quot;&lt;br /&gt;
| Change the URI for the active ontology (note, this does not change the URIs of any entities)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert entity URIs to labels'''&lt;br /&gt;
| Changes the fragment of every entity URI into an auto ID and places the original fragment text in a label (using the current [[Protege4Preferences#New_Entities|New Entities preferences]])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Convert property assertion on class/individual puns to annotations'''&lt;br /&gt;
| Converts any property assertions with a subject which is a pun to an annotation on the class which is punned&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Split subclass axioms'''&lt;br /&gt;
| Splits subclass axioms in the active ontologies into more fine grained axioms.  For example, A subClassOf (B and C) would be split into A subClassOf B, and A subClassOf C&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|'''Amalgamate subclass axioms'''&lt;br /&gt;
| Merges subclass axioms that have a common left hand side.  For example, A subClassOf B, A subClassOf C would be merged into a single subclass axiom, A subClassOf (B and C)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| [[P4MoveAxioms|'''Copy/move/delete axioms...''']]&lt;br /&gt;
| Previously ''Extract/move axioms''. Select axioms using several different methods. These axioms can then be deleted or moved/copied to an existing or new ontology.&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Merge ontologies...'''&lt;br /&gt;
| Merge one or more ontologies into an existing or new ontology&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tabs==&lt;br /&gt;
&lt;br /&gt;
The tabs that are available may be larger depending on which plugins you have installed. The default tabs are below.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Active Ontology'''&lt;br /&gt;
| Metadata, imports and metrics for the active ontology&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Entities'''&lt;br /&gt;
| A view of the currently selected class, property or individual (can be used to replace the other entities tabs)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Classes'''&lt;br /&gt;
| A tab specifically for viewing classes&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Object Properties'''&lt;br /&gt;
| A tab specifically for viewing object properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Data Properties'''&lt;br /&gt;
| A tab specifically for viewing data properties&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Individuals'''&lt;br /&gt;
| A tab specifically for viewing individuals&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''OWLViz'''&lt;br /&gt;
| A graphical representation of the asserted and inferred subclass heirarchy (requires [http://www.graphviz.org Graphviz])&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''DL Query'''&lt;br /&gt;
| A tab for querying the reasoner with arbitrary class expressions (the ontology must be classified first)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also options for creating, sharing and managing tabs.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Create new tab...'''&lt;br /&gt;
| Create a new empty tab for you to configure&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Delete custom tabs...'''&lt;br /&gt;
| Allows you to remove custom tabs from the menu and workspace (from build 105)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Export current tab...'''&lt;br /&gt;
| Share your layout with other users&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Import tab...'''&lt;br /&gt;
| Load layouts that other users have provided&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Save current layout'''&lt;br /&gt;
| Force the current layout to be saved (Will happen on a normal shutdown of Protege)&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''Reset selected tab to default'''&lt;br /&gt;
| Factory reset for the current tab layout&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==View==&lt;br /&gt;
&lt;br /&gt;
All interface components in a tab are Ontology Views. The views are categorised for ease of navigation. The contents of this menu depend on which plugins you have installed. Selecting a view will allow you to add it to the currently selected tab. You can configure any of your tabs by adding and deleting new views.&lt;br /&gt;
&lt;br /&gt;
For details of how to configure tabs please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|notes on configuring the interface]].&lt;br /&gt;
&lt;br /&gt;
==Window==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl-=&lt;br /&gt;
| '''Increase font size'''&lt;br /&gt;
|-&lt;br /&gt;
| Ctrl--&lt;br /&gt;
| '''Decrease font size'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Look &amp;amp; Feel'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Help==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
!width=&amp;quot;100&amp;quot; |&lt;br /&gt;
!width=&amp;quot;150&amp;quot; |&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| '''About'''&lt;br /&gt;
| Version and build numbers for the core system and all installed plugins (please supply these in bug reports - Hint-hint)&lt;br /&gt;
''Mac users: this feature is in the Protege menu''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege Documentation'''&lt;br /&gt;
| Open these pages in your browser&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| '''Protege-OWL Plugins'''&lt;br /&gt;
| Opens the P4 compatible plugins page in your browser (also see [[EnablePluginAutoUpdate#Plugin_preferences|auto update]])&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Features&amp;diff=5932</id>
		<title>Protege4Features</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Features&amp;diff=5932"/>
				<updated>2009-05-15T12:44:46Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* OWL Editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.0 Features&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a short overview of the main features in Protege 4.0.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==GUI Framework==&lt;br /&gt;
* Configurable (persistent) layout of components&lt;br /&gt;
* Creation, import, and export of user configured tabs&lt;br /&gt;
* Multiple alternative views of the same ontology&lt;br /&gt;
* Tear-off and cloning of components&lt;br /&gt;
* Keyboard shortcuts&lt;br /&gt;
* Drag and drop support&lt;br /&gt;
* Lazy loading components/plug-ins for improved speed and memory usage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
* OWL API for OWL 2.0 provides efficient in-memory model&lt;br /&gt;
* Plug-in framework is OSGi compliant Equinox (easily extensible)&lt;br /&gt;
* Generic application framework is separated from OWL Editor Kit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Modularization==&lt;br /&gt;
* Intelligent use of local/global repositories to handle import dependencies&lt;br /&gt;
* Loading of multiple ontologies into a single workspace&lt;br /&gt;
* Switching between ontologies dynamically&lt;br /&gt;
* UI hints for showing in which ontology statements are made&lt;br /&gt;
* Refactoring: merging ontologies and removal of redundant imports&lt;br /&gt;
* Refactoring: moving axioms between ontologies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
* History&lt;br /&gt;
* Global/local find&lt;br /&gt;
* Global usage&lt;br /&gt;
* Hyperlinking in editors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Refactoring Tools==&lt;br /&gt;
* Renaming (including multiple entities)&lt;br /&gt;
* Handling disjoints/different&lt;br /&gt;
* Quick defined class creation&lt;br /&gt;
* Various transforms on restrictions (including covering)&lt;br /&gt;
* Conversion of IDs to labels&lt;br /&gt;
* Moving axioms between ontologies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reasoning Support==&lt;br /&gt;
* Inferred axioms show up in most standard views&lt;br /&gt;
* DL Query tab for testing arbitrary class expressions&lt;br /&gt;
* Direct interface to FaCT++ reasoner&lt;br /&gt;
* Direct interface to Pellet reasoner&lt;br /&gt;
* Reasoners are plug-ins&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OWL Editing==&lt;br /&gt;
* Consistent rendering of ontology entities, using URI fragments or annotation values&lt;br /&gt;
* OWL description parsing (also supports names in annotations)&lt;br /&gt;
* Built-in change support allowing compound changes and undo&lt;br /&gt;
* Autocompletion and expression history&lt;br /&gt;
* Syntax highlighting&lt;br /&gt;
* Auto creation of IDs/labels for new entities&lt;br /&gt;
* SWRL rules editing&lt;br /&gt;
&lt;br /&gt;
==Plug-ins==&lt;br /&gt;
* Highly pluggable architecture with support for [[PluginTypes|lots of different types of plugin]] including views, menu actions, reasoners, preferences, several manager hooks and more&lt;br /&gt;
* [[EnablePluginAutoUpdate|Auto-update]] for notification of new plugins and new versions&lt;br /&gt;
* [[Protege-OWL_4.0|Many plugins available]] including reasoners, matrices, scripting, clouds, existential tree, text mining, explanation, ontology processing, lint test framework, natural language generation and more&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5931</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5931"/>
				<updated>2009-05-15T11:54:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Frame views */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
== Frame views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4frameview.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Many views in the default distribution have a similar look and feel.&lt;br /&gt;
They are a subtitled or categorised list of elements.&lt;br /&gt;
&lt;br /&gt;
The component used is a '''frame list''' and it is discussed here to explain its generic behaviour.&lt;br /&gt;
&lt;br /&gt;
The first thing to notice is that a frame list is broken up into subsections, each with a '''section header''' describing the type of items it contains. All sections that can be added to have a '''+''' button in the header. This button will provide an editor for creating a new item in the section.&lt;br /&gt;
&lt;br /&gt;
Each item in a frame list will generally represent a single statement(axiom) in the ontology.&lt;br /&gt;
The '''buttons''' on the right hand side allow some standard actions (hover over to see the tooltops):&lt;br /&gt;
* '''Annotations''' axiom annotations - this is highlighted with a circle if annotations already exist&lt;br /&gt;
* '''Remove X''' delete this statement from the ontology&lt;br /&gt;
* '''Edit''' open an editor to change this axiom in some way. An edit can also be performed by double clicking on the item.&lt;br /&gt;
&lt;br /&gt;
A combination of asserted and '''inferred''' information can be shown in frame lists. Inferred information is displayed in pale yellow with a dashed border. Inferred axioms cannot be edited or deleted.&lt;br /&gt;
&lt;br /&gt;
If an axiom is asserted, hovering over the item will pop up a tooltip to state which ontology the axiom was asserted in (see right). In addition, axioms that are asserted in the active ontology are highlighted in '''bold'''.&lt;br /&gt;
&lt;br /&gt;
By default, there are several actions in an item's '''context menu''' to manage where the assertion is made. To access the context menu click the right mouse button (mac users may have to first select the item with the left mouse button). The standard actions are:&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
&lt;br /&gt;
A particular frame list may implement additional actions in this menu.&lt;br /&gt;
&lt;br /&gt;
''note to developers: the framelist component is discussed [[P4UiComponentSummary#OWL_Frame_lists|here]]''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Additional entries in the context menu include:&lt;br /&gt;
&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Very much the same as the [[Protege4Views#Description_2|Object property description view]] but range is defined as a datatype and has the appropriate editor and there are no inverses or property chains on data properties.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
The only property characteristic available to data properties is '''functional'''&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Now merged into the [[Protege4Views#Description_3|data property description view]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Members list ===&lt;br /&gt;
&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=P4UiComponentSummary&amp;diff=5930</id>
		<title>P4UiComponentSummary</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=P4UiComponentSummary&amp;diff=5930"/>
				<updated>2009-05-15T11:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* OWL Frame lists */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;P4 Developer Docs: UI Components&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page describes some of the more useful UI components available for P4 developers.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4DevDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
There are many standard UI components, as part of the core Protege framework and more specific components for managing OWL objects in the OWL editor kit.&lt;br /&gt;
&lt;br /&gt;
All UI classes can be found in the following packages:&lt;br /&gt;
* [http://protege.stanford.edu/protege/4.0/docs/api/index.html?org/protege/editor/core/ui/package-summary.html org.protege.editor.core.ui] and its subpackages for core generic ui components&lt;br /&gt;
* [http://protege.stanford.edu/protege/4.0/docs/api/index.html?org/protege/editor/owl/ui/package-summary.html org.protege.editor.owl.ui] and its subpackages for owl specific ui components&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core components ===&lt;br /&gt;
&lt;br /&gt;
==== Actions ====&lt;br /&gt;
&lt;br /&gt;
Create menu items using a plugin mechanism (see [[PluginTypes#EditorKitMenuAction]] for details).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
Display a dialog to the user when an exception needs to be reported.&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.core.ui.error.ErrorLogPanel'''&lt;br /&gt;
&lt;br /&gt;
  ErrorLogPanel.showErrorDialog(Exception e)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Lists ====&lt;br /&gt;
&lt;br /&gt;
Protege-style JLists that have support for sections, and items with buttons on the right hand side for deleting, editing etc&lt;br /&gt;
&lt;br /&gt;
implement: '''org.protege.editor.core.ui.list.MList'''&lt;br /&gt;
&lt;br /&gt;
example: '''org.protege.editor.core.ui.list.RemovableObjectList'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Preferences ====&lt;br /&gt;
&lt;br /&gt;
Create preferences panels for your plugins (see [[PluginTypes#preferencespanel]] for details).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Wizards ====&lt;br /&gt;
&lt;br /&gt;
A dialog with a series of pages to guide the user through a set of tasks with a certain set of steps.&lt;br /&gt;
&lt;br /&gt;
implement: '''org.protege.editor.core.ui.wizard.Wizard'''&lt;br /&gt;
&lt;br /&gt;
example: '''org.protege.editor.owl.ui.ontology.wizard.create.CreateOntologyWizard'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Icons ====&lt;br /&gt;
&lt;br /&gt;
Get a selection of icons that are found in the '''icons/''' folder in the core plugin.&lt;br /&gt;
&lt;br /&gt;
  Icons.getIcon(&amp;quot;error.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Dialogs ====&lt;br /&gt;
&lt;br /&gt;
Provides some handy static dialog/validating dialog (VerifyingOptionPane) creation methods.&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.core.ui.util.JOptionPaneEx'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== NativeBrowserLauncher ====&lt;br /&gt;
&lt;br /&gt;
Show a url in the default native browser for the users OS.&lt;br /&gt;
&lt;br /&gt;
  NativeBrowserLauncher.openURL(String url);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ComponentFactory ====&lt;br /&gt;
&lt;br /&gt;
Provides a series of static methods to create some standard Swing components with Protege default look and feel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== CheckTable ====&lt;br /&gt;
&lt;br /&gt;
A table that supports selection checkboxes in the first column with a &amp;quot;check all&amp;quot; option&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== CheckList ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== File dialogs ====&lt;br /&gt;
&lt;br /&gt;
Provides a number of native file selectors for loading or saving files.&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.core.ui.util.UIUtil'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== FilePathPanel/FileURIPanel ====&lt;br /&gt;
&lt;br /&gt;
An editor with a built in file selection dialog (as used by Open ontology dialogs etc)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== LinkLabel ====&lt;br /&gt;
&lt;br /&gt;
A label that acts like a hyperlink&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== OWL Specific components ===&lt;br /&gt;
&lt;br /&gt;
Many of the OWL components are very specific, but a number can be reused in your own application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Expression Editor ====&lt;br /&gt;
&lt;br /&gt;
A text editor that allows OWL objects to be created.&lt;br /&gt;
It provides content parsing, autocompletion, validation and rendering of existing OWL objects using the&lt;br /&gt;
The type of object that is supported depends on the '''OWLExpressionChecker''' that is provided in the constructor (eg '''OWLDescriptionChecker''').&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.owl.ui.clsdescriptioneditor.ExpressionEditor'''&lt;br /&gt;
&lt;br /&gt;
example of use: '''org.protege.editor.owl.ui.editor.OWLDescriptionExpressionEditor'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWLClassDescriptionEditor ====&lt;br /&gt;
&lt;br /&gt;
A tabbed component that can take any number of '''OWLDescriptionEditor'''s as tabs and can be used to create OWL expressions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWLEntityFindPanel ====&lt;br /&gt;
&lt;br /&gt;
A component that, given another component that implements '''Findable''' will allow a search based on entity name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWL Frame lists ====&lt;br /&gt;
&lt;br /&gt;
See [[Protege4Views#Frame_views|Frame views]] to see what the component looks like.&lt;br /&gt;
&lt;br /&gt;
An extension of MList (see [[#Lists]] above) that contains axioms and provides additional functionality (such as right click items).&lt;br /&gt;
This list is used in all of the default entity description views and others.&lt;br /&gt;
A frame list is initialised with an '''OWLFrame''' that contains sections ('''OWLFrameSection'''s), each of which contains rows ('''OWLFrameSectionRow'''s).&lt;br /&gt;
An example of an '''OWLFrame''' is '''org.protege.editor.owl.ui.frame.OWLClassDescriptionFrame'''&lt;br /&gt;
&lt;br /&gt;
All the work in using a frame list is likely to be in creating/specifying the '''AbstractOWLFrameSection'''s that its frame contains.&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.owl.ui.framelist.OWLFrameList2'''&lt;br /&gt;
&lt;br /&gt;
many examples of OWLFrameSections are available in '''org.protege.editor.owl.ui.frame'''&lt;br /&gt;
&lt;br /&gt;
==== Views ====&lt;br /&gt;
&lt;br /&gt;
Views are implemented as plugins (see [[PluginTypes#ViewComponent]] for more details).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rename entities UI ====&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.owl.ui.rename.RenameEntityPanel'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Renderering / renderers ====&lt;br /&gt;
&lt;br /&gt;
Various string renderers and cell renderers are available in the '''org.protege.editor.owl.ui.renderer''' package.&lt;br /&gt;
You can get renderings for OWLObjects and OWLEntities directly from the OWLModelManager as this will use the cache and also ensures the rendering is consistent with the defaults selected for the rest of P4.&lt;br /&gt;
&lt;br /&gt;
Most components described here already use the OWL cell renderers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWL Entity selectors ====&lt;br /&gt;
&lt;br /&gt;
Selectors for each type of entity are available in the '''org.protege.editor.owl.ui.selector''' package.&lt;br /&gt;
You can get pull up a selector dialog more easily by using [[#UIHelper]].pickOWLClass() etc.&lt;br /&gt;
&lt;br /&gt;
example: org.protege.editor.owl.ui.selector.OWLClassSelectorPanel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWL Icons ====&lt;br /&gt;
&lt;br /&gt;
Same as [[#Icons]] but gets its icon images from the '''icons/''' folder in the owl plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWL object trees ====&lt;br /&gt;
&lt;br /&gt;
Take a hierarchy provider and render a JTree with the correct cell renderer and default protege behaviour.&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.owl.ui.tree.OWLModelManagerTree'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OWLComponentFactory ====&lt;br /&gt;
&lt;br /&gt;
Get selectors and editors for OWL Objects.&lt;br /&gt;
&lt;br /&gt;
This can be retrieved from the '''OWLWorkspace.getOWLComponentFactory()'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== UIHelper ====&lt;br /&gt;
&lt;br /&gt;
Provides many useful static methods.&lt;br /&gt;
&lt;br /&gt;
use: '''org.protege.editor.owl.ui.UIHelper'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Behaviours ==&lt;br /&gt;
&lt;br /&gt;
Many of these behaviours can be added to views/components.&lt;br /&gt;
&lt;br /&gt;
To be documented - for now, search for the interfaces usage.&lt;br /&gt;
&lt;br /&gt;
=== Draggable ===&lt;br /&gt;
&lt;br /&gt;
=== Deleteable/Copyable ===&lt;br /&gt;
&lt;br /&gt;
=== Findable ===&lt;br /&gt;
&lt;br /&gt;
=== CreateNewChild/SiblingTarget ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5929</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5929"/>
				<updated>2009-05-15T11:48:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Frame views */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
== Frame views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4frameview.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Many views in the default distribution have a similar look and feel.&lt;br /&gt;
They are a subtitled or categorised list of elements.&lt;br /&gt;
&lt;br /&gt;
The component used is a '''frame list''' and it is discussed here to explain its generic behaviour.&lt;br /&gt;
&lt;br /&gt;
The first thing to notice is that a frame list is broken up into subsections, each with a '''section header''' describing the type of items it contains. All sections that can be added to have a '''+''' button in the header. This button will provide an editor for creating a new item in the section.&lt;br /&gt;
&lt;br /&gt;
Each item in a frame list will generally represent a single statement(axiom) in the ontology.&lt;br /&gt;
The '''buttons''' on the right hand side allow some standard actions (hover over to see the tooltops):&lt;br /&gt;
* '''Annotations''' axiom annotations - this is in bold if annotations already exist&lt;br /&gt;
* '''Remove X''' delete this statement from the ontology&lt;br /&gt;
* '''Edit''' open an editor to change this axiom in some way. An edit can also be performed by double clicking on the item.&lt;br /&gt;
&lt;br /&gt;
A combination of asserted and '''inferred''' information can be shown in frame lists. Inferred information is displayed in pale yellow with a dashed border. Inferred axioms cannot be edited or deleted.&lt;br /&gt;
&lt;br /&gt;
If an axiom is asserted, hovering over the item will pop up a tooltip to state which ontology the axiom was asserted in (see right). In addition, axioms that are asserted in the active ontology are highlighted in '''bold'''.&lt;br /&gt;
&lt;br /&gt;
By default, there are several actions in an item's '''context menu''' to manage where the assertion is made. To access the context menu click the right mouse button (mac users may have to first select the item with the left mouse button). The standard actions are:&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
&lt;br /&gt;
A particular frame list may implement additional actions in this menu.&lt;br /&gt;
&lt;br /&gt;
''note to developers: the framelist component is discussed [[P4UiComponentSummary#OWL_Frame_lists|here]]''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Additional entries in the context menu include:&lt;br /&gt;
&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Very much the same as the [[Protege4Views#Description_2|Object property description view]] but range is defined as a datatype and has the appropriate editor and there are no inverses or property chains on data properties.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
The only property characteristic available to data properties is '''functional'''&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Now merged into the [[Protege4Views#Description_3|data property description view]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Members list ===&lt;br /&gt;
&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5928</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5928"/>
				<updated>2009-05-15T11:43:22Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Modified frame views and added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
== Frame views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4frameview.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Many views in the default distribution have a similar look and feel.&lt;br /&gt;
They are a subtitled or categorised list of elements.&lt;br /&gt;
&lt;br /&gt;
The component used is a '''frame list''' and it is discussed here to explain its generic behaviour.&lt;br /&gt;
&lt;br /&gt;
The first thing to notice is that a frame list is broken up into subsections, each with a '''section header''' describing the type of items it contains. All sections that can be added to have a '''+''' button in the header. This button will provide an editor for creating a new item in the section.&lt;br /&gt;
&lt;br /&gt;
Each item in a frame list will generally represent a single statement(axiom) in the ontology.&lt;br /&gt;
The buttons on the right hand side allow some standard actions (hover over to see the tooltops):&lt;br /&gt;
* '''Annotations''' axiom annotations - this is in bold if annotations already exist&lt;br /&gt;
* '''Remove X''' delete this statement from the ontology&lt;br /&gt;
* '''Edit''' open an editor to change this axiom in some way. An edit can also be performed by double clicking on the item.&lt;br /&gt;
&lt;br /&gt;
A combination of asserted and '''inferred''' information can be shown in frame lists. Inferred information is displayed in pale yellow with a dashed border. Inferred axioms cannot be edited or deleted.&lt;br /&gt;
&lt;br /&gt;
If the axiom is asserted, hovering over the item will pop up a tooltip to state which ontology the axiom was asserted in (see right). By default , there are several actions in an item's context menu to manage where the assertion is made. To access the context menu click the right mouse button (mac users may have to first select the item with the left mouse button).&lt;br /&gt;
&lt;br /&gt;
The standard actions are:&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
&lt;br /&gt;
A particular frame list may implement additional actions in this menu.&lt;br /&gt;
&lt;br /&gt;
''note to developers: the framelist component is discussed [[P4UiComponentSummary#OWL_Frame_lists|here]]''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Additional entries in the context menu include:&lt;br /&gt;
&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
Very much the same as the [[Protege4Views#Description_2|Object property description view]] but range is defined as a datatype and has the appropriate editor and there are no inverses or property chains on data properties.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
The only property characteristic available to data properties is '''functional'''&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Now merged into the [[Protege4Views#Description_3|data property description view]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Members list ===&lt;br /&gt;
&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frame_views|Frame views]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5927</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5927"/>
				<updated>2009-05-15T11:28:36Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* General views */ added Frame views&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
== Frame views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4frameview.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Many views in the default distribution have a similar look and feel.&lt;br /&gt;
They are a subtitled or categorised list of elements.&lt;br /&gt;
&lt;br /&gt;
The component used is a frame list and it is discussed here to explain its generic behaviour.&lt;br /&gt;
&lt;br /&gt;
The first thing to notice is that a frame list is broken up into subsections, each with a '''section header''' describing the type of items it contains. All sections that can be added to have a '''+''' button in the header. This button will provide an editor for creating a new item in the section.&lt;br /&gt;
&lt;br /&gt;
Each item in a frame list will generally represent a single axiom in the ontology. Hovering over the item will pop up a tooltip to state which ontology the axiom was asserted in (see right). By default , there are several actions in an item's context menu to manage where the assertion is made. To access the context menu click the right mouse button (mac users may have to first select the item with the left mouse button).&lt;br /&gt;
&lt;br /&gt;
The standard actions are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A particular frame list may implement additional actions in this menu.&lt;br /&gt;
&lt;br /&gt;
''note to developers: the framelist component is discussed [[P4UiComponentSummary#OWL_Frame_lists|here]]''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Protege4Views#Frameviews]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
Very much the same as the [[Protege4Views#Description_2|Object property description view]] but range is defined as a datatype and has the appropriate editor and there are no inverses or property chains on data properties.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
The only property characteristic available to data properties is '''functional'''&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Now merged into the [[Protege4Views#Description_3|data property description view]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=File:P4frameview.png&amp;diff=5926</id>
		<title>File:P4frameview.png</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=File:P4frameview.png&amp;diff=5926"/>
				<updated>2009-05-15T11:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: uploaded a new version of &amp;quot;File:P4frameview.png&amp;quot;: P4 frame view showing tooltips and context menu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;P4 frame view&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=File:P4frameview.png&amp;diff=5925</id>
		<title>File:P4frameview.png</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=File:P4frameview.png&amp;diff=5925"/>
				<updated>2009-05-15T11:11:11Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: P4 frame view&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;P4 frame view&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5924</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5924"/>
				<updated>2009-05-15T11:06:07Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Domains and ranges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
Very much the same as the [[Protege4Views#Description_2|Object property description view]] but range is defined as a datatype and has the appropriate editor and there are no inverses or property chains on data properties.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
The only property characteristic available to data properties is '''functional'''&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Now merged into the [[Protege4Views#Description_3|data property description view]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5923</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5923"/>
				<updated>2009-05-15T11:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Data property views */ added descriptions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
Very much the same as the [[Protege4Views#Description_2|Object property description view]] but range is defined as a datatype and has the appropriate editor and there are no inverses or property chains on data properties.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
The only property characteristic available to data properties is '''functional'''&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Now merged into the [[Protege4Views#Description_3|description view].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5922</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5922"/>
				<updated>2009-05-15T10:59:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: Moved object properties section up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5921</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5921"/>
				<updated>2009-05-15T10:57:32Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Object property views */ added descriptions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
Easily distinguishable from the asserted hierarchy as this has a yellow background.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Objectpropdescriptionview.png‎|400px|right]]&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=File:Objectpropdescriptionview.png&amp;diff=5920</id>
		<title>File:Objectpropdescriptionview.png</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=File:Objectpropdescriptionview.png&amp;diff=5920"/>
				<updated>2009-05-15T10:55:31Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: P4 object property description view&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;P4 object property description view&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5919</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5919"/>
				<updated>2009-05-15T10:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Object property views */ added descriptions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
Contains the following sections:&lt;br /&gt;
* '''Domains (intersection)''' if an individual is the '''subject''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Ranges (intersection)''' if an individual is the '''object''' of a relation using this property then it must be a member of this class. Multiple entries are treated as an intersection&lt;br /&gt;
* '''Equivalent object properties''' each entry is equivalent to this property&lt;br /&gt;
* '''Super properties''' this property is a subproperty of each entry in this section&lt;br /&gt;
* '''Inverse properties''' this property is the inverse of each entry in this section&lt;br /&gt;
* '''Disjoint properties''' multiselect can be used in the editor to create a disjoint set including this property&lt;br /&gt;
* '''Property chains''' Allow transitivity across multiple properties. For the currently selected property prop3, the editor syntax is prop1 o prop2 [o ...] -&amp;gt; prop3 which means if '''a prop1 b''' and '''b prop2 c''' then '''a prop3 c'''.&lt;br /&gt;
&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
&lt;br /&gt;
For a description of property characteristics please see [http://www.w3.org/2007/OWL/wiki/Primer#Property_Characteristics w3c OWL property characteristics].&lt;br /&gt;
&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
Domains and ranges have been merged in the description view, but this view is still available.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Once the reasoner has classified this view will show the computed object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5918</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5918"/>
				<updated>2009-05-15T10:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Object properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
Once the reasoner has classified this view will show the computed property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5917</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5917"/>
				<updated>2009-05-15T10:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* Data properties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Displays the hierarchy of data properties based on subPropertyOf assertions.&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
The primary object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
Once the reasoner has classified this view will show the computed property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5916</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5916"/>
				<updated>2009-05-15T10:24:06Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* General class axioms */ added description and screenshot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Generalclassaxioms.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The '''General class axioms''' view displays class axioms that cannot be directly associated with a named class.&lt;br /&gt;
&lt;br /&gt;
eg ''A and (p some B) '''subClassOf''' B and (q some C)''&lt;br /&gt;
&lt;br /&gt;
It will show:&lt;br /&gt;
* '''Equivalent class axioms''' containing no named classes&lt;br /&gt;
* '''Subclass axioms''' where the subclass is anonymous&lt;br /&gt;
* '''Disjoint axioms''' containing named classes&lt;br /&gt;
&lt;br /&gt;
Adding any other axioms in this view will not show up but cause them to be visible in the class description view when the appropriate class is selected. ie you can enter ''A '''subClassOf''' p some B'' but it will show up in the description of A, not in this view.&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
The primary object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
Once the reasoner has classified this view will show the computed property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=File:Generalclassaxioms.png&amp;diff=5915</id>
		<title>File:Generalclassaxioms.png</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=File:Generalclassaxioms.png&amp;diff=5915"/>
				<updated>2009-05-15T10:22:42Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: P4 general class axioms view&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;P4 general class axioms view&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	<entry>
		<id>https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5914</id>
		<title>Protege4Views</title>
		<link rel="alternate" type="text/html" href="https://protegewiki.stanford.edu/index.php?title=Protege4Views&amp;diff=5914"/>
				<updated>2009-05-15T10:06:07Z</updated>
		
		<summary type="html">&lt;p&gt;Nickdrummond: /* OWLViz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;orangeBox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;orangeBoxTitle&amp;quot;&amp;gt;Protege 4.x Views&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This page contains a summary of the default views provided with Protege 4.x, many of which are not visible by default.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back to [[Protege4UserDocs]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Views are the building blocks of the P4 user interface. They can be placed anywhere on any tab and your setup will be persisted across P4 versions.&lt;br /&gt;
&lt;br /&gt;
For notes on how to configure your user interface to include some of these views please see [[Protege4GettingStarted#Reconfigure_the_User_Interface|this section in our quick start guide]].&lt;br /&gt;
&lt;br /&gt;
Views are to be found in the '''View''' menu, and are categorised as below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General views =&lt;br /&gt;
&lt;br /&gt;
Some views are very similar for multiple categories (particularly those for different entity types), and are therefore cross-referenced to here to avoid duplication.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hierarchy views ==&lt;br /&gt;
&lt;br /&gt;
The primary means of navigating around an ontology is the various hierarchy views that are shown on the left of a tab by default.&lt;br /&gt;
&lt;br /&gt;
Selecting an entity in its tree causes a global selection update (making it possible to go back and forward like a web browser). Other views that can show entities of the same type will refresh to display information pertinent to that entity.&lt;br /&gt;
&lt;br /&gt;
Most trees support drag and drop - the effect of which depends on the type of information shown by the tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Annotations views ==&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-class-annotations-view.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Classes, properties, individuals, ontologies and even axioms can be annotated. All of the views look and act the same way.&lt;br /&gt;
&lt;br /&gt;
Clicking '''Add''', double clicking on an existing annotation or clicking its '''edit''' button opens the editor (below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotation editor ===&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-annotation-editor.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Select an annotation URI from the left (or add your own on in the top section if you want).&lt;br /&gt;
&lt;br /&gt;
You can annotate using:&lt;br /&gt;
* '''Constant''' a data value (typed or untyped). If untyped, then you can specify a language.&lt;br /&gt;
* '''Individual''' an existing named individual from the ontology (you can even create one in the editor&lt;br /&gt;
* '''Property values''' an anonymous individual (one that can have properties itself, but is not visible outside the ontology - arguably they should only be visible in this editor)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage views ==&lt;br /&gt;
&lt;br /&gt;
For classes, properties and individuals the usage view shows anywhere in the active ontologies that references the currently selected entity.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-object-property-usage.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
Usage is sorted by referencing entity (where possible) and all expressions are hyperlinked for easy navigation.&lt;br /&gt;
&lt;br /&gt;
This can be particularly useful for finding out how much a particular entity is used in an ontology, or when you want to know where a class has been used as the filler of a restriction for example.&lt;br /&gt;
&lt;br /&gt;
There are additional filters also available to reduce the results:&lt;br /&gt;
&lt;br /&gt;
* '''this''' axioms that pertain to the current selection and are likely to be easily visible in other views. eg when p is selected, functional(p) is hidden unless the '''this''' box is checked&lt;br /&gt;
* '''disjoints''' the number of disjoints can be large (particularly if they are pairwise) and are often not helpful in understanding the use of a property/class so are hidden unless this box is checked&lt;br /&gt;
* '''named sub/superclasses''' (for classes only) this information is easily read off the class hierarchy and a large number of subclasses clutters the usage view so they are hidden unless this box is checked&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Views by category =&lt;br /&gt;
&lt;br /&gt;
== Class views ==&lt;br /&gt;
&lt;br /&gt;
=== Asserted class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Assertedclasshierarchy.png‎|right]]&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted class hierarchy view is one of the primary navigation devices for named OWL classes.&lt;br /&gt;
&lt;br /&gt;
The tree shows the subclass hierarchy that can be obtained from subClassOf assertions in the ontology. Children nodes in the tree are subsumed by their parent nodes. Any classes that do not have an asserted superclass will show up directly under owl:Thing (the root). For convenience, the tree also performs some trivial inferences to allow defined classes to appear in the hierarchy. Classes that have been asserted to be equivalent show up together on the appropriate node in the tree. Cycles are detected and removed.&lt;br /&gt;
&lt;br /&gt;
Classes will show up multiple times in the tree if they have more than one asserted named superclass.&lt;br /&gt;
&lt;br /&gt;
Primitive classes are shown with a simple circle icon. Defined classes are shown with an equivalence symbol in their icon.&lt;br /&gt;
&lt;br /&gt;
Dragging and dropping classes in the hierarchy will cause subclass relations to change (the old subclass relation will be removed and a new one added).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Inferred class hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_class_hierarchy|Asserted class hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
The inferred class hierarchy will be empty unless a reasoner has been selected and the ontology successfully classified.&lt;br /&gt;
&lt;br /&gt;
By default, after classification, the inferred class hierarchy will be brought forward if it is hidden behind another view (as it is by default).&lt;br /&gt;
&lt;br /&gt;
To avoid confusion, it has been made easy to recognise this view by its pale yellow background and the fact that it contains an additional class '''owl:Nothing''' not shown in the asserted class hierarchy. In OWL '''Nothing''' is defined as the empty set - a class that is unsatisfiable. Classes that have been inferred to be unsatisfiable will be marked in red and shown as children of '''Nothing'''.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Classdescription.png|400px|right]]&lt;br /&gt;
&lt;br /&gt;
The class description view is the core of the class editor. A combination of asserted and inferred information is shown in this view. Inferred information in pale yellow with a dashed border.&lt;br /&gt;
&lt;br /&gt;
The sections are&lt;br /&gt;
* '''Equivalent classes''' each entry specifies a named class or expression that is equivalent to the current selected class&lt;br /&gt;
* '''Superclasses''' each entry specifies a named class or expression that is a superclass of the  current selected class&lt;br /&gt;
* '''Inferred anonymous superclasses''' protege searches all ancestors of the selected class and accumulates all of their anonymous superclasses which are then displayed in this section&lt;br /&gt;
* '''Members''' each entry specifies an individual that has this class as its type in a class assertion axiom&lt;br /&gt;
* '''Disjoint classes''' each entry specifies a single disjoint statement. A disjoint statement can contain 2 or more classes (the current selected class is removed from the list for clarity)&lt;br /&gt;
&lt;br /&gt;
Adding or editing '''Equivalent classes''' or '''Superclasses''' invokes a dialog that contains multiple editors. The editors range from a simple tree from which a class can be picked, to restriction creators that help produce simple restrictions with a named filler, to a fully functioning [[Protege4ExpressionEditor|expression editor]]. The editor set is pluggable so developers can add further tool support.&lt;br /&gt;
&lt;br /&gt;
The '''Disjoint classes''' editor gives the choice of a class hierarchy on which multi-select can be performed, or an expression editor where multiple values can be entered by comma separating them.&lt;br /&gt;
&lt;br /&gt;
Many entries in this view can be right clicked (select first, then right click on a mac) for a contextual menu that allows several options depending on the type of thing selected.&lt;br /&gt;
&lt;br /&gt;
* '''Switch to defining ontology''' make the ontology that contains this assertion the active ontology&lt;br /&gt;
* '''Pull into active ontology''' move the assertion into the current active ontology&lt;br /&gt;
* '''Move axiom(s) to ontology''' move the assertion(s) into a specified ontology&lt;br /&gt;
* '''Convert selected rows to defined class''' build an intersection using the selected superclasses and make this class equivalent to the intersection (removing the superclass assertions)&lt;br /&gt;
* '''Create new defined class''' make a new defined class that is equivalent to the selected class&lt;br /&gt;
* '''Create closure axiom''' (if the assertion is ''subclassOf(p some A)'') accumulate all fillers of superclass some restrictions on p (say A, B and C). Add a new superclass - ''p only (A or B or C)'' to close the property p.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Asserted superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
The asserted superclass hierarchy is an inverted tree. With the currently selected class as its root, all children in the tree are asserted superclasses of their parent, right back to owl:Thing at each leaf node.&lt;br /&gt;
&lt;br /&gt;
This can be useful in tracking where multiple superclasses have been asserted (considered bad modelling practice).&lt;br /&gt;
&lt;br /&gt;
=== Inferred superclass hierarchy ===&lt;br /&gt;
&lt;br /&gt;
Also see [[Protege4Views#Hierarchy_views|Hierarchy Views]]&lt;br /&gt;
&lt;br /&gt;
Similar to the [[Protege4Views#Asserted_superclass_hierarchy|Asserted superclass hierarchy]] but using the reasoner to provide a complete view.&lt;br /&gt;
&lt;br /&gt;
=== General class axioms ===&lt;br /&gt;
&lt;br /&gt;
=== OWLViz ===&lt;br /&gt;
&lt;br /&gt;
A graphical tool for visualising and exploring the class hierarchy.&lt;br /&gt;
&lt;br /&gt;
See [[OWLViz]]&lt;br /&gt;
&lt;br /&gt;
=== Anonymous defined classes ===&lt;br /&gt;
An experimental feature not currently available. See this page about [[P4AnonymousClasses#Anonymous_defined_classes_view| anonymous class support]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Anon_classes_view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Data property views ==&lt;br /&gt;
&lt;br /&gt;
=== Data properties ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Individual views ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
=== Individuals ===&lt;br /&gt;
=== Individuals by class ===&lt;br /&gt;
=== Members list ===&lt;br /&gt;
=== Property assertions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Misc views ==&lt;br /&gt;
&lt;br /&gt;
=== Axiom annotations ===&lt;br /&gt;
Inline view for viewing/editing axiom annotations. See [[Protege4AxiomAnnotations#Axiom_Annotations_View|axiom annotations]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:P4-axiom-annotation-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Query ===&lt;br /&gt;
Better known as [[DLQueryTab|DLQuery]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Dl-query-equip-blur.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Selected entity ===&lt;br /&gt;
The basis for the entities tab.&lt;br /&gt;
&lt;br /&gt;
This view contains other views and follows the current selection, whether this is a class. property or individual.&lt;br /&gt;
&lt;br /&gt;
The default layout for each entity type can be seen in the entities tab - you can completely change these and they will be preserved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Manchester syntax entity rendering ===&lt;br /&gt;
Coming in build 105. Manchester syntax rendering for the currently selected entity (for easy cut and paste).&lt;br /&gt;
&lt;br /&gt;
[[Image:Man-syntax-entity-view.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Object property views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== Characteristics ===&lt;br /&gt;
=== Description ===&lt;br /&gt;
=== Domains and ranges ===&lt;br /&gt;
=== Usage ===&lt;br /&gt;
See [[#Usage_views|Usage views]]&lt;br /&gt;
&lt;br /&gt;
=== Object properties ===&lt;br /&gt;
The primary object property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Inferred object property hierarchy ===&lt;br /&gt;
Once the reasoner has classified this view will show the computed property hierarchy.&lt;br /&gt;
&lt;br /&gt;
[[Image:Inf-obj-prop-hierarchy.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology views ==&lt;br /&gt;
&lt;br /&gt;
=== Annotations ===&lt;br /&gt;
See [[#Annotations_views|Annotations views]]&lt;br /&gt;
=== DL metrics ===&lt;br /&gt;
=== Explanation ===&lt;br /&gt;
=== Inferred axioms ===&lt;br /&gt;
=== Navigation subject ===&lt;br /&gt;
=== Navigation view ===&lt;br /&gt;
=== Ontology metrics ===&lt;br /&gt;
=== Rules ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Imported ontologies ===&lt;br /&gt;
=== OWLViz imports graph ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Manchester syntax rendering ===&lt;br /&gt;
=== OWL functional syntax rendering ===&lt;br /&gt;
=== OWL/XML rendering ===&lt;br /&gt;
=== RDF/XML rendering ===&lt;br /&gt;
=== FaCT++ Rendering ===&lt;/div&gt;</summary>
		<author><name>Nickdrummond</name></author>	</entry>

	</feed>