Extending the Plant Disease Ontology
Adding new disease cases in Protégé Desktop
Extending the Plant Disease Ontology
This guide walks you through extending an existing plant disease ontology in Protégé Desktop, using Fusarium Wheat Blast as a practical example.
Prerequisites
- Protégé Desktop (version 5.5.0 or later)
- Basic understanding of OWL ontologies
- The base plant disease ontology file (
plant-disease.owl)
Step 1: Open the Ontology
- Launch Protégé Desktop
- Go to
File > Open...and select yourplant-disease.owlfile - Ensure the “Entities” tab is selected in the main window
Step 2: Add the Pathogen
- In the “Classes” tab, navigate to the
Pathogenclass - Right-click and select
Add subclass... - Name it
Magnaporthe_oryzae - In the “Annotations” tab, add:
rdfs:label: “Magnaporthe oryzae”rdfs:comment: “A plant-pathogenic fungus that causes rice blast and wheat blast diseases”skos:altLabel: “Rice blast fungus”, “Wheat blast fungus”
Step 3: Create the Disease Class
- In the “Classes” tab, navigate to the
Diseaseclass - Right-click and select
Add subclass... - Name it
Fusarium_Wheat_Blast - Add annotations:
rdfs:label: “Wheat Blast”skos:altLabel: “Brusone”rdfs:comment: “A devastating fungal disease of wheat caused by Magnaporthe oryzae Triticum pathotype”
Step 4: Add Symptoms
- In the “Classes” tab, navigate to the
Symptomclass - For each symptom, right-click and select
Add subclass...:Bleached_Spike: “Bleached spike symptoms with white to light gray lesions”Elliptical_Lesions: “Elliptical or diamond-shaped lesions with gray centers”Grain_Abortion: “Partial or complete grain abortion”Leaf_Blast: “Lesions on leaves with dark borders”
Step 5: Define Object Properties
- Go to the “Object Properties” tab
- Ensure these properties exist (create if missing):
causedBy(Domain: Disease, Range: Pathogen)hasSymptom(Domain: Disease, Range: Symptom)affectsPlantPart(Domain: Disease, Range: PlantPart)favoredBy(Domain: Disease, Range: EnvironmentalCondition)managedBy(Domain: Disease, Range: ManagementPractice)treatedWith(Domain: Disease, Range: Pesticide)
Step 6: Add Data Properties
- Go to the “Data Properties” tab
- Ensure these properties exist (create if missing):
scientificName(Range: string)description(Range: string)firstReported(Range: string)occursIn(Range: string)
Step 7: Create Environmental Conditions
- In the “Classes” tab, navigate to
EnvironmentalCondition - Add a new subclass:
Favorable_WheatBlast_Conditions - Add data properties:
hasTemperature: “25°C”hasHumidity: “90%”hasRainfall: “10mm/day”
Step 8: Add Management Practices
- In the “Classes” tab, navigate to
ManagementPractice - Add a new subclass:
WheatBlast_Management - Add instances for each practice:
- “Use of resistant varieties”
- “Fungicide application at booting stage”
- “Crop rotation with non-host crops”
- “Destruction of infected crop residues”
Step 9: Add Chemical Controls
- In the “Classes” tab, navigate to
Fungicide - Add subclasses:
Azoxystrobin(modeOfAction: “QCL”, actionType: “Preventative and curative”)Tebuconazole(modeOfAction: “DMI”, actionType: “Protectant”)
Step 10: Create Relationships
- Go to the “Individuals” tab
- Select
Fusarium_Wheat_Blast - In the “Object Property Assertions” section:
- Add
causedBy:Magnaporthe_oryzae - Add
hasSymptom: Add all symptom individuals - Add
affectsPlantPart: AddSpike,Leaf,Grain - Add
favoredBy:Favorable_WheatBlast_Conditions - Add
managedBy:WheatBlast_Management - Add
treatedWith:Azoxystrobin,Tebuconazole
- Add
Step 11: Add Geographic Distribution
- In the “Classes” tab, navigate to
GeographicDistribution - Add a new subclass:
WheatBlast_Distribution - Add data properties:
occursIn: “South America”, “South Asia”, “Africa”firstReported: “1985”
Step 12: Add References
- In the “Classes” tab, navigate to
ScientificReference - Add a new individual:
WheatBlast_Ref1 - Add data properties:
title: “Wheat Blast: A New Fungal Inhabitant to Bangladesh Threatening World Wheat Production”authors: “Tofazzal Islam, et al.”year: “2016”journal: “Plant Pathology Journal”
Step 13: Run Reasoner
- Go to
Reasonermenu - Select
HermiTorPelletreasoner - Click
Start reasoner - Check for inconsistencies in
Window > Tabs > Ontology views > Ontology metrics
Step 14: Save and Export
- Go to
File > Saveto save in OWL/XML format - Export inferred axioms:
File > Export inferred axioms as ontology... - Save as
plant-disease-inferred.owl
Best Practices for Ontology Extension
- Consistent Naming:
- Use underscores for multi-word names (e.g.,
Wheat_Blast) - Be consistent with case (prefer CamelCase for classes, camelCase for properties)
- Use underscores for multi-word names (e.g.,
- Documentation:
- Always add
rdfs:commentfor important classes and properties - Use
rdfs:labelfor human-readable names - Add
skos:definitionfor formal definitions
- Always add
- Version Control:
- Save major versions with timestamps
- Document changes in an ontology changelog
- Use versionIRI for tracking ontology versions
Exercise: Adding Banana Fusarium Wilt TR4
Using the same process, add “Banana Fusarium Wilt TR4” to the ontology with these characteristics:
- Pathogen:
- Class:
Fungus - Name:
Fusarium_odoratissimum_TR4 - Scientific name: “Fusarium odoratissimum (Fusarium oxysporum f. sp. cubense Tropical Race 4)”
- Class:
- Symptoms:
- Yellowing of older leaves
- Wilting and collapse of leaves
- Reddish-brown vascular discoloration
- Management:
- Use of disease-free planting material
- Soil disinfection
- Quarantine measures
- Distribution:
- Southeast Asia
- Africa
- Middle East
- Latin America
- References:
- Include at least one scientific reference with title, authors, and publication details
Troubleshooting
- Missing Imports:
- If a class isn’t found, check
Active Ontology > Ontology imports - Use
Refactor > Rename entityinstead of manual renaming
- If a class isn’t found, check
- Reasoner Errors:
- Check for circular definitions
- Look for conflicting property characteristics
- Verify domain and range restrictions
- Performance Issues:
- For large ontologies, close unused tabs
- Use incremental reasoning when possible
- Consider using a more powerful reasoner like HermiT