2 REVISÃO DA LITERATURA
2.4 M ODELOS PARA A PLICAÇÕES M ULTIMÍDIA
2.4.3 SHDM (Semantic Hypermedia Design Method)
2.4.3.1 Modelagem Conceitual – SHDM
“O Esquema Conceitual SHDM é um modelo de classes e relacionamentos a respeito de um domínio específico” [LIMA, 03]. Este esquema conceitual possui a utilidade de expressar abstrações do domínio real (como em OOHDM) e se apresenta como ponto de partida para criação das ontologias que serão implementadas.
Segundo [LIMA, 03], nessa etapa ocorre a elaboração dos seguintes artefatos:
Esquema Conceitual SHDM; Ontologia Conceitual SHDM; e Instâncias.
O esquema conceitual SHDM possui as mesmas características do modelo conceitual OOHDM e possui a finalidade de apresentar os objetos do mundo real presentes no sistema que está sendo projetado. Alguns elementos do modelo conceitual SHDM serão explicados e exemplificados abaixo.
Classes, subclasses e atributos
Segundo LIMA [2003], em SHDM, as classes e subclasses são representadas da mesma maneira que em UML, apresentando o acréscimo de alguns detalhes nos atributos.
Um exemplo disso está na possibilidade dos atributos serem descritos com multiplicidade, isso significa a quantidade de vezes que aquele atributo pode ocorrer nas instâncias, como é ilustrado no exemplo abaixo:
Pessoa Email[0..2]: String
Figura 14 - Exemplo de Multiplicidade de Atributo
No exemplo da figura acima é apresentada a classe pessoa que pode possuir zero ou até dois emails. O mapeamento para DAML+OIL do exemplo da figura 14 é:
Figura 15 – Mapeamento para DAML+OIL de atributos descritos com multiplicidade
A leitura do código acima pode ser da seguinte maneira: a linha um consiste na criação de uma restrição DAML; a linha doisapresenta qual propriedade sofrerá a restrição (neste caso o atributo email); a linha três apresenta a mínima cardinalidade do atributo email (neste caso o valor é ‘zero’); e a linha quatro apresenta a máxima cardinalidade do atributo email (neste caso o valor é ‘dois’).
A próxima figura apresenta um exemplo de classe com três especializações.
Pessoa
Músico
Roteirista Ator
Figura 16 – Exemplo de classes e subclasses
A figura acima apresenta a classe pessoa que possui três especializações (ator, músico e roteirista). O mapeamento para DAML+OIL da subclasse roteirista presente no esquema da figura acima é:
1.<daml:Restriction>
Figura 17 – Mapeamento para DAML+OIL de subclasse
A leitura do código acima pode ser da seguinte maneira: a linha um consiste na criação da classe roteirista; a linha dois apresenta a propriedade que explicita a classe roteirista como uma subclasse da classe pessoa.
Relacionamentos e generalização de relacionamentos
“Relacionamentos e generalização também são descritos como em modelos OO da UML, com exceção da seguinte extensão: relacionamentos podem ser especializados, criando hierarquias de relacionamentos” [LIMA, 03]. Assim, além da hierarquia utilizada entre classes (em que uma herda os atributos e métodos da classe superior), SHDM apresenta a hierarquia entre relacionamentos (subrelacionamento). O exemplo da figura 18 ilustra isso:
Figura 18 – Exemplo de Subrelacionamento
Na figura, tem-se a classe pessoa, que possui duas especializações (musico e roteirista), e a classe filme, que também possui duas generalizações (trilha e roteiro). O relacionamento entre pessoa e filme especifica que uma pessoa pode participar de um ou mais filmes (como em OO). A diferença que vale ressaltar na figura acima está nos subrelacionamentos escreve e compõe. Tais subrelacionamentos herdam as características do relacionamento participa, ou seja, um músico participa da criação de uma ou mais trilhas sonoras e um roteirista participa da criação de um ou mais
roteiros, no entanto a forma de participação é diferenciada (o primeiro compõe e o segundo escreve).
Segundo LIMA [2003], a vantagem que esta forma de criar os relacionamentos traz está no fato de permitir que se possa fazer consultas em todas as instâncias de participa incluindo as instâncias dos subrelacionamentos.
O mapeamento para DAML+OIL do subrelacionamento compoe do esquema da figura 18 é:
Figura 19 – Mapeamento para DAML+OIL de subrelacionamento
A leitura do código acima pode ser da seguinte maneira: a linha um consiste na criação da propriedade compoe; a linha dois apresenta que o domínio do recurso está vinculado a trilha; a linha três apresenta a qual valor do recurso a propriedade está vinculada; e a linha quatro especifica que a propriedade compoe é uma subpropriedade de participa.
Classe Inferida
Segundo LIMA [2003], em DAML+OIL é possível criar definições de classes inferidas através do uso de expressões booleanas ou através de restrições. Um exemplo clássico para utilização das classes inferidas está na especialização de uma classe que apresente algum ponto diferente da superclasse.
Por exemplo: um roteirista apresenta as mesmas características da classe pessoa, exceto pelo fato do roteirista só poder ser qualificado como tal caso possua o valor roteirista no atributo atua_como da sua superclasse pessoa. Os códigos DAML+OIL abaixo, a respeito desde exemplo, auxiliam na compreensão.
1.<rdf:Property rdf:ID="Compoe">
Figura 20 – Exemplo de código DAML+OIL para classes inferidas
Nas últimas quatro linhas do código encontram-se: o nome da restrição necessária para a classe roteirista existir e a condição que é necessária para a existência da classe, que é a propriedade atua_como possuir o valor roteirista.
A notação de uma classe inferida dentro do modelo conceitual SHDM é apresentada pela figura abaixo. Nota-se que apresenta apenas uma modificação no estereótipo da classe.
Figura 21 – Exemplo de Classe Inferida
Na figura acima é apresentado um exemplo de uma classe inferida (a classe roteirista) que foi inferida no modelo, pois a sua superclasse pessoa possui o atributo atua_como definido como roteirista.
Relacionamento Inverso
“A modelagem de relacionamentos inversos é representada com uma nova notação:
duas setas e os nomes dos relacionamentos separados por uma barra. Esta nova especificação de relacionamentos inversos será útil para elaborar consultas” [LIMA, 03].
Neste ponto surge uma nova notação que não existe em UML e que pode auxiliar nas consultas, pois através de um relacionamento entre pessoa e filme, por exemplo, pode-se consultar tanto qual pessoa participa de qual filme, como, também, qual filme é feito por qual pessoa.
Figura 22 – Exemplo de Relacionamento Inverso
No esquema representado na figura apresenta-se o relacionamento inverso entre Pessoa e Filme. Segundo LIMA [2003], o primeiro nome de relacionamento é obrigatoriamente o nome correspondente à seta que aponta para o lado esquerdo. Ou seja, na figura acima foi modelado o relacionamento de associação onde um filme é feito por uma ou mais pessoas e esta pessoa participa de um ou mais filmes. O mapeamento para DAML+OIL do esquema da figura acima é:
Figura 23 – Mapeamento para DAML+OIL de relacionamento inverso
A leitura do código acima pode ser da seguinte maneira: a linha um consiste na criação da propriedade ehFeitoPor; e a linha dois especifica que participa é o relacionamento inverso do relacionamento ehFeitoPor.
Após ser criado o artefato esquema conceitual com os elementos explicados acima, o próximo artefato que deve ser gerado na modelagem conceitual SHDM é a ontologia conceitual que consiste no mapeamento do esquema conceitual SHDM para uma linguagem de estruturação de ontologias. O mapeamento é realizado utilizando os elementos presentes na linguagem utilizada (no caso deste trabalho, a DAML+OIL) e também pode ser através da criação de RDFS próprios com elementos que o projetista julgar necessário. Na seção de resultados e discussão será apresentada a ontologia criada para o modelo conceitual do domínio utilizado.
As instâncias são a fase final da modelagem conceitual (que consiste na criação do esquema conceitual, ontologia conceitual e instâncias). As instâncias são documentos RDF (linguagem de marcação que possibilita utilizar elementos presentes na linguagem utilizada para definir a ontologia) que utilizam o esquema mapeado para a linguagem de definição de ontologia utilizando os dados existentes na aplicação. Para um esquema de ontologias podem ser criadas várias instâncias. As instâncias em RDF são os documentos que
1.<rdf:Property rdf:ID="ehFeitoPor">
2. <daml:inverseOf rdf:resource="#Participa"/>
3.</rdf:Property>
permitem a criação da semântica entre os dados da aplicação. Na seção de resultados e discussão existe um exemplo de instância da ontologia criada neste trabalho.