Ontology Patterns e
Ontology Pattern
Languages
Ricardo de Almeida Falbo
Ontologias para Engenharia de Software
Departamento de Informática
Universidade Federal do Espírito Santo
Agenda
• Ontology Patterns (OPs)
– Motivação
– Definição
– Tipos
– Aplicabilidade
• Ontology Pattern Languages (OPLs)
– Motivação
– Definição
– SP-OPL
Ontology Patterns - Motivação
• Construir ontologias é uma tarefa difícil e demorada.
• Reutilização é apontada como uma abordagem promissora
para melhorar a qualidade e a produtividade no
desenvolvimento de ontologias.
• Entretanto, reusar ontologias inteiras pode ser difícil e
desnecessário.
• De maneira análoga à Engenharia de Software, na qual
patterns de vários tipos são propostos e reutilizados em
larga escala (design patterns, padrões de arquitetura,
padrões de análise etc.), a Engenharia de Ontologias pode
se beneficiar com uma abordagem orientada a patterns.
Ontology Patterns - Definição
• “An Ontology Pattern (OP) describes a particular recurring
modeling problem that arises in specific ontology
development contexts and presents a well-proven solution
for the problem”. (Falbo et al., 2013a).
Ontology Patterns - Tipos
São extraídos de ontologias de fundamentação ou
de ontologias de referência de domínio.
Ontology Patterns - Tipos
Descrevem como estruturar uma ontologia em
termos de módulos (ou sub-ontologias).
Ontology Patterns - Tipos
Tratam de problemas que ocorrem na fase de
design detalhado de ontologias (p.ex., problemas
de expressividade).
Ontology Patterns - Tipos
Descrevem soluções para problemas de design em
uma linguagem específica (p.ex., OWL).
Ontology Patterns - Aplicabilidade
Patterns
• Patterns, em geral, são fortemente relacionados a outros
patterns.
• A noção de catálogo de patterns não é capaz de capturar os
vários tipos de relacionamentos que podem existir entre
patterns.
• É necessário prover diretrizes para o uso combinado de
Pattern Language
• A pattern language, in a Software Engineering view, “is a
network of interrelated patterns
that defines a
process
for
systematically solving coarse-grained software development
problems” (Buschmann et al., 2007).
Ontology Pattern Language (OPL)
• An OPL pattern language “is a network of interrelated
domain-related ontology patterns that provides holistic
support for solving ontology development problems for a
specific domain” (Falbo et al., 2013b).
• An OPL contains a set of interrelated
domain-related
ontology patterns
, plus a
process
providing explicit guidance
on what problems can arise in that domain, informing the
order to address these problems, and suggesting one or
more patterns to solve each specific problem (Falbo et al.,
2013b).
Ontology Pattern Language (OPL)
• OPLs são especialmente úteis para representar
core
ontologies
.
• “Core ontologies provide a precise definition of structural
knowledge in a specific field that spans across different
application domains in this field” (Scherp et al., 2011).
SP-OPL
• Software Process OPL: baseada em uma ontologia bem
fundamentada de processos de software (Bringuente et al.,
2011)
SP-OPL: Patterns
Standard Process Definition
SPS Standard Process Structure Represents how a standard software process is defined in
terms of standard sub-processes and activities
HRD Standard Activity Definition Human Role Defines the human roles responsible for performing a standard activity in the projects that instantiate it
RTD Standard Activity Type Definition Resource Defines the types of resources (hardware and software) required for performing a standard activity
WPD Standard Product DefinitionActivity Work Defines the types of work products required (input) and produced (output) when performing a standard activity PD Standard Activity Definition Procedure Defines the procedures (methods, techniques, guidelines
SP-OPL: Patterns
Project Process Definition and Scheduling
SPP Software Process Planning Represents how a software process is planned in terms of
sub-processes and activities
PSCH Process Scheduling Defines the time boundary for project processes and activities HRP Human Role Planning Defines the human roles responsible for performing a project
activity
RP Resource Planning Defines the types of resources (hardware and software) required for performing a project activity
WPP Work Product Planning Defines the types of work products required (input) and produced (output) when performing a project activity
PRP Procedure Planning Defines the procedures (methods, techniques, guidelines etc.) to be applied when performing a project activity
SP-OPL: Patterns
Resource Allocation
PTD Project Team Definition Defines the human resources that are member of a project team TDHRA Team-dependent Resource Allocation Human Allocates human resources to project activities, considering team allocation constraints TIHRA Team-independent Resource Allocation Human Allocates human resources to project activities, when there is not a project team formally defined RAL Resource Allocation Allocates resources (hardware equipments and software tools) to project activities
SP-OPL: Patterns
Software Process Execution
PAE Process and Activity Execution Register the occurrences of processes and activities.
HRPA Human Resource Participation Registers the occurrence participation of Human Resources in an activity RPA Resource Participation Registers the or software tool) in an activity occurrenceparticipation of Resources (hardware equipment WPPA Work Product Participation Register the output) in an activity occurrence.participation of Work Products (as input or PRPA Procedure Participation Register the adoption of procedures by an activity occurrence