4. PRESENTASJON AV FUNN
4.2 T ILKNYTNING OG TRAUMER
As linguagens de especificação de ontologias como, por exemplo, a linguagem OWL, e a linguagem UML têm propósitos diferentes, que refletem nos seus elementos e nas suas expressividades. Modelos UML e ontologias constituem abordagens de mo- delagem com diferentes propósitos, que os tornam adequados para especificar aspec- tos diferentes de sistemas de software. Em particular, ontologias são adequadas para especificar classes usando uma linguagem lógica expressiva, com associação de clas-
3.1 Mapeamento entre as linguagens de especificação de ontologias e a UML 44
ses e definição de propriedades altamente flexíveis e polimórficas, enquanto diagramas UML são mais adequados para especificar não apenas modelos estáticos, incluindo clas- ses e associações, mas também o comportamento dinâmico de sistemas de software [Silva Parreiras et al., 2007].
A linguagem UML define uma notação para a modelagem dos artefatos de software orientado a objetos, enquanto que as linguagens de especificação de ontolo- gias definem uma notação para representação de conhecimento, mas ambas são lin- guagens de modelagem [Belghiat and Bourahla, 2012]. O mapeamento das construções das linguagens UML e de especificação de ontologias é possível graças a essas simi- laridades entre as linguagens [Pondrelli, 2005, Hart et al., 2004, Atkinson et al., 2006, Gasevic et al., 2006]. Pondrelli [Pondrelli, 2005], em seu trabalho, explana a respeito da viabilidade de usar métodos baseados em perfis UML e editores UML para construção e gerenciamento de ontologias, além de apresentar os mapeamentos entre a UML e as prin- cipais construções utilizadas por linguagens de especificação de ontologias, conforme representado na Tabela 3.1.
UML Construções ontológicas
Packages Ontologies
Classes Classes
Attributes, associations and classes Properties
Navigable Domain, Range
Note Comment
Multiplicity Cardinality
Data types Data types
Objects Instances
Tabela 3.1: Mapeamento entre UML e os principais conceitos das linguagens para especificação de ontologias
No mapeamento entre a UML e uma linguagem de especificação de ontologias, a definição de ontologias assemelha-se a definição de um package em UML. Uma ontologia cria um modelo de dados que representa um conjunto de conceitos e seus relacionamentos dentro de um domínio. Os conceitos podem ser representados por classes UML e as propriedades que uma classe pode ter especificam suas características e criam relações entre os conceitos do domínio de interesse. Conforme a Tabela 3.1, as construções das linguagens de especificação de ontologias Domain e Range, Comment, Cardinality, Data Typee Instances são diretamente mapeadas para os elementos da UML.
As construções que especificam propriedades (Properties) em uma ontologia po- dem ter múltiplas representações em UML devido a grande expressividade das lingua- gens de especificação de ontologias. Por exemplo, na linguagem OWL as propriedades que especificam restrições (Restriction) do tipo intersectionOf, unionOf e complemen- tOf, são construções para formação de uma classe a partir de uma combinação boole-
3.1 Mapeamento entre as linguagens de especificação de ontologias e a UML 45
ana de classes OWL. Na UML, não existem notações correspondentes as restrições do tipo intersectionOf, unionOf e complementOf. Uma alternativa para as representações em UML de construtores de classe OWL é o emprego de estereótipos e dependências UML para as classes que formam o complemento (complementOf ), parte da união (unionOf ) ou parte do cruzamento (intersectionOf ) de uma classe.
Seguindo a abordagem de perfis UML, a OMG criou a especificação Ontology Definition MetaModel (ODM) [Object Management Group, 2009], uma especificação para tornar os conceitos da Arquitetura Dirigida a Modelos (Model-Driven Architecture - MDA) [Frankel, 2003] aplicáveis à engenharia de ontologias. A especificação ODM define uma família de metamodelos independentes, perfis UML relacionados e mapeamentos entre os metamodelos correspondentes a vários padrões para defi- nição de ontologias. A especificação ODM é aplicável a representação do conhe- cimento, modelagem conceitual e a definição de ontologias. ODM é implementado em MOF e contém uma especificação formal para perfis UML e para as linguagens OWL e RDFS. A ODM é uma alternativa viável para se criar ontologias e várias ferramentas [Silva Parreiras et al., 2007, Sparx Systems, 2000, Brockmans et al., 2006, Belghiat and Bourahla, 2012, Gaševic et al., 2009] fazem uso da especificação a fim de se prover abstração sobre as linguagens de especificação de ontologias.
Para especificar a interface de um serviço Web semântico, ou seja, definir os inputs e outputs do serviço Web e associá-los a conceitos definidos em uma ontologia, é necessário um subconjunto dos elementos da linguagem OWL. Outros elementos da OWL, principalmente a parte axiomática, não são diretamente usados na especificação da interface de um serviço Web semântico, porém esses elementos, normalmente, são usados por máquinas de inferência1(reasoners) que provêem mecanismos que permitem verificar a consistência de ontologias e validar a classificação de seus conceitos assim, permitindo que ferramentas que fazem matching, possam realizar buscas com base nos inputs e outputs de um serviço Web semântico. Os elementos que não são diretamente usados na especificação da interface de um serviço Web semântico podem fazer parte de uma ontologia do serviço Web entretanto, estes elementos não podem ser associados aos inputs e outputs de um serviço Web, mas eles podem fornecer restrições importantes ao domínio do serviço Web como, por exemplo, definir relações entre propriedades e conceitos que podem facilitar o processo de desambiguação semântica.
Este trabalho especifica e implementamos um perfil UML para representar os elementos da linguagem OWL que são usados no processo de modelagem da interface de um serviço Web semântico. O perfil UML define um conjunto de estereótipos e 1São sistemas de representação de conhecimento capazes de realizar consultas sobre as ontologias de
3.2 Mapeamento entre OWL e UML 46
propriedades que habilitam a associação dos inputs e outputs de um serviço Web com conceitos definidos em uma ontologia. No perfil UML também são definidos estereótipos e propriedades do domínio dos serviços Web, que não são endereçados pela especificação ODM. O propósito da ferramenta AutoWebS não é propiciar a modelagem de ontologias usando-se a UML, como se propõe a especificação ODM. O propósito da ferramenta AutoWebS é proporcionar a modelagem da interface de um serviço Web semântico.
3.2 Mapeamento entre OWL e UML
Kim e Lee [Kim and Lee, 2007, Kim and Lee, 2009] e Falkovych et al. [Falkovych et al., 2003] apresentam uma série de transformações entre as construções da linguagem OWL e a UML que serviram como base para especificação dos mapeamentos utilizados pela ferramenta AutoWebS. Não são todas as construções da linguagem OWL que são necessárias para criação da descrição semântica do serviço Web. Somente as construções da OWL que definem classes e subclasses, propriedades de objetos e tipos de dados são necessárias. Vale ressaltar que, o mapeamento entre a OWL e UML apre- sentado neste trabalho, não tem como objetivo representar todos os elementos da OWL em UML. São realizados os mapeamentos somente estre os elementos necessários para especificação de um serviço Web semântico. Os elementos da OWL que são mapeados para a UML são apresentados a seguir
O elemento da OWL owl:Ontology é mapeado para um package em UML. Os mapeamentos possíveis para os elementos que são declarados dentro de owl:Ontology estão representados na Tabela 3.2. O elemento owl:imports associa uma ontologia a outra quando são usados conceitos definidos em outra ontologia. O mapeamento deste elemento dá-se pelo elemento UML package imports.
Construções OWL UML
owl:Ontology packageUML
owl:Ontology owl:versionInfo note UML owl:Ontology rdfs:comment noteUML
owl:Ontology owl:imports package importsUML
Tabela 3.2: Mapeamento entre o elemento owl:Ontology e a UML
As construções usadas para criar classes ou que expressam relações hierárquicas entre classes OWL podem ser representadas por generalização em UML conforme a Tabela 3.3 monstra. A construção owl:oneOf pode ser mapeada para um tipo Enumeration UML enquanto que a construção owl:unionOf pode ser mapeada em UML como relações de dependências de uma classe sobre outras, usando-se o elemento Dependency da UML. Os demais elementos não se aplicam.
3.2 Mapeamento entre OWL e UML 47
Construções OWL UML
owl:Class classe UML
owl:Class rdf:ID nome da classe
owl:Class rdfs:subClassOf Generalização de uma classe owl:Class owl:oneOf define um tipo Enumeration UML owl:Class owl:equivalentClass não se aplica
owl:Class owl:disjointWith não se aplica owl:Class owl:intersectionOf não se aplica owl:Class owl:unionOf DependencyUML owl:Class owl:complementOf não se aplica
Tabela 3.3: Mapeamento entre as construções de classes OWL e a UML
O elemento owl:Restriction define as restrições que são aplicadas sobre uma classe OWL. As restrições podem estar associadas aos tipos de dados e as propriedades que uma determinada classe pode ter. O elemento owl:Restriction também define qual é a cardinalidade das restrições aplicadas sobre uma classe. A Tabela 3.4 ilustra o mapeamento desta construção para os elementos da UML.
Construções OWL UML
owl:Restriction restrições aplicadas em uma classe owl:Restriction owl:allValuesFrom não se aplica
owl:Restriction owl:someValuesFrom não se aplica owl:Restriction owl:hasValue não se aplica owl:Restriction owl:maxCardinality multiplicidade owl:Restriction owl:minCardinality multiplicidade owl:Restriction owl:cardinality cardinalidade
Tabela 3.4: Mapeamento entre o elemento owl:Restriction e a UML
As propriedades que incidem sobre uma determinada classe OWL podem ser mapeadas para UML como atributos de uma classe a partir de uma associação biná- ria ou unidirecional com outras classes. As propriedades owl:ObjectProperty rdfs:range e owl:DatatypeProperty rdfs:range definem o tipo do atributo que incide em uma classe OWL. Os valores possíveis destes atributos são os tipos definidos no Schema XML ou as classes OWL. A Tabela 3.5 apresenta os mapeamentos para os elementos owl:ObjectPropertye owl:DatatypeProperty.
As demais construções da linguagem OWL, representadas na Tabela 3.6, não são aplicadas para especificação da interface de um serviço Web semântico.
Na UML existem apenas quatro tipos primitivos predefinidos de dados: Integer, Boolean, String e UnlimitedNatural. O tipo UnlimitedNatural representa um elemento
3.2 Mapeamento entre OWL e UML 48
Construções OWL UML
owl:ObjectProperty atributo de uma classe
owl:ObjectProperty rdf:ID nome do atributo owl:ObjectProperty rdfs:range tipo do atributo.
owl:ObjectProperty rdfs:domain classe que contém o atributo owl:ObjectProperty rdfs:subPropertyOf não se aplica
owl:ObjectProperty owl:equivalentProperty não se aplica owl:ObjectProperty owl:inverseOf não se aplica
owl:DatatypeProperty atributo de uma classe owl:DatatypeProperty rdf:ID nome do atributo
owl:DatatypeProperty rdfs:domain classe que contém o atributo owl:DatatypeProperty rdfs:range o tipo do atributo
construções para indivíduos OWL não se aplica
Tabela 3.5: Mapeamento entre os elementos owl:ObjectProperty e owl:DatatypeProperty e a UML
Construções OWL UML
owl:FunctionalProperty não se aplica owl:InverseFunctionalProperty não se aplica owl:TransitiveProperty não se aplica owl:SymmetricProperty não se aplica owl:AnnotationProperty não se aplica owl:backwardCompatibleWith não se aplica owl:incompatibleWith não se aplica owl:DeprecatedClass não se aplica owl:DeprecatedProperty não se aplica
Tabela 3.6: Mapeamento entre alguns elementos da OWL e a UML
do conjunto dos números inteiros naturais (0, 1, 2, 3, ...). Entretanto, no Schema XML2 existem muito mais tipos de dados, de tal maneira que os quatro tipos primitivos da UML não são suficientes para representá-los. A Tabela 3.7 mostra os possíveis mapeamentos entre os tipos de dados (Data types) do Schema XML e os tipos primitivos da UML.
Para exemplificar os mapeamentos entre a OWL e a UML, considere o trecho de Código 2.3 onde são declarados a classe Regime e propriedades do tipo ObjectProperty e DatatypeProperty. O trecho de código define uma propriedade do tipo Object Property que tem como domínio instâncias da classe Change e valores possíveis de instâncias da classe Regime. Também define propriedades da classe Regime, stemSize, burdenValue, cpmValuee idRegime, todas do tipo DatatypeProperty. A Figura 3.1 representa o mapea- mento em UML para este trecho de código OWL. As classes OWL Regime e Change fo- ram mapeadas para classes UML. As propriedades do tipo DatatypeProperty foram mape-
3.2 Mapeamento entre OWL e UML 49 Schema XML UML xsd:integer Integer xsd:int Integer xsd:unsignedShort Integer xsd:boolean Boolean xsd:string String xsd:anySimpleType String xsd:nonNegativeInteger UnlimitedNatural xsd:positiveInteger UnlimitedNatural
Tabela 3.7: Mapeamento dos tipos de dados do Schema XML e a UML
adas para atributos da classe Regime, sendo que os seus tipos, defi nidos no Schema XML como http://www.w3.org/2001/XMLSchema#string, foram mapeados para o tipo primi- tivo String da UML. A propriedade do tipo ObjectProperty hasRegime, foi mapeada para um atributo da classe Change.