This work is distributed under a Creative Commons Attribution 3.0 Unported License.
In this section we introduce all the basic widgets of Graffoo, which allow one to create classes, datatypes, (annotation, data and object) properties, individuals and ontologies. All the examples are based on the EARMARK Ontology (default prefix).
A yellow rectangle with solid black border is used to declare classes. Solid black and labelled arrows are used to declare class axioms.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Class declaration |
Class: Range |
|
Subclass axiom |
Class: Range Class: XPathRange SubClassOf: Range Class: PointerRange SubClassOf: Range |
|
Equivalence axiom |
Class: Range Class: Offset EquivalentTo: Range |
|
Disjoint axiom |
Class: Range Class: Docuverse DisjointWith: Range |
A green rhomboid with solid black border is used to declare datatypes. Note that in the example we declare the datatype rdfs:Literal explicitly for the sake of understandability, even if the OWL 2 standard datatypes do not need to be explicitly declared.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Datatype declaration |
Datatype: rdfs:Literal |
An orange solid line is used to declare annotation properties, where the backslash at the beginning identifies the propert domain while the dashed arrow at the end indicates the property range. A green solid line is used to declare data properties, where the empty circle at the beginning identifies the property domain while the empty arrow at the end indicates the property range. A blue solid line is used to declare object properties, where the solid circle at the beginning identifies the property domain while the solid arrow at the end indicates the property range.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Annotation property declaration |
AnnotationProperty: dc:date Domain: owl:Thing Range: rdfs:Literal Class: owl:Thing Datatype: rdfs:Literal |
|
Data property declaration |
DataProperty: hasContent Domain: Docuverse Range: rdfs:Literal Class: Docuverse Datatype: rdfs:Literal |
|
Object property declaration |
ObjectProperty: refersTo Domain: Range Range: Docuverse Class: Range Class: Docuverse |
A pink circle with solid black border is used to declare individuals. Solid black and labelled arrows are used to declare axioms and assertions among individuals.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Individual declaration |
Individual: r1 |
|
Class assertion |
Individual: r1 Types: Range |
|
Individual equality |
Individual: r1 SameAs: r2 Individual: r2 |
|
Individual disequality |
Individual: r1 DifferentFrom: d1 Individual: d1 |
|
Data property assertion |
Individual: d1 Facts: hasContent "Some text"^^xsd:string |
|
Object property assertion |
Individual: r1 Facts: refersTo d1 Individual: d1 |
A transparent box with a light-blue heading and a dotted black border is used to declare ontologies.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Ontology declaration |
Ontology: <http://www.essepuntato.it/2008/12/earmark> |
|
Version IRI specification |
Ontology: <http://www.essepuntato.it/2008/12/earmark> <http://www.essepuntato.it/2008/12/earmark/1.8.1> |
|
Import axiom |
Ontology: <http://www.essepuntato.it/2008/12/earmark> Import: <http://www.essepuntato.it/2010/05/ghost> |
|
Provenance of entities |
Ontology: <http://www.essepuntato.it/2008/12/earmark> Import: <http://www.essepuntato.it/2010/05/ghost> Class: Range Annotations: rdfs:isDefinedBy <http://www.essepuntato.it/2010/05/ghost> Class: XPathRange Annotations: rdfs:isDefinedBy <http://www.essepuntato.it/2008/12/earmark> SubClassOf: Range DataProperty: hasXPathContext Annotations: rdfs:isDefinedBy <http://www.essepuntato.it/2008/12/earmark> Domain: XPathRange Range: xsd:string |
A box entitled Prefixes
is used to declare all the prefixes that can be used within an ontology. Thus, all the ontological entities can be declared through bracketed IRIs or CURIEs (i.e. prefix + local name).
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Prefixes |
Prefix: : <http://www.essepuntato.it/2008/12/earmark#> Prefix: owl: <http://www.w3.org/2002/07/owl#> Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#> Prefix: xsd: <http://www.w3.org/2001/XMLSchema#> |
|
IRI and CURIE defining entities |
Class: XPathRange ObjectProperty: hasXPathContext Domain: XPathRange Range: <http://www.w3.org/2001/XMLSchema#string> |
In this section we introduce all the advanced widgets of Graffoo, which allow one to create restrictions, additional axioms, rules, punning and allow one to support ontology understanding. All the examples are based on the EARMARK Ontology (default prefix), the FRBR-aligned Bibliographic Ontology (FaBiO) (prefix fabio), and the Collections Ontology (prefix co).
The widgets that define restrictions of classes and datatypes (which are a particular kinds of classes and datatypes) are, respectively, a light-yellow rectangle and a light-grey rhomboid with dotted border, and the text inside these shapes actually is a Manchester Syntax expression defining the restriction in consideration. Contrarily to classes and datatypes, the restrictions are not first-class objects in OWL, which means that they are not identified by IRIs like other entities, and they can be defined as a (boolean, enumerative, existential, universal, and quantified) combination of other particular classes/datatypes.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Class restriction |
(begins only xsd:nonNegativeInteger) and (ends only xsd:nonNegativeInteger) |
|
Class axioms with restrictions |
Class: PointerRange SubClassOf: (begins only xsd:nonNegativeInteger) and (ends only xsd:nonNegativeInteger) |
|
Datatype restriction |
xsd:integer[>= 0] |
|
Datatype declaration with restrictions |
Datatype: xsd:nonNegativeInteger EquivalentTo: xsd:integer[>= 0] |
|
Property declaration with restrictions |
ObjectProperty: fabio:hasDiscipline Domain: fabio:TermDictionary or frbr:Endeavour Range: fabio:SubjectDiscipline DataProperty: prism:publicationDate Domain: frbr:Endeavour Range: xsd:date or xsd:gYear or xsd:gYearMonth |
Additional axioms (written in Manchester Syntax) can be associated to any entity by using a light-blue and folded box. In particular, when it is needed to associate such axioms to all the Graffoo widgets but edges, one can link the box through a dashed line, while when one have to specify additional axioms to property declarations, (s)he needs to put the box close to the property declaration in consideration – i.e. the closest label of a property declaration to the box is the one to which the Manchester Syntax axioms are applied. This box is very useful when we want to define some properties that are not expressible using the other widgets, such as sub-property axioms, property characteristics, property chains, keys, annotations, etc. In addition to these axioms, Graffoo is able to address the punning of an entity without any particular issue, by defining such an entity through different widgets (explicitly or implicitly), and there is also a particular widget, i.e. a box with light-grey header (entitled SWRL
) and black dashed border, to specify SWRL rules.
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Additional axioms |
Class: co:Collection Annotations: rdfs:label "collection" rdfs:comment "A group of objects that can be considered as a whole." ObjectProperty: co:element SubPropertyChain: co:item o co:itemContent |
|
Punning |
Class: co:MathematicalObject Class: co:Bag Individual: co:Bag Types: co:MathematicalObject Class: co:List SubClassOf: co:Bag Individual: co:List Types: co:MathematicalObject |
|
SWRL rules |
Rule: followedBy(?<urn:swrl#x>, ?<urn:swrl#x>) -> error:hasError( ?<urn:swrl#x>, "A list item cannot be followed by itself") |
In addition to all the modelling widgets we introduced previously, there is a particular kind of widgets, referring to (data, object and annotation) properties, that are necessary to decrease the cognitive effort of users when understanding an ontology. Let us introduce a particular scenario so as to clarify this need. In order to enable authors of diagrams to provide a systematic description of a class even if there are no formal definitions that involve it directly into play, Graffoo allows users to relax the widgets defining properties so as to say that a particular property (defined somewhere else) can be also used, for whatever reason, according to a particular domain and range, by drawing the arc of each property widget as a dotted line (instead of a solid line).
Type of axiom | Graffoo widget | Manchester Syntax translation |
---|---|---|
Annotation property facility |
AnnotationProperty: dc:date Class: fabio:Vocabulary Datatype: rdfs:Literal |
|
Data property facility |
DataProperty: hasContent Class: StringDocuverse Datatype: rdfs:Literal |
|
Object property facility |
ObjectProperty: refersTo Class: PointerRange Class: Docuverse |
Silvio Peroni (Ph.D.) is an Assistant Professor at the Department of Classical Philology and Italian Studies, University of Bologna.
Graffoo - Graphical Framework for OWL Ontologies by Silvio Peroni is licensed under a Creative Commons Attribuzione 3.0 Unported License.