Protege Tutorial
Protege Tutorial
Fabio Papacchini
Protégé – What and Where
What is Protégé? (from their webpage)
A free, open-source ontology editor and framework for building
intelligent systems
Protégé is supported by a strong community of academic,
government, and corporate users, who use Protégé to build
knowledge-based solutions in areas as diverse as biomedicine,
e-commerce, and organisational modelling.
Where to get it: http://protege.stanford.edu/
Useful resources
I http:
//mowl-power.cs.man.ac.uk/protegeowltutorial/
resources/ProtegeOWLTutorialP4_v1_3.pdf
NOTE: the manual is for version 4, but the current version is 5.1
I http://protegewiki.stanford.edu/wiki/Main_Page
Protégé – What and Where (cont’d)
Specifically, Protégé is
I a java-based application (multi-platform)
I thought for a variety of people (more than 300 thousands users)
I a GUI to help the editing of ontologies
creation, modification, reasoning, debugging, . . .
Syntax – DL, OWL, Manchester
DL OWL Manchester
https://www.w3.org/TR/owl2-manchester-syntax/
Syntax – DL, OWL, Manchester – Example
DL
Person u ∃hasGender .Male
(= 2 hasWheel.FrontWheel) u (= 2 hasWheel.RearWheel)
OWL (omitting “Object” for succinctness)
IntersectionOf(Person SomeValuesFrom(hasGender Male))
IntersectionOf(ExactCardinality(2 hasWheel FrontWheel)
ExactCardinality(2 hasWheel RearWheel))
Manchester
Person and (hasGender some Male)
(hasWheel exactly 2 FrontWheel) and (hasWheel exactly 2
RearWheel)
Convention
I concept names begin with an uppercase letter
I role names begin with a lowercase letter
I CamelBack notation for both concept and role names
An Ontology about Video Games
Add Subclass
Adding Classes
Make sure to have the “Classes” tab open
Window → Tabs → Classes
Add Sibling
Delete Class
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Game v >
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Game u ValuePartition v ⊥
Game u Genre v ⊥
Game u Platform v ⊥
Adding Class Hierarchies
It allows us to speed up the process of adding classes.
Tools → Create class hierarchy. . .
Delete axiom
Edit axiom
What Now?
What we have. . .
I all non-definable classes
I an initial class hierarchy
I basic (among siblings) disjoint axioms
∃hasPlatform.> v Game
Object Properties (Domain and Range)
Make sure to have the “Object Properties” tab open
Window → Tabs → Object Properties
> v ∀hasPlatform.Platform
Adding Axioms
Which axioms?
I only axioms of the following forms
I A v C (necessary condition for A)
I A ≡ C (sufficient and necessary condition for A – definition)
I for each subclass of NamedGame we need to insert axioms
expressing something like
I Chess can be installed on any platform
I League of Legends is an online game
I DifficultyValuePartition need to be properly defined
(i.e., its values can only be Hard, Normal, or Easy)
I adding definable classes
A v C – Example
Inferred
Reasoning – Visually (Asserted)
Reasoning – Visually (Inferred)
Resources Summary