SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
OOPS! (ONTOLOGY PITFALL SCANNER!):
ON-LINE ONTOLOGY DIAGNOSIS
María Poveda-Villalón
Asunción Gómez-Pérez and Mari Carmen Suárez-Figueroa
Ontology Engineering Group.
Universidad Politécnica de Madrid.
mpoveda@fi.upm.es
Data Quality Tutorial – SEMANTICS 2016
12th September
This work has been partially supportedby the Spanish project"4V:volumen, velocidad, variedad y validez en
la gestión innovadorade datos” (TIN2013-46238-C4-2-R) and theEuropeanproject “Ready4SmartCities - ICT
Roadmap and Data Interoperability for Energy Systems in Smart Cities” (FP7-608711).
OOPS! website: http://oops.linkeddata.es
Twitter account: @OOPSoeg
OOPS!: on-line ontology diagnosis
License
• This work is licensed under the Creative Commons
Attribution – Non Commercial – Share Alike License
• You are free:
• to Share — to copy, distribute and transmit the work
• to Remix — to adapt the work
• Under the following conditions
• Attribution — You must attribute the work by inserting
• “[source http://www.oeg-upm.net/]” at the footer of each reused
slide
• a credits slide stating: “OOPS! (OntOlogy Pitfall Scanner!): on-
line ontology diagnosis” by María Poveda-Villalón, Mari Carmen
Suárez-Figueroa and Asunción Gómez-Pérez ”
• Non-commercial
• Share-Alike
2
OOPS!: on-line ontology diagnosis
Ontology engineering and ontology evaluation
• The correct application of methodologies benefits the ontology quality
• No complete guaranty
3
Ontology evaluation (checking the technical quality
of an ontology against a frame of reference) is a
crucial activity in ontology engineering projects
Ontology diagnosis: identifying parts
of the ontology directly responsible for
incorrectness and incompleteness
1996 1997 ... 2001 2002 2003 20041995 2005 2006 ... 2009 2010
Guide 101 XD
EXtreme
Ontology
RapidOWL
Grüninger
& Fox
On-To-
Knowledge
METHON
TOLOGY
DILIGENT NeOn
O. Development Methodologies Ontology Development Lightweight Approaches
OOPS!: on-line ontology diagnosis
Introduction
4
Ontology Evaluation
Conceptual
Practical
Top level frameworks and definitions
Guidelines and methods
Tools
OOPS!: on-line ontology diagnosis
Top level frameworks and definitions
Guidelines and methods
Tools
Introduction
5
Ontology Evaluation
Conceptual
Practical
• Upper-level ontology engineers
• Deep knowledge in formal logic
and philosophy
OOPS!: on-line ontology diagnosis
Introduction
6
Ontology Evaluation
• Ontology engineers
• Knowledge in
ontological engineering
Conceptual
Practical
Top level frameworks and definitions
Guidelines and methods
Tools
• Upper-level ontology engineers
• Deep knowledge in formal logic
and philosophy
OOPS!: on-line ontology diagnosis
Introduction
7
Ontology Evaluation
• Ontology engineers
• Knowledge in
ontological engineering
Conceptual
Practical
• Upper-level ontology engineers
• Deep knowledge in formal logic
and philosophy
Top level frameworks and definitions
Guidelines and methods
Tools
• Ontology developers
• Domain experts
Target audience
OOPS!: on-line ontology diagnosis
Table of Contents
• Introduction
• Approach
• Pitfall catalogue
• OOPS!
• Future lines of work
8
OOPS!: on-line ontology diagnosis
Iterative process
9
14 piftalls
Manual inspection
Classification:
Ontology Design
Patterns
2009
OOPS!PitfalloriginCatalogue
1st
Compilation
Phase
OOPS!: on-line ontology diagnosis
Manual inspection
Literature review
24 piftalls
Classification:
aspects and errors
in hierarchies
20102nd
14 piftalls
Manual inspection
Classification:
Ontology Design
Patterns
2009
OOPS!PitfalloriginCatalogue
1st
ExtensionCompilation
Phase
Iterative process
10
OOPS!: on-line ontology diagnosis
Manual inspection
Literature review
24 piftalls
Classification:
aspects and errors
in hierarchies
20102nd
14 piftalls
Manual inspection
Classification:
Ontology Design
Patterns
2009
OOPS!PitfalloriginCatalogue
1st
Manual inspection
Literature review
Web User Interface
29 piftalls
Classification:
dimensions in tools
2012
21 pitfalls detected
3rd
ExtensionCompilation Implementation
Phase
Iterative process
11
OOPS!: on-line ontology diagnosis
Manual inspection
Literature review
24 piftalls
Classification:
aspects and errors
in hierarchies
20102nd
14 piftalls
Manual inspection
Classification:
Ontology Design
Patterns
2009
OOPS!PitfalloriginCatalogue
1st
Manual inspection
Literature review
Web User Interface
29 piftalls
Classification:
dimensions in tools
2012
21 pitfalls detected
3rd
Manual inspection
Literature review
Collaborations
Web User Interface
Web Service
40 piftalls
Classification:
aspects and
importance levels
2014
32 pitfalls detected
ExtensionCompilation Implementation Linked Data ext.
4th
Phase
Iterative process
12
OOPS!: on-line ontology diagnosis
Manual inspection
Literature review
Collaborations
Web User Interface
Web Service
41 piftalls
Classification:
aspects and
importance levels
2015
33 pitfalls detected
Quality model
Repair suggestions
5th
Manual inspection
Literature review
24 piftalls
Classification:
aspects and errors
in hierarchies
20102nd
14 piftalls
Manual inspection
Classification:
Ontology Design
Patterns
2009
OOPS!PitfalloriginCatalogue
1st
Manual inspection
Literature review
Web User Interface
29 piftalls
Classification:
dimensions in tools
2012
21 pitfalls detected
3rd
Manual inspection
Literature review
Collaborations
Web User Interface
Web Service
40 piftalls
Classification:
aspects and
importance levels
2014
32 pitfalls detected
RefinementExtensionCompilation Implementation Linked Data ext.
4th
Phase
Iterative process
13
OOPS!: on-line ontology diagnosis
Table of Contents
• Introduction
• Approach
• Pitfall catalogue
• OOPS!
• Future lines of work
14
OOPS!: on-line ontology diagnosis
Disclaimer
• Pitfalls could represent errors
• Pitfalls could lead to errors
• Pitfalls are not always errors depending on:
o modelling decisions taken by the team of developers
o ontology requirements previously set
o application context of the ontology
o the domain of the ontology
15
OOPS!: on-line ontology diagnosis
List of 41 pitfalls
16
P01. Creating polysemous elements
P02. Creating synonyms as classes
P03. Creating the relationship “is” instead ofusing
“rdfs:subClassOf”, “rdf:type” or “owl:sameAs”
P04. Creating unconnected ontology elements
P05. Defining wrong inverse relationships
P06. Including cycles in a class hierarchy
P07. Merging differentconcepts in the same class
P08. Missing annotations
P09. Missing domain information
P10. Missing disjointness
P11. Missing domain or range in properties
P12. Equivalentproperties notexplicitly declared
P13. Inverse relationships notexplicitly declared
P14. Misusing “owl:allValuesFrom”
P15. Using “some not” in place of “not some”
P16. Using a primitive class in place of a defined one
P17. Overspecializing a hierarchy
P18. Overspecializing the domain or range
P19. Defining multiple domains or ranges in properties
P20. Misusing ontology annotations
P21. Using a miscellaneous class
P22. Using differentnaming conventions in the ontology
P23. Duplicating a datatype already provided by the
implementation language
P24. Using recursive definitions
P25. Defining a relationship as inverse to itself
P26. Defining inverse relationships for a symmetric one
P27. Defining wrong equivalentproperties
P28. Defining wrong symmetric relationships
P29. Defining wrong transitive relationships
P30. Equivalentclasses notexplicitly declared
P31. Defining wrong equivalentclasses
P32. Several classes with the same label
P33. Creating a property chain with just one property
P34. Untyped class
P35. Untyped property
P36. URI contains file extension
P37. Ontology not available on the Web
P38. No OWL ontology declaration
P39.Ambiguous namespace
P40. Namespace hijacking
P41. No license declared
OOPS!: on-line ontology diagnosis
Pitfall template
Pitfall template
17
Title Code and title of the pitfall
Importance
level
{Critical | Important | Minor}
Aspects
Ontology evaluation
aspects related to the pitfall
Affects to
{Ontology | [Classes,
Object properties, Datatype
properties]}
Description
Detailed explanation of what the pitfall consists in. This field might contain
references to other approaches.
Example
Graphical representation Natural language description
UML_Ont profile
OWL source
Natural language explanation of the
graphical example or OWL code.
How to solve it
Description of the actions to be taken by ontology engineers in order to solve the
described pitfall.
References* Pointers to related bibliographical references or links to URLs.
* optional
Process
details
Process
details
OOPS!: on-line ontology diagnosis
Assigning importance level
§ Survey to the Semantic Web community
§ For 35 pitfalls (from that point level assigned during description)
§ Participants were asked to mark each pitfall as:
o Critical
o Important
o Minor
o Not a problem (additional)
§ 54 answers:
o 28 experts
o 22 medium confidence
o 4 low confidence
18
According to the negative consequences of each
pitfall in the ontology
OOPS!: on-line ontology diagnosis
Critical (1)
P01. Creating polysemous elements
P03. Creating the relationship “is” instead of using ''rdfs:subClassOf'', ''rdf:type'' or ''owl:sameAs''
P05. Defining wrong inverse relationships
P06. Including cycles in a class hierarchy
P14. Misusing ''owl:allValuesFrom''
P15. Using “some not” in place of “not some”
P16. Using a primitive class in place of a defined one
P19. Defining multiple domains or ranges in properties
P27. Defining wrong equivalent properties
P28. Defining wrong symmetric relationships
P29. Defining wrong transitive relationships
P31. Defining wrong equivalent classes
P37. Ontology not available on the Web
P39. Ambiguous namespace
P40. Namespace hijacking
Important (2)
P10. Missing disjointness
P11. Missing domain or range in properties
P12. Equivalent properties not explicitly declared
P17. Overspecializing a hierarchy
P18. Overspecializing the domain or range
P23. Duplicating a datatype already provided by the
implementation language
P24. Using recursive definitions
P25. Defining a relationship as inverse to itself
P26. Defining inverse relationships for a symmetric one
P30. Equivalent classes not explicitly declared
P34. Untyped class
P35. Untyped property
P38. No OWL ontology declaration
P41. No license declared
Minor (3)
P02. Creating synonyms as classes
P04. Creating unconnected ontology elements
P07. Merging different concepts in the same class
P08. Missing annotations
P09. Missing domain information
P13. Inverse relationships not explicitly declared
P20. Misusing ontology annotations
P21. Using a miscellaneous class
P22. Using different naming conventions in the
ontology
P32. Several classes with the same label
P33. Creating a property chain with just one property
P36. URI contains file extension
Pitfall classification by importance level
19
Phase 2
Phase 1
survey
Phase 1
survey
Phase 2
Phase 1
survey
Phase 2
OOPS!: on-line ontology diagnosis 20
Classifying by ontology evaluation aspects
Structural
Dimension
Usability-profiling
Dimension
Functional Dimension
Ontology Understanding
Ontology Clarity
Ontology Metadata
Modeling Decisions
Requirement
Completeness
Wrong Inference
No Inference
Real World Modelling
or Common Sense
Structural
Dimension
Functional Dimension
Ontology Language
Application Context
Legend
AspectDimension Critical pitfall Important pitfall Minor pitfall * Pitfall appears twice
P05. Defining wrong inverse relationships
P19. Defining multiple domains or ranges in properties
P06. Including cycles in a class hierarchy
P15. Using “some not” in place of “not some”
P18. Overspecializing the domain or range
P27. Defining wrong equivalent properties
P28. Defining wrong symmetric relationships
P29. Defining wrong transitive relationships
P31. Defining wrong equivalent classes
P01. Creating polysemous
elements *
OOPS!: on-line ontology diagnosis 21
Classifying by ontology evaluation aspects
Structural
Dimension
Usability-profiling
Dimension
Functional Dimension
Ontology Understanding
Ontology Clarity
Ontology Metadata
Modeling Decisions
Requirement
Completeness
Wrong Inference
No Inference
Real World Modelling
or Common Sense
Structural
Dimension
Functional Dimension
Ontology Language
Application Context
Legend
AspectDimension Critical pitfall Important pitfall Minor pitfall * Pitfall appears twice
P05. Defining wrong inverse relationships
P19. Defining multiple domains or ranges in properties
P06. Including cycles in a class hierarchy
P15. Using “some not” in place of “not some”
P18. Overspecializing the domain or range
P27. Defining wrong equivalent properties
P28. Defining wrong symmetric relationships
P29. Defining wrong transitive relationships
P31. Defining wrong equivalent classes
P01. Creating polysemous
elements *
P13. Inverse relationships not
explicitly declared
P11. Missing domain or range
in properties
P12. Equivalent properties not
explicitly declared
OOPS!: on-line ontology diagnosis 22
Classifying by ontology evaluation aspects
P05. Defining wrong inverse relationships
P13. Inverse relationships not
explicitly declared
P19. Defining multiple domains or ranges in properties
P24. Using recursive definitions
P09. Missing domain
information *
P07. Merging different
concepts in the same
class
P02. Creating synonyms
as classes
P20. Misusing ontology
annotations
P01. Creating polysemous
elements *
P17. Overspecializing a hierarchy
P03. Creating the relationship “is”
instead of using “rdfs:subClassOf”,
“rdf:type” or “owl:sameAs”
P11. Missing domain or range
in properties
P21. Using a miscellaneous class
P12. Equivalent properties not
explicitly declared
P23. Duplicating a datatype already provided
by the implementation language
P04. Creating unconnected
ontology elements
P06. Including cycles in a class hierarchy
P08. Missing
annotations
P10. Missing disjointness (2)
P14. Misusing “allValuesFrom” P15. Using “some not” in place of “not some”
P16. Using a primitive class in place of a defined one
P18. Overspecializing the domain or range
Ontology Understanding
Modeling Decisions
Requirement
Completeness
Wrong Inference
No Inference
Real World Modelling
or Common Sense
Ontology Clarity
P22. Using different naming
conventions in the ontology
Structural
Dimension
Usability-profiling
Dimension
Functional Dimension
P25. Defining a relationship as inverse to itself
P26. Defining inverse relationships
for a symmetric one
P27. Defining wrong equivalent properties
P28. Defining wrong symmetric relationships
P29. Defining wrong transitive relationships
P30. Equivalent classes not explicitly declared
P31. Defining wrong equivalent classes
P32. Several classes with
the same label
P33. Creating a property chain with just one
property
Ontology Language
P34. Untyped class
P35. Untyped property
P36. URI contains file
extension
Application Context
P37. Ontology not
available on the Web *
P38. No OWL ontology
declaration *
P39. Ambiguous namespace
P40. Namespace hijacking
P41. No license declared
Ontology Metadata
P01. Creating polysemous
elements *
P38. No OWL ontology
declaration *
P37. Ontology not available on the
Web *
Legend
AspectDimension Critical pitfall Important pitfall Minor pitfall * Pitfall appears twice
OOPS!: on-line ontology diagnosis
Detection method template
Detection method template
23
Code Code of the method
Pitfall
cardinality
{1 |N}
Method
addresses
{Ontology | [Classes, Object
properties, Datatype properties]}
Technique
{[Structural pattern matching,
Linguistic analysis,
Specific characteristic search]}
Pitfall
affects to
{Ontology | [Classes, Object
properties, Datatype properties]}
Description
General explanation of what the method consists in based on the pitfall to be detected.
Limitations*
Corner cases or well-known exceptions where the pitfalls are not currently detected.
Patterns
Graphical representation Natural language description
UML_Ont profile
OWL source
Natural language explanation of the pattern.
External resources used*
Pointers to external libraries, systems or resources used within the method
implementation.
* optional
From
pitfall
template
OOPS!: on-line ontology diagnosis
Pitfalls and methods: example P25
24
P25. Defining a relationship as inverse to itself
Title P25. Defining a relationship as inverse to itself
Importance
level
Important
Aspects Modelling decisions Affects to Object properties
Description
A relationship is defined as inverse of itself. In this case, this relationship could have been defined as
owl:SymmetricProperty instead.
Examples
Graphical representation and/or OWL code Natural language description
<<owl:inverseOf>>
<<owl:ObjectProperty>>
hasBorderWith
The graphical example shows the object property
“hasBorderWith”, which has been defined as inverse
of itself by means of the primitive owl:inverseOf.
How to solve it
One should check whether the object property defined as inverse of itself satisfies the following condi-
tion: every time the object property holds between the individuals “a” and “b” it also holds between
“b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using
owl:SymmetricProperty) and the owl:inverseOf statement should be deleted.
While the situation described in this pitfall will not lead to any reasoning problem and it could be
considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the
object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself.
Table 6: P25. Defining a relationship as inverse to itself
Code M1-P25. Detecting relationships inverse to themselves
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to Object properties
Description
This method iterates over the list of object properties included in the ontology.
If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern
A), then a pitfall is flagged.
OOPS!: on-line ontology diagnosis
P25
descriptionTitle P25. Defining a relationship as inverse to itself
Importance
level
Important
Aspects Modelling decisions Affects to Object properties
Description
A relationship is defined as inverse of itself. In this case, this relationship could have been defined as
owl:SymmetricProperty instead.
Examples
Graphical representation and/or OWL code Natural language description
<<owl:inverseOf>>
<<owl:ObjectProperty>>
hasBorderWith
The graphical example shows the object property
“hasBorderWith”, which has been defined as inverse
of itself by means of the primitive owl:inverseOf.
How to solve it
One should check whether the object property defined as inverse of itself satisfies the following condi-
tion: every time the object property holds between the individuals “a” and “b” it also holds between
“b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using
owl:SymmetricProperty) and the owl:inverseOf statement should be deleted.
While the situation described in this pitfall will not lead to any reasoning problem and it could be
considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the
object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself.
Table 6: P25. Defining a relationship as inverse to itself
Code M1-P25. Detecting relationships inverse to themselves
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to Object properties
Description
This method iterates over the list of object properties included in the ontology.
If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern
A), then a pitfall is flagged.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
<<owl:inverseOf>>
<<owl:ObjectProperty>>
objectPropertyS
The graphical pattern shows an object property that
has an owl:inverseOf axiom whose target object
property is the same object property.
Table 7: Detection method proposed for P25
8
Pitfalls and methods: example P25
25
P25. Defining a relationship as inverse to itselfTitle P25. Defining a relationship as inverse to itself
Importance
level
Important
Aspects Modelling decisions Affects to Object properties
Description
A relationship is defined as inverse of itself. In this case, this relationship could have been defined as
owl:SymmetricProperty instead.
Examples
Graphical representation and/or OWL code Natural language description
<<owl:inverseOf>>
<<owl:ObjectProperty>>
hasBorderWith
The graphical example shows the object property
“hasBorderWith”, which has been defined as inverse
of itself by means of the primitive owl:inverseOf.
How to solve it
One should check whether the object property defined as inverse of itself satisfies the following condi-
tion: every time the object property holds between the individuals “a” and “b” it also holds between
“b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using
owl:SymmetricProperty) and the owl:inverseOf statement should be deleted.
While the situation described in this pitfall will not lead to any reasoning problem and it could be
considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the
object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself.
Table 6: P25. Defining a relationship as inverse to itself
Code M1-P25. Detecting relationships inverse to themselves
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to Object properties
Description
This method iterates over the list of object properties included in the ontology.
If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern
A), then a pitfall is flagged.
Title P25. Defining a relationship as inverse to itself
Importanc
level
Aspects Modelling decisions Affects to
Description
A relationship is defined as inverse of itself. In this case, this relationship c
owl:SymmetricProperty instead.
Examples
Graphical representation and/or OWL code Natural langu
<<owl:inverseOf>>
<<owl:ObjectProperty>>
hasBorderWith
The graphical example
“hasBorderWith”, which
of itself by means of the
How to solve it
One should check whether the object property defined as inverse of itself sa
tion: every time the object property holds between the individuals “a” and
“b” and “a”. If the object property does fulfil the condition, it should be de
owl:SymmetricProperty) and the owl:inverseOf statement should be deleted.
While the situation described in this pitfall will not lead to any reasoning
considered a workaround to avoid increasing the ontology expressivity, it is m
object property as symmetric (using owl:SymmetricProperty) instead of as inver
Table 6: P25. Defining a relationship as inverse to
Title P25. Defining a relationship as inverse to itself
Importance
level
Important
Aspects Modelling decisions Affects to Object properties
Description
A relationship is defined as inverse of itself. In this case, this relationship could have been defined as
owl:SymmetricProperty instead.
Examples
Graphical representation and/or OWL code Natural language description
<<owl:inverseOf>>
<<owl:ObjectProperty>>
hasBorderWith
The graphical example shows the object property
“hasBorderWith”, which has been defined as inverse
of itself by means of the primitive owl:inverseOf.
How to solve it
One should check whether the object property defined as inverse of itself satisfies the following condi-
tion: every time the object property holds between the individuals “a” and “b” it also holds between
“b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using
owl:SymmetricProperty) and the owl:inverseOf statement should be deleted.
While the situation described in this pitfall will not lead to any reasoning problem and it could be
considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the
object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself.
Table 6: P25. Defining a relationship as inverse to itself
Code M1-P25. Detecting relationships inverse to themselves
OOPS!: on-line ontology diagnosis
Pitfalls and methods: example P25
26
M1-P25. Detecting relationships inverse to themselvesP25
description
While the situation described in this pitfall will not lead to any reasoning problem and it could be
considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the
object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself.
Table 6: P25. Defining a relationship as inverse to itself
Code M1-P25. Detecting relationships inverse to themselves
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to Object properties
Description
This method iterates over the list of object properties included in the ontology.
If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern
A), then a pitfall is flagged.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
<<owl:inverseOf>>
<<owl:ObjectProperty>>
objectPropertyS
The graphical pattern shows an object property that
has an owl:inverseOf axiom whose target object
property is the same object property.
Table 7: Detection method proposed for P25
Title P25. Defining a relationship as inverse to itself
Importance
level
Important
Aspects Modelling decisions Affects to Object properties
Description
A relationship is defined as inverse of itself. In this case, this relationship could have been defined as
owl:SymmetricProperty instead.
Examples
Graphical representation and/or OWL code Natural language description
<<owl:inverseOf>>
<<owl:ObjectProperty>>
hasBorderWith
The graphical example shows the object property
“hasBorderWith”, which has been defined as inverse
of itself by means of the primitive owl:inverseOf.
How to solve it
One should check whether the object property defined as inverse of itself satisfies the following condi-
tion: every time the object property holds between the individuals “a” and “b” it also holds between
“b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using
owl:SymmetricProperty) and the owl:inverseOf statement should be deleted.
While the situation described in this pitfall will not lead to any reasoning problem and it could be
considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the
object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself.
Table 6: P25. Defining a relationship as inverse to itself
Code M1-P25. Detecting relationships inverse to themselves
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to Object properties
Description
This method iterates over the list of object properties included in the ontology.
If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern
A), then a pitfall is flagged.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
<<owl:inverseOf>>
<<owl:ObjectProperty>>
objectPropertyS
The graphical pattern shows an object property that
has an owl:inverseOf axiom whose target object
property is the same object property.
Table 7: Detection method proposed for P25
8
OOPS!: on-line ontology diagnosis
Pitfalls and methods: example P19
27
P19. Defining multiple domains or ranges in properties
Title
P19. Defining multiple domains or ranges in proper-
ties
Importance
level
Critical
Aspects Wrong inference Affects to
Object properties
Datatype properties
Description
The domain or range (or both) of a property (relationships and attributes) is defined by stating more than
one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed,
but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf.
This pitfall is related to the common error that appears when defining domains and ranges described in [2].
Examples
Graphical representation and/or OWL code Natural language description
Event
Nation
<<owl:ObjectProperty>>
takesPlaceIn
<<rdfs:domain>>
<<rdfs:range>>
City
<<rdfs:range>>
The graphical example shows an object property,
“takesPlacesIn”, whose domain is the class “Event”
and whose range is defined as “City” and as “Na-
tion”. As the range of the relationship is interpreted
as an intersection, whenever an individual appears as
object in such relationship, it will be classified both
as instance of “City” and “Nation”. This situation
is probably not intended by the developer, since the
intersection of “City” and “Nation” is the empty set.
How to solve it
If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype
property, check:
For domains:
(a) For each object or datatype property with multiple domains in the ontology, we recommend answering
the following question “Does every individual in the domain of the given property necessarily belong
to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the
classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set
this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations.
For ranges:
(a) For each object property with multiple ranges in the ontology, we recommend answering the following
question “Does every individual in the range of the given object property necessarily belong to each and
every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that
appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of
classes as the range of the property and (b) remove the initial rdfs:range declarations.
(b) For each datatype property with multiple domains in the ontology, we recommend including at most
one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in
[1] to select such datatype. If there is more than one plausible candidate, find their lowest common
ancestor and set it as the range of the datatype property.
References
[1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes
[2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang,
H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common
errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web,
pages 63-81. Springer.
OOPS!: on-line ontology diagnosis
P19
descriptionTitle
P19. Defining multiple domains or ranges in proper-
ties
Importance
level
Critical
Aspects Wrong inference Affects to
Object properties
Datatype properties
Description
The domain or range (or both) of a property (relationships and attributes) is defined by stating more than
one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed,
but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf.
This pitfall is related to the common error that appears when defining domains and ranges described in [2].
Examples
Graphical representation and/or OWL code Natural language description
Event
Nation
<<owl:ObjectProperty>>
takesPlaceIn
<<rdfs:domain>>
<<rdfs:range>>
City
<<rdfs:range>>
The graphical example shows an object property,
“takesPlacesIn”, whose domain is the class “Event”
and whose range is defined as “City” and as “Na-
tion”. As the range of the relationship is interpreted
as an intersection, whenever an individual appears as
object in such relationship, it will be classified both
as instance of “City” and “Nation”. This situation
is probably not intended by the developer, since the
intersection of “City” and “Nation” is the empty set.
How to solve it
If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype
property, check:
For domains:
(a) For each object or datatype property with multiple domains in the ontology, we recommend answering
the following question “Does every individual in the domain of the given property necessarily belong
to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the
classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set
this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations.
For ranges:
(a) For each object property with multiple ranges in the ontology, we recommend answering the following
question “Does every individual in the range of the given object property necessarily belong to each and
every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that
appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of
classes as the range of the property and (b) remove the initial rdfs:range declarations.
(b) For each datatype property with multiple domains in the ontology, we recommend including at most
one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in
[1] to select such datatype. If there is more than one plausible candidate, find their lowest common
ancestor and set it as the range of the datatype property.
References
[1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes
[2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang,
H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common
errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web,
pages 63-81. Springer.
Table 3: P19. Defining multiple domains or ranges in properties
5
Pitfalls and methods: example P19
28
P19. Defining multiple domains or ranges in properties
Title
P19. Defining multiple domains or ranges in proper-
ties
Importance
level
Critical
Aspects Wrong inference Affects to
Object properties
Datatype properties
Description
The domain or range (or both) of a property (relationships and attributes) is defined by stating more than
one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed,
but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf.
This pitfall is related to the common error that appears when defining domains and ranges described in [2].
Examples
Graphical representation and/or OWL code Natural language description
The graphical example shows an object property,
“takesPlacesIn”, whose domain is the class “Event”
and whose range is defined as “City” and as “Na-
tion”. As the range of the relationship is interpreted
as an intersection, whenever an individual appears as
object in such relationship, it will be classified both
as instance of “City” and “Nation”. This situation
is probably not intended by the developer, since the
intersection of “City” and “Nation” is the empty set.
How to solve it
If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype
property, check:
For domains:
(a) For each object or datatype property with multiple domains in the ontology, we recommend answering
the following question “Does every individual in the domain of the given property necessarily belong
Title
P19. Defining multiple domains or ranges in proper-
ties
Importance
level
Critical
Aspects Wrong inference Affects to
Object properties
Datatype properties
Description
The domain or range (or both) of a property (relationships and attributes) is defined by stating more than
one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed,
but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf.
This pitfall is related to the common error that appears when defining domains and ranges described in [2].
Examples
Graphical representation and/or OWL code Natural language description
Event
Nation
<<owl:ObjectProperty>>
takesPlaceIn
<<rdfs:domain>>
<<rdfs:range>>
City
<<rdfs:range>>
The graphical example shows an object property,
“takesPlacesIn”, whose domain is the class “Event”
and whose range is defined as “City” and as “Na-
tion”. As the range of the relationship is interpreted
as an intersection, whenever an individual appears as
object in such relationship, it will be classified both
as instance of “City” and “Nation”. This situation
is probably not intended by the developer, since the
intersection of “City” and “Nation” is the empty set.
How to solve it
If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype
property, check:
For domains:
(a) For each object or datatype property with multiple domains in the ontology, we recommend answering
OOPS!: on-line ontology diagnosis
P19
description
Pitfalls and methods: example P19
29
M1-P19. Detecting multiple domains or ranges in object properties
Title
P19. Defining multiple domains or ranges in proper-
ties
Importance
level
Critical
Aspects Wrong inference Affects to
Object properties
Datatype properties
Description
The domain or range (or both) of a property (relationships and attributes) is defined by stating more than
one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed,
but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf.
This pitfall is related to the common error that appears when defining domains and ranges described in [2].
Examples
Graphical representation and/or OWL code Natural language description
Event
Nation
<<owl:ObjectProperty>>
takesPlaceIn
<<rdfs:domain>>
<<rdfs:range>>
City
<<rdfs:range>>
The graphical example shows an object property,
“takesPlacesIn”, whose domain is the class “Event”
and whose range is defined as “City” and as “Na-
tion”. As the range of the relationship is interpreted
as an intersection, whenever an individual appears as
object in such relationship, it will be classified both
as instance of “City” and “Nation”. This situation
is probably not intended by the developer, since the
intersection of “City” and “Nation” is the empty set.
How to solve it
If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype
property, check:
For domains:
(a) For each object or datatype property with multiple domains in the ontology, we recommend answering
the following question “Does every individual in the domain of the given property necessarily belong
to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the
classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set
this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations.
For ranges:
(a) For each object property with multiple ranges in the ontology, we recommend answering the following
question “Does every individual in the range of the given object property necessarily belong to each and
every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that
appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of
classes as the range of the property and (b) remove the initial rdfs:range declarations.
(b) For each datatype property with multiple domains in the ontology, we recommend including at most
one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in
[1] to select such datatype. If there is more than one plausible candidate, find their lowest common
ancestor and set it as the range of the datatype property.
References
[1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes
[2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang,
H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common
errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web,
pages 63-81. Springer.
Table 3: P19. Defining multiple domains or ranges in properties
5
Code M1-P19. Detecting multiple domains or ranges in object properties
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to
Object properties
Datatype properties
Description
This method iterates over the list of object properties included in the ontology.
If an object property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms
refer to do not match, then a pitfall is flagged.
If an object property has more than one rdfs:range axiom (pattern B) and the classes the range axioms
refer to do not match, then a pitfall is flagged.
The method checks if the multiple classes declared as domain or range are the same class or equiva-
lent classes. If class restrictions apply, the method checks whether they are syntactically equivalent.
Limitations
The method does not check if two different class restrictions or anonymous classes logically represent identical
sets of individuals.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
ClassA ClassB
<<owl:ObjectProperty>>
objectPropertyS
<<rdfs:domain>> <<rdfs:domain>>
The graphical pattern shows an object property that
has two rdfs:domain axioms defined.
Pattern B:
ClassA ClassB
<<owl:ObjectProperty>>
objectPropertyS
<<rdfs:range>> <<rdfs:range>>
The graphical pattern shows an object property that
has two rdfs:range axioms defined.
Table 1: Detection method 1 proposed for P19
M2-P19. Detecting multiple domains or ranges in datatype properties
Code M2-P19. Detecting multiple domains or ranges in datatype properties
Pitfall
cardinality
N Method addresses Datatype properties
Technique Structural pattern matching Pitfall affects to
Object properties
Datatype properties
Description
This method iterates over the list of datatype properties included in the ontology.
If a datatype property has more than one rdfs:domain axiom (pattern A) and the classes the domain
axioms refer to do not match, then a pitfall is flagged.
If a datatype property has more than one rdfs:range axiom (pattern B) and the datatypes the range
axioms refer to are not the same one, then a pitfall is flagged.
The method checks if the multiple classes declared as domain are the same class or equivalent classes. If
class restrictions apply, the method checks whether they are syntactically equivalent.
Limitations
The method does not check if two different class restrictions or anonymous classes logically represent identical
sets of individuals.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
ClassA ClassB
<<owl:DatatypeProperty>>
datatypePropertyS
<<rdfs:domain>><<rdfs:domain>>
The graphical pattern shows a datatype property
that has two rdfs:domain axioms defined.
Pattern B:
<<primitive>>
xsd:datatype1
<<owl:DatatypeProperty>>
datatypePropertyS
<<rdfs:range>> <<rdfs:range>>
<<primitive>>
xsd:datatype2 The graphical pattern shows a datatype property
that has two rdfs:range axioms defined.
Table 5: Detection method 2 proposed for P19
OOPS!: on-line ontology diagnosis
M1-P19
M2-P19
Code M1-P19. Detecting multiple domains or ranges in object properties
Pitfall
cardinality
N Method addresses Object properties
Technique Structural pattern matching Pitfall affects to
Object properties
Datatype properties
Description
This method iterates over the list of object properties included in the ontology.
If an object property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms
refer to do not match, then a pitfall is flagged.
If an object property has more than one rdfs:range axiom (pattern B) and the classes the range axioms
refer to do not match, then a pitfall is flagged.
The method checks if the multiple classes declared as domain or range are the same class or equiva-
lent classes. If class restrictions apply, the method checks whether they are syntactically equivalent.
Limitations
The method does not check if two different class restrictions or anonymous classes logically represent identical
sets of individuals.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
ClassA ClassB
<<owl:ObjectProperty>>
objectPropertyS
<<rdfs:domain>> <<rdfs:domain>>
The graphical pattern shows an object property that
has two rdfs:domain axioms defined.
Pattern B:
ClassA ClassB
<<owl:ObjectProperty>>
objectPropertyS
<<rdfs:range>> <<rdfs:range>>
The graphical pattern shows an object property that
has two rdfs:range axioms defined.
Table 1: Detection method 1 proposed for P19
1
Pitfalls and methods: example P19
30
Title
P19. Defining multiple domains or ranges in proper-
ties
Importance
level
Critical
Aspects Wrong inference Affects to
Object properties
Datatype properties
Description
The domain or range (or both) of a property (relationships and attributes) is defined by stating more than
one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed,
but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf.
This pitfall is related to the common error that appears when defining domains and ranges described in [2].
Examples
Graphical representation and/or OWL code Natural language description
Event
Nation
<<owl:ObjectProperty>>
takesPlaceIn
<<rdfs:domain>>
<<rdfs:range>>
City
<<rdfs:range>>
The graphical example shows an object property,
“takesPlacesIn”, whose domain is the class “Event”
and whose range is defined as “City” and as “Na-
tion”. As the range of the relationship is interpreted
as an intersection, whenever an individual appears as
object in such relationship, it will be classified both
as instance of “City” and “Nation”. This situation
is probably not intended by the developer, since the
intersection of “City” and “Nation” is the empty set.
How to solve it
If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype
property, check:
For domains:
(a) For each object or datatype property with multiple domains in the ontology, we recommend answering
the following question “Does every individual in the domain of the given property necessarily belong
to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the
classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set
this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations.
For ranges:
(a) For each object property with multiple ranges in the ontology, we recommend answering the following
question “Does every individual in the range of the given object property necessarily belong to each and
every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that
appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of
classes as the range of the property and (b) remove the initial rdfs:range declarations.
(b) For each datatype property with multiple domains in the ontology, we recommend including at most
one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in
[1] to select such datatype. If there is more than one plausible candidate, find their lowest common
ancestor and set it as the range of the datatype property.
References
[1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes
[2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang,
H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common
errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web,
pages 63-81. Springer.
Table 3: P19. Defining multiple domains or ranges in properties
5
M1-P19. Detecting multiple domains or ranges in object properties
M2-P19. Detecting multiple domains or ranges in datatype properties
Code M2-P19. Detecting multiple domains or ranges in datatype properties
Pitfall
cardinality
N Method addresses Datatype properties
Technique Structural pattern matching Pitfall affects to
Object properties
Datatype properties
Description
This method iterates over the list of datatype properties included in the ontology.
If a datatype property has more than one rdfs:domain axiom (pattern A) and the classes the domain
axioms refer to do not match, then a pitfall is flagged.
If a datatype property has more than one rdfs:range axiom (pattern B) and the datatypes the range
axioms refer to are not the same one, then a pitfall is flagged.
The method checks if the multiple classes declared as domain are the same class or equivalent classes. If
class restrictions apply, the method checks whether they are syntactically equivalent.
Limitations
The method does not check if two different class restrictions or anonymous classes logically represent identical
sets of individuals.
Patterns
Graphical representation and/or OWL code Natural language description
Pattern A:
ClassA ClassB
<<owl:DatatypeProperty>>
datatypePropertyS
<<rdfs:domain>><<rdfs:domain>>
The graphical pattern shows a datatype property
that has two rdfs:domain axioms defined.
Pattern B:
<<primitive>>
xsd:datatype1
<<owl:DatatypeProperty>>
datatypePropertyS
<<rdfs:range>> <<rdfs:range>>
<<primitive>>
xsd:datatype2 The graphical pattern shows a datatype property
that has two rdfs:range axioms defined.
Table 5: Detection method 2 proposed for P19
M1-P19. Detecting multiple domains or ranges in object properties
N Method addresses Object properties
Structural pattern matching Pitfall affects to
Object properties
Datatype properties
Description
iterates over the list of object properties included in the ontology.
property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms
ot match, then a pitfall is flagged.
property has more than one rdfs:range axiom (pattern B) and the classes the range axioms
ot match, then a pitfall is flagged.
checks if the multiple classes declared as domain or range are the same class or equiva-
If class restrictions apply, the method checks whether they are syntactically equivalent.
Limitations
does not check if two different class restrictions or anonymous classes logically represent identical
duals.
Patterns
al representation and/or OWL code Natural language description
ClassB
wl:ObjectProperty>>
bjectPropertyS
>> <<rdfs:domain>>
The graphical pattern shows an object property that
has two rdfs:domain axioms defined.
ClassB
wl:ObjectProperty>>
objectPropertyS
>> <<rdfs:range>>
The graphical pattern shows an object property that
has two rdfs:range axioms defined.
refer to do not match, then a pitfall is flagged.
If an object property has more than one rdfs:range axiom
refer to do not match, then a pitfall is flagged.
The method checks if the multiple classes declared as do
lent classes. If class restrictions apply, the method checks w
Limitations
The method does not check if two different class restrictions o
sets of individuals.
Patterns
Graphical representation and/or OWL code
Pattern A:
ClassA ClassB
<<owl:ObjectProperty>>
objectPropertyS
<<rdfs:domain>> <<rdfs:domain>>
The
has t
Pattern B:
ClassA ClassB
<<owl:ObjectProperty>>
objectPropertyS
<<rdfs:range>> <<rdfs:range>>
The
has t
Table 1: Detection method 1
1
M2-P19. Detecting multiple domains or ranges in datatype properties
N Method addresses Datatype properties
Structural pattern matching Pitfall affects to
Object properties
Datatype properties
Description
iterates over the list of datatype properties included in the ontology.
e property has more than one rdfs:domain axiom (pattern A) and the classes the domain
to do not match, then a pitfall is flagged.
e property has more than one rdfs:range axiom (pattern B) and the datatypes the range
to are not the same one, then a pitfall is flagged.
checks if the multiple classes declared as domain are the same class or equivalent classes. If
ons apply, the method checks whether they are syntactically equivalent.
Code M2-P19. Detecting multiple domains or rang
Pitfall
cardinality
N Meth
Technique Structural pattern matching Pitfa
Description
This method iterates over the list of datatype properties inc
If a datatype property has more than one rdfs:domain ax
axioms refer to do not match, then a pitfall is flagged.
If a datatype property has more than one rdfs:range axi
axioms refer to are not the same one, then a pitfall is flagge
The method checks if the multiple classes declared as dom
class restrictions apply, the method checks whether they are
Limitations
The method does not check if two different class restrictions o
sets of individuals.
Patterns
Graphical representation and/or OWL code
Pattern A:
ClassA ClassB
<<owl:DatatypeProperty>>
datatypePropertyS
<<rdfs:domain>><<rdfs:domain>>
The
that
Pattern B:
<<primitive>>
xsd:datatype1
<<owl:DatatypeProperty>>
datatypePropertyS
<<rdfs:range>> <<rdfs:range>>
<<primitive>>
xsd:datatype2 The
that
Table 5: Detection method 2
P19
description
OOPS!: on-line ontology diagnosis
Table of Contents
• Introduction
• Approach
• Pitfall catalogue
• OOPS!
• Future lines of work
31
OOPS!: on-line ontology diagnosis
OOPS! – OntOlogy Pitfall Scanner!
32
§ Implements the 48 detection methods for 33
o Pitfalls selection
o Selection by dimensions and aspects
§ Web user interface http://oops.linkeddata.es/
§ Web service http://oops-ws.oeg-upm.net/
URI input
OWL
code
input
OOPS!: on-line ontology diagnosis
OOPS! – OntOlogy Pitfall Scanner!
33
§ Implements the 48 detection methods for 33
o Pitfalls selection
o Selection by dimensions and aspects
§ Web user interface http://oops.linkeddata.es/
§ Web service http://oops-ws.oeg-upm.net/
URI input
OWL
code
input
Importance level
Pitfall
description
Affected
elements
OOPS!: on-line ontology diagnosis
OOPS! – OntOlogy Pitfall Scanner!
34
§ Implements the 48 detection methods for 33
o Pitfalls selection
o Selection by dimensions and aspects
§ Web user interface http://oops.linkeddata.es/
§ Web service http://oops-ws.oeg-upm.net/
URI input
OWL
code
input
Importance level
Pitfall
description
Affected
elements
1. OOPS! USER INTERFACE AND WEB SERVICE
– oops:hasDescription: indicates the description of the suggestion value.
– oops:hasAffectedElement: this element will contain as many URIs as ele-
ments detected during the analysis.
Listing ?? shows an example of response provided by the web service in format
RDF/XML for the request shown in Listing ??. It can be observed that the request
indicated three pitfalls to be detected from which only two have been found.
1 <rdf:RDF
2 xmlns:rdf=" http: //www. w3 . org /1999/02/22´ rdf´syntax´ns#"
3 xmlns:owl=" http: //www. w3 . org /2002/07/ owl#"
4 xmlns:xsd=" http: //www. w3 . org /2001/XMLSchema#"
5 xmlns:oops=" http: //www. oeg´upm. net /oops#"
6 xmlns:rdfs=" http: //www. w3 . org /2000/01/ rdf´schema#" >
7 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops#suggestion ">
8 <r d f : t y p e r d f : r e s o u r c e=" http: //www. w3 . org /2002/07/ owl#Class "/>
9 </ r d f : D e s c r i p t i o n>
10 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops/ fdea1aa6 ´71d6´4557´
a17a´dc3244ff536b ">
11 <oops:hasCode rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#s t r i n g ">P10</
oops:hasCode>
12 <oops:hasName rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#s t r i n g ">Missing
d i s j o i n t n e s s [ 1 , 2 , 3]</oops:hasName>
13 <oops:hasDescription rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#s t r i n g ">
The ontology l a c k s d i s j o i n t axioms between c l a s s e s or between p r o p e r t i e s
that should be defined as d i s j o i n t .</ oops:hasDescription> <r d f : t y p e
r d f : r e s o u r c e=" http: //www. oeg´upm. net /oops#p i t f a l l "/>
14 <oops:hasImportanceLevel rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#
s t r i n g ">Important</ oops:hasImportanceLevel>
15 <oops:hasNumberAffectedElements rdf:datatype=" http: //www. w3 . org /2001/
XMLSchema#i n t e g e r ">1</ oops:hasNumberAffectedElements>
16 </ r d f : D e s c r i p t i o n>
17 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops /496 ae03d ´48c6 ´406d´8
d07´530bf05c9ac1 ">
18 <o o p s : h a s P i t f a l l r d f : r e s o u r c e=" http: //www. oeg´upm. net /oops/ fdea1aa6 ´71d6
´4557´a17a´dc3244ff536b "/>
19 <r d f : t y p e r d f : r e s o u r c e=" http: //www. oeg´upm. net /oops#response "/>
20 </ r d f : D e s c r i p t i o n>
21 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops#p i t f a l l ">
22 <r d f : t y p e r d f : r e s o u r c e=" http: //www. w3 . org /2002/07/ owl#Class "/>
23 </ r d f : D e s c r i p t i o n>
24 </rdf:RDF>
Listing 1.4: Example of XML/RDF response from the web service
OOPS!: on-line ontology diagnosis
Pitfall coverage comparison with state of the art
35
Pitfalls OOPS! XD-Analyzer Moki OntoCheck
P02, P03, P05, P06, P10, P12,
P20, P21, P25, P26, P27, P28,
P29, P30, P31, P32, P33, P36,
P37, P38, P39, P40, P41
✔
P24 ≈
P13, P19, P34, P35 ✔ ✔
P07, P22 ✔ ✔
P11 ✔ ✔ ✔
P08 ✔ ✔ ✔ ✔
P04 ≈ ✔ ≈ ≈
P01, P09, P14, P15, P16, P17,
P18, P23
✔ Pitfall covered
≈ Pitfall partially covered
OOPS!: on-line ontology diagnosis
Most common pitfalls in ontologies
36
129$ 125$
86$
55$ 53$ 45$
19$ 13$ 12$ 11$ 6$
663$
378$
219$ 202$
134$ 133$ 115$ 108$ 88$ 73$ 69$
807$
694$
484$
446$
159$
100$ 80$ 76$ 55$ 37$
0$
0$
100$
200$
300$
400$
500$
600$
700$
800$
900$
P08.$M
issing$annota6ons$
verse$rela6onships$not$explicitly$declared$
P11.$M
issing$dom
ain$or$range$in$proper6es$
P04.$Crea6ng$unconnected$ontology$elem
ents$
P22.$Using$different$nam
ing$conven6ons$in$the$ontology$
P10.$M
issing$disjointness$
**P41.$No$license$declared$
P24.$Using$recursive$defini6ons$
P07.$M
erging$different$concepts$in$the$sam
e$class$
P12.$Equivalent$proper6es$not$explicitly$declared$
*P35.$Untyped$property$$
P19.$Defining$m
ul6ple$dom
ains$or$ranges$in$proper6es$
*P40.$Nam
espace$hijacking$$
*P34.$Untyped$class$$
*P30.$Equivalent$classes$not$explicitly$declared$
*P36.$URI$contains$file$extension$$
*P38.$No$OW
L$ontology$declara6on$$
P05.$Defining$w
rong$inverse$rela6onships$$
P20.$M
isusing$ontology$annota6ons$$
P02.$Crea6ng$synonym
s$as$classes$$
P25.$Defining$a$rela6onship$as$inverse$to$itself$$
P26.$Defining$inverse$rela6onships$for$a$sym
m
etric$one$$
P21.$Using$a$m
iscellaneous$class$$
P29.$Defining$w
rong$transi6ve$rela6onships$$
*P39.$Am
biguous$nam
espace$$
*P31.$Defining$w
rong$equivalent$classes$$
*P32.$Several$classes$w
ith$the$sam
e$label$$
P06.$Including$cycles$in$a$class$hierarchy$$
*P37.$Ontology$not$available$on$the$W
eb$
P27.$Defining$w
rong$equivalent$proper6es$$
P28.$Defining$w
rong$sym
m
etric$rela6onships$$
P03.$Crea6ng$the$rela6onship$“is”$instead$of…$
*P33.$Crea6ng$a$property$chain$w
ith$just$one$property$$
Number'of'ontologies'
Pi1all'
Pi1alls'appearance'in'ontologies'
Cri6cal$ Important$ Minor$
*$Pi[all$included$in$September$2013$(evaluated$410$ontologies)$
**$Pi[all$included$in$March$2015$(evaluated$over$329$ontologies)$
Pi[alls$without$*$have$been$evaluated$over$696$ontologies$since$November$2011$
P40. Namespace hijacking
P41. No license declared
OOPS!: on-line ontology diagnosis
International adoption and use
37
§ 60 Countries
§ 3000 times used
OOPS!: on-line ontology diagnosis
Adoption and use
38
§ Used at university courses
§ Used in scientific reports
o Evaluation and assessment
§ Used in companies
o Development and training
§ Integrated in other systems:
o 3 External: LOV, OntoHub, DrOntoAPI
o 3 OEG: Widoco, SmartCity ontology catalogue, OnToology
OOPS!: on-line ontology diagnosis
Table of Contents
• Introduction
• Approach
• Pitfall catalogue
• OOPS!
• Future lines of work
39
OOPS!: on-line ontology diagnosis
Wrapping up
40
Pitfall
catalogue
§ 41 pitfall descriptions
§ Importance levels
§ Classification
§ Repair tips
Detection
methods
§ 48 methods
§ 33 pitfalls
OOPS!
§ Access for users and
systems
§ Broadly used and
adopted
OOPS!: on-line ontology diagnosis
Future lines of work
41
OOPS!
§ To integrate OOPS! within ontology
editors
§ To carry out a quantitative assessment
of OOPS!
Pitfall
catalogue
§ To maintain and extend
the catalogue
o Multilingualism
o Metadata
o Annotations
o Adapt to OWL 2
§ To establish relationships
between pitfalls
Detection
methods
§ To transform and compare
structural patterns with SPARQL
queries
§ To improve detection methods
(linguistic techniques)
§ To include the guidelines for
ontology repair
§ To improve scalability for
large ontologies
§ To use data during the
diagnosis
§ Diagnosis of the
data? Potential
integration with Loupe
OOPS!: on-line ontology diagnosis
Questions?
Thanks for your attention!
42
OOPS!: on-line ontology diagnosis
References
43
§ Poveda Villalón, M. (2016). Ontology Evaluation: a pitfall-based approach to ontology diagnosis (Doctoral
dissertation, ETSI_Informatica).
§ Poveda-Villalón, M., Gómez-Pérez, A., & Suárez-Figueroa, M. C. (2014). Oops!(ontology pitfall scanner!): An
on-line tool for ontology evaluation. International Journal on Semantic Web and Information Systems
(IJSWIS), 10(2), 7-34.
Icons made by Freepik from www.flaticon.com
OOPS! (ONTOLOGY PITFALL SCANNER!):
ON-LINE ONTOLOGY DIAGNOSIS
María Poveda-Villalón
Mari Carmen Suárez-Figueroa and Asunción Gómez-Pérez
Ontology Engineering Group.
Universidad Politécnica de Madrid.
mpoveda@fi.upm.es
Data Quality Tutorial – SEMANTICS 2016
12th September
This work has been partially supportedby the Spanish project"4V:volumen, velocidad, variedad y validez en
la gestión innovadorade datos” (TIN2013-46238-C4-2-R) and theEuropeanproject “Ready4SmartCities - ICT
Roadmap and Data Interoperability for Energy Systems in Smart Cities” (FP7-608711).
OOPS! website: http://oops.linkeddata.es
Twitter account: @OOPSoeg

Más contenido relacionado

La actualidad más candente

Best Practices for Large Scale Text Mining Processing
Best Practices for Large Scale Text Mining ProcessingBest Practices for Large Scale Text Mining Processing
Best Practices for Large Scale Text Mining ProcessingOntotext
 
Using linguistic analysis to translate
Using linguistic analysis to translateUsing linguistic analysis to translate
Using linguistic analysis to translateIJwest
 
Ontology and Ontology Libraries: a critical study
Ontology and Ontology Libraries: a critical studyOntology and Ontology Libraries: a critical study
Ontology and Ontology Libraries: a critical studyDebashisnaskar
 
Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...
Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...
Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...Andres Garcia-Silva
 
Translating Ontologies in Real-World Settings
Translating Ontologies in Real-World SettingsTranslating Ontologies in Real-World Settings
Translating Ontologies in Real-World SettingsMauro Dragoni
 
NE7012- SOCIAL NETWORK ANALYSIS
NE7012- SOCIAL NETWORK ANALYSISNE7012- SOCIAL NETWORK ANALYSIS
NE7012- SOCIAL NETWORK ANALYSISrathnaarul
 
Benchmarking Domain-specific Expert Search using Workshop Program Committees
Benchmarking Domain-specific Expert Search using Workshop Program CommitteesBenchmarking Domain-specific Expert Search using Workshop Program Committees
Benchmarking Domain-specific Expert Search using Workshop Program CommitteesToine Bogers
 
Ontology Evaluation: a pitfall-based approach to ontology diagnosis
Ontology Evaluation: a pitfall-based approach to ontology diagnosisOntology Evaluation: a pitfall-based approach to ontology diagnosis
Ontology Evaluation: a pitfall-based approach to ontology diagnosisMaría Poveda Villalón
 
Systematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping StudiesSystematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping Studiesalessio_ferrari
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overviewalessio_ferrari
 
Semantic Web from the 2013 Perspective
Semantic Web from the 2013 PerspectiveSemantic Web from the 2013 Perspective
Semantic Web from the 2013 PerspectiveAdrian Paschke
 
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...Khirulnizam Abd Rahman
 
NLP in Web Data Extraction (Omer Gunes)
NLP in Web Data Extraction (Omer Gunes)NLP in Web Data Extraction (Omer Gunes)
NLP in Web Data Extraction (Omer Gunes)timfu
 
Building OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web toolsBuilding OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web toolsMelanie Courtot
 
ABSTAT: Ontology-driven Linked Data Summaries with Pattern Minimalization
ABSTAT: Ontology-driven Linked Data Summaries with Pattern MinimalizationABSTAT: Ontology-driven Linked Data Summaries with Pattern Minimalization
ABSTAT: Ontology-driven Linked Data Summaries with Pattern MinimalizationBlerina Spahiu
 
Adaptive information extraction
Adaptive information extractionAdaptive information extraction
Adaptive information extractionunyil96
 

La actualidad más candente (20)

Best Practices for Large Scale Text Mining Processing
Best Practices for Large Scale Text Mining ProcessingBest Practices for Large Scale Text Mining Processing
Best Practices for Large Scale Text Mining Processing
 
Using linguistic analysis to translate
Using linguistic analysis to translateUsing linguistic analysis to translate
Using linguistic analysis to translate
 
Ontology and Ontology Libraries: a critical study
Ontology and Ontology Libraries: a critical studyOntology and Ontology Libraries: a critical study
Ontology and Ontology Libraries: a critical study
 
Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...
Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...
Social Tags and Linked Data for Ontology Development: A Case Study in the Fin...
 
Final presentation
Final presentationFinal presentation
Final presentation
 
sw owl
 sw owl sw owl
sw owl
 
Ontology
Ontology Ontology
Ontology
 
Translating Ontologies in Real-World Settings
Translating Ontologies in Real-World SettingsTranslating Ontologies in Real-World Settings
Translating Ontologies in Real-World Settings
 
NE7012- SOCIAL NETWORK ANALYSIS
NE7012- SOCIAL NETWORK ANALYSISNE7012- SOCIAL NETWORK ANALYSIS
NE7012- SOCIAL NETWORK ANALYSIS
 
Benchmarking Domain-specific Expert Search using Workshop Program Committees
Benchmarking Domain-specific Expert Search using Workshop Program CommitteesBenchmarking Domain-specific Expert Search using Workshop Program Committees
Benchmarking Domain-specific Expert Search using Workshop Program Committees
 
Ontology Evaluation: a pitfall-based approach to ontology diagnosis
Ontology Evaluation: a pitfall-based approach to ontology diagnosisOntology Evaluation: a pitfall-based approach to ontology diagnosis
Ontology Evaluation: a pitfall-based approach to ontology diagnosis
 
Systematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping StudiesSystematic Literature Reviews and Systematic Mapping Studies
Systematic Literature Reviews and Systematic Mapping Studies
 
Empirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an OverviewEmpirical Methods in Software Engineering - an Overview
Empirical Methods in Software Engineering - an Overview
 
Semantic Web from the 2013 Perspective
Semantic Web from the 2013 PerspectiveSemantic Web from the 2013 Perspective
Semantic Web from the 2013 Perspective
 
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
Application of Ontology in Semantic Information Retrieval by Prof Shahrul Azm...
 
NLP in Web Data Extraction (Omer Gunes)
NLP in Web Data Extraction (Omer Gunes)NLP in Web Data Extraction (Omer Gunes)
NLP in Web Data Extraction (Omer Gunes)
 
Building OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web toolsBuilding OBO Foundry ontology using semantic web tools
Building OBO Foundry ontology using semantic web tools
 
semantic web & natural language
semantic web & natural languagesemantic web & natural language
semantic web & natural language
 
ABSTAT: Ontology-driven Linked Data Summaries with Pattern Minimalization
ABSTAT: Ontology-driven Linked Data Summaries with Pattern MinimalizationABSTAT: Ontology-driven Linked Data Summaries with Pattern Minimalization
ABSTAT: Ontology-driven Linked Data Summaries with Pattern Minimalization
 
Adaptive information extraction
Adaptive information extractionAdaptive information extraction
Adaptive information extraction
 

Destacado

The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...
The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...
The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...Jeff Z. Pan
 
OEG-Tools for supporting Ontology Engineering
OEG-Tools for supporting Ontology EngineeringOEG-Tools for supporting Ontology Engineering
OEG-Tools for supporting Ontology EngineeringMaría Poveda Villalón
 
20141003 fibo status update for ofdg
20141003 fibo status update for ofdg20141003 fibo status update for ofdg
20141003 fibo status update for ofdgMike Bennett
 
How to Create a Golden Ontology
How to Create a Golden OntologyHow to Create a Golden Ontology
How to Create a Golden OntologyMike Bennett
 
Ontology and semantic web (2016)
Ontology and semantic web (2016)Ontology and semantic web (2016)
Ontology and semantic web (2016)Craig Trim
 
Michael Fuchs | How to compute semantic relationships between entities and fa...
Michael Fuchs | How to compute semantic relationships between entities and fa...Michael Fuchs | How to compute semantic relationships between entities and fa...
Michael Fuchs | How to compute semantic relationships between entities and fa...semanticsconference
 
Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...
Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...
Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...semanticsconference
 
Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...
Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...
Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...semanticsconference
 
Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...
Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...
Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...semanticsconference
 
Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...
Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...
Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...semanticsconference
 
Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...
Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...
Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...semanticsconference
 
Kerstin Diwisch | Towards a holistic visualization management for knowledge g...
Kerstin Diwisch | Towards a holistic visualization management for knowledge g...Kerstin Diwisch | Towards a holistic visualization management for knowledge g...
Kerstin Diwisch | Towards a holistic visualization management for knowledge g...semanticsconference
 
Thomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + Nagel
Thomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + NagelThomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + Nagel
Thomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + Nagelsemanticsconference
 
Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...
Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...
Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...semanticsconference
 
Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...
Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...
Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...semanticsconference
 
Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...
Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...
Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...semanticsconference
 
Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...
Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...
Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...semanticsconference
 
Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...
Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...
Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...semanticsconference
 
David Kuilman | Creating a Semantic Enterprise Content model to support conti...
David Kuilman | Creating a Semantic Enterprise Content model to support conti...David Kuilman | Creating a Semantic Enterprise Content model to support conti...
David Kuilman | Creating a Semantic Enterprise Content model to support conti...semanticsconference
 

Destacado (20)

Description logic
Description logicDescription logic
Description logic
 
The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...
The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...
The Rise of Approximate Ontology Reasoning: Is It Mainstream Yet? --- Revisit...
 
OEG-Tools for supporting Ontology Engineering
OEG-Tools for supporting Ontology EngineeringOEG-Tools for supporting Ontology Engineering
OEG-Tools for supporting Ontology Engineering
 
20141003 fibo status update for ofdg
20141003 fibo status update for ofdg20141003 fibo status update for ofdg
20141003 fibo status update for ofdg
 
How to Create a Golden Ontology
How to Create a Golden OntologyHow to Create a Golden Ontology
How to Create a Golden Ontology
 
Ontology and semantic web (2016)
Ontology and semantic web (2016)Ontology and semantic web (2016)
Ontology and semantic web (2016)
 
Michael Fuchs | How to compute semantic relationships between entities and fa...
Michael Fuchs | How to compute semantic relationships between entities and fa...Michael Fuchs | How to compute semantic relationships between entities and fa...
Michael Fuchs | How to compute semantic relationships between entities and fa...
 
Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...
Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...
Joe Pairman | Multiplying the Power of Taxonomy with Granular, Structured Con...
 
Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...
Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...
Camilo Thorne, Stefano Faralli and Heiner Stuckenschmidt | Entity Linking for...
 
Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...
Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...
Philippe Martin and Jérémy Bénard | Importing, Translating and Exporting Know...
 
Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...
Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...
Jörg Waitelonis, Henrik Jürges and Harald Sack | Don't compare Apples to Oran...
 
Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...
Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...
Sebastian Bader | Semantic Technologies for Assisted Decision-Making in Indus...
 
Kerstin Diwisch | Towards a holistic visualization management for knowledge g...
Kerstin Diwisch | Towards a holistic visualization management for knowledge g...Kerstin Diwisch | Towards a holistic visualization management for knowledge g...
Kerstin Diwisch | Towards a holistic visualization management for knowledge g...
 
Thomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + Nagel
Thomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + NagelThomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + Nagel
Thomas Kaleske | KN(owl)edge – the Linked Data Platform at Kuehne + Nagel
 
Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...
Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...
Robert Isele | eccenca CorporateMemory - Semantically integrated Enterprise D...
 
Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...
Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...
Vladimir Alexiev | Semantic Enrichment of Twitter Microposts Helps Understand...
 
Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...
Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...
Adam Bartusiak and Jörg Lässig | Semantic Processing for the Conversion of Un...
 
Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...
Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...
Phil Ritchie | Putting Standards into Action: Multilingual and Semantic Enric...
 
Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...
Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...
Shuangyong Song, Qingliang Miao and Yao Meng | Linking Images to Semantic Kno...
 
David Kuilman | Creating a Semantic Enterprise Content model to support conti...
David Kuilman | Creating a Semantic Enterprise Content model to support conti...David Kuilman | Creating a Semantic Enterprise Content model to support conti...
David Kuilman | Creating a Semantic Enterprise Content model to support conti...
 

Similar a OOPS!: on-line ontology diagnosis by Maria Poveda

Validating ontologies with OOPS! - EKAW2012
Validating ontologies with OOPS! - EKAW2012Validating ontologies with OOPS! - EKAW2012
Validating ontologies with OOPS! - EKAW2012María Poveda Villalón
 
Research Objects for improved sharing and reproducibility
Research Objects for improved sharing and reproducibilityResearch Objects for improved sharing and reproducibility
Research Objects for improved sharing and reproducibilityOscar Corcho
 
Representing and reasoning with biological knowledge
Representing and reasoning with biological knowledgeRepresenting and reasoning with biological knowledge
Representing and reasoning with biological knowledgeBenjamin Good
 
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principlesFOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principlesdgarijo
 
Ontology Engineering: Ontology Use
Ontology Engineering: Ontology UseOntology Engineering: Ontology Use
Ontology Engineering: Ontology UseGuus Schreiber
 
Open innovation contributions from RSC resulting from the Open Phacts project
Open innovation contributions from RSC resulting from the Open Phacts projectOpen innovation contributions from RSC resulting from the Open Phacts project
Open innovation contributions from RSC resulting from the Open Phacts projectKen Karapetyan
 
Building a repository of biomedical ontologies with Neo4j
Building a repository of biomedical ontologies with Neo4jBuilding a repository of biomedical ontologies with Neo4j
Building a repository of biomedical ontologies with Neo4jSimon Jupp
 
Reasoning on the Semantic Web
Reasoning on the Semantic WebReasoning on the Semantic Web
Reasoning on the Semantic WebYannis Kalfoglou
 
A little more semantics goes a lot further!  Getting more out of Linked Data ...
A little more semantics goes a lot further!  Getting more out of Linked Data ...A little more semantics goes a lot further!  Getting more out of Linked Data ...
A little more semantics goes a lot further!  Getting more out of Linked Data ...Michel Dumontier
 
From Scientific Workflows to Research Objects: Publication and Abstraction of...
From Scientific Workflows to Research Objects: Publication and Abstraction of...From Scientific Workflows to Research Objects: Publication and Abstraction of...
From Scientific Workflows to Research Objects: Publication and Abstraction of...dgarijo
 
OntoMaven Repositories and OMG API4KP
OntoMaven Repositories and OMG API4KPOntoMaven Repositories and OMG API4KP
OntoMaven Repositories and OMG API4KPAksw Group
 
Ethics reproducibility and data stewardship
Ethics reproducibility and data stewardshipEthics reproducibility and data stewardship
Ethics reproducibility and data stewardshipRussell Jarvis
 
Ontologies neo4j-graph-workshop-berlin
Ontologies neo4j-graph-workshop-berlinOntologies neo4j-graph-workshop-berlin
Ontologies neo4j-graph-workshop-berlinSimon Jupp
 
SemFacet paper
SemFacet paperSemFacet paper
SemFacet paperDBOnto
 

Similar a OOPS!: on-line ontology diagnosis by Maria Poveda (20)

Validating ontologies with OOPS! - EKAW2012
Validating ontologies with OOPS! - EKAW2012Validating ontologies with OOPS! - EKAW2012
Validating ontologies with OOPS! - EKAW2012
 
Research Objects for improved sharing and reproducibility
Research Objects for improved sharing and reproducibilityResearch Objects for improved sharing and reproducibility
Research Objects for improved sharing and reproducibility
 
Phd tesis olga giraldo 10mayo
Phd tesis olga giraldo 10mayoPhd tesis olga giraldo 10mayo
Phd tesis olga giraldo 10mayo
 
Representing and reasoning with biological knowledge
Representing and reasoning with biological knowledgeRepresenting and reasoning with biological knowledge
Representing and reasoning with biological knowledge
 
Ontology at Manchester
Ontology at ManchesterOntology at Manchester
Ontology at Manchester
 
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principlesFOOPS!: An Ontology Pitfall Scanner for the FAIR principles
FOOPS!: An Ontology Pitfall Scanner for the FAIR principles
 
Ontology Engineering: Ontology Use
Ontology Engineering: Ontology UseOntology Engineering: Ontology Use
Ontology Engineering: Ontology Use
 
Open innovation contributions from RSC resulting from the Open Phacts project
Open innovation contributions from RSC resulting from the Open Phacts projectOpen innovation contributions from RSC resulting from the Open Phacts project
Open innovation contributions from RSC resulting from the Open Phacts project
 
Open innovation contributions from RSC resulting from the Open Phacts project
Open innovation contributions from RSC resulting from the Open Phacts projectOpen innovation contributions from RSC resulting from the Open Phacts project
Open innovation contributions from RSC resulting from the Open Phacts project
 
SMART Protocols in LISC-2014
SMART Protocols in LISC-2014 SMART Protocols in LISC-2014
SMART Protocols in LISC-2014
 
Building a repository of biomedical ontologies with Neo4j
Building a repository of biomedical ontologies with Neo4jBuilding a repository of biomedical ontologies with Neo4j
Building a repository of biomedical ontologies with Neo4j
 
Reasoning on the Semantic Web
Reasoning on the Semantic WebReasoning on the Semantic Web
Reasoning on the Semantic Web
 
A little more semantics goes a lot further!  Getting more out of Linked Data ...
A little more semantics goes a lot further!  Getting more out of Linked Data ...A little more semantics goes a lot further!  Getting more out of Linked Data ...
A little more semantics goes a lot further!  Getting more out of Linked Data ...
 
Ee bdm ws-v1
Ee bdm ws-v1Ee bdm ws-v1
Ee bdm ws-v1
 
From Scientific Workflows to Research Objects: Publication and Abstraction of...
From Scientific Workflows to Research Objects: Publication and Abstraction of...From Scientific Workflows to Research Objects: Publication and Abstraction of...
From Scientific Workflows to Research Objects: Publication and Abstraction of...
 
Loupe model - Use Cases and Requirements
Loupe model - Use Cases and Requirements Loupe model - Use Cases and Requirements
Loupe model - Use Cases and Requirements
 
OntoMaven Repositories and OMG API4KP
OntoMaven Repositories and OMG API4KPOntoMaven Repositories and OMG API4KP
OntoMaven Repositories and OMG API4KP
 
Ethics reproducibility and data stewardship
Ethics reproducibility and data stewardshipEthics reproducibility and data stewardship
Ethics reproducibility and data stewardship
 
Ontologies neo4j-graph-workshop-berlin
Ontologies neo4j-graph-workshop-berlinOntologies neo4j-graph-workshop-berlin
Ontologies neo4j-graph-workshop-berlin
 
SemFacet paper
SemFacet paperSemFacet paper
SemFacet paper
 

Más de semanticsconference

Linear books to open world adventure
Linear books to open world adventureLinear books to open world adventure
Linear books to open world adventuresemanticsconference
 
Session 1.2 high-precision, context-free entity linking exploiting unambigu...
Session 1.2   high-precision, context-free entity linking exploiting unambigu...Session 1.2   high-precision, context-free entity linking exploiting unambigu...
Session 1.2 high-precision, context-free entity linking exploiting unambigu...semanticsconference
 
Session 4.3 semantic annotation for enhancing collaborative ideation
Session 4.3   semantic annotation for enhancing collaborative ideationSession 4.3   semantic annotation for enhancing collaborative ideation
Session 4.3 semantic annotation for enhancing collaborative ideationsemanticsconference
 
Session 1.1 dalicc - data licenses clearance center
Session 1.1   dalicc - data licenses clearance centerSession 1.1   dalicc - data licenses clearance center
Session 1.1 dalicc - data licenses clearance centersemanticsconference
 
Session 1.3 context information management across smart city knowledge domains
Session 1.3   context information management across smart city knowledge domainsSession 1.3   context information management across smart city knowledge domains
Session 1.3 context information management across smart city knowledge domainssemanticsconference
 
Session 0.0 aussenac semanticsnl-pwebsem2017-v4
Session 0.0   aussenac semanticsnl-pwebsem2017-v4Session 0.0   aussenac semanticsnl-pwebsem2017-v4
Session 0.0 aussenac semanticsnl-pwebsem2017-v4semanticsconference
 
Session 0.0 keynote sandeep sacheti - final hi res
Session 0.0   keynote sandeep sacheti - final hi resSession 0.0   keynote sandeep sacheti - final hi res
Session 0.0 keynote sandeep sacheti - final hi ressemanticsconference
 
Session 1.1 linked data applied: a field report from the netherlands
Session 1.1   linked data applied: a field report from the netherlandsSession 1.1   linked data applied: a field report from the netherlands
Session 1.1 linked data applied: a field report from the netherlandssemanticsconference
 
Session 1.2 enrich your knowledge graphs: linked data integration with pool...
Session 1.2   enrich your knowledge graphs: linked data integration with pool...Session 1.2   enrich your knowledge graphs: linked data integration with pool...
Session 1.2 enrich your knowledge graphs: linked data integration with pool...semanticsconference
 
Session 1.4 connecting information from legislation and datasets using a ca...
Session 1.4   connecting information from legislation and datasets using a ca...Session 1.4   connecting information from legislation and datasets using a ca...
Session 1.4 connecting information from legislation and datasets using a ca...semanticsconference
 
Session 1.4 a distributed network of heritage information
Session 1.4   a distributed network of heritage informationSession 1.4   a distributed network of heritage information
Session 1.4 a distributed network of heritage informationsemanticsconference
 
Session 0.0 media panel - matthias priem - gtuo - semantics 2017
Session 0.0   media panel - matthias priem - gtuo - semantics 2017Session 0.0   media panel - matthias priem - gtuo - semantics 2017
Session 0.0 media panel - matthias priem - gtuo - semantics 2017semanticsconference
 
Session 1.3 semantic asset management in the dutch rail engineering and con...
Session 1.3   semantic asset management in the dutch rail engineering and con...Session 1.3   semantic asset management in the dutch rail engineering and con...
Session 1.3 semantic asset management in the dutch rail engineering and con...semanticsconference
 
Session 1.3 energy, smart homes &amp; smart grids: towards interoperability...
Session 1.3   energy, smart homes &amp; smart grids: towards interoperability...Session 1.3   energy, smart homes &amp; smart grids: towards interoperability...
Session 1.3 energy, smart homes &amp; smart grids: towards interoperability...semanticsconference
 
Session 1.2 improving access to digital content by semantic enrichment
Session 1.2   improving access to digital content by semantic enrichmentSession 1.2   improving access to digital content by semantic enrichment
Session 1.2 improving access to digital content by semantic enrichmentsemanticsconference
 
Session 2.3 semantics for safeguarding &amp; security – a police story
Session 2.3   semantics for safeguarding &amp; security – a police storySession 2.3   semantics for safeguarding &amp; security – a police story
Session 2.3 semantics for safeguarding &amp; security – a police storysemanticsconference
 
Session 2.5 semantic similarity based clustering of license excerpts for im...
Session 2.5   semantic similarity based clustering of license excerpts for im...Session 2.5   semantic similarity based clustering of license excerpts for im...
Session 2.5 semantic similarity based clustering of license excerpts for im...semanticsconference
 
Session 4.2 unleash the triple: leveraging a corporate discovery interface....
Session 4.2   unleash the triple: leveraging a corporate discovery interface....Session 4.2   unleash the triple: leveraging a corporate discovery interface....
Session 4.2 unleash the triple: leveraging a corporate discovery interface....semanticsconference
 
Session 1.6 slovak public metadata governance and management based on linke...
Session 1.6   slovak public metadata governance and management based on linke...Session 1.6   slovak public metadata governance and management based on linke...
Session 1.6 slovak public metadata governance and management based on linke...semanticsconference
 
Session 5.6 towards a semantic outlier detection framework in wireless sens...
Session 5.6   towards a semantic outlier detection framework in wireless sens...Session 5.6   towards a semantic outlier detection framework in wireless sens...
Session 5.6 towards a semantic outlier detection framework in wireless sens...semanticsconference
 

Más de semanticsconference (20)

Linear books to open world adventure
Linear books to open world adventureLinear books to open world adventure
Linear books to open world adventure
 
Session 1.2 high-precision, context-free entity linking exploiting unambigu...
Session 1.2   high-precision, context-free entity linking exploiting unambigu...Session 1.2   high-precision, context-free entity linking exploiting unambigu...
Session 1.2 high-precision, context-free entity linking exploiting unambigu...
 
Session 4.3 semantic annotation for enhancing collaborative ideation
Session 4.3   semantic annotation for enhancing collaborative ideationSession 4.3   semantic annotation for enhancing collaborative ideation
Session 4.3 semantic annotation for enhancing collaborative ideation
 
Session 1.1 dalicc - data licenses clearance center
Session 1.1   dalicc - data licenses clearance centerSession 1.1   dalicc - data licenses clearance center
Session 1.1 dalicc - data licenses clearance center
 
Session 1.3 context information management across smart city knowledge domains
Session 1.3   context information management across smart city knowledge domainsSession 1.3   context information management across smart city knowledge domains
Session 1.3 context information management across smart city knowledge domains
 
Session 0.0 aussenac semanticsnl-pwebsem2017-v4
Session 0.0   aussenac semanticsnl-pwebsem2017-v4Session 0.0   aussenac semanticsnl-pwebsem2017-v4
Session 0.0 aussenac semanticsnl-pwebsem2017-v4
 
Session 0.0 keynote sandeep sacheti - final hi res
Session 0.0   keynote sandeep sacheti - final hi resSession 0.0   keynote sandeep sacheti - final hi res
Session 0.0 keynote sandeep sacheti - final hi res
 
Session 1.1 linked data applied: a field report from the netherlands
Session 1.1   linked data applied: a field report from the netherlandsSession 1.1   linked data applied: a field report from the netherlands
Session 1.1 linked data applied: a field report from the netherlands
 
Session 1.2 enrich your knowledge graphs: linked data integration with pool...
Session 1.2   enrich your knowledge graphs: linked data integration with pool...Session 1.2   enrich your knowledge graphs: linked data integration with pool...
Session 1.2 enrich your knowledge graphs: linked data integration with pool...
 
Session 1.4 connecting information from legislation and datasets using a ca...
Session 1.4   connecting information from legislation and datasets using a ca...Session 1.4   connecting information from legislation and datasets using a ca...
Session 1.4 connecting information from legislation and datasets using a ca...
 
Session 1.4 a distributed network of heritage information
Session 1.4   a distributed network of heritage informationSession 1.4   a distributed network of heritage information
Session 1.4 a distributed network of heritage information
 
Session 0.0 media panel - matthias priem - gtuo - semantics 2017
Session 0.0   media panel - matthias priem - gtuo - semantics 2017Session 0.0   media panel - matthias priem - gtuo - semantics 2017
Session 0.0 media panel - matthias priem - gtuo - semantics 2017
 
Session 1.3 semantic asset management in the dutch rail engineering and con...
Session 1.3   semantic asset management in the dutch rail engineering and con...Session 1.3   semantic asset management in the dutch rail engineering and con...
Session 1.3 semantic asset management in the dutch rail engineering and con...
 
Session 1.3 energy, smart homes &amp; smart grids: towards interoperability...
Session 1.3   energy, smart homes &amp; smart grids: towards interoperability...Session 1.3   energy, smart homes &amp; smart grids: towards interoperability...
Session 1.3 energy, smart homes &amp; smart grids: towards interoperability...
 
Session 1.2 improving access to digital content by semantic enrichment
Session 1.2   improving access to digital content by semantic enrichmentSession 1.2   improving access to digital content by semantic enrichment
Session 1.2 improving access to digital content by semantic enrichment
 
Session 2.3 semantics for safeguarding &amp; security – a police story
Session 2.3   semantics for safeguarding &amp; security – a police storySession 2.3   semantics for safeguarding &amp; security – a police story
Session 2.3 semantics for safeguarding &amp; security – a police story
 
Session 2.5 semantic similarity based clustering of license excerpts for im...
Session 2.5   semantic similarity based clustering of license excerpts for im...Session 2.5   semantic similarity based clustering of license excerpts for im...
Session 2.5 semantic similarity based clustering of license excerpts for im...
 
Session 4.2 unleash the triple: leveraging a corporate discovery interface....
Session 4.2   unleash the triple: leveraging a corporate discovery interface....Session 4.2   unleash the triple: leveraging a corporate discovery interface....
Session 4.2 unleash the triple: leveraging a corporate discovery interface....
 
Session 1.6 slovak public metadata governance and management based on linke...
Session 1.6   slovak public metadata governance and management based on linke...Session 1.6   slovak public metadata governance and management based on linke...
Session 1.6 slovak public metadata governance and management based on linke...
 
Session 5.6 towards a semantic outlier detection framework in wireless sens...
Session 5.6   towards a semantic outlier detection framework in wireless sens...Session 5.6   towards a semantic outlier detection framework in wireless sens...
Session 5.6 towards a semantic outlier detection framework in wireless sens...
 

Último

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

OOPS!: on-line ontology diagnosis by Maria Poveda

  • 1. OOPS! (ONTOLOGY PITFALL SCANNER!): ON-LINE ONTOLOGY DIAGNOSIS María Poveda-Villalón Asunción Gómez-Pérez and Mari Carmen Suárez-Figueroa Ontology Engineering Group. Universidad Politécnica de Madrid. mpoveda@fi.upm.es Data Quality Tutorial – SEMANTICS 2016 12th September This work has been partially supportedby the Spanish project"4V:volumen, velocidad, variedad y validez en la gestión innovadorade datos” (TIN2013-46238-C4-2-R) and theEuropeanproject “Ready4SmartCities - ICT Roadmap and Data Interoperability for Energy Systems in Smart Cities” (FP7-608711). OOPS! website: http://oops.linkeddata.es Twitter account: @OOPSoeg
  • 2. OOPS!: on-line ontology diagnosis License • This work is licensed under the Creative Commons Attribution – Non Commercial – Share Alike License • You are free: • to Share — to copy, distribute and transmit the work • to Remix — to adapt the work • Under the following conditions • Attribution — You must attribute the work by inserting • “[source http://www.oeg-upm.net/]” at the footer of each reused slide • a credits slide stating: “OOPS! (OntOlogy Pitfall Scanner!): on- line ontology diagnosis” by María Poveda-Villalón, Mari Carmen Suárez-Figueroa and Asunción Gómez-Pérez ” • Non-commercial • Share-Alike 2
  • 3. OOPS!: on-line ontology diagnosis Ontology engineering and ontology evaluation • The correct application of methodologies benefits the ontology quality • No complete guaranty 3 Ontology evaluation (checking the technical quality of an ontology against a frame of reference) is a crucial activity in ontology engineering projects Ontology diagnosis: identifying parts of the ontology directly responsible for incorrectness and incompleteness 1996 1997 ... 2001 2002 2003 20041995 2005 2006 ... 2009 2010 Guide 101 XD EXtreme Ontology RapidOWL Grüninger & Fox On-To- Knowledge METHON TOLOGY DILIGENT NeOn O. Development Methodologies Ontology Development Lightweight Approaches
  • 4. OOPS!: on-line ontology diagnosis Introduction 4 Ontology Evaluation Conceptual Practical Top level frameworks and definitions Guidelines and methods Tools
  • 5. OOPS!: on-line ontology diagnosis Top level frameworks and definitions Guidelines and methods Tools Introduction 5 Ontology Evaluation Conceptual Practical • Upper-level ontology engineers • Deep knowledge in formal logic and philosophy
  • 6. OOPS!: on-line ontology diagnosis Introduction 6 Ontology Evaluation • Ontology engineers • Knowledge in ontological engineering Conceptual Practical Top level frameworks and definitions Guidelines and methods Tools • Upper-level ontology engineers • Deep knowledge in formal logic and philosophy
  • 7. OOPS!: on-line ontology diagnosis Introduction 7 Ontology Evaluation • Ontology engineers • Knowledge in ontological engineering Conceptual Practical • Upper-level ontology engineers • Deep knowledge in formal logic and philosophy Top level frameworks and definitions Guidelines and methods Tools • Ontology developers • Domain experts Target audience
  • 8. OOPS!: on-line ontology diagnosis Table of Contents • Introduction • Approach • Pitfall catalogue • OOPS! • Future lines of work 8
  • 9. OOPS!: on-line ontology diagnosis Iterative process 9 14 piftalls Manual inspection Classification: Ontology Design Patterns 2009 OOPS!PitfalloriginCatalogue 1st Compilation Phase
  • 10. OOPS!: on-line ontology diagnosis Manual inspection Literature review 24 piftalls Classification: aspects and errors in hierarchies 20102nd 14 piftalls Manual inspection Classification: Ontology Design Patterns 2009 OOPS!PitfalloriginCatalogue 1st ExtensionCompilation Phase Iterative process 10
  • 11. OOPS!: on-line ontology diagnosis Manual inspection Literature review 24 piftalls Classification: aspects and errors in hierarchies 20102nd 14 piftalls Manual inspection Classification: Ontology Design Patterns 2009 OOPS!PitfalloriginCatalogue 1st Manual inspection Literature review Web User Interface 29 piftalls Classification: dimensions in tools 2012 21 pitfalls detected 3rd ExtensionCompilation Implementation Phase Iterative process 11
  • 12. OOPS!: on-line ontology diagnosis Manual inspection Literature review 24 piftalls Classification: aspects and errors in hierarchies 20102nd 14 piftalls Manual inspection Classification: Ontology Design Patterns 2009 OOPS!PitfalloriginCatalogue 1st Manual inspection Literature review Web User Interface 29 piftalls Classification: dimensions in tools 2012 21 pitfalls detected 3rd Manual inspection Literature review Collaborations Web User Interface Web Service 40 piftalls Classification: aspects and importance levels 2014 32 pitfalls detected ExtensionCompilation Implementation Linked Data ext. 4th Phase Iterative process 12
  • 13. OOPS!: on-line ontology diagnosis Manual inspection Literature review Collaborations Web User Interface Web Service 41 piftalls Classification: aspects and importance levels 2015 33 pitfalls detected Quality model Repair suggestions 5th Manual inspection Literature review 24 piftalls Classification: aspects and errors in hierarchies 20102nd 14 piftalls Manual inspection Classification: Ontology Design Patterns 2009 OOPS!PitfalloriginCatalogue 1st Manual inspection Literature review Web User Interface 29 piftalls Classification: dimensions in tools 2012 21 pitfalls detected 3rd Manual inspection Literature review Collaborations Web User Interface Web Service 40 piftalls Classification: aspects and importance levels 2014 32 pitfalls detected RefinementExtensionCompilation Implementation Linked Data ext. 4th Phase Iterative process 13
  • 14. OOPS!: on-line ontology diagnosis Table of Contents • Introduction • Approach • Pitfall catalogue • OOPS! • Future lines of work 14
  • 15. OOPS!: on-line ontology diagnosis Disclaimer • Pitfalls could represent errors • Pitfalls could lead to errors • Pitfalls are not always errors depending on: o modelling decisions taken by the team of developers o ontology requirements previously set o application context of the ontology o the domain of the ontology 15
  • 16. OOPS!: on-line ontology diagnosis List of 41 pitfalls 16 P01. Creating polysemous elements P02. Creating synonyms as classes P03. Creating the relationship “is” instead ofusing “rdfs:subClassOf”, “rdf:type” or “owl:sameAs” P04. Creating unconnected ontology elements P05. Defining wrong inverse relationships P06. Including cycles in a class hierarchy P07. Merging differentconcepts in the same class P08. Missing annotations P09. Missing domain information P10. Missing disjointness P11. Missing domain or range in properties P12. Equivalentproperties notexplicitly declared P13. Inverse relationships notexplicitly declared P14. Misusing “owl:allValuesFrom” P15. Using “some not” in place of “not some” P16. Using a primitive class in place of a defined one P17. Overspecializing a hierarchy P18. Overspecializing the domain or range P19. Defining multiple domains or ranges in properties P20. Misusing ontology annotations P21. Using a miscellaneous class P22. Using differentnaming conventions in the ontology P23. Duplicating a datatype already provided by the implementation language P24. Using recursive definitions P25. Defining a relationship as inverse to itself P26. Defining inverse relationships for a symmetric one P27. Defining wrong equivalentproperties P28. Defining wrong symmetric relationships P29. Defining wrong transitive relationships P30. Equivalentclasses notexplicitly declared P31. Defining wrong equivalentclasses P32. Several classes with the same label P33. Creating a property chain with just one property P34. Untyped class P35. Untyped property P36. URI contains file extension P37. Ontology not available on the Web P38. No OWL ontology declaration P39.Ambiguous namespace P40. Namespace hijacking P41. No license declared
  • 17. OOPS!: on-line ontology diagnosis Pitfall template Pitfall template 17 Title Code and title of the pitfall Importance level {Critical | Important | Minor} Aspects Ontology evaluation aspects related to the pitfall Affects to {Ontology | [Classes, Object properties, Datatype properties]} Description Detailed explanation of what the pitfall consists in. This field might contain references to other approaches. Example Graphical representation Natural language description UML_Ont profile OWL source Natural language explanation of the graphical example or OWL code. How to solve it Description of the actions to be taken by ontology engineers in order to solve the described pitfall. References* Pointers to related bibliographical references or links to URLs. * optional Process details Process details
  • 18. OOPS!: on-line ontology diagnosis Assigning importance level § Survey to the Semantic Web community § For 35 pitfalls (from that point level assigned during description) § Participants were asked to mark each pitfall as: o Critical o Important o Minor o Not a problem (additional) § 54 answers: o 28 experts o 22 medium confidence o 4 low confidence 18 According to the negative consequences of each pitfall in the ontology
  • 19. OOPS!: on-line ontology diagnosis Critical (1) P01. Creating polysemous elements P03. Creating the relationship “is” instead of using ''rdfs:subClassOf'', ''rdf:type'' or ''owl:sameAs'' P05. Defining wrong inverse relationships P06. Including cycles in a class hierarchy P14. Misusing ''owl:allValuesFrom'' P15. Using “some not” in place of “not some” P16. Using a primitive class in place of a defined one P19. Defining multiple domains or ranges in properties P27. Defining wrong equivalent properties P28. Defining wrong symmetric relationships P29. Defining wrong transitive relationships P31. Defining wrong equivalent classes P37. Ontology not available on the Web P39. Ambiguous namespace P40. Namespace hijacking Important (2) P10. Missing disjointness P11. Missing domain or range in properties P12. Equivalent properties not explicitly declared P17. Overspecializing a hierarchy P18. Overspecializing the domain or range P23. Duplicating a datatype already provided by the implementation language P24. Using recursive definitions P25. Defining a relationship as inverse to itself P26. Defining inverse relationships for a symmetric one P30. Equivalent classes not explicitly declared P34. Untyped class P35. Untyped property P38. No OWL ontology declaration P41. No license declared Minor (3) P02. Creating synonyms as classes P04. Creating unconnected ontology elements P07. Merging different concepts in the same class P08. Missing annotations P09. Missing domain information P13. Inverse relationships not explicitly declared P20. Misusing ontology annotations P21. Using a miscellaneous class P22. Using different naming conventions in the ontology P32. Several classes with the same label P33. Creating a property chain with just one property P36. URI contains file extension Pitfall classification by importance level 19 Phase 2 Phase 1 survey Phase 1 survey Phase 2 Phase 1 survey Phase 2
  • 20. OOPS!: on-line ontology diagnosis 20 Classifying by ontology evaluation aspects Structural Dimension Usability-profiling Dimension Functional Dimension Ontology Understanding Ontology Clarity Ontology Metadata Modeling Decisions Requirement Completeness Wrong Inference No Inference Real World Modelling or Common Sense Structural Dimension Functional Dimension Ontology Language Application Context Legend AspectDimension Critical pitfall Important pitfall Minor pitfall * Pitfall appears twice P05. Defining wrong inverse relationships P19. Defining multiple domains or ranges in properties P06. Including cycles in a class hierarchy P15. Using “some not” in place of “not some” P18. Overspecializing the domain or range P27. Defining wrong equivalent properties P28. Defining wrong symmetric relationships P29. Defining wrong transitive relationships P31. Defining wrong equivalent classes P01. Creating polysemous elements *
  • 21. OOPS!: on-line ontology diagnosis 21 Classifying by ontology evaluation aspects Structural Dimension Usability-profiling Dimension Functional Dimension Ontology Understanding Ontology Clarity Ontology Metadata Modeling Decisions Requirement Completeness Wrong Inference No Inference Real World Modelling or Common Sense Structural Dimension Functional Dimension Ontology Language Application Context Legend AspectDimension Critical pitfall Important pitfall Minor pitfall * Pitfall appears twice P05. Defining wrong inverse relationships P19. Defining multiple domains or ranges in properties P06. Including cycles in a class hierarchy P15. Using “some not” in place of “not some” P18. Overspecializing the domain or range P27. Defining wrong equivalent properties P28. Defining wrong symmetric relationships P29. Defining wrong transitive relationships P31. Defining wrong equivalent classes P01. Creating polysemous elements * P13. Inverse relationships not explicitly declared P11. Missing domain or range in properties P12. Equivalent properties not explicitly declared
  • 22. OOPS!: on-line ontology diagnosis 22 Classifying by ontology evaluation aspects P05. Defining wrong inverse relationships P13. Inverse relationships not explicitly declared P19. Defining multiple domains or ranges in properties P24. Using recursive definitions P09. Missing domain information * P07. Merging different concepts in the same class P02. Creating synonyms as classes P20. Misusing ontology annotations P01. Creating polysemous elements * P17. Overspecializing a hierarchy P03. Creating the relationship “is” instead of using “rdfs:subClassOf”, “rdf:type” or “owl:sameAs” P11. Missing domain or range in properties P21. Using a miscellaneous class P12. Equivalent properties not explicitly declared P23. Duplicating a datatype already provided by the implementation language P04. Creating unconnected ontology elements P06. Including cycles in a class hierarchy P08. Missing annotations P10. Missing disjointness (2) P14. Misusing “allValuesFrom” P15. Using “some not” in place of “not some” P16. Using a primitive class in place of a defined one P18. Overspecializing the domain or range Ontology Understanding Modeling Decisions Requirement Completeness Wrong Inference No Inference Real World Modelling or Common Sense Ontology Clarity P22. Using different naming conventions in the ontology Structural Dimension Usability-profiling Dimension Functional Dimension P25. Defining a relationship as inverse to itself P26. Defining inverse relationships for a symmetric one P27. Defining wrong equivalent properties P28. Defining wrong symmetric relationships P29. Defining wrong transitive relationships P30. Equivalent classes not explicitly declared P31. Defining wrong equivalent classes P32. Several classes with the same label P33. Creating a property chain with just one property Ontology Language P34. Untyped class P35. Untyped property P36. URI contains file extension Application Context P37. Ontology not available on the Web * P38. No OWL ontology declaration * P39. Ambiguous namespace P40. Namespace hijacking P41. No license declared Ontology Metadata P01. Creating polysemous elements * P38. No OWL ontology declaration * P37. Ontology not available on the Web * Legend AspectDimension Critical pitfall Important pitfall Minor pitfall * Pitfall appears twice
  • 23. OOPS!: on-line ontology diagnosis Detection method template Detection method template 23 Code Code of the method Pitfall cardinality {1 |N} Method addresses {Ontology | [Classes, Object properties, Datatype properties]} Technique {[Structural pattern matching, Linguistic analysis, Specific characteristic search]} Pitfall affects to {Ontology | [Classes, Object properties, Datatype properties]} Description General explanation of what the method consists in based on the pitfall to be detected. Limitations* Corner cases or well-known exceptions where the pitfalls are not currently detected. Patterns Graphical representation Natural language description UML_Ont profile OWL source Natural language explanation of the pattern. External resources used* Pointers to external libraries, systems or resources used within the method implementation. * optional From pitfall template
  • 24. OOPS!: on-line ontology diagnosis Pitfalls and methods: example P25 24 P25. Defining a relationship as inverse to itself Title P25. Defining a relationship as inverse to itself Importance level Important Aspects Modelling decisions Affects to Object properties Description A relationship is defined as inverse of itself. In this case, this relationship could have been defined as owl:SymmetricProperty instead. Examples Graphical representation and/or OWL code Natural language description <<owl:inverseOf>> <<owl:ObjectProperty>> hasBorderWith The graphical example shows the object property “hasBorderWith”, which has been defined as inverse of itself by means of the primitive owl:inverseOf. How to solve it One should check whether the object property defined as inverse of itself satisfies the following condi- tion: every time the object property holds between the individuals “a” and “b” it also holds between “b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using owl:SymmetricProperty) and the owl:inverseOf statement should be deleted. While the situation described in this pitfall will not lead to any reasoning problem and it could be considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself. Table 6: P25. Defining a relationship as inverse to itself Code M1-P25. Detecting relationships inverse to themselves Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Description This method iterates over the list of object properties included in the ontology. If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern A), then a pitfall is flagged.
  • 25. OOPS!: on-line ontology diagnosis P25 descriptionTitle P25. Defining a relationship as inverse to itself Importance level Important Aspects Modelling decisions Affects to Object properties Description A relationship is defined as inverse of itself. In this case, this relationship could have been defined as owl:SymmetricProperty instead. Examples Graphical representation and/or OWL code Natural language description <<owl:inverseOf>> <<owl:ObjectProperty>> hasBorderWith The graphical example shows the object property “hasBorderWith”, which has been defined as inverse of itself by means of the primitive owl:inverseOf. How to solve it One should check whether the object property defined as inverse of itself satisfies the following condi- tion: every time the object property holds between the individuals “a” and “b” it also holds between “b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using owl:SymmetricProperty) and the owl:inverseOf statement should be deleted. While the situation described in this pitfall will not lead to any reasoning problem and it could be considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself. Table 6: P25. Defining a relationship as inverse to itself Code M1-P25. Detecting relationships inverse to themselves Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Description This method iterates over the list of object properties included in the ontology. If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern A), then a pitfall is flagged. Patterns Graphical representation and/or OWL code Natural language description Pattern A: <<owl:inverseOf>> <<owl:ObjectProperty>> objectPropertyS The graphical pattern shows an object property that has an owl:inverseOf axiom whose target object property is the same object property. Table 7: Detection method proposed for P25 8 Pitfalls and methods: example P25 25 P25. Defining a relationship as inverse to itselfTitle P25. Defining a relationship as inverse to itself Importance level Important Aspects Modelling decisions Affects to Object properties Description A relationship is defined as inverse of itself. In this case, this relationship could have been defined as owl:SymmetricProperty instead. Examples Graphical representation and/or OWL code Natural language description <<owl:inverseOf>> <<owl:ObjectProperty>> hasBorderWith The graphical example shows the object property “hasBorderWith”, which has been defined as inverse of itself by means of the primitive owl:inverseOf. How to solve it One should check whether the object property defined as inverse of itself satisfies the following condi- tion: every time the object property holds between the individuals “a” and “b” it also holds between “b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using owl:SymmetricProperty) and the owl:inverseOf statement should be deleted. While the situation described in this pitfall will not lead to any reasoning problem and it could be considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself. Table 6: P25. Defining a relationship as inverse to itself Code M1-P25. Detecting relationships inverse to themselves Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Description This method iterates over the list of object properties included in the ontology. If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern A), then a pitfall is flagged. Title P25. Defining a relationship as inverse to itself Importanc level Aspects Modelling decisions Affects to Description A relationship is defined as inverse of itself. In this case, this relationship c owl:SymmetricProperty instead. Examples Graphical representation and/or OWL code Natural langu <<owl:inverseOf>> <<owl:ObjectProperty>> hasBorderWith The graphical example “hasBorderWith”, which of itself by means of the How to solve it One should check whether the object property defined as inverse of itself sa tion: every time the object property holds between the individuals “a” and “b” and “a”. If the object property does fulfil the condition, it should be de owl:SymmetricProperty) and the owl:inverseOf statement should be deleted. While the situation described in this pitfall will not lead to any reasoning considered a workaround to avoid increasing the ontology expressivity, it is m object property as symmetric (using owl:SymmetricProperty) instead of as inver Table 6: P25. Defining a relationship as inverse to Title P25. Defining a relationship as inverse to itself Importance level Important Aspects Modelling decisions Affects to Object properties Description A relationship is defined as inverse of itself. In this case, this relationship could have been defined as owl:SymmetricProperty instead. Examples Graphical representation and/or OWL code Natural language description <<owl:inverseOf>> <<owl:ObjectProperty>> hasBorderWith The graphical example shows the object property “hasBorderWith”, which has been defined as inverse of itself by means of the primitive owl:inverseOf. How to solve it One should check whether the object property defined as inverse of itself satisfies the following condi- tion: every time the object property holds between the individuals “a” and “b” it also holds between “b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using owl:SymmetricProperty) and the owl:inverseOf statement should be deleted. While the situation described in this pitfall will not lead to any reasoning problem and it could be considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself. Table 6: P25. Defining a relationship as inverse to itself Code M1-P25. Detecting relationships inverse to themselves
  • 26. OOPS!: on-line ontology diagnosis Pitfalls and methods: example P25 26 M1-P25. Detecting relationships inverse to themselvesP25 description While the situation described in this pitfall will not lead to any reasoning problem and it could be considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself. Table 6: P25. Defining a relationship as inverse to itself Code M1-P25. Detecting relationships inverse to themselves Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Description This method iterates over the list of object properties included in the ontology. If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern A), then a pitfall is flagged. Patterns Graphical representation and/or OWL code Natural language description Pattern A: <<owl:inverseOf>> <<owl:ObjectProperty>> objectPropertyS The graphical pattern shows an object property that has an owl:inverseOf axiom whose target object property is the same object property. Table 7: Detection method proposed for P25 Title P25. Defining a relationship as inverse to itself Importance level Important Aspects Modelling decisions Affects to Object properties Description A relationship is defined as inverse of itself. In this case, this relationship could have been defined as owl:SymmetricProperty instead. Examples Graphical representation and/or OWL code Natural language description <<owl:inverseOf>> <<owl:ObjectProperty>> hasBorderWith The graphical example shows the object property “hasBorderWith”, which has been defined as inverse of itself by means of the primitive owl:inverseOf. How to solve it One should check whether the object property defined as inverse of itself satisfies the following condi- tion: every time the object property holds between the individuals “a” and “b” it also holds between “b” and “a”. If the object property does fulfil the condition, it should be defined as symmetric (using owl:SymmetricProperty) and the owl:inverseOf statement should be deleted. While the situation described in this pitfall will not lead to any reasoning problem and it could be considered a workaround to avoid increasing the ontology expressivity, it is more accurate to define the object property as symmetric (using owl:SymmetricProperty) instead of as inverse to itself. Table 6: P25. Defining a relationship as inverse to itself Code M1-P25. Detecting relationships inverse to themselves Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Description This method iterates over the list of object properties included in the ontology. If a given object property acts at the same time as subject and object in an owl:inverseOf statement (pattern A), then a pitfall is flagged. Patterns Graphical representation and/or OWL code Natural language description Pattern A: <<owl:inverseOf>> <<owl:ObjectProperty>> objectPropertyS The graphical pattern shows an object property that has an owl:inverseOf axiom whose target object property is the same object property. Table 7: Detection method proposed for P25 8
  • 27. OOPS!: on-line ontology diagnosis Pitfalls and methods: example P19 27 P19. Defining multiple domains or ranges in properties Title P19. Defining multiple domains or ranges in proper- ties Importance level Critical Aspects Wrong inference Affects to Object properties Datatype properties Description The domain or range (or both) of a property (relationships and attributes) is defined by stating more than one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed, but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf. This pitfall is related to the common error that appears when defining domains and ranges described in [2]. Examples Graphical representation and/or OWL code Natural language description Event Nation <<owl:ObjectProperty>> takesPlaceIn <<rdfs:domain>> <<rdfs:range>> City <<rdfs:range>> The graphical example shows an object property, “takesPlacesIn”, whose domain is the class “Event” and whose range is defined as “City” and as “Na- tion”. As the range of the relationship is interpreted as an intersection, whenever an individual appears as object in such relationship, it will be classified both as instance of “City” and “Nation”. This situation is probably not intended by the developer, since the intersection of “City” and “Nation” is the empty set. How to solve it If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype property, check: For domains: (a) For each object or datatype property with multiple domains in the ontology, we recommend answering the following question “Does every individual in the domain of the given property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations. For ranges: (a) For each object property with multiple ranges in the ontology, we recommend answering the following question “Does every individual in the range of the given object property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the range of the property and (b) remove the initial rdfs:range declarations. (b) For each datatype property with multiple domains in the ontology, we recommend including at most one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in [1] to select such datatype. If there is more than one plausible candidate, find their lowest common ancestor and set it as the range of the datatype property. References [1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes [2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang, H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web, pages 63-81. Springer.
  • 28. OOPS!: on-line ontology diagnosis P19 descriptionTitle P19. Defining multiple domains or ranges in proper- ties Importance level Critical Aspects Wrong inference Affects to Object properties Datatype properties Description The domain or range (or both) of a property (relationships and attributes) is defined by stating more than one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed, but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf. This pitfall is related to the common error that appears when defining domains and ranges described in [2]. Examples Graphical representation and/or OWL code Natural language description Event Nation <<owl:ObjectProperty>> takesPlaceIn <<rdfs:domain>> <<rdfs:range>> City <<rdfs:range>> The graphical example shows an object property, “takesPlacesIn”, whose domain is the class “Event” and whose range is defined as “City” and as “Na- tion”. As the range of the relationship is interpreted as an intersection, whenever an individual appears as object in such relationship, it will be classified both as instance of “City” and “Nation”. This situation is probably not intended by the developer, since the intersection of “City” and “Nation” is the empty set. How to solve it If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype property, check: For domains: (a) For each object or datatype property with multiple domains in the ontology, we recommend answering the following question “Does every individual in the domain of the given property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations. For ranges: (a) For each object property with multiple ranges in the ontology, we recommend answering the following question “Does every individual in the range of the given object property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the range of the property and (b) remove the initial rdfs:range declarations. (b) For each datatype property with multiple domains in the ontology, we recommend including at most one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in [1] to select such datatype. If there is more than one plausible candidate, find their lowest common ancestor and set it as the range of the datatype property. References [1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes [2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang, H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web, pages 63-81. Springer. Table 3: P19. Defining multiple domains or ranges in properties 5 Pitfalls and methods: example P19 28 P19. Defining multiple domains or ranges in properties Title P19. Defining multiple domains or ranges in proper- ties Importance level Critical Aspects Wrong inference Affects to Object properties Datatype properties Description The domain or range (or both) of a property (relationships and attributes) is defined by stating more than one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed, but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf. This pitfall is related to the common error that appears when defining domains and ranges described in [2]. Examples Graphical representation and/or OWL code Natural language description The graphical example shows an object property, “takesPlacesIn”, whose domain is the class “Event” and whose range is defined as “City” and as “Na- tion”. As the range of the relationship is interpreted as an intersection, whenever an individual appears as object in such relationship, it will be classified both as instance of “City” and “Nation”. This situation is probably not intended by the developer, since the intersection of “City” and “Nation” is the empty set. How to solve it If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype property, check: For domains: (a) For each object or datatype property with multiple domains in the ontology, we recommend answering the following question “Does every individual in the domain of the given property necessarily belong Title P19. Defining multiple domains or ranges in proper- ties Importance level Critical Aspects Wrong inference Affects to Object properties Datatype properties Description The domain or range (or both) of a property (relationships and attributes) is defined by stating more than one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed, but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf. This pitfall is related to the common error that appears when defining domains and ranges described in [2]. Examples Graphical representation and/or OWL code Natural language description Event Nation <<owl:ObjectProperty>> takesPlaceIn <<rdfs:domain>> <<rdfs:range>> City <<rdfs:range>> The graphical example shows an object property, “takesPlacesIn”, whose domain is the class “Event” and whose range is defined as “City” and as “Na- tion”. As the range of the relationship is interpreted as an intersection, whenever an individual appears as object in such relationship, it will be classified both as instance of “City” and “Nation”. This situation is probably not intended by the developer, since the intersection of “City” and “Nation” is the empty set. How to solve it If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype property, check: For domains: (a) For each object or datatype property with multiple domains in the ontology, we recommend answering
  • 29. OOPS!: on-line ontology diagnosis P19 description Pitfalls and methods: example P19 29 M1-P19. Detecting multiple domains or ranges in object properties Title P19. Defining multiple domains or ranges in proper- ties Importance level Critical Aspects Wrong inference Affects to Object properties Datatype properties Description The domain or range (or both) of a property (relationships and attributes) is defined by stating more than one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed, but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf. This pitfall is related to the common error that appears when defining domains and ranges described in [2]. Examples Graphical representation and/or OWL code Natural language description Event Nation <<owl:ObjectProperty>> takesPlaceIn <<rdfs:domain>> <<rdfs:range>> City <<rdfs:range>> The graphical example shows an object property, “takesPlacesIn”, whose domain is the class “Event” and whose range is defined as “City” and as “Na- tion”. As the range of the relationship is interpreted as an intersection, whenever an individual appears as object in such relationship, it will be classified both as instance of “City” and “Nation”. This situation is probably not intended by the developer, since the intersection of “City” and “Nation” is the empty set. How to solve it If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype property, check: For domains: (a) For each object or datatype property with multiple domains in the ontology, we recommend answering the following question “Does every individual in the domain of the given property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations. For ranges: (a) For each object property with multiple ranges in the ontology, we recommend answering the following question “Does every individual in the range of the given object property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the range of the property and (b) remove the initial rdfs:range declarations. (b) For each datatype property with multiple domains in the ontology, we recommend including at most one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in [1] to select such datatype. If there is more than one plausible candidate, find their lowest common ancestor and set it as the range of the datatype property. References [1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes [2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang, H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web, pages 63-81. Springer. Table 3: P19. Defining multiple domains or ranges in properties 5 Code M1-P19. Detecting multiple domains or ranges in object properties Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Datatype properties Description This method iterates over the list of object properties included in the ontology. If an object property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms refer to do not match, then a pitfall is flagged. If an object property has more than one rdfs:range axiom (pattern B) and the classes the range axioms refer to do not match, then a pitfall is flagged. The method checks if the multiple classes declared as domain or range are the same class or equiva- lent classes. If class restrictions apply, the method checks whether they are syntactically equivalent. Limitations The method does not check if two different class restrictions or anonymous classes logically represent identical sets of individuals. Patterns Graphical representation and/or OWL code Natural language description Pattern A: ClassA ClassB <<owl:ObjectProperty>> objectPropertyS <<rdfs:domain>> <<rdfs:domain>> The graphical pattern shows an object property that has two rdfs:domain axioms defined. Pattern B: ClassA ClassB <<owl:ObjectProperty>> objectPropertyS <<rdfs:range>> <<rdfs:range>> The graphical pattern shows an object property that has two rdfs:range axioms defined. Table 1: Detection method 1 proposed for P19 M2-P19. Detecting multiple domains or ranges in datatype properties Code M2-P19. Detecting multiple domains or ranges in datatype properties Pitfall cardinality N Method addresses Datatype properties Technique Structural pattern matching Pitfall affects to Object properties Datatype properties Description This method iterates over the list of datatype properties included in the ontology. If a datatype property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms refer to do not match, then a pitfall is flagged. If a datatype property has more than one rdfs:range axiom (pattern B) and the datatypes the range axioms refer to are not the same one, then a pitfall is flagged. The method checks if the multiple classes declared as domain are the same class or equivalent classes. If class restrictions apply, the method checks whether they are syntactically equivalent. Limitations The method does not check if two different class restrictions or anonymous classes logically represent identical sets of individuals. Patterns Graphical representation and/or OWL code Natural language description Pattern A: ClassA ClassB <<owl:DatatypeProperty>> datatypePropertyS <<rdfs:domain>><<rdfs:domain>> The graphical pattern shows a datatype property that has two rdfs:domain axioms defined. Pattern B: <<primitive>> xsd:datatype1 <<owl:DatatypeProperty>> datatypePropertyS <<rdfs:range>> <<rdfs:range>> <<primitive>> xsd:datatype2 The graphical pattern shows a datatype property that has two rdfs:range axioms defined. Table 5: Detection method 2 proposed for P19
  • 30. OOPS!: on-line ontology diagnosis M1-P19 M2-P19 Code M1-P19. Detecting multiple domains or ranges in object properties Pitfall cardinality N Method addresses Object properties Technique Structural pattern matching Pitfall affects to Object properties Datatype properties Description This method iterates over the list of object properties included in the ontology. If an object property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms refer to do not match, then a pitfall is flagged. If an object property has more than one rdfs:range axiom (pattern B) and the classes the range axioms refer to do not match, then a pitfall is flagged. The method checks if the multiple classes declared as domain or range are the same class or equiva- lent classes. If class restrictions apply, the method checks whether they are syntactically equivalent. Limitations The method does not check if two different class restrictions or anonymous classes logically represent identical sets of individuals. Patterns Graphical representation and/or OWL code Natural language description Pattern A: ClassA ClassB <<owl:ObjectProperty>> objectPropertyS <<rdfs:domain>> <<rdfs:domain>> The graphical pattern shows an object property that has two rdfs:domain axioms defined. Pattern B: ClassA ClassB <<owl:ObjectProperty>> objectPropertyS <<rdfs:range>> <<rdfs:range>> The graphical pattern shows an object property that has two rdfs:range axioms defined. Table 1: Detection method 1 proposed for P19 1 Pitfalls and methods: example P19 30 Title P19. Defining multiple domains or ranges in proper- ties Importance level Critical Aspects Wrong inference Affects to Object properties Datatype properties Description The domain or range (or both) of a property (relationships and attributes) is defined by stating more than one rdfs:domain or rdfs:range statements. In OWL multiple rdfs:domain or rdfs:range axioms are allowed, but they are interpreted as conjunction, being, therefore, equivalent to the construct owl:intersectionOf. This pitfall is related to the common error that appears when defining domains and ranges described in [2]. Examples Graphical representation and/or OWL code Natural language description Event Nation <<owl:ObjectProperty>> takesPlaceIn <<rdfs:domain>> <<rdfs:range>> City <<rdfs:range>> The graphical example shows an object property, “takesPlacesIn”, whose domain is the class “Event” and whose range is defined as “City” and as “Na- tion”. As the range of the relationship is interpreted as an intersection, whenever an individual appears as object in such relationship, it will be classified both as instance of “City” and “Nation”. This situation is probably not intended by the developer, since the intersection of “City” and “Nation” is the empty set. How to solve it If there is more than one rdfs:domain or rdfs:range statements defined for a given object or datatype property, check: For domains: (a) For each object or datatype property with multiple domains in the ontology, we recommend answering the following question “Does every individual in the domain of the given property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different domain declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the domain of the property and (b) remove the initial rdfs:domain declarations. For ranges: (a) For each object property with multiple ranges in the ontology, we recommend answering the following question “Does every individual in the range of the given object property necessarily belong to each and every one of the intersected classes?”. If the answer is “no”, developers should (a) join the classes that appear in the different range declarations by the “or” operator (i.e., owl:unionOf) and set this union of classes as the range of the property and (b) remove the initial rdfs:range declarations. (b) For each datatype property with multiple domains in the ontology, we recommend including at most one datatype as range. We recommend taking into account the built-in datatype hierarchy defined in [1] to select such datatype. If there is more than one plausible candidate, find their lowest common ancestor and set it as the range of the datatype property. References [1] Built-in datatype hierarchy http://www.w3.org/TR/xmlschema-2/built-in-datatypes [2] Rector, A., Drummond, N., Horridge, M., Rogers, J., Knublauch, H., Stevens, R., Wang, H., and Wroe, C. (2004). OWL pizzas: Practical experience of teaching OWL-DL: Common errors & common patterns. In Engineering Knowledge in the Age of the Semantic Web, pages 63-81. Springer. Table 3: P19. Defining multiple domains or ranges in properties 5 M1-P19. Detecting multiple domains or ranges in object properties M2-P19. Detecting multiple domains or ranges in datatype properties Code M2-P19. Detecting multiple domains or ranges in datatype properties Pitfall cardinality N Method addresses Datatype properties Technique Structural pattern matching Pitfall affects to Object properties Datatype properties Description This method iterates over the list of datatype properties included in the ontology. If a datatype property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms refer to do not match, then a pitfall is flagged. If a datatype property has more than one rdfs:range axiom (pattern B) and the datatypes the range axioms refer to are not the same one, then a pitfall is flagged. The method checks if the multiple classes declared as domain are the same class or equivalent classes. If class restrictions apply, the method checks whether they are syntactically equivalent. Limitations The method does not check if two different class restrictions or anonymous classes logically represent identical sets of individuals. Patterns Graphical representation and/or OWL code Natural language description Pattern A: ClassA ClassB <<owl:DatatypeProperty>> datatypePropertyS <<rdfs:domain>><<rdfs:domain>> The graphical pattern shows a datatype property that has two rdfs:domain axioms defined. Pattern B: <<primitive>> xsd:datatype1 <<owl:DatatypeProperty>> datatypePropertyS <<rdfs:range>> <<rdfs:range>> <<primitive>> xsd:datatype2 The graphical pattern shows a datatype property that has two rdfs:range axioms defined. Table 5: Detection method 2 proposed for P19 M1-P19. Detecting multiple domains or ranges in object properties N Method addresses Object properties Structural pattern matching Pitfall affects to Object properties Datatype properties Description iterates over the list of object properties included in the ontology. property has more than one rdfs:domain axiom (pattern A) and the classes the domain axioms ot match, then a pitfall is flagged. property has more than one rdfs:range axiom (pattern B) and the classes the range axioms ot match, then a pitfall is flagged. checks if the multiple classes declared as domain or range are the same class or equiva- If class restrictions apply, the method checks whether they are syntactically equivalent. Limitations does not check if two different class restrictions or anonymous classes logically represent identical duals. Patterns al representation and/or OWL code Natural language description ClassB wl:ObjectProperty>> bjectPropertyS >> <<rdfs:domain>> The graphical pattern shows an object property that has two rdfs:domain axioms defined. ClassB wl:ObjectProperty>> objectPropertyS >> <<rdfs:range>> The graphical pattern shows an object property that has two rdfs:range axioms defined. refer to do not match, then a pitfall is flagged. If an object property has more than one rdfs:range axiom refer to do not match, then a pitfall is flagged. The method checks if the multiple classes declared as do lent classes. If class restrictions apply, the method checks w Limitations The method does not check if two different class restrictions o sets of individuals. Patterns Graphical representation and/or OWL code Pattern A: ClassA ClassB <<owl:ObjectProperty>> objectPropertyS <<rdfs:domain>> <<rdfs:domain>> The has t Pattern B: ClassA ClassB <<owl:ObjectProperty>> objectPropertyS <<rdfs:range>> <<rdfs:range>> The has t Table 1: Detection method 1 1 M2-P19. Detecting multiple domains or ranges in datatype properties N Method addresses Datatype properties Structural pattern matching Pitfall affects to Object properties Datatype properties Description iterates over the list of datatype properties included in the ontology. e property has more than one rdfs:domain axiom (pattern A) and the classes the domain to do not match, then a pitfall is flagged. e property has more than one rdfs:range axiom (pattern B) and the datatypes the range to are not the same one, then a pitfall is flagged. checks if the multiple classes declared as domain are the same class or equivalent classes. If ons apply, the method checks whether they are syntactically equivalent. Code M2-P19. Detecting multiple domains or rang Pitfall cardinality N Meth Technique Structural pattern matching Pitfa Description This method iterates over the list of datatype properties inc If a datatype property has more than one rdfs:domain ax axioms refer to do not match, then a pitfall is flagged. If a datatype property has more than one rdfs:range axi axioms refer to are not the same one, then a pitfall is flagge The method checks if the multiple classes declared as dom class restrictions apply, the method checks whether they are Limitations The method does not check if two different class restrictions o sets of individuals. Patterns Graphical representation and/or OWL code Pattern A: ClassA ClassB <<owl:DatatypeProperty>> datatypePropertyS <<rdfs:domain>><<rdfs:domain>> The that Pattern B: <<primitive>> xsd:datatype1 <<owl:DatatypeProperty>> datatypePropertyS <<rdfs:range>> <<rdfs:range>> <<primitive>> xsd:datatype2 The that Table 5: Detection method 2 P19 description
  • 31. OOPS!: on-line ontology diagnosis Table of Contents • Introduction • Approach • Pitfall catalogue • OOPS! • Future lines of work 31
  • 32. OOPS!: on-line ontology diagnosis OOPS! – OntOlogy Pitfall Scanner! 32 § Implements the 48 detection methods for 33 o Pitfalls selection o Selection by dimensions and aspects § Web user interface http://oops.linkeddata.es/ § Web service http://oops-ws.oeg-upm.net/ URI input OWL code input
  • 33. OOPS!: on-line ontology diagnosis OOPS! – OntOlogy Pitfall Scanner! 33 § Implements the 48 detection methods for 33 o Pitfalls selection o Selection by dimensions and aspects § Web user interface http://oops.linkeddata.es/ § Web service http://oops-ws.oeg-upm.net/ URI input OWL code input Importance level Pitfall description Affected elements
  • 34. OOPS!: on-line ontology diagnosis OOPS! – OntOlogy Pitfall Scanner! 34 § Implements the 48 detection methods for 33 o Pitfalls selection o Selection by dimensions and aspects § Web user interface http://oops.linkeddata.es/ § Web service http://oops-ws.oeg-upm.net/ URI input OWL code input Importance level Pitfall description Affected elements 1. OOPS! USER INTERFACE AND WEB SERVICE – oops:hasDescription: indicates the description of the suggestion value. – oops:hasAffectedElement: this element will contain as many URIs as ele- ments detected during the analysis. Listing ?? shows an example of response provided by the web service in format RDF/XML for the request shown in Listing ??. It can be observed that the request indicated three pitfalls to be detected from which only two have been found. 1 <rdf:RDF 2 xmlns:rdf=" http: //www. w3 . org /1999/02/22´ rdf´syntax´ns#" 3 xmlns:owl=" http: //www. w3 . org /2002/07/ owl#" 4 xmlns:xsd=" http: //www. w3 . org /2001/XMLSchema#" 5 xmlns:oops=" http: //www. oeg´upm. net /oops#" 6 xmlns:rdfs=" http: //www. w3 . org /2000/01/ rdf´schema#" > 7 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops#suggestion "> 8 <r d f : t y p e r d f : r e s o u r c e=" http: //www. w3 . org /2002/07/ owl#Class "/> 9 </ r d f : D e s c r i p t i o n> 10 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops/ fdea1aa6 ´71d6´4557´ a17a´dc3244ff536b "> 11 <oops:hasCode rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#s t r i n g ">P10</ oops:hasCode> 12 <oops:hasName rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#s t r i n g ">Missing d i s j o i n t n e s s [ 1 , 2 , 3]</oops:hasName> 13 <oops:hasDescription rdf:datatype=" http: //www. w3 . org /2001/XMLSchema#s t r i n g "> The ontology l a c k s d i s j o i n t axioms between c l a s s e s or between p r o p e r t i e s that should be defined as d i s j o i n t .</ oops:hasDescription> <r d f : t y p e r d f : r e s o u r c e=" http: //www. oeg´upm. net /oops#p i t f a l l "/> 14 <oops:hasImportanceLevel rdf:datatype=" http: //www. w3 . org /2001/XMLSchema# s t r i n g ">Important</ oops:hasImportanceLevel> 15 <oops:hasNumberAffectedElements rdf:datatype=" http: //www. w3 . org /2001/ XMLSchema#i n t e g e r ">1</ oops:hasNumberAffectedElements> 16 </ r d f : D e s c r i p t i o n> 17 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops /496 ae03d ´48c6 ´406d´8 d07´530bf05c9ac1 "> 18 <o o p s : h a s P i t f a l l r d f : r e s o u r c e=" http: //www. oeg´upm. net /oops/ fdea1aa6 ´71d6 ´4557´a17a´dc3244ff536b "/> 19 <r d f : t y p e r d f : r e s o u r c e=" http: //www. oeg´upm. net /oops#response "/> 20 </ r d f : D e s c r i p t i o n> 21 <r d f : D e s c r i p t i o n rdf:about=" http: //www. oeg´upm. net /oops#p i t f a l l "> 22 <r d f : t y p e r d f : r e s o u r c e=" http: //www. w3 . org /2002/07/ owl#Class "/> 23 </ r d f : D e s c r i p t i o n> 24 </rdf:RDF> Listing 1.4: Example of XML/RDF response from the web service
  • 35. OOPS!: on-line ontology diagnosis Pitfall coverage comparison with state of the art 35 Pitfalls OOPS! XD-Analyzer Moki OntoCheck P02, P03, P05, P06, P10, P12, P20, P21, P25, P26, P27, P28, P29, P30, P31, P32, P33, P36, P37, P38, P39, P40, P41 ✔ P24 ≈ P13, P19, P34, P35 ✔ ✔ P07, P22 ✔ ✔ P11 ✔ ✔ ✔ P08 ✔ ✔ ✔ ✔ P04 ≈ ✔ ≈ ≈ P01, P09, P14, P15, P16, P17, P18, P23 ✔ Pitfall covered ≈ Pitfall partially covered
  • 36. OOPS!: on-line ontology diagnosis Most common pitfalls in ontologies 36 129$ 125$ 86$ 55$ 53$ 45$ 19$ 13$ 12$ 11$ 6$ 663$ 378$ 219$ 202$ 134$ 133$ 115$ 108$ 88$ 73$ 69$ 807$ 694$ 484$ 446$ 159$ 100$ 80$ 76$ 55$ 37$ 0$ 0$ 100$ 200$ 300$ 400$ 500$ 600$ 700$ 800$ 900$ P08.$M issing$annota6ons$ verse$rela6onships$not$explicitly$declared$ P11.$M issing$dom ain$or$range$in$proper6es$ P04.$Crea6ng$unconnected$ontology$elem ents$ P22.$Using$different$nam ing$conven6ons$in$the$ontology$ P10.$M issing$disjointness$ **P41.$No$license$declared$ P24.$Using$recursive$defini6ons$ P07.$M erging$different$concepts$in$the$sam e$class$ P12.$Equivalent$proper6es$not$explicitly$declared$ *P35.$Untyped$property$$ P19.$Defining$m ul6ple$dom ains$or$ranges$in$proper6es$ *P40.$Nam espace$hijacking$$ *P34.$Untyped$class$$ *P30.$Equivalent$classes$not$explicitly$declared$ *P36.$URI$contains$file$extension$$ *P38.$No$OW L$ontology$declara6on$$ P05.$Defining$w rong$inverse$rela6onships$$ P20.$M isusing$ontology$annota6ons$$ P02.$Crea6ng$synonym s$as$classes$$ P25.$Defining$a$rela6onship$as$inverse$to$itself$$ P26.$Defining$inverse$rela6onships$for$a$sym m etric$one$$ P21.$Using$a$m iscellaneous$class$$ P29.$Defining$w rong$transi6ve$rela6onships$$ *P39.$Am biguous$nam espace$$ *P31.$Defining$w rong$equivalent$classes$$ *P32.$Several$classes$w ith$the$sam e$label$$ P06.$Including$cycles$in$a$class$hierarchy$$ *P37.$Ontology$not$available$on$the$W eb$ P27.$Defining$w rong$equivalent$proper6es$$ P28.$Defining$w rong$sym m etric$rela6onships$$ P03.$Crea6ng$the$rela6onship$“is”$instead$of…$ *P33.$Crea6ng$a$property$chain$w ith$just$one$property$$ Number'of'ontologies' Pi1all' Pi1alls'appearance'in'ontologies' Cri6cal$ Important$ Minor$ *$Pi[all$included$in$September$2013$(evaluated$410$ontologies)$ **$Pi[all$included$in$March$2015$(evaluated$over$329$ontologies)$ Pi[alls$without$*$have$been$evaluated$over$696$ontologies$since$November$2011$ P40. Namespace hijacking P41. No license declared
  • 37. OOPS!: on-line ontology diagnosis International adoption and use 37 § 60 Countries § 3000 times used
  • 38. OOPS!: on-line ontology diagnosis Adoption and use 38 § Used at university courses § Used in scientific reports o Evaluation and assessment § Used in companies o Development and training § Integrated in other systems: o 3 External: LOV, OntoHub, DrOntoAPI o 3 OEG: Widoco, SmartCity ontology catalogue, OnToology
  • 39. OOPS!: on-line ontology diagnosis Table of Contents • Introduction • Approach • Pitfall catalogue • OOPS! • Future lines of work 39
  • 40. OOPS!: on-line ontology diagnosis Wrapping up 40 Pitfall catalogue § 41 pitfall descriptions § Importance levels § Classification § Repair tips Detection methods § 48 methods § 33 pitfalls OOPS! § Access for users and systems § Broadly used and adopted
  • 41. OOPS!: on-line ontology diagnosis Future lines of work 41 OOPS! § To integrate OOPS! within ontology editors § To carry out a quantitative assessment of OOPS! Pitfall catalogue § To maintain and extend the catalogue o Multilingualism o Metadata o Annotations o Adapt to OWL 2 § To establish relationships between pitfalls Detection methods § To transform and compare structural patterns with SPARQL queries § To improve detection methods (linguistic techniques) § To include the guidelines for ontology repair § To improve scalability for large ontologies § To use data during the diagnosis § Diagnosis of the data? Potential integration with Loupe
  • 42. OOPS!: on-line ontology diagnosis Questions? Thanks for your attention! 42
  • 43. OOPS!: on-line ontology diagnosis References 43 § Poveda Villalón, M. (2016). Ontology Evaluation: a pitfall-based approach to ontology diagnosis (Doctoral dissertation, ETSI_Informatica). § Poveda-Villalón, M., Gómez-Pérez, A., & Suárez-Figueroa, M. C. (2014). Oops!(ontology pitfall scanner!): An on-line tool for ontology evaluation. International Journal on Semantic Web and Information Systems (IJSWIS), 10(2), 7-34. Icons made by Freepik from www.flaticon.com
  • 44. OOPS! (ONTOLOGY PITFALL SCANNER!): ON-LINE ONTOLOGY DIAGNOSIS María Poveda-Villalón Mari Carmen Suárez-Figueroa and Asunción Gómez-Pérez Ontology Engineering Group. Universidad Politécnica de Madrid. mpoveda@fi.upm.es Data Quality Tutorial – SEMANTICS 2016 12th September This work has been partially supportedby the Spanish project"4V:volumen, velocidad, variedad y validez en la gestión innovadorade datos” (TIN2013-46238-C4-2-R) and theEuropeanproject “Ready4SmartCities - ICT Roadmap and Data Interoperability for Energy Systems in Smart Cities” (FP7-608711). OOPS! website: http://oops.linkeddata.es Twitter account: @OOPSoeg