Table of Contents

Introduction

Protégé is a free, open-source ontology editor that enables users to create, visualize, and manage ontologies in the Web Ontology Language (OWL). It provides a user-friendly graphical interface for building formal knowledge representations that can be used for semantic reasoning and data integration across diverse engineering domains.

Protégé is a critical tool for digital engineering practitioners who need to develop and maintain ontologies for interoperability, data integration, and automated reasoning in complex systems engineering workflows.

Overview

Protégé is a powerful ontology development platform that supports the creation of domain-specific ontologies aligned with top-level ontologies like BFO. It provides a graphical interface for ontology development, making it accessible to both ontology experts and domain specialists who may not be familiar with formal logic or semantic web technologies.

Key features of Protégé include: - Support for OWL2 language with Manchester OWL syntax - Graphical interface for creating simple restrictions - Reasoning capabilities through integrated reasoners - Multiple views and tabs for different ontology development tasks - Import/export capabilities for various ontology formats

Protégé has both desktop and web-based versions, with the desktop version offering more advanced features and plugin support.

Position in Knowledge Hierarchy

Broader concepts: - Part III (is-a)

Details

Protégé Architecture and Components

Protégé is organized into Views and Tabs which can be edited from the Window menu. The default Tabs provide specialized interfaces for different ontology development tasks:

Tab Name

Functionality

Active Ontology

Provides metadata about the ontology, displays imports, supported prefixes, and general class axioms

Entities

Used to edit ontology resources (classes, properties, individuals)

Classes

Displays and edits classes and their relationships

Individuals by class

Displays taxonomy and associated individuals organized by their type

DL Query

Local query engine using Manchester OWL Syntax for querying the ontology

SWRL Tab

Allows creation of Semantic Web Rule Language (SWRL) rules

Protégé Workspace

Protégé maintains the ontology graph in memory, and the loaded ontologies form a workspace. Within that workspace, all resources sharing the same IRI are treated as a singular entity. The workspace is window-specific, meaning that when an ontology is loaded into the same window, it’s loaded into the current workspace, but if opened in a second window, it will be in a separate workspace.

Changes made in a separate workspace to a shared file will be detected by Protégé and imported during the saving process. Be cautious when working with multiple workspaces to avoid unexpected changes.

Reasoning in Protégé

Protégé can call a reasoner in its editor environment and load results back into the ontology. By default, Protégé uses the HermiT reasoner, which supports OWL’s full logic profile. Other reasoners such as Pellet, Elk, and FaCT++ can be downloaded via the "File" dropdown’s "Check for plugins" option.

The reasoner must be active to evaluate DL queries. Once started, it must be manually stopped before editing the ontology further to prevent automatic re-running upon changes.

= Example of reasoning process in Protégé
= 1. Load ontology
= 2. Start reasoner (HermiT)
= 3. Inferred taxonomy becomes available
= 4. Query using DL Query tab
= 5. Stop reasoner before making changes

Practical applications and examples

Step-by-Step: Creating a Simple Ontology in Protégé

This example demonstrates how to create a basic ontology for a catapult system, aligning with the Catapult example from the context.

Make sure to have Protégé installed before starting. Download the latest desktop version from https://protegewiki.stanford.edu/wiki/Main_Page.

Use clear and descriptive names for your classes and properties to ensure readability and maintainability. This is especially important when aligning with SysML models.

Step 1: Create a New Ontology

  1. Launch Protégé

  2. From the File menu, select New

  3. In the New Ontology dialog, choose "OWL 2" as the language

  4. Enter a name for your ontology (e.g., "CatapultOntology")

  5. Click OK to create the new ontology

Step 2: Define the Ontology Metadata

  1. Go to the "Active Ontology" tab

  2. In the "Ontology IRI" field, enter a unique identifier (e.g., http://example.org/catapult)

  3. In the "Version IRI" field, enter a version identifier (e.g., http://example.org/catapult/v1)

  4. Click "Save" to save your ontology

Step 3: Add a Class for the Catapult

  1. Go to the "Classes" tab

  2. Right-click in the classes list and select "Create New Class"

  3. Name the class "Catapult"

  4. Right-click the new class and select "Add Annotation"

  5. In the "Annotation" dialog, select "rdfs:label" and enter "Catapult" as the value

  6. Click "OK" to save the annotation

Step 4: Add a Property for Arm Length

  1. Go to the "Object Properties" or "Data Properties" tab (depending on the type of property)

  2. Right-click and select "Create New Property"

  3. Name the property "hasArmLength"

  4. Right-click the property and select "Add Annotation"

  5. Add a label "Arm Length" and a definition "The length of the catapult’s arm in meters"

  6. Click "OK" to save the property

Step 5: Add a Class for Arm Length

  1. Go to the "Classes" tab

  2. Right-click and select "Create New Class"

  3. Name the class "ArmLength"

  4. Right-click the class and select "Add Annotation"

  5. Add a label "Arm Length" and a definition "The length of the catapult’s arm in meters"

  6. Click "OK" to save the annotation

Step 6: Define the Relationship

  1. Go to the "Classes" tab

  2. Right-click the "Catapult" class and select "Add Restrictions"

  3. Click the "+" button next to "hasArmLength"

  4. In the "Class Expression Editor," select "ArmLength" from the list

  5. Click "OK" to save the restriction

Step 7: Save Your Ontology

  1. Click "File" > "Save" to save your ontology

  2. Choose a location and name (e.g., catapult.owl)

  3. Click "Save" to complete

The ontology you’ve created now defines a Catapult class with a hasArmLength property that links to an ArmLength class. This structure can be aligned with SysML models using stereotypes to represent the ontology concepts in engineering models.

References

Knowledge Graph

Visualize Protégé’s role in the ontology development ecosystem

graph TD A[Protégé] --> B[OWL 2] A --> C[Manchester OWL Syntax] A --> D[Reasoning] D --> E[HermiT] D --> F[Pellet] D --> G[Elk] D --> H[FaCT++] B --> I[Ontology Development] I --> J[Digital Engineering] I --> K[Systems Engineering] I --> L[Model-Based Engineering] J --> M[IoIF] K --> N[SysML] L --> O[MBSE] M --> P[DEFII Framework] N --> Q[Catapult Example] O --> R[Digital Thread]

Associated Diagrams

figure_98.png
figure_163.png
figure_102.png
figure_96.png
figure_108.png
figure_154.png
figure_5.png
figure_65.png
figure_55.png
figure_97.png