Graffoo Specification

Date:
28/10/2013
Current version:
1.0
Author
Silvio Peroni (web, blog, twitter, orcid)

Table of Content

  1. Basic widgets
    1. Classes
    2. Datatypes
    3. Properties
    4. Individuals
    5. Ontologies
    6. General
  2. Advanced widgets
    1. Restrictions
    2. Other OWL features
    3. Supporting understanding

Basic widgetsback to ToC

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).

Classesback to ToC

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
					

Datatypesback to ToC

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
					

Propertiesback to ToC

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
					

Individualsback to ToC

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
					

Ontologiesback to ToC

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
					

Generalback to ToC

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>
					

Advanced widgetsback to ToC

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).

Restrictionsback to ToC

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
					

Other OWL featuresback to ToC

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")
					

Supporting understandingback to ToC

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
					

Licenza Creative Commons Graffoo Specification by Silvio Peroni is licensed under a Creative Commons Attribuzione 3.0 Unported License.