Difference between revisions of "Protege4NamingAndRendering"

From Protege Wiki
Jump to: navigation, search
(Note on naming in OWL ontologies)
(Note on naming in OWL ontologies)
Line 21: Line 21:
 
As URLs with fragments are often used, it is worth quickly explaining the terminology used later on:
 
As URLs with fragments are often used, it is worth quickly explaining the terminology used later on:
  
* '''base URI''' the (leftermost) part of the URI that will likely be common across multiple entities (eg http://www.co-ode.org/ontologies/examples/myont.owl#).
+
* '''base URI''' the (leftermost) part of the URI that will likely be common across multiple entities (eg '''http://www.co-ode.org/ontologies/pizza/pizza.owl#''').
* '''URI fragment''' the part of a URI after the delimiter '''#''' (we often broaden this to include the last path element if no fragment is available).
+
* '''URI fragment''' the part of a URI after the delimiter '''#''' (eg '''Pizza'''). In Protege 4.x, we sometimes broaden this to include the last path element if no fragment is available - particularly for rendering.
  
 
It is common for a base URI to be used across many entities with each having its own unique fragment.
 
It is common for a base URI to be used across many entities with each having its own unique fragment.

Revision as of 06:50, July 28, 2008

Naming and rendering of entities in Protege 4.x

This page describes the various options for naming entities in an ontology.

The functionality on this page will be made available in build 65


Back to Protege4UserDocs


Note on naming in OWL ontologies

OWL, being a semantic web language identifies all named things (entities) uniquely with URIs (Uniform Resource Identifiers).

Examples of URIs include URLs (web addresses), URNs and others.

eg The Pizza class in the pizza ontology is identified by its URI (http://www.co-ode.org/ontologies/pizza/pizza.owl#Pizza)

As URLs with fragments are often used, it is worth quickly explaining the terminology used later on:

  • base URI the (leftermost) part of the URI that will likely be common across multiple entities (eg http://www.co-ode.org/ontologies/pizza/pizza.owl#).
  • URI fragment the part of a URI after the delimiter # (eg Pizza). In Protege 4.x, we sometimes broaden this to include the last path element if no fragment is available - particularly for rendering.

It is common for a base URI to be used across many entities with each having its own unique fragment.

Naming of entities in Protege 4.x

Because URIs will often be fairly long strings, Protege 4.x uses a renderer to show a shortened form of the name.

The renderer can be changed in the preferences and can show the fragment or ending part of the URI, or can show a name provided by an annotation on the entity.

Until build 65, new entities were created with respect to the renderer settings, ie:

  • if the fragment renderer was selected, new entities would be given a URI using the base of the active ontology and a fragment provided by the name the user entered.
  • if the annotation values renderer was selected, new entities would be given:
    • a URI using the base and a "meaningless" numeric fragment provided by the system time
    • an annotation using the preferred URI and language containing the name the user entered

This was not sufficient for several reasons:

  1. the base URI was always the active ontology
  2. the user may not want to automatically create meaningless URIs even if the label renderer was being used
  3. there was no control over the form of the IDs being generated


New entity creation preferences

Picture 2.png

A new set of preferences has been created to separate off the renderer from the creation of new entities.

This gives much more flexibility and control over what gets generated in our ontology.

The pane can be found under File | Preferences... | New Entities To the right is the new pane with default settings when first opened, some of the advanced features disabled.


Default base URI

New entities will be given a URI starting with this base:

  • Active ontology (default) the URI of the currently selected active ontology will always be used as the base URI (with a separator of # added)
  • Specified URI the user can specify a static URI that is always used as the base. If no separator is specified then # will be added


Entity name

Determines what gets used to create the URI of the new entity and what gets placed in an annotation

  • URI fragment new entities will have a URI fragment generated. Must be one or the other of below:
    • User supplied name (default) the string typed in when a new entity is being created
    • Auto ID generated automatically (see below)
  • Create label generate an annotation on the new entities containing the selected name (or ID)


Entity label

Control over which annotations get produced when labels are being generated.

Create label must be selected for either name or ID in order for these options to be available

  • Same as label renderer (default) mimicks the current behaviour, the top preferred rendering annotation URI and language will always be used when generating a label
  • Custom label a static annotation URI and language can be set separately from the renderer preferences


Auto ID

Create a numerical identifier for new entities.

Auto ID must be selected for at least one of the options in Entity name for these options to be available.

  • Numeric (pseudo random) (default) generates an number from the system time (so not currently random at all)
  • Numeric (iterative) generates a sequence of numbers iterating in single steps from the first available (uniqueness only guaranteed for URI fragments)
    • Start the lowest ID that will be allocated
    • End the highest ID that will be allocated (an error will be reported if this is superceded) - set to -1 for no maximum
  • Digit count the length the numeric part of the IDs will be padded/trimmed to - this should always be made big enough to contain the range of IDs you will generate
  • Prefix (recommended) add a string to the start of the generated ID. Macros are available.
    • [type] OWLClass, OWLObjectProperty, etc
    • [user] the name of the current user
  • Suffix add a string to the end of the generated ID. The same macros are available as above.