marcos magalhães moreira integração semântica de …
TRANSCRIPT
Marcos Magalhães Moreira
Integração Semântica de Sistemas de
Informação
Dissertação de Mestrado
Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós-Graduação em Informática da PUC-Rio.
Orientador: Prof. Marco Antonio Casanova
Rio de Janeiro, agosto de 2003
Marcos Magalhães Moreira
Integração Semântica de Sistemas de
Informação
Dissertação apresentada como requisito parcial para a obtenção do grau de Mestre pelo Programa de Pós-Graduação em Informática do Departamento de Informática do Centro Técnico e Científico da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada.
Prof. Marco Antonio Casanova Orientador
Departartamento de Informática - PUC-Rio
Prof. Daniel Schwabe Departartamento de Informática - PUC-Rio
Prof. Carlos José Pereira de Lucena Departartamento de Informática - PUC-Rio
Prof. Ney Dumont Coordenador Setorial do Centro
Técnico Científico - PUC-Rio
Rio de Janeiro, 8 de agosto de 2003
Todos os direitos reservados. É proibida a reprodução total
ou parcial do trabalho sem autorização da universidade, do autor e do orientador.
Marcos Magalhães Moreira
Graduou-se em Engenharia Civil pela Escola de Engenharia da Universidade Federal do Rio de Janeiro em 1986. Ingressou na Petrobras em 1989, onde participou do Curso de Formação de Analista de Sistemas. Desde então, tem atuado como analista de sistemas, participando de vários projetos de desenvolvimento e integração de sistemas de informação na área de E&P – Exploração de Produção de Petróleo. Em 2001, ingressou no presente programa de Mestrado em Informática, que se encontra agora em conclusão.
Ficha Catalográfica
Moreira, Marcos Magalhães
descrição...
informação técnica...
natureza...
Incluí referências bibliográficas.
Integração; Sistemas de Informação; Ontologia; Interoperabilidade; Semântica
Agradecimentos
À Petrobras, ao meu Orientador, aos meus familiares, aos amigos, aos colegas e a
todos aqueles que direta ou indiretamente contribuíram para o desenvolvimento
deste trabalho, meus sinceros agradecimentos.
Resumo
Moreira, Marcos Magalhães. Integração Semântica de Sistemas de Informação. Rio de Janeiro, 2003. 128p. Dissertação de Mestrado - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro.
Propõe-se neste trabalho uma abordagem para a integração semântica de
informações baseada na linguagem de ontologia OWL, utilizada como linguagem
padrão para tornar compatíveis as diversas fontes de informação. Inicialmente,
apresenta-se o problema de integração de informações e discute-se a aplicação de
ontologia para resolvê-lo. Em seguida, identificam-se as formas de obtenção e
extração de ontologias, com ênfase em sistemas de banco de dados. Da mesma
forma, propõem-se alternativas para mapeamento entre classes, propriedades e
instâncias das ontologias obtidas. Finalmente, desenvolve-se um estudo de caso
para aplicação e validação das idéias apresentadas. Como resultado, propõe-se
uma arquitetura de um sistema integrador e discute-se a implementação de alguns
dos seus componentes.
Palavras-chave
Integração de Informação; Integração Semântica; Sistemas de Informação;
Ontologias; Interoperabilidade Semântica.
Abstract
Moreira, Marcos Magalhães. Semantic Integration of Information Systems. Rio de Janeiro, 2003. 128p. MSc. Dissertation - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro
This work presents a semantic approach to information integration based on
the OWL ontology language, proposed as a standard language to facilitate the
integration of different information sources. The information integration problem
is first presented and then the use of ontologies to solve it is addressed. Then,
strategies to obtain and extract ontologies are identified, emphasizing database
systems. Alternative mappings between classes, properties and instances of the
resulting ontologies are also proposed. Finally, a case study is developed to apply
and validate the strategies presented. As a result, an integrator system architecture
is proposed and the implementation of some of its components is discussed.
Keywords
Information Integration; Semantic Integration; Information Systems;
Ontology; Semantic Interoperability.
Sumário
1 Introdução 11
2 Preliminares 15
2.1. Integração de Sistemas 15
2.2. Ontologias 18
2.3. Linguagens de Ontologias 20
2.3.1. DAML e OIL 21
2.3.2. DAML+OIL 22
3 OWL – Web Ontology Language 25
3.1. Introdução 25
3.2. Estrutura das Ontologias OWL 27
3.3. Definições Básicas 31
3.3.1. Definindo Hierarquia de Classes 31
3.3.2. Definindo Indivíduos 34
3.3.3. Definindo Propriedades 35
4 Explicitando Ontologias de Sistemas 40
4.1. Fontes de Ontologias 40
4.2. Modelos Baseados em Classes 42
4.2.1. Discussão 42
4.2.2. Do Modelo UML 44
4.2.3. Do Modelo Entidade-Relacionamento 45
4.2.4. Do Modelo Relacional 45
4.3. Documentos Semi-estruturados 47
4.4. Documentos Não Estruturados 48
5 Interconectando Ontologias 49
5.1. Interoperabilidade Semântica 49
5.2. Princípios para o Mapeamento de Conceitos 54
5.3. Criando Articulações entre Ontologias 56
5.4. Mapeando Ontologias em OWL 57
5.5. Expressões de Classes em OWL 60
5.6. Categorias de Mapeamento 63
6 Estudo de Caso 69
6.1. Introdução 69
6.2. Mapeamento das Instalações 70
6.3. Mapeamento das Atividades 72
6.4. Mapeamento dos Equipamentos 75
6.5. Avaliação 77
7 Arquitetura de Implementação 79
7.1. Visão Geral 79
7.2. Modelo Wrapper/Mediator 81
7.3. Editor OWL 82
7.4. Wrapper Oracle 84
8 Conclusão 86
8.1. Contribuições 86
8.2. Trabalhos Futuros 87
9 Referências Bibliográficas 88
Anexo A – Norma N-1710 96
Anexo B – Modulo de Anormalidade em Poços do SIP 113
Anexo C – Mapeamento entre a N-1710 e o SIP 123
Lista de figuras
Figura 1 – Construtores de classe em DAML+OIL 22
Figura 2 - Axiomas em DAML+OIL 23
Figura 3 – Explicitando ontologias de sistemas de informação 42
Figura 4 – Interconectando ontologias de sistemas de informação 52
Figura 5 – Agregação e Generalização de Conceitos 55
Figura 6 – Similaridade entre conceitos e relações 56
Figura 7 – Mapeamento de Instalações 71
Figura 8 – Mapeamento de Atividades 75
Figura 9 – Mapeamento de Equipamentos 76
Figura 10 – Arquitetura padrão de integração 79
Figura 11 – Arquitetura para interconexão de sistemas de informação 80
Figura 12 – Modelo Wrapper/Mediator 81
Figura 13 – Editor OWL 83
Figura 14 – Wrapper Oracle 84
Introdução 11
1 Introdução
Nos últimos anos, a disseminação dos mais variados sistemas de informação
tornou de importância crucial o conhecimento do significado real das informações
disponibilizadas. Neste cenário, para possibilitar acesso à semântica destas
informações, a aplicação de ontologias é cada vez mais considerada como
mecanismo chave. Muitas aplicações fazem uso desta abordagem, como por
exemplo: sistemas de gerência do conhecimento, sistemas de integração de
informações, sistemas baseados em agentes, etc. Especialmente depois que a idéia
de Web Semântica foi introduzida por Tim Berners-Lee (Berners-Lee, 1998a 1999
2001 2002ab), na qual o conteúdo das páginas passa a ser marcado com
metadados baseados em ontologias, o interesse no desenvolvimento de aplicações
relacionadas a ontologia cresceu significativamente.
Muitas linguagens de ontologia tem sido desenvolvidas, cada qual buscando
resolver um aspecto particular da modelagem conceitual. Algumas delas, como
RDF (Resource Description Framework) (W3C, 2003abcd), são linguagens
simples que oferecem suporte elementar na modelagem de ontologias para a Web
Semântica. Outras são linguagens mais complexas, baseadas em lógica formal,
focadas em inferência, que permitem a dedução de fatos que não estejam
explicitamente presentes no modelo, como F-logic (Kifer, 1990). Por outro lado,
vários tipos de linguagens baseadas em Description Logics, por exemplo, OIL –
Ontology Inference Layer, concentram-se em um subconjunto apropriado de
sentenças da lógica de primeira ordem (Fensel, 2001).
Apesar da intensa pesquisa sobre ontologias, funcionalidades padronizadas e
amplamente utilizadas pela comunidade de sistemas de banco de dados devem ser
adaptadas e reimplementadas para sistemas baseados em lógica como, por
exemplo, crescimento em escala, confiabilidade, concorrência e controle de
transações.
Introdução 12
Por outro lado, a tecnologia de banco de dados, por si só, não é apropriada
para manipular informações baseadas em ontologias. Isto se deve principalmente
ao fato da modelagem conceitual de banco de dados ser transformada num modelo
lógico durante a fase de implantação. Após esta transformação, a estrutura e a
intenção do modelo original deixam de ser óbvias. Deste modo, os modelos
conceitual e lógico tendem a divergir. Além disto, operações naturais sobre o
modelo conceitual, como navegação entre entidades, não são tão imediatas no
modelo lógico (Motik, 2002).
Em algumas situações, o termo ontologia é somente uma outra forma para
denotar o resultado de atividades como analise conceitual e modelagem de
domínio, executadas por meio de metodologias padronizadas. Contudo, em muitos
casos, as denominadas ontologias apresentam suas próprias peculiaridades quanto
à metodologia e arquitetura. No aspecto metodológico, a principal peculiaridade
está na adoção de uma abordagem altamente interdisciplinar, onde filosofia e
lingüística desempenham um papel fundamental na análise da estrutura de uma
dada realidade, num nível elevado de generalização e na formulação de um
vocabulário limpo e rigoroso. Do lado arquitetural, o aspecto mais interessante
está no papel central que uma ontologia pode ter num sistema de informação,
levando a perspectiva de sistemas de informações orientados a ontologias
(Guarino, 1998).
Este trabalho propõe uma abordagem para a integração semântica de
sistemas de informação baseada na linguagem de ontologia OWL, utilizada como
linguagem padrão para tornar compatíveis as diversas fontes de informação. As
formas de obtenção e extração de ontologias são identificadas, com ênfase em
sistemas de banco de dados. Da mesma forma, alternativas para mapeamento entre
classes, propriedades e instâncias das ontologias obtidas são propostas. Ao final,
uma arquitetura para um sistema integrador é apresentada e a implementação de
alguns dos seus componentes é discutida.
Vários trabalhos relacionados com a integração de dados de fontes
heterogêneas têm sido desenvolvidos nos últimos anos. O Stanford-IBM Manager
Introdução 13
of Multiple Information Sources (TSIMMIS) (Chawathe, 1994) é um sistema
federativo baseado numa arquitetura mediated-wrapper estruturado sobre um
modelo de troca de objetos (OEM – Object Exchange Model) que não oferece
uma camada de ontologia (Papakonstantinou, 1995). O Information Manifold
System da AT&T Bell (Levy, 1996b), por sua vez, utiliza o modelo entidade-
relacionamento estendido com características de orientação a objeto (hierarquia de
conceitos) para representação de ontologias, que são codificadas através de
cláusulas de Horn e da description logic CLASSIC (Kirk, 1995). Da mesma
forma, o Services and Information Management for Decision System (SIMS)
(Arens, 1993) baseia-se em uma ontologia global, onde termos, atributos e
propriedades são definidos e representados na forma de uma description logic
denominada LOOM. O Ontology Based System Enhanced with Relationships for
Vocabulary heterogeneity Resolution (OBSERVER) é um sistema integrador de
múltiplas ontologias também definidas em CLASSIC (Mena, 1998).
Outros projetos correlatos também são citados ao longo deste trabalho: o
Meditor envirOnment for Multiple Information Sources (MOMIS) (Bergamaschi,
1998) baseia-se na criação de um esquema global definido em description logic
proprietária; o KArlsruhe ONtology (KAON) (Motik, 2002) é uma infra-estrutura
aberta de ferramentas baseadas em RDF para gerência e integração de ontologias;
o Domain Ontology Management Environment (DOME) (Cui, 2000) também é
um ambiente de ferramentas para integração de fontes heterogêneas baseado em
ontologias definidas a partir de CLASSIC; o ONtology compositION (ONION)
(Mitra, 200) utiliza uma representação orientada a grafos estendida por uma
álgebra de ontologias proprietária; o Bremen University Semantic Translator for
Enhanced Retrieval (BUSTER) (Stuckenschmidt, 2000), por sua vez, utiliza a
linguagem OIL para representar suas ontologias.
Os demais capítulos deste trabalho estão estruturados conforme se segue. O
capítulo 2 aborda os tópicos preliminares relativos à integração de sistemas,
ontologias e algumas de suas linguagens de definição. O capítulo 3 é reservado ao
estudo da linguagem OWL que está em desenvolvimento pelo consórcio W3C. Os
capítulos 4 e 5 tratam respectivamente das formas de explicitação e de
mapeamento entre ontologias. Nestes, são definidos padrões para o mapeamento
Introdução 14
de conceitos entre ontologias e é proposta uma notação gráfica de representação,
de modo a tornar simples e fácil sua identificação e seu entendimento.O capítulo 6
apresenta um estudo de caso onde são validadas as idéias aqui apresentadas. O
capítulo 7 propõe uma arquitetura para implementação de sistema integrador.
Enquanto o último capítulo contém as conclusões finais e sugestões para trabalhos
futuros.
Preliminares 15
2 Preliminares
2.1. Integração de Sistemas
A integração de informações tem por objetivo proporcionar uma visão
coerente de dados armazenados em múltiplas, e possivelmente não homogêneas,
fontes de informação. Este é um dos problemas centrais em banco de dados
distribuídos, sistemas de informação cooperativos e data warehousing, que são
algumas das principais áreas da indústria de desenvolvimento de software.
Muitos trabalhos em integração de informações têm sido desenvolvidos no
contexto de projeto de banco de dados, com ênfase no assim denominado
problema de integração de esquema (schema integration problem), ou seja, na
criação de esquema global unificado a partir de vários sub-esquemas, cada qual
produzido de forma independente. Esforços mais recentes têm levado em
consideração o próprio dado em si. Neste caso, a entrada do processo de
integração é uma coleção de fontes de dados, cada qual constituída por um
esquema e dados reais e o objetivo é proporcionar uma visão integrada e
reconciliada dos dados presentes em cada fonte (Calvanese, 1998).
O sistema integrado pode, em princípio, ser usado tanto para consulta como
para atualização dos dados armazenados. Contudo, para efetuar atualizações das
informações integradas se faz necessária a modificação dos dados em cada fonte
de informação. Assim, é preciso um alto nível de coordenação entre o sistema
integrado e as diversas fontes de dados. Esta forma de integração é típica dos
bancos de dados federativos.
Recentemente, uma forma mais leve de integração tem sido considerada,
onde a autonomia das fontes é uma premissa básica, e o sistema integrado é visto
como um cliente das fontes de dados, sem interferir com a operação das mesmas.
Preliminares 16
Assim, a visão reconciliada é utilizada apenas para responder a consultas, não
considerando a necessidade de atualizações das fontes de forma integrada. Por
esta razão, este tipo de integração é normalmente denomina de read-only
integration.
A integração de informação pode ser virtual ou materializada. No primeiro
caso, o sistema integrado age como uma interface entre o usuário e as fontes, o
que é típico de banco de dados múltiplos, banco de dados distribuídos e, de forma
mais geral, sistemas abertos. Na integração virtual, a resposta a consultas é de alto
custo, por necessitar acessar os dados nas fontes de origem. No segundo caso, o
sistema mantém uma visão replicada dos dados das fontes como, por exemplo, em
data warehousing. Na integração materializada, a resposta a consultas é
geralmente mais eficiente, pois não há necessidade do acesso às fontes, por outro
lado, a manutenção da visão materializada é de alto custo, especialmente quando
estas devem refletir as alterações efetuadas nas fontes de forma imediata.
Há duas abordagens básicas para o problema de integração de informações,
que são conhecidas como procedimental e declarativa. Na abordagem
procedimental, os dados são integrados de uma maneira ad-hoc com respeito ao
conjunto predefinido de informações necessárias. Neste caso, o problema básico é
projetar um módulo de software para atender à necessidade de informação sem a
existência explicita da noção de um esquema (Chawathe, 1994) (Ullman, 1997).
Na abordagem declarativa, o objetivo é modelar os dados das fontes por
meio de uma linguagem adequada, de modo a construir uma representação
unificada, servindo de referência para consultas ao sistema global e para a
construção de respostas com o uso de mecanismos próprios para acesso às fontes
e/ou visões materializadas (Kirk, 1995).
O papel e a importância da modelagem conceitual nas arquiteturas e no
projeto dos sistemas de informação são bem conhecidos. Porém, nem sempre é
considerada nos frameworks de integração de informações, onde o foco da
atenção tem sido, principalmente, nos níveis físico e lógico. Contudo, o modelo
conceitual deveria ser capaz de representar as relações entre dados de diferentes
Preliminares 17
fontes de informação proporcionando, desta forma, uma linguagem de
representação e formalização dos relacionamentos entre os respectivos modelos.
As vantagens da modelagem conceitual relevantes tanto no nível de projeto,
quanto no nível de operação, são as seguintes (Calvanese, 1998):
Abordagem declarativa, independente de sistema – em termos gerais,
pode-se dizer que a utilização do nível conceitual de arquitetura é o meio natural
para se obter uma abordagem declarativa de integração de informações. Como
conseqüência, obtém-se todas as vantagens de se explicitar os vários aspectos dos
sistemas, proporcionando que a especificação dos relacionamentos entre as fontes,
e das fontes com o modelo organizacional, seja independente de sistema;
Alto nível de abstração com relação à interface de usuário – um dos
efeitos mais tangíveis da modelagem conceitual tem sido a quebra da barreira
entre usuário e sistema por permitir um nível mais elevado de abstração durante a
fase de projeto. Além disto, modelos conceituais são normalmente expressos na
forma gráfica e ferramentas gráficas que apresentem adequadamente a visão geral
do sistema são fatores chaves na interface de usuário;
Abordagem incremental – uma crítica que freqüentemente surge nas
abordagens declarativas de integração de informações é a necessidade de uma
visão reconciliada de todos os dados, que pode representar um custo muito
elevado para ser obtida. Contudo, construir um modelo conceitual não obriga o
seu desenvolvimento completo de uma só vez. Novas fontes ou elementos podem
ser incorporados quando se tornam disponíveis ou necessários, amortizando,
assim, o custo da integração. Deste modo, o projeto como um todo pode ser visto
como um processo incremental de entendimento e representação dos
relacionamentos entre as diferentes fontes de dados;
Documentação – enquanto na abordagem procedimental a informação a
respeito dos relacionamentos entre as fontes fica codificada em módulos de
aplicações, na abordagem declarativa estes são registrados de forma explicita. A
importância disto surge de forma clara em grandes organizações, onde as
informações sobre os dados ficam espalhadas em vários documentos que não
Preliminares 18
necessariamente obedecem a padrões comuns. Assim, a modelagem conceitual
pode ser vista como um meio comum para a documentação das fontes de dados e
pode fornecer uma especificação formal para construção de módulos de
aplicações de acessos a essas fontes. Com a representação explicita há um ganho
de re-usabilidade do conhecimento adquirido, que não é alcançado na abordagem
procedimental;
Facilidade de manutenção – as vantagens do nível conceitual na fase de
projeto são refletidas em vantagens também na fase de manutenção, decorrentes
das freqüentes alterações necessárias ao longo da vida útil dos sistemas de
integração de informações.
Um outro conjunto de facilidades que pode ser obtido a partir da introdução
do nível conceitual está relacionado com a capacidade de dedução sobre a
representação conceitual. Esta possibilidade pode ser utilizada para execução de
várias atividades relacionadas ao projeto e à operação dos sistemas. Por exemplo,
a capacidade de inferência pode ser usada: para verificar a representação
conceitual quanto a consistências e redundâncias; para auxiliar na manutenção do
sistema em resposta a alterações nas necessidades de informação; e para avaliar o
desempenho do sistema como um todo.
2.2. Ontologias
No sentido filosófico, pode-se entender ontologia como um sistema de
categorias de uma determinada visão do mundo. Assim sendo, este sistema não
depende de uma linguagem particular. Por outro lado, em seu uso mais freqüente
em IA (Inteligência Artificial), ontologia faz referência a um artefato de
engenharia, constituído de vocabulário específico usado para descrever uma certa
realidade, acrescida de um conjunto de suposições com respeito ao significado
esperado das palavras do vocabulário. Este conjunto de suposições fica
normalmente na forma de lógica de primeira ordem, onde as expressões do
vocabulário aparecem como predicados unários ou binários, chamados
Preliminares 19
respectivamente de conceitos e relações. No caso mais simples, uma ontologia
descreve uma hierarquia de conceitos relacionados por meio de regras, enquanto
que, em casos mais sofisticados, são adicionados axiomas adequados para
expressar relacionamentos mais complexos e para restringir a interpretação
desejada de seus conceitos (Guarino, 1998).
As duas formas de ontologias descritas acima estão intrinsecamente
relacionadas mas para resolver o impasse terminológico, é preciso escolher uma
delas, fazendo uso de um termo adicional para a outra. Dando preferência à
descrição utilizada em IA e escolhendo “conceituação” para o sentido filosófico,
pode-se dizer que duas ontologias podem ser diferentes com relação ao
vocabulário utilizado (como no caso de diferenças de idioma), enquanto
compartilham a mesma conceituação.
Guardadas as devidas proporções, podem-se enumerar algumas formas
antecessoras das ontologias: dicionários definindo termos a partir de outros
termos; esquemas de bancos de dados e seus modelos entidade-relacionamento;
classes definidas na orientação a objetos.
O desenvolvimento de uma ontologia abrangente é de elevado custo. A
validação de uma ontologia requer a classificação de uma quantidade
representativa de objetos. O processamento de consultas sobre os objetos com o
uso de ontologias é extremamente útil na descoberta de inconsistências e erros nas
mesmas. Isto pode ser realizado comparando-se os resultados obtidos com a
expectativa de especialistas do domínio em questão.
Uma vez desenvolvida com sucesso para um determinado contexto, é de se
esperar que a ontologia possa ser reutilizada e estendida para outros contextos.
Ontologias extensas e desenvolvidas para vários propósitos tendem a se tornar
grandes redes, cujo tratamento e manutenção são difíceis e onerosos.
Grande parte do foco no desenvolvimento de ontologias tem sido na
construção de ontologias abrangentes e estáticas, sem uma limitação explicita de
contexto, apesar de, na maioria dos casos, terem sido iniciadas num domínio
Preliminares 20
específico de aplicação. Visto que dificilmente pode ser alcançado um consenso
global sobre seus conceitos e que o significado destes pode mudar com o passar
do tempo, o esforço necessário para manter estas ontologias atualizadas e
consistentes consome praticamente a totalidade dos recursos alocados para o seu
desenvolvimento (Wiederhold, 1999).
Desta forma, uma abordagem baseada na composição de pequenas
ontologias de domínio específico proporciona maior facilidade de manutenção e
de crescimento em escala. Quando uma ontologia é amplamente utilizada como
base de um sistema de informação, seu conteúdo e escopo se tornam altamente
confiáveis, podendo ser reutilizada em seu próprio domínio ou por aplicações que
sejam capazes de construir um novo contexto baseado na composição de
ontologias. A capacidade de composição de ontologias reduz significativamente o
custo global de construção e manutenção das mesmas.
2.3. Linguagens de Ontologias
O reconhecimento do papel chave que as ontologias devem ter no futuro da
Internet levou à expansão das linguagens de marcação de modo a facilitar a
descrição de conteúdo e ao desenvolvimento de ontologias para a Web. Exemplos
são XML Schema (W3C, 2003abcd), RDF (Resource Description Framework) e
RDF Schema (W3C, 2001ab). Esta última, em particular, é reconhecida como uma
linguagem de representação de conhecimento e de ontologias, descrevendo classes
e propriedades (relações binárias), restrições de domínio e contra-domínios de
propriedades, e relações de subclasse e sub-propriedade.
Contudo, RDFS é uma linguagem muito primitiva, que necessita claramente
de um maior poder de expressão para descrever recursos num nível de detalhe
suficiente (Horrocks, 2002). Além disto, tal descrição deve ser passível de
processamento automático por mecanismos de dedução possibilitando, por
exemplo, a determinação do relacionamento semântico entre termos
sintaticamente distintos.
Preliminares 21
2.3.1. DAML e OIL
Com o objetivo de prover o fundamento da Web semântica, foi iniciado em
1999 o programa DARPA Agent Markup Language (DAML). Como primeiro
passo, uma nova linguagem chamada DAML-ONT (DAML, 2000) foi
desenvolvida para estender RDF com construtores semelhantes aos utilizados em
linguagens de orientação a objeto e de representação do conhecimento baseada em
frames. Contudo, como RDFS, DAML-ONT não possuía uma forte especificação
semântica, levando a divergências no entendimento preciso dos termos das
ontologias.
Aproximadamente no mesmo período, um grupo de pesquisadores europeus
com objetivos similares aos do DAML, desenvolveu uma outra linguagem
orientada para Web denominada OIL (Ontology Inference Layer) (OIL, 2000). Da
mesma forma que DAML-ONT, OIL teve sua sintaxe baseada em RDFS e um
conjunto de construtores semelhantes aos das linguagens baseadas em frames
(Stuckenschmidt, 2000). Porém, em OIL foi dada ênfase a um rigor formal, e a
linguagem foi explicitamente projetada de modo que sua semântica pudesse ser
especificada por meio de um mapeamento para SHIQ (Horrocks, 1999), uma
linguagem da família de Description Logics, que possui elevado poder de
expressividade.
Tornou-se óbvio que os esforços de ambos os grupos deveriam ser unidos
num único objetivo. Desta junção resultou a linguagem DAML+OIL
(DAML+OIL, 2001), possuindo alto formalismo semântico e construtores
provenientes da reconciliação entre as duas linguagens. Para dar prosseguimento
ao desenvolvimento de DAML+OIL, foi formado um comitê com membros das
duas equipes originais (Joint EU/US Committee on Agent Markup Language).
Recentemente, a linguagem foi submetida ao W3C (World Wide Web
Consortium) para servir de base para o desenvolvimento da OWL - Web Ontology
Language.
Preliminares 22
2.3.2. DAML+OIL
DAML+OIL é uma linguagem de ontologia projetada para descrever a
estrutura de um domínio. Tendo por base uma abordagem de orientação a objeto,
a estrutura de um domínio é descrita em termos de classes e propriedades. A
definição de que recursos são instâncias de classes ou propriedades em
DAML+OIL é deixada para RDF. Classes de DAML+OIL podem ser nomes ou
expressões, que podem ser construídas a partir de uma variedade de construtores
(Horrocks, 2002):
Construtor Sintaxe DL Exemplo
intersectionOf C1…Cn Humano Masculino
unionOf C1 … Cn Medico Advogado
complementOf ¬C ¬ Masculino
oneOf {X1… Xn} {João, Maria}
toClass P.C temFilho.Medico
hasClass P.C temFilho.Advogado
hasValue P.{X} cidadaoDe.{USA}
minCardinalityQ nP.C 2 temFilho.Advogado
maxCardinalityQ nP.C 1 temFilho.Masculino
cardinalityQ = nP.C = 1 temPais.Feminino
Figura 1 – Construtores de classe em DAML+OIL
A sintaxe DL (Description Logics) foi adotada por ser mais compacta. Em
notação RDF/XML teríamos no exemplo do intersectionOf:
<daml:Class>
<daml:intersectionOf rdf:parseType=”daml:collection”>
<daml:class rdf:about=”#Humano”/>
<daml:class rdf:about=”#Masculino”/>
Preliminares 23
</daml:intersectionOf>
</daml:Class>
Como veremos no capítulo seguinte, a linguagem OWL possui construtores
análogos aos acima apresentados. Naquele capítulo, apresentaremos exemplos
mais detalhados e discutiremos a forma de utilização de cada um destes
construtores.
Como mencionado anteriormente, além do conjunto de construtores, um
outro aspecto de uma linguagem que determina sua expressividade é o tipo de
axioma suportado. Os seguintes axiomas permitem definir relações de subclasse e
equivalência de classes e propriedades, disjunção de classes, equivalência ou não
entre indivíduos, assim como várias características de propriedades.
Axioma Sintaxe DL Exemplo
subClassOf C1 C2 Humano Animal Bipede
sameClassAs C1 C2 Homem Humano Masculino
subPropertyOf P1 P2 temFilha temFilhos
samePropertyAs P1 P2 preco custo
disjointWith C1 ¬C2 Masculino ¬Feminino
sameIndividualAs {X1}{X2} {Luis_Inacio}{Lula}
DifferentIndividualFrom {X1} ¬{X2} {João} ¬{Pedro}
inverseOf P1 P2¯ temFilho temPais¯
transitiveProperty P+ P ancestral+
ancestral
uniqueProperty T 1P T 1 temMae
UnambiguousProperty T 1P ¯ T 1 ehMaeDe
Figura 2 - Axiomas em DAML+OIL
DAML+OIL suporta todos os tipos de dados de XML Schema. Isto é
facilitado pela separação explicita entre elementos de classes de objeto, definidas
Preliminares 24
pela linguagem de ontologia, e valores de tipos de dado, definidas pelo sistema
de tipos de XML Schema. Em particular, é assumido que o domínio de
interpretação das classes de objeto é disjunto do domínio de interpretação dos
tipos de dado. Assim, um elemento de uma classe de objeto não pode nunca ter a
mesma interpretação que um valor de um tipo de dado. Da mesma forma, o
conjunto de propriedades de objeto, que representam relacionamentos entre
elementos de classes de objeto, é disjunto do conjunto de propriedades de tipo
de dado, que associam elementos com valores de tipo de dado.
OWL – Web Ontology Language 25
3 OWL – Web Ontology Language
3.1. Introdução
A linguagem OWL (W3C, 2003efgh) tem como objetivo a definição de
ontologias para a Web e bases de conhecimento associadas. Nela, uma ontologia é
um conjunto de definições de classes, propriedades e restrições no modo como
podem ser utilizadas. Uma ontologia OWL pode incluir os seguintes elementos:
relações de taxonomia entre classes;
propriedades de tipo de dado, ou seja, descrições de atributos dos
elementos de classes;
propriedades de objeto, ou seja, descrições de relações entre
elementos de classes;
e, em menor grau:
instâncias de classes;
instâncias de propriedades.
Propriedades de tipo de dado e propriedades de objeto são, em conjunto, as
propriedades de uma classe.
Um conjunto de sentenças OWL em um sistema de dedução forma uma base
de conhecimento. Essas sentenças ou regras podem incluir fatos sobre indivíduos
que são membros de classes, assim como diversos fatos derivados, que não estão
presentes explicitamente no texto da representação original da ontologia, mas
vinculados, por meio de implicação lógica, na semântica da linguagem OWL.
Estas regras podem estar baseadas numa ontologia simples ou em múltiplas
ontologias distribuídas, que podem ser combinadas através dos mecanismos
definidos em OWL.
OWL – Web Ontology Language 26
Enquanto as ontologias em sua maioria não incluem instâncias de classes
(em oposição às bases de conhecimento), é freqüente o caso em que algumas
instâncias são necessárias para definição de certas classes de uma ontologia. Por
exemplo, se considerarmos Instalacao e Unidade como representando,
respectivamente, as classes das instalações e das unidades organizacionais da
Petrobras, e EP-BC como instância da classe Unidade, então a classe
InstalacaoEPBC das instalações da unidade EP-BC necessitaria desta instância
como parte de sua definição e, assim, como elemento da ontologia.
Comparando-se com outros padrões, uma ontologia OWL diverge de um
XMLSchema (W3C, 2001ab) por se tratar de uma representação do conhecimento
e não um formato de mensagem. A maioria dos padrões de indústria para Web
consiste de uma combinação de especificações de formatos de mensagens e de
protocolos. A estes formatos é dada uma semântica operacional. Mas a
especificação não é planejada para suportar decisões fora do contexto de suas
transações. Por exemplo, no geral, não há um mecanismo para concluir que uma
instalação do tipo InstalacaoEPBC deve também ser do tipo InstalacaoEP-PRO,
posto que InstalacaoEPBC é uma especialização de InstalacaoEP-PRO.
Outra vantagem será a maior disponibilidade de máquinas de inferência para
OWL. Estas ferramentas proporcionarão suporte genérico, não específico a um
domínio particular, o que seria o caso de se desenvolver um sistema de inferência
sobre um esquema XML de um padrão de indústria específico. A construção de
um sistema inteligente robusto não é um esforço simples. A construção de uma
ontologia é muito mais tratável, gerando grande expectativa de que muitos grupos
se dedicarão e esta tarefa. Estes serão beneficiados por ferramentas de terceiros,
baseadas nas propriedades formais da linguagem OWL, que disponibilizarão um
conjunto variado de funcionalidades.
De fato, OWL é um conjunto de três linguagens de complexidade crescente:
OWL Lite – definida com a intenção de criar uma linguagem simples para
atender a usuários que necessitem basicamente de uma hierarquia de
classificação e recursos simples de restrição. Por exemplo, permite
OWL – Web Ontology Language 27
restrições de cardinalidade, porém somente para valores 0 e 1. Por estas
razões, será mais simples fornecer ferramentas de suporte para OWL Lite,
em comparação com as versões mais complexas;
OWL DL – inclui o vocabulário completo da linguagem, interpretado sob
um número de restrições simples. Como primeira destas está a separação
de tipos. Identificadores de classe não podem ser simultaneamente
propriedades e indivíduos. De forma análoga, propriedades não podem ser
indivíduos. OWL DL é assim denominada devido à sua correspondência
com Description Logics;
OWL Full – inclui o vocabulário completo da linguagem, interpretado
mais amplamente que na OWL DL, com a liberdade proporcionada por
RDF. OWL Full não obriga a separação rigorosa entre classes,
propriedades, instâncias e valores de dados. Outra diferença significativa é
que uma propriedade de tipo de dado (DatatypeProperty) pode ser
marcada como invertida (InverseFunctionalProperty). Estas características
são do interesse dos usuários mais avançados.
3.2. Estrutura das Ontologias OWL
Como o objetivo principal de OWL é tratar conteúdo Web, ela é
inerentemente distribuída. Uma conseqüência disto é que OWL geralmente
assume a hipótese de mundo aberto, ou seja, as descrições de recursos não ficam
confinadas num único arquivo ou escopo. Uma classe C1 originalmente definida
em uma ontologia O1 pode ser estendida em outras ontologias, porém,
proposições adicionais sobre C1 não podem negar informações prévias. Fatos e
vínculos podem ser apenas acrescentados, nunca eliminados.
OWL permite que a negação de uma informação seja explicitamente
estabelecida. Como resultado, contradições podem ser geradas com relativa
simplicidade. Também podem ocorrer contradições implícitas. Portanto, para que
este tipo de problema seja evitado, a construção de ontologias deve ser
extremamente cuidadosa.
OWL – Web Ontology Language 28
OWL atende a requisitos de formalismo sintático e semântico, permitindo a
elaboração de ontologias que possam ser utilizadas por agentes de software e
interpretadas sem ambigüidades.
Um componente inicial padrão de uma ontologia OWL inclui um conjunto
de declarações de namespaces dentro de um elemento rdf:RDF. Este mecanismo
provê meios de evitar que identificadores sejam interpretados de forma ambígua e
torna toda a ontologia muito mais legível. No geral, uma ontologia começa com
uma declaração de namespaces similar à seguinte:
<rdf:RDF
xmlns =“http://ti.petrobras.com.br/map#”
xmlns:map =“http://ti.petrobras.com.br/map#”
xmlns:n1710 =”http://nortec.engenharia.petrobras.com.br/N-1710#”
xmlns:sip =“http://ti.petrobras.com.br/SIP#”
xmlns:owl =”http://www.w3.org/2002/07/owl#”
xmlns:rdf =”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:rdfs =”http://www.w3.org/2000/01/rdf-schema#”
xmlns:xsd =”http://www.w3.org/2000/10/XMLSchema#”
xmlns:dt =“http://ti.petrobras.com.br/dt#” >
…
As duas primeiras declarações identificam o namespace associado com a
ontologia para o mapeamento. A primeira é definida como default, estabelecendo
que elementos não prefixados e referências URI (Uniform Resource Identifier)
(Berners-Lee, 1998b) (W3C, 2003j) vazias referenciam a ontologia corrente. A
segunda associa o prefixo map: com o mesmo namespace. A terceira linha
identifica o namespace da ontologia relativa à norma de documentos de
Engenharia da Petrobras N-1710 com o prefixo n1710:. Do mesmo modo, sip: faz
referência à ontologia do Sistema de Informação da Petrobras em
=“http://ti.petrobras.com.br/SIP#”.
OWL – Web Ontology Language 29
A quinta declaração de namespace determina que, neste documento,
elementos prefixados com owl: devem ser entendidos como referenciando o
namespace ”http://www.w3.org/2002/07/owl#”. Esta é uma declaração OWL
convencional, necessária para introduzir o vocabulário OWL.
OWL depende de construções definidas por RDF e RDFS. Neste
documento, o prefixo rdf: faz referência ao namespace chamado
”http://www.w3.org/1999/02/22-rdf-syntax-ns#”. Os dois seguintes fazem
declarações similares com relação a RDF Schema (rdfs:) e XML Schema (xsd:).
Este exemplo de documento OWL está relacionado com um outro
documento contendo definição de tipos de dados. A declaração final estabelece
que elementos prefixados por dt: devem ser entendidos como referências ao
namespace “http://ti.petrobras.com.br/dt#”.
Como auxílio para descrever referências a URLs extensas, um conjunto de
definições pode ser estabelecido na declaração do tipo de documento
(DOCTYPE) que precede as definições da ontologia. Os nomes definidos pelas
declarações de namespace somente têm significado como parte de elementos
XML. Valores de atributos não são sensíveis às definições de namespace. Porém,
em OWL é freqüente o uso de valores de atributos fazendo referência a
identificadores de ontologias. Estes valores podem ser descritos na forma
expandida, como por exemplo “http://ti.petrobras.com.br/SIP#Campo”. De outra
forma, podem ser definidas abreviações com a utilização da definição de
ENTITY, por exemplo:
<!DOCTYPE owl (
<!ENTITY n1710 “http://nortec.engenharia.petrobras.com.br/N-1710#”>
<!ENTITY sip “http://ti.petrobras.com.br/SIP#”> ) >
Após estas declarações, pode ser escrito o valor “&sip;Campo”, que
corresponde em sua forma expandida a “http://ti.petrobras.com.br/SIP#Campo”.
OWL – Web Ontology Language 30
Uma vez definidos os namespaces, o passo seguinte estabelece o começo da
ontologia propriamente dita:
<owl:Ontology rdf:about=“ http://ti.petrobras.com.br/map”>
O valor do atributo about é normalmente a URL do arquivo corrente,
indicando que o objeto da declaração é o próprio documento.
O conjunto de elementos a seguir resolve tarefas do tipo definição de
comentários, controle de versão e inclusão de outras ontologias.
<owl:Ontology rdf:about=“http://ti.petrobras.com.br/map”>
<rdfs:comment>
Ontologia para mapeamento N1710 x SIP
</rdfs:comment>
<owl:versionInfo>
$Id: /map.html,v 1.2 30/05/2003 16:42:25 Marcos $
</owl:versionInfo>
<owl:imports rdf:resource=“http://ti.petrobras.com.br/sip.owl” />
…
O elemento <rdfs:comment> proporciona que sejam incluídos comentários
na ontologia.
O elemento <owl:versionInfo> é um elemento padrão que estabelece, de
forma consistente, um gancho para um sistema de controle de versão de
ontologias. OWL não especifica a estrutura de seu conteúdo.
O elemento <owl:imports> fornece um mecanismo de inclusão de outros
recursos. Possui um único argumento, identificado pelo atributo rdf:resource.
Importar uma outra ontologia significa trazer todo o seu conjunto de
definições para a base de conhecimento corrente. De modo a fazer o melhor uso
da ontologia importada, este mecanismo deve ser utilizado em coordenação com a
OWL – Web Ontology Language 31
declaração de namespaces. Esta proporciona meios convenientes para referência a
termos de outras ontologias. Por outro lado, owl:imports tem a intenção explicita
de incluir todas as declarações da ontologia alvo, permitindo que sejam feitas
inferências sobre seus termos.
3.3. Definições Básicas
Muitos usos de uma ontologia dependem da capacidade de se tirar
conclusões sobre seus indivíduos. Para tal, é necessário um mecanismo para
descrição de classes, indivíduos e propriedades. Estas podem ser herdadas por
classes ou ser atribuídas especificamente a indivíduos. O maior potencial das
ontologias está na capacidade de inferência baseada em classes.
3.3.1. Definindo Hierarquia de Classes
Os conceitos mais básicos de um domínio devem corresponder a classes que
são as raízes de várias árvores de taxonomias. Cada indivíduo do mundo OWL é
um membro da classe owl:Thing. Assim, cada classe definida pelo usuário é
implicitamente uma subclasse de owl:Thing. As classes raízes de um domínio são
definidas através da simples declaração de um nome de classe.
Seguindo o exemplo do domínio da norma N-1710 (ver Anexo A para os
detalhes), as seguintes raízes podem ser criadas:
<owl:Class rdf:ID=”Instalacao”/>
<owl:Class rdf:ID=”Atividade”/>
<owl:Class rdf:ID=”Equipamento”/>
Formalmente, após estas definições de classes, nada mais é conhecido além
de sua existência e seus nomes. Até este momento não faria diferença caso seus
nomes fossem Classe1, Classe2 e Classe3.
OWL – Web Ontology Language 32
A sintaxe atributo/valor rdf:ID=”Instalacao” é utilizada para introduzir um
nome, como parte de sua definição. Este é o atributo rdf:ID semelhante ao
atributo ID definido em XML. No escopo deste documento, a classe Instalacao
pode agora ser referenciada com o uso de rdf:resource=”#Instalacao”. Outras
ontologias podem fazer referência a ela pela forma completa “URI do
documento#Instalacao”. A forma mais razoável para isto seria definindo o
documento como um recurso fonte através da declaração de namespace e entity:
...
<!ENTITY n1710 “http://nortec.engenharia.petrobras.com.br/N-1710#” >
...
<rdf:RDF xmlns:n1710=“http://nortec.engenharia.petrobras.com.br/N-1710#”
...
Estabelecidas estas definições, a classe Instalacao pode ser referenciada
com o uso do elemento XML n1710:Instalacao ou do valor de atributo
&n1710;Instalacao. De qualquer modo, também é sempre possível o uso da URI
na sua forma completa “http://nortec.engenharia.petrobras.com.br/N-1710
#Instalacao”.
Uma outra forma de referência utiliza a sintaxe rdf:about=”#Instalacao”
para estender a definição de um recurso. Este uso é um elemento crítico na criação
de uma ontologia distribuída. Ela permite que uma definição importada possa ser
estendida sem a necessidade de alteração do documento original, dando suporte à
construção incremental de uma ontologia de maior abrangência. No exemplo a
seguir, é adicionado um rótulo à classe Instalação sem a necessidade de alteração
no documento da ontologia original, referenciado por n1710:
<owl:Class rdf:about=”&n1710;Instalacao”>
<rdfs:label xml:lang=”pt”>Instalação Petrobras</rdfs:label>
</owl:Class>
OWL – Web Ontology Language 33
O construtor fundamental na taxonomia de classes é subClassOf (subclasse
de). Ele é transitivo, ou seja, se X é uma subclasse de Y e Y é uma subclasse de Z
então X é uma subclasse de Z. Por exemplo:
<owl:Class rdf:ID=”Maquina”>
<rdfs:subClassOf drf:resource=”#Equipamento” />
...
</owl:Class>
Desta forma, Maquina fica definida como subclasse de Equipamento.
A definição de classes tem duas partes: a introdução de um nome ou
referência e uma lista de restrições. Cada uma das expressões seguintes à
definição de uma classe, e nela contidas, representam restrições adicionais aos
indivíduos pertencentes à classe. Os elementos de uma classe são membros da
interseção de todas as suas restrições.
Neste ponto é possível definir a classe InstalacaoEP, como sendo, de forma
simples, uma subclasse de Instalacao.
<owl:Class rdf:ID=” InstalacaoEP”>
<rdfs:subClassOf rdf:resource=”#Instalacao” />
<rdfs:label xml:lang=”pt”>Instalação do EP</rdfs:label>
...
</owl:Class>
Os elementos rdfs:label provêem nomes opcionais para a classe, permitindo
uma maior legibilidade e o seu uso por ferramentas de apresentação. O atributo
lang fornece suporte para múltiplas linguagens. Um label funciona como um
comentário e não contribui para a interpretação lógica da ontologia.
OWL – Web Ontology Language 34
3.3.2. Definindo Indivíduos
Além de classes, é preciso descrever seus membros. Um indivíduo é
minimamente definido como um membro de uma classe.
<Plataforma rdf:ID=”Petrobras40” />
A seguinte forma possui significado idêntico à anterior:
<owl:Thing rdf:ID=”Petrobras40” />
<owl:Thing rdf:about=”#Petrobras40” />
<rdf:type rdf:resource=”#Plataforma” />
</owl:Thing>
O elemento rdf:type é uma propriedade RDF que vincula um indivíduo à
classe da qual ele é membro.
Como exemplo adicional, é apresentada a definição da instalação móvel de
produção PPMoraes.
<owl:Class rdf:ID=”InstalacaoProducao”>
<rdfs:subClassOf rdf:resourse=”#Instalacao” />
</owl:Class>
<owl:Class rdf:ID=”InstalacaoMovelProducao”>
<rdfs:subClassOf rdf:resourse=”#InstalacaoProducao” />
</owl:Class>
<InstalacaoMovelProducao rdf:ID=”PPMoraes” />
Existem importantes considerações com respeito à distinção entre classes e
indivíduos em OWL. Uma classe é simplesmente um nome e uma coleção de
propriedades que descrevem um conjunto de indivíduos. Estes, por sua vez, são os
membros deste conjunto. Assim, classes devem corresponder a conjuntos de
OWL – Web Ontology Language 35
coisas que ocorrem naturalmente num domínio de interesse, enquanto indivíduos
devem corresponder a entidades reais que podem ser agrupadas nestas classes.
3.3.3. Definindo Propriedades
Uma propriedade é uma relação binária, podendo ser de dois tipos distintos:
propriedade de tipo de dado - relação entre elemento de classe e
tipo de dado XML;
propriedade de objeto – relação entre elementos de duas classes.
Quando uma propriedade é definida, podem ser especificados seu domínio e
contra-domínio. Uma propriedade pode ser definida como especialização de outra
propriedade existente.
<owl:ObjectProperty rdf:ID=”temMetodoElevacao”>
<rdfs:domain rdf:resource=”Coluna”/>
<rdfs:range rdf:resource=”MetodoElevacao”/>
</owl:ObjectProperty>
Em OWL, uma seqüência de sentenças sem um operador explícito
representa uma conjunção implícita aplicada ao elemento que a contém. A
propriedade temMetodoElevacao tem como domínio Coluna e como contra-
domínio MetodoElevacao, ou seja, relaciona elementos da primeira classe com
elementos da segunda.
As propriedades, como as classes, podem ser organizadas de forma
hierárquica. Por exemplo, temos:
<owl:Class rdf:ID="Local" />
<owl:Class rdf:ID="Campo">
<rdfs:subClassOf rdf:resource="#Local" />
OWL – Web Ontology Language 36
...
</owl:Class>
<owl:ObjectProperty rdf:ID="temLocal">
<rdfs:domain rdf:resource="#Instalacao" />
<rdfs:range rdf:resource="#Local" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="temCampo">
<rdfs:subPropertyOf rdf:resource="#temLocal" />
<rdfs:range rdf:resource="#Campo" />
</owl:ObjectProperty>
As propriedades de Local relacionam os locais das instalações, sendo
Campo um destes locais. Assim, pode-se definir temCampo como uma sub-
propriedade de temLocal, sendo seus valores restritos por Campo.
Propriedades de tipo de dado podem assumir valores do tipo String ou
podem fazer referência a um tipo de dado definidos em esquemas XML.
<owl:Class rdf:ID="DataInicioOperacao" />
<owl:DataTypeProperty rdf:ID="valorDataInicio">
<rdfs:domain rdf:resource="#DataInicioOperacao" />
<rdfs:range rdf:resource ="&dt;dataInicio" />
</owl:DataTypeProperty>
onde "&dt;dataInicio" é definido em um esquema XML separado.
Considerando as classes MetodoElevacao, Fluido e Coluna previamente
definidas, propriedades podem ser atribuídas a indivíduos da seguinte forma:
<MetodoElevacao rdf:ID="GLC" />
<Fluido rdf:ID="Oleo" />
<Coluna rdf:ID="RJS332U" >
<temMetodoElevacao rdf:resource="#GLC"/>
<produzFluido rdf:resource="#Oleo" />
OWL – Web Ontology Language 37
</Coluna>
Também é possível especificar características de propriedades, ampliando
ainda mais a expressividade da linguagem:
TransitiveProperty - P(x, y) e P(y, z) -> P(x, z)
<owl:ObjectProperty rdf:ID="temLocal">
<rdf:type rdf:resource="&owlTransitiveProperty" />
<rdfs:domain rdf:resource="&owl;Thing" />
<rdfs:range rdf:resource="#Local" />
</owl:ObjectProperty>
<Local rdf:ID="Badejo">
<temLocal rdf:resource="#AreaNorteBC" />
</Local >
<Local rdf:ID="AreaNorteBC">
<temLocal rdf:resource="#EP-BC" />
</Local>
Badejo está localizado em AreaNorteBC e esta, por sua vez, em EP-BC.
Como temLocal é transitiva, Badejo também está localizada em EP-BC.
As demais características de propriedades são:
SymmetricProperty - P(x, y) iff P(y, x)
FunctionalProperty - P(x, y) e P(x, z) -> y = z
InverseOf - P1(x, y) iff P2(y, x)
InverseFunctionalProperty - P(y, x) e P(z, x) -> y = z
Além disto, há vários modos para se restringir ainda mais os valores de
propriedades em determinados contextos:
OWL – Web Ontology Language 38
cardinality
<owl:Class rdf:ID="Coluna">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temMetodoElevacao"/>
<owl:cardinality>1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
O elemento cardinality permite especificar o número exato de elementos de
uma relação. Enquanto minCardinality e maxCardinality são utilizados para
definir o limite inferior e o superior respectivamente.
hasValue
<owl:Class rdf:ID="ColunaGas">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#produzFluido" />
<owl:hasValue rdf:resource="#Gas" />
</owl:Restriction>
</rdfs:subClassOf>
...
</owl:Class>
O elemento hasValue permite a definição de classes baseadas na existência
de determinado valor de propriedade. Assim, um indivíduo será membro da classe
se, pelo menos, um dos valores da propriedade for igual ao da restrição.
allValuesFrom e someValuesFrom
OWL – Web Ontology Language 39
<owl:Class rdf:ID="PlataformaGas">
<rdfs:subClassOf rdf:resource="Plataforma" />
...
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temColuna" />
<owl:allValuesFrom rdf:resource="#ColunaGas" />
</owl:Restriction>
</rdfs:subClassOf>
...
</owl:Class>
As colunas (temColuna) de uma plataforma de gás (PlataformaGas)
devem ser colunas de gás (ColunaGas). A restrição allValuesFrom se aplica
somente na propriedade da classe PlataformaGas. Colunas de quaisquer outras
plataformas não são afetadas por esta restrição. A restrição someValuesFrom é
definida de forma similar, porém menos restritiva. Caso se utilizasse no exemplo
anterior someValuesFrom, a restrição seria satisfeita se, pelo menos, uma coluna
fizesse referência a uma instância de ColunaGas.
Explicitando Ontologias de Sistemas 40
4 Explicitando Ontologias de Sistemas
4.1. Fontes de Ontologias
Todo sistema de informação tem sua própria ontologia, visto que, atribui
significado aos símbolos utilizados para uma dada visão particular do mundo. A
maioria dos sistemas de informação consiste de três diferentes tipos de
componentes: programas de aplicação; fontes de informação e interfaces de
usuário. Estes componentes são integrados de modo a alcançar um propósito
concreto de atendimento a necessidades de informação do usuário (Guarino,
1998). Para discutir a forma de utilização de ontologias em sistemas de
informação, é preciso considerar como cada um de seus componentes é afetado,
assim como, a fase em que o sistema faz uso da ontologia, ou seja, se durante o
desenvolvimento ou se em tempo de execução.
Na fase de desenvolvimento, podem ser distinguidos dois cenários
principais, correspondentes à existência de uma biblioteca organizada contendo
um conjunto de ontologias reutilizáveis, ou à existência de uma ontologia genérica
de mais alto nível, portanto, de reaproveitamento mais limitado. No primeiro
cenário, o conteúdo semântico pode ser “traduzido” para um componente do
sistema de informação, reduzindo a necessidade de análise e garantindo melhor
adequação do sistema. Quanto ao segundo cenário, que normalmente é o mais
freqüente, o papel da ontologia não é o de ser adaptada e reutilizada, mas por
outro lado, participar como ferramenta para o aumento de qualidade do processo
de análise, servindo como ponto de partida de mais alto nível para o
desenvolvimento de uma ontologia da aplicação.
Um ponto importante a ser destacado é que as ontologias podem ser não
apenas utilizadas na construção de novos sistemas (sistemas de informação
Explicitando Ontologias de Sistemas 41
baseados em ontologias), mas também podem fazer parte de um processo de
reengenharia de sistemas legados, aumentando seu reuso e facilitando sua
manutenção.
Em tempo de execução dos sistemas, o uso de ontologias possibilita que
agentes de software se comuniquem via mensagens formuladas em termos de
ontologias. Através do compartilhamento de ontologias comuns, os agentes
podem “entender” o significado das mensagens trocadas.
Com respeito ao impacto do uso de ontologias em cada um dos
componentes de um sistema, podem ser feitas as seguintes considerações.
O uso mais óbvio de uma ontologia está em sua conexão com o componente
de fonte de informação. De fato, uma ontologia pode ser comparada ao esquema
de banco de dados. Na fase de desenvolvimento, o uso de ontologias pode
desempenhar um papel importante na análise de requisitos e modelagem
conceitual, podendo ser utilizada para mapear a especificação conceitual em
esquemas de vários tipos de bancos (relacional, orientado a objetos e outros).
Outro uso típico está na integração de informações, através do mapeamento de
esquemas conceituais heterogêneos numa ontologia comum de alto nível.
O primeiro papel que uma ontologia pode ter com relação ao componente
de interface de usuário é servindo de alvo de consulta pelo próprio usuário. Neste
caso, o usuário tem consciência da ontologia, que faz parte do procedimento de
uso normal do sistema. Além deste, outro uso interessante está no usuário poder
configurar seu próprio vocabulário (sua própria ontologia), relacionando termos
do sistema com os seus.
Os programas de aplicação são componentes importantes da maioria dos
sistemas de informação. Neles está contida grande parte do conhecimento do
domínio que, por vários motivos, não foi armazenada de forma separada do
próprio código. Uma parcela deste conhecimento fica codificada na parte estática
dos programas na forma de declarações de classes e tipos de dados. Outra parcela,
de regras de negócio, é mantida implicitamente no código dos procedimentos das
Explicitando Ontologias de Sistemas 42
aplicações. Durante o desenvolvimento, o uso de ontologia pode ajudar na geração
da parte estática dos programas. Após a entrada em execução, grandes benefícios
do ponto de vista de flexibilidade, facilidade de manutenção e extensão podem ser
alcançados, através da representação explícita do conhecimento embutido nos
programas de aplicação, construindo desta forma, sistemas orientados ao
conhecimento.
Figura 3 – Explicitando ontologias de sistemas de informação
Contudo, se por alguma razão, não for possível ou de interesse tornar
explícito todo o conhecimento contido nos componentes de um sistema de
informação, ainda assim, o comprometimento deste com uma ontologia de mais
alto nível pode ser explicitado, aumentando significativamente a transparência e a
qualidade do software das aplicações.
4.2. Modelos Baseados em Classes
4.2.1. Discussão
A representação de modelos de objetos e classes é encontrada em vários
campos da Ciência da Computação. De modo geral, um objeto denota um
elemento de um domínio de interesse, enquanto uma classe significa um conjunto
Código
Dados
Ontologia
Sistema de Informação
Sistemas de Informação Externos
Explicitando Ontologias de Sistemas 43
de objetos com características comuns. Através destes modelos podem ser
expressos vários tipos de relacionamentos e restrições existentes entre as classes
de um determinado conjunto de aplicações ou sistemas. Deste modo, a
formalização destes modelos faz uso da estrutura de classes para proporcionar
várias informações como, por exemplo, se uma classe é consistente (ou seja,
admite pelo menos um objeto), se uma classe é subclasse de outra ou, de forma
mais geral, se uma dada restrição se aplica a um conjunto de classes.
Três famílias principais de formalismos baseados em classes podem ser
identificadas. A primeira vem da área de representação do conhecimento, em
particular, do trabalho em redes semânticas e frames. A segunda é proveniente da
área de banco de dados, em particular, do trabalho relacionado à modelagem
semântica de dados. A terceira, da área de sistemas orientados a objeto e do
trabalho relacionado à definição de tipos em linguagens de programação.
Em Description Logics, a estrutura do conhecimento é representada por
meio de conceitos e papéis, que denotam predicados unários e binários
respectivamente. Formalmente, conceitos são representados como subconjuntos
de um domínio, enquanto os papeis como relações binárias sobre este domínio.
Expressões complexas de conceitos e papeis podem ser construídas a partir de um
conjunto de símbolos atômicos, através da aplicação adequada dos construtores de
uma determinada linguagem de Description Logics.
Em (Calvanese, 1999) é proposta uma linguagem de Description Logics
denominada ALUNI, que possui uma combinação de construtores, incluindo
restrições de número, papeis inversos e sem restrições de assertivas com ciclos.
Esta linguagem apresenta recursos suficientes para proporcionar um framework
unificado para sistemas baseados em frames, linguagens orientadas a objeto e
modelagem semântica de dados. Como os construtores de ALUNI representam
um subconjunto dos construtores de OWL-DL, esta também possui poder de
representação para expressar os modelos acima citados, possibilitando assim o
mapeamento dos modelos entidade relacionamento e dos modelos de classes de
objetos para ontologias definidas em OWL.
Explicitando Ontologias de Sistemas 44
4.2.2. Do Modelo UML
Unified Modeling Language (UML) é um padrão do Object Management
Group (OMG), sendo amplamente utilizado por companhias e instituições
envolvidas com a área de engenharia de software. Existem várias ferramentas
disponíveis para criação e edição de modelos em UML, através de manipulação de
sua representação gráfica. Vários tipos de diagramas são definidos em UML para
modelagem dos comportamentos estático e dinâmico de um sistema. Dois tipos
são os mais relevantes para aplicação na representação do conhecimento
(Cranefield, 2001):
diagramas de classes – representam classes, seus atributos e
relacionamentos;
diagramas de objetos – representam os objetos (instâncias das classes),
os valores de seus atributos e suas ligações com outros objetos.
A especificação OMG do formato XML Metadata Interchange (XMI)
(OMG, 2003) define um mecanismo para serialização de um modelo UML como
um documento XML. O mapeamento de diagramas de classes UML para
esquemas RDF-Schema (RDFS) pode ser implementado através da utilização da
linguagem de transformação XSLT (W3C, 2003i), tendo como entrada o
documento XMI exportado por alguma ferramenta CASE disponível. Alguns
problemas ocorrem nesta abordagem como, por exemplo, o fato das propriedades
serem globais em RDF. Desta forma, uma dada propriedade não pode ser definida
como tendo diferentes contradomínios quando aplicada a objetos de classes
distintas. Uma forma de contornar tal problema é através da definição de
propriedades com nomes na forma nomeClasse.nomePropriedade, tornando as
propriedades únicas para cada classe.
A abordagem baseada na utilização de transformações XSLT pode ser
estendida para criação de documentos OWL e também para utilizar como entrada
documentos XML gerados a partir de outras linguagens de modelagem de classes.
Explicitando Ontologias de Sistemas 45
Um resumo comparativo entre UML e RDFS pode ser obtido em (W3C,
1998) e uma ferramenta para tradução automática de UML/XMI para RDFS foi
disponibilizada em (Melnik, 2000).
4.2.3. Do Modelo Entidade-Relacionamento
O modelo Entidade-Relacionamento (ER) é o mais difundido modelo
semântico de dados, amplamente utilizado na fase de projeto das aplicações
comerciais, tornando-se um padrão de mercado. Desde sua introdução por P. Chen
em 1976, inúmeras extensões e variações foram propostas, as quais diferem em
pequenos aspectos quanto à notação e expressividade (Calvanese, 1999). Os
elementos básicos do modelo ER são entidades, relacionamento e atributos. Numa
visão simplificada, as entidades representam um conjunto de objetos, ou
instâncias, que possuem propriedades comuns. As propriedades elementares são
modeladas como atributos, cujos valores possuem domínios predefinidos, como
Integer, String e Boolean. Propriedades que são devidas a ralações entre entidades
são modeladas como relacionamentos.
Ferramentas de modelagem ER como, por exemplo, o Cool:Biz (CA, 2003),
disponibilizam mecanismos para exportação dos diagramas ER para documentos
em formato não proprietário, tornando possível a tranformação automática de
modelos ER para ontologias em OWL, de forma análoga ao item anterior.
4.2.4. Do Modelo Relacional
A razão para se utilizar uma abordagem baseada no modelo lógico de banco
de dados é que freqüentemente nenhum modelo conceitual está disponível quando
os sistemas de banco de dados encontram-se em produção. Naturalmente, o
mapeamento a partir destes modelos não preserva tanta informação quanto o
realizado a partir dos modelos conceituais, resultando em ontologias mais pobres.
Explicitando Ontologias de Sistemas 46
Uma alternativa para obtenção da ontologia é através de engenharia reversa,
a partir do esquema físico do banco de dados, com posterior conversão em OWL.
Ferramentas de modelagem, como por exemplo, o ERWIN (Erwin, 2003),
disponibilizam mecanismos para exportação dos diagramas relacionais para
documentos textuais ou HTML, sendo permitida a configuração do formato e do
conteúdo a ser exportado, permitindo, de forma análoga ao visto anteriormente, a
conversão automática do modelo relacional para RDFS ou OWL.
Outra forma seria a utilização de extratores diretamente sobre o catálogo do
gerenciador do banco de dados. Neste caso, a extração seria feita quando
necessária e de forma dinâmica.
Algumas regras para este mapeamento podem ser definidas de modo a tentar
restaurar a semântica do modelo conceitual original. Estas regras podem ser
divididas nos seguintes grupos (Stojanovic, 2002).
Regras de conceitos
o C1 – toda relação (tabela) é convertida num conceito, com exceção
das regras C2 e C3;
o C2 – relações contendo apenas um par de chaves primárias não
geram conceitos, mas geram propriedades conforma P1;
o C3 – relações com chave primária comum são integradas num
único conceito, ou geram uma especialização conforme regras H1;
Regras de herança
o H1 – especialização da regra C3, em geral dependente de decisão
do usuário;
Regras de propriedades
o P1 – relacionamentos (n : m) derivada de C2, gerando propriedades
inversas nos conceitos correspondentes;
o P2 – relacionamentos (1 : n), gera o mesmo resultado de P1;
o P3 – decorrente de C3, propriedades são integradas num único
conceito;
o P4 – relacionamentos (1:1), gera o mesmo resultado de P1;
Explicitando Ontologias de Sistemas 47
o P5 – relacionamentos de grau > 2, geram um conceito adicional e
um conjunto de propriedades correspondentes a P2;
o P6 – todo atributo relacional é convertido em propriedade, com
exceção das regras anteriores.
Neste trabalho, como veremos em capítulo seguinte, desenvolvemos uma
ferramenta para extração de ontologias a partir do catálogo do banco de dados
relacional Oracle. Esta ferramenta implementa algumas das regras mencionadas
acima, gerando um documento OWL com classes e propriedades.
4.3. Documentos Semi-estruturados
No caso de documentos que não possuam estrutura rígida, a construção de
um procedimento genérico para extração automática da ontologia se torna mais
complexo. Neste caso, de modo a aproveitar o máximo possível da estrutura
existente, parece mais razoável o tratamento individualizado da cada tipo de
documento. No estudo de caso, apresentado em capítulo à frente, uma ferramenta
para criação da taxonomia relativa a norma N-1710 (N-1710) seria de construção
relativamente simples, tendo em vista a numeração de seções e a formatação
existente para alinhamento do conteúdo apresentado.
Vários trabalhos e ferramentas têm sido desenvolvidos para geração de
conteúdo estruturado de forma semi-automática a partir de páginas HTML
(Laender, 2002). Nesta linha, estes trabalhos poderiam ser estendidos ou
utilizados como ponto de partida para ferramentas de criação de ontologias.
Outra abordagem interessante é a proposta no processo de construção de
ontologias a partir da transformação do LAL (Léxico Ampliado da Linguagem),
que procura preservar a semântica obtida na etapa de elicitação de sistema
(Breitman, 2003).
Explicitando Ontologias de Sistemas 48
4.4. Documentos Não Estruturados
Vários trabalhos para aquisição de ontologias de forma semi-automática a
partir de documentos textuais e de páginas da Internet tem sido desenvolvidos no
meio acadêmico. Podem ser citados, por exemplo, os trabalhos relacionados ao
framework TEXT-TO-ONTO (Maedche, 2000 2001) (Kietz, 2000) (Erdmann,
2000). Algumas ferramentas como CYC-NL (CYC, 2003) e CORPORUM-
OntoBuild (Corporum, 2003) encontram-se disponíveis comercialmente.
Interconectando Ontologias 49
5 Interconectando Ontologias
5.1. Interoperabilidade Semântica
Com o objetivo de estabelecer o compartilhamento eficiente de dados,
muitos problemas técnicos devem ser enfrentados. Primeiramente, fontes
apropriadas de dados devem ler localizadas. Em seguida, os dados contidos nestas
fontes, normalmente heterogêneos, devem ser acessados de forma consistente. Isto
significa dizer que, de alguma forma, cada fonte de dado deve trabalhar em
conjunto com o sistema que está demandando por dados. O problema de se
colocar sistemas heterogêneos e distribuídos em funcionamento conjunto é
conhecido como problema de interoperabilidade.
A interoperabilidade deve ser atingida tanto no nível técnico quanto no nível
da informação propriamente dita. De modo resumido, o compartilhamento de
dados não necessita apenas que os estes sejam acessados, mas também que os
mesmos possam ser processados e integrados por outros sistemas. Os problemas
que podem surgir devido à heterogeneidade dos dados são bem conhecidos pela
comunidade de sistemas de banco de dados distribuídos: heterogeneidade
estrutural e heterogeneidade semântica.
Heterogeneidade estrutural significa que diferentes sistemas de informação
armazenam seus dados em estruturas com esquemas distintos. Heterogeneidade
semântica, por sua vez, considera o conteúdo dos dados e seu significado
desejado.
De modo a proporcionar interoperabilidade semântica, o significado dos
dados trocados entre os sistemas deve ser entendido de forma comum. Quando a
interpretação dos dados não é a mesma ocorrem os chamados conflitos semânticos
(Wache, 2001):
Interconectando Ontologias 50
diferenças na estrutura de nomes, devido à presença de homônimos
ou sinônimos.
diferenças de referências usadas em valores de medições como, por
exemplo, no uso de diferentes moedas;
diferenças quanto ao contexto temporal, apesar das informações
aparentarem o mesmo significado;
O uso de ontologias para descrever o conhecimento implícito das fontes de
dados é uma aplicação chave para resolver os problemas de heterogeneidade
semântica. Muitas aplicações têm sido desenvolvidas neste sentido, entre elas:
BUSTER (Bremen University Semantic Translator for Enhanced Retrieval)
(Stuckenschmidt, 2000), OBSERVER (Ontology Based System Enhanced with
Relationship for Vocabulary hEterogeneity) (Mena, 1998), TSIMMIS (The
Stanford-IBM Manager of Multiple Information Sources) (Chawathe, 1994),
ONION (ONtology compositION) (Mitra, 2000) e KAON (Karlsruhe Ontology)
(Motik, 2002) (Maedche, 2002 2003).
Em praticamente todas as abordagens de integração baseadas em ontologias,
estas têm sido usadas para explicitar o conteúdo semântico das fontes de dados.
Contudo, as maneiras como as ontologias são empregadas podem ser diferentes.
Em geral, podem ser identificadas três abordagens principais: ontologia única,
ontologias múltiplas e ontologias híbridas (Wache, 2001).
Na abordagem de ontologia única, o vocabulário compartilhado para a
especificação da semântica é global. Todas as fontes de dados estão relacionadas
com uma única ontologia global. A ontologia global também pode ser uma
combinação de várias ontologias especializadas. Uma razão para tal pode ser a
composição de uma ontologia potencialmente mais abrangente obtida através de
mecanismos de importação de módulos de ontologias. A abordagem de ontologia
única pode ser aplicada na integração de fontes de dados que compartilhem
basicamente a mesma visão de um domínio. Porém, se uma das fontes tem uma
visão diferente como, por exemplo, um outro nível de detalhamento, torna-se
bastante difícil encontrar um comprometimento ontológico mínimo. Além disto,
Interconectando Ontologias 51
esta abordagem é suscetível a modificações nas fontes de dados que possam afetar
a conceituação do domínio representado pela ontologia.
Na abordagem de ontologias múltiplas, cada fonte de informação é descrita
por sua própria ontologia. A princípio, uma “ontologia fonte” pode ser a
combinação de várias outras ontologias, mas não pode ser assumido que
diferentes ontologias fontes compartilhem o mesmo vocabulário. A vantagem
desta abordagem é que não é necessário um comprometimento mínimo comum
com uma ontologia global. Cada ontologia fonte pode ser desenvolvida sem levar
em consideração outras fontes e suas ontologias. Esta arquitetura de ontologias
pode simplificar a tarefa de integração e permite alterações, acrescentando ou
removendo fontes. Por outro lado, a falta de um vocabulário comum torna difícil a
comparação de diferentes ontologias fontes. Para superar este problema, um
formalismo adicional de representação para definição de mapeamento entre
ontologias é necessário. O mapeamento entre ontologias identifica termos com
correspondência semântica entre as ontologias fontes como, por exemplo, termos
que são semanticamente iguais ou semelhantes. Contudo, o mapeamento deve
considerar também diferentes visões de domínio, como é o caso de diferenças no
nível de agregação e detalhamento de conceitos.
As abordagens híbridas foram desenvolvidas com o objetivo de superar os
problemas encontrados nas abordagens anteriores. De forma semelhante à
abordagem de ontologias múltiplas, a semântica de cada fonte de dados é descrita
por ontologia própria. Mas, para tornar as ontologias locais comparáveis umas
com as outras, elas são construídas a partir de um vocabulário global
compartilhado. Este vocabulário contém os termos básicos de um domínio, que
são combinados nas ontologias locais de modo a descrever uma semântica mais
complexa. Algumas vezes, o vocabulário compartilhado é também uma ontologia.
A vantagem da abordagem híbrida é que novas fontes de dados podem ser
facilmente adicionadas sem necessidade de alteração global. Ela também suporta a
evolução das ontologias. O uso de um vocabulário compartilhado torna as
ontologias fontes comparáveis e evita as desvantagens da abordagem de
ontologias múltiplas. Contudo, a desvantagem das abordagens híbridas está no
fato das ontologias existentes não serem facilmente reutilizadas, devendo passar
Interconectando Ontologias 52
por uma adequação de modo a garantir o comprometimento com o vocabulário
comun.
Si : sistemas de informação
Oi : representação das ontologias locais dos sistemas de informação
OG: ontologia global composta sobre as ontologias Oi
O’i : representação da participação de Oi na ontologia global
Figura 4 – Interconectando ontologias de sistemas de informação
Outro aspecto relevante a ser considerado é o da evolução das ontologias. A
dinâmica de negócio, assim como as mudanças no ambiente das aplicações, levam
a alterações continuadas nos requisitos das aplicações. Como conseqüência, de
modo a satisfazer esta necessidade, as ontologias destas aplicações também devem
sofrer evolução.
A evolução das ontologias é uma adaptação das mesmas ao longo do tempo
com relação aos requisitos de negócio, às tendências observadas nas ontologias,
aos padrões na utilização das aplicações baseadas em ontologia, assim como na
propagação de modificações para elementos de ontologias dependentes. A
modificação de parte de uma ontologia pode gerar inconsistências em outras
partes da mesma ontologia ou em ontologias e aplicações dependentes. Esta
variedade de causas e conseqüências torna a evolução das ontologias uma
operação complexa e delicada que requer uma análise cuidadosa dos tipos de
modificações possíveis e de todo o processo relacionados com a mesma. Apesar
desta evolução contínua ser um requisito essencial para o sucesso na utilização
S1
. . .
...
S3
OG
O’1 ...
O’n
O1
On
...
Interconectando Ontologias 53
das ontologias, métodos e ferramentas para dar suporte completo a esta tarefa
complexa ainda não estão disponíveis (Ljiljana, 2002). Este nível de
gerenciamento de ontologias é necessário, não apenas no desenvolvimento inicial
e manutenção das ontologias, mas é essencial durante a implantação e operação
das aplicações, quando confiabilidade, disponibilidade, desempenho e facilidade
de crescimento em escala são requisitos absolutamente críticos.
A utilização de mecanismos de software para encapsulamento das
ontologias permite que elas sejam mantidas e evoluam com certa independência.
Estes mecanismos são conhecidos como wrappers (Sheth, 1999) (Schwarz, 1997)
(Papakonstantinou, 1995). Os wrappers são utilizados para o estabelecimento de
um canal de comunicação que seja independente do formato e da forma de
implementação das fontes de dados. São necessários wrappers para cada tipo de
organização de dados, mas o mesmo wrapper pode ser usado para acessar
diferentes repositórios com o mesmo tipo de organização. Por exemplo, wrappers
genéricos podem existir para fontes de dados ODBC ou arquivos tipo XML.
Para prover acesso uniforme e integrado às informações obtidas através dos
wrappers, são utilizados outros mecanismos denominados mediators
(Wiederhold, 1992 1995 1997) (Fensel, 2001). Um mediator é um sistema que
executa o papel de articulador das diversas fontes de informação. Pode ser visto
como uma fonte de dados secundária, que provê uma interface uniforme para as
diversas fontes de dados subjacentes (Tzitzikas, 2002). O mediator possui um
conjunto de articulações que representam as relações entre os seus termos
(ontologia global) e os termos de suas fontes (ontologias locais). O mediator
utiliza essas articulações para “traduzir” consultas na sua ontologia para consultas
decompostas em termos das ontologias de suas fontes articuladas. Da mesma
forma, o mediator deve combinar as respostas de cada fontes e retornar um
resultado consolidado para o sistema solicitante.
É importante observar que a ontologia global não precisa ser
necessariamente uma entidade física, mas somente as articulações entre as
ontologias locais devem ser fisicamente armazenadas. Desta forma, ficam
estabelecidas duas camadas estruturais: a primeira trata de uma coleção de
Interconectando Ontologias 54
ontologias tradicionais, relativamente estáticas, mantidas localmente; a segunda,
uma estrutura dinâmica para articulação de ontologias relacionadas ao contexto de
composição de aplicações. Como a composição é uma operação inerentemente
dinâmica, a estrutura de articulações pode ser mantida e evoluir conforme
necessidades e requisitos de negócio. Desta forma, a ontologia unificada
resultante tem uma estrutura limpa e flexível, com relativa independência entre as
fontes de informação e com grande facilidade de adaptação e evolução no nível
global (Wiederhold, 1999).
5.2. Princípios para o Mapeamento de Conceitos
Os princípios para o mapeamento entre ontologias podem ser classificados
de forma análoga à utilizada para consolidação de visões de banco de dados,
através da definição de três conceitos básicos: identidade, agregação e
generalização. Os tipos de inter-relacionamentos são formados a partir das várias
possibilidades de composição destes conceitos (Teorey, 1982).
Identidade é o mais simples e imediato dos três conceitos. Dois ou mais
elementos são ditos idênticos se possuem o mesmo significado semântico.
Contudo, não é necessário que elementos idênticos tenham a mesma representação
sintática. Uma outra forma de descrever uma relação de identidade é afirmando
que dois ou mais elementos são sinônimos.
Apesar do conceito de identidade ser bastante simples, a determinação de
instâncias sinônimas não é de fácil reconhecimento. Devido aos métodos de
representação inadequados, o conhecimento semântico dos dados é muito
limitado. Normalmente, um profundo conhecimento do ambiente do usuário é
necessário para determinar se existe alguma identidade semântica. As instâncias
de dois conceitos candidatas a uma relação de identidade podem formar uma
interseção ao invés de uma união. É difícil decidir se um ou ambos os conceitos
são capazes de cobrir a união de todas as instâncias.
Interconectando Ontologias 55
O conceito de agregação é também bastante freqüente. Agregação refere-se
à idéia na qual um relacionamento entre elementos é considerado como sendo um
outro elemento de mais alto nível. A maior parte das agregações é de fácil
identificação, pois a maioria dos modelos de dados incorpora sintaxe que
representam a agregação.
Generalização é normalmente o princípio mais complexo de capturar, sendo
muitas vezes confundido com agregação. Enquanto a agregação pode ser pensada
como partes constituintes de um todo, a generalização diz respeito somente aos
conceitos que por si só representam o todo. Generalização faz referência ao
processo de abstração no qual um grupo de elementos é imaginado como um
elemento genérico suprimindo-se as diferenças entre os mesmos. Em muitos
casos, elementos similares não devem ser enquadrados num relacionamento de
identidade, mas de outro modo, devem ser representados como uma forma de
generalização.
Figura 5 – Agregação e Generalização de Conceitos
Uma outra abordagem para o mapeamento entre ontologias baseia-se em
encontrar similaridades ou diferenças entre os termos definidos em duas ou mais
ontologias (Hakimpour, 2001). Quatro níveis de similaridades entre definições de
conceitos podem ser identificados:
Definições disjuntas – este é o nível mais baixo de similaridade.
Dois conceitos ou relações são disjuntos se a conjunção de suas
A
C
B A
C
B
Agregação Generalização
Interconectando Ontologias 56
definições implica em falso, ou seja, a interseção de suas extensões
(instâncias do conceito) resulta num conjunto vazio.
Definições sobrepostas – quando a conjunção das suas definições
intencionais não pode ser provada como sendo falsa. Isto é, uma
instância de um conceito pode ser instância do outro conceito,
implicando que as extensões dos respectivos conceitos apresentam
interseção.
Definições especializadas (sub-conceito ou sub-relação) – quando a
definição intencional do conceito de uma ontologia é uma
implicação da definição intencional do conceito da outra ontologia.
Assim, se um conceito é especialização de outro, todas as instâncias
do primeiro também são instâncias do segundo.
Definições iguais – este é o nível mais elevado de similaridade. É
estabelecido quando as definições intencionais de dois conceitos são
equivalentes. Deste modo, todas as instâncias de um conceito são
instâncias do outro e vice-versa. Assim sendo, cada conceito
representa uma especialização do outro e suas extensões são iguais.
O quadro seguinte representa os níveis de similaridade entre dois conceitos
A e B de ontologias distintas.
Figura 6 – Similaridade entre conceitos e relações
5.3. Criando Articulações entre Ontologias
A interoperabilidade semântica tem sido amplamente estudada em trabalhos
da área de sistemas de banco de dados heterogêneos e em sistemas de banco de
A AA A
B B B B
Disjunção Sobreposição Especialização Igualdade
Interconectando Ontologias 57
dados múltiplos. Uma das estratégias utilizadas é o mapeamento de todos os
esquemas de sistemas num único sistema global de referência. Tal estratégia sofre
das mesmas desvantagens da abordagem utilizada na integração de informações.
Além disto, confiar nos usuários para resolver todos os relacionamentos
semânticos entre todas as informações dos mais variados sistemas, pressupõe
implicitamente que estes usuários sejam especialistas no domínio. Em
contrapartida, as lacunas semânticas podem ser resolvidas por um mecanismo de
articulações que tratem somente da interseção entre as fontes de informação que
sejam relevantes para cada aplicação (Mitra, 2000).
Desta forma, ontologias de mapeamento podem ser definidas contendo as
articulações entre os elementos (classes, propriedades e instâncias) das ontologias
das fontes de informação. Estas articulações são representadas por novos
elementos que fazem referência às URI’s dos elementos das ontologias fontes,
sem a necessidade de importação destas ontologias ou da redefinição dos
elementos originais. O exemplo a seguir, conforme será visto com mais detalhe na
próxima seção, define em OWL a articulação Plataforma, que relaciona a classe
de mesmo nome da ontologia referenciada por &sip como subclasse de
Instalação da ontologia referenciada por &n1710.
<owl:Class rdf:ID="Plataforma">
<rdfs:subClassOf rdf:resource="&n1710;Instalacao" />
<owl:sameClassAs rdf:resource="&sip;Plataforma" />
</owl:Class>
5.4. Mapeando Ontologias em OWL
Com o objetivo de permitir a composição de ontologias a partir de outras já
existentes, deve ser possível indicar que uma classe ou propriedade de uma
determinada ontologia é equivalente a uma classe (sameClassAs) ou propriedade
(samePropertyAs) de uma segunda ontologia. Esta capacidade deve ser utilizada
com cuidado, de modo a evitar a ocorrência de contradições do tipo “(todo A é B)
Interconectando Ontologias 58
e (todo A é não B)” que levaria a um conjunto vazio, pois não há elementos que
possam satisfazer as duas sentenças simultaneamente.
O exemplo a seguir, que poderia ser utilizado numa ontologia de
equipamentos, define uma classe idêntica à classe Bomba da ontologia da norma
N-1710:
<owl:Class rdf:ID="Bomba">
<owl:sameClassAs rdf:resource="&n1710; Bomba "/>
</owl:Class>
Expressões de classes podem fazer parte da declaração sameClassAs, da
mesma forma que o utilizado em subClassOf:
<owl:Class rdf:ID="InstalacaoCampo">
<owl:sameClassAs>
<owl:Restriction>
<owl:onProperty rdf:resource="#temCampo" />
<owl:allValuesFrom rdf:resource="&sip;Campo" />
</owl:Restriction>
</owl:sameClassAs>
</owl:Class>
Desta forma, InstalacaoCampo corresponde exatamente às instalações
localizadas nos campos de produção de petróleo. A diferença entre este uso e o de
subClassOf está na distinção entre condição necessária e condição suficiente.
Com subClassOf, instalações localizadas nos campos não são necessariamente
InstalacaoCampo, que seria verdadeiro no caso de uso de sameClassOf.
subClassOf : InstalacaoCampo(x) -> temCampo(x,y) & Campo(y)
sameClassAs : InstalacaoCampo(x) -> temCampo(x,y) & Campo(y)
temCampo(x,y) & Campo(y) -> InstalacaoCampo(x)
Interconectando Ontologias 59
O mecanismo sameIndividualAs, de forma semelhante ao empregado para
classes, define indivíduos idênticos:
<Plataforma rdf:ID="P-40">
<owl:sameIndividualAs rdf:resource="#PETROBRAS-40" />
</ Plataforma >
OWL não adota a suposição de nomes únicos. Apesar de dois nomes serem
diferentes, não significa dizer que fazem referência a indivíduos diferentes. O
exemplo a seguir, considerando-se a propriedade temCampo funcional, não
necessariamente representaria um conflito:
<owl:Thing rdf:about="#InstalaçãoBadejo">
< temCampo rdf:resource="#BD" />
< temCampo rdf:resource="#Badejo" />
</owl:Thing>
Simplesmente, significa que BD = Badejo, ou seja, representam o mesmo
objeto.
O mecanismo differentIndividualFrom tem o efeito oposto ao
sameIndividualAs:
<MetodoElevacao rdf:ID="GLC" />
< MetodoElevacao rdf:ID="GLI">
<owl:differentIndividualFrom rdf:about="#GLC "/>
</ MetodoElevacao >
< MetodoElevacao rdf:ID="GLP">
<owl:differentIndividualFrom rdf:about="#GLC"/>
<owl:differentIndividualFrom rdf:about="#GLI"/>
</ MetodoElevacao >
Esta é uma forma de garantir que os três valores sejam distintos. De outra
forma, mesmo definindo que um elemento Coluna possua apenas um valor para a
Interconectando Ontologias 60
propriedade temMetodoElevacao, este poderia ter GLC e GLI ao mesmo tempo,
implicando nestes elementos serem idênticos.
5.5. Expressões de Classes em OWL
OWL fornece construtores adicionais para criação de classes. Estes
construtores são utilizados nas chamadas expressões de classes. OWL suporta as
operações básicas de conjuntos: interseção (intersectionOf), união (unionOf) e
complemento (complementOf). Além disto, classes podem ser definidas por
enumeração por meio do construtor oneOf. Também é possível definir que classes
são disjuntas.
Expressões de classes podem ser aninhadas sem necessidade da definição de
nomes para as classes intermediárias. Isto permite o uso de operações de
conjuntos para construir classes complexas a partir de classes anônimas ou classes
com restrições de valores.
Classes construídas com o uso de operações de conjunto são “fechadas”. Os
membros da classe ficam especificados de forma precisa.
<owl:Class rdf:ID="ColunaOleo">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Coluna" />
<owl:Restriction>
<owl:onProperty rdf:resource="#produzFluido" />
<owl:hasValue rdf:resource="#Oleo" />
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
Neste exemplo, ColunaOleo é exatamente a interseção da classe Coluna e
o conjunto de coisas que produzem Oleo. Isto significa que se alguma coisa é
Interconectando Ontologias 61
Coluna e produz Oleo, então é um elemento de ColunaOleo. Caso não fosse um
conjunto fechado, pode-se dizer que elementos de ColunaOleo são Coluna e
produzem Oleo, mas não vice-versa.
O exemplo seguinte demonstra o uso do construtor unionOf. Este é
utilizado de forma análoga ao construtor intersectionOf:
<owl:Class rdf:ID="Plataforma">
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#PlataformaFixa" />
<owl:Class rdf:about="#PlataformaMovel" />
</owl:unionOf>
</owl:Class>
A classe Plataforma inclui ambos os elementos de PlataformaFixa como
os de PlataformaMovel. O exemplo abaixo é totalmente distinto:
<owl:Class rdf:ID="Plataforma">
<rdfs:subClassOf rdf:resource="#PlataformaFixa" />
<rdfs:subClassOf rdf:resource="#PlataformaMovel" />
</owl:Class>
Neste os elementos de Plataforma são um subconjunto da interseção de
PlataformaFixa com PlataformaMovel, o que é de se esperar que seja um
conjunto vazio.
O construtor complementOf seleciona todos os elementos de um domínio
que não pertencem a uma determinada classe:
<owl:Class rdf:ID="PlataformaFixa" />
<owl:Class rdf:ID="PlataformaMovel">
<owl:complementOf rdf:resource="#PlataformaFixa" />
</owl:Class>
Interconectando Ontologias 62
A classe PlataformaMovel tem como membros todos os indivíduos que
não pertencem ao conjunto de PlataformaFixa. Representa a diferença entre
owl:Thing e PlataformaFixa, incluindo elementos de qualquer outra classe,
como Coluna e Campo. Portanto, o uso típico deste construtor é combinado com
outras operações:
<owl:Class rdf:ID="PlataformaMovel">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Plataforma"/>
<owl:Class>
<owl:complementOf rdf:resource="#PlataformaFixa" />
</owl:Class>
</owl:intersectionOf>
</owl:Class>
Deste modo, a classe PlataformaMovel é definida como sendo a interseção
de Plataforma com o conjunto de tudo que não é PlataformaFixa.
OWL fornece meios para definir uma classe via enumeração direta de seus
membros. Isto é feito com o construtor oneOf. Esta definição limita os elementos
da classe, de modo que nenhum outro pode ser declarado como pertencente à
mesma.
A próxima declaração define a classe Bombeio, cujos membros são os
indivíduos BCP, BCS, BH, BHJ, BM, BMP.
<owl:Class rdf:ID="Bombeio">
<rdfs:subClassOf rdf:resource="#MetodoElevacao"/>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#BCP"/>
<owl:Thing rdf:about="#BCS"/>
<owl:Thing rdf:about="#BH"/>
<owl:Thing rdf:about="#BHJ"/>
<owl:Thing rdf:about="#BM"/>
Interconectando Ontologias 63
<owl:Thing rdf:about="#BMP"/>
</owl:oneOf>
</owl:Class>
A disjunção de um conjunto de classes pode ser expressa através do
construtor owl:disjointWith. Este garante que um indivíduo membro de uma
classe não pode ser simultaneamente um elemento de uma outra classe:
<owl:Class rdf:ID="Bombeio">
<rdfs:subClassOf rdf:resource="#MetodoElevacao"/>
<owl:disjointWith rdf:resource="#GasLift"/>
<owl:disjointWith rdf:resource="#PlungerLift"/>
</owl:Class>
O exemplo acima demonstra o uso de disjunção múltipla. Pode-se observar
que a classe Bombeio é disjunta de todos as outras. Porém, não se pode afirmar
que, por exemplo, GasLift e PlungerLift também sejam disjuntas entre si. Para
tal, deveria existir uma declaração owl:disjointWith para o par específico.
5.6. Categorias de Mapeamento
Tomando por base os princípios de identidade, agregação e
generalização/especialização e considerando as classes (C), propriedades (P) e
instâncias (I) de duas ontologias distintas A e B, podemos enumerar as formas
mais freqüentes de mapeamento, através da criação de articulações M e da
definição de propriedades por meio de restrições, nas seguintes categorias:
Interconectando Ontologias 64
Articulações entre classes
Categoria Representação OWL
C1 - Identidade de classes
- as classes CA e CB são mapeadas como idênticas, por meio de CM
<owl:Class rdf:ID="CM "> <owl:sameClassAs rdf:resource="#CA"/> <owl:sameClassAs rdf:resource="#CB"/>
</owl:Class>
C2 - Agregação de classes
- CM possui propriedades restritas por CA e CB
<owl:Class rdf:ID="CM"> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource="#temCA"/> <owl:allValueFrom rdf:resource="#CA"/>
</owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource="#temCB"/> <owl:allValueFrom rdf:resource="#CB"/>
</owl:Restriction> </rdfs:subClassOf>
</owl:Class> C3 - Generalização de classes - CM é um conceito mais geral que CA e CB
<owl:Class rdf:ID="CM "> <owl:UnionOf rdf:parseType=”Collection”>
<owl:Class rdf:about="#CA"/> <owl:Class rdf:about="#CB"/> </owl:UnionOf>
</owl:Class>
C4 - Especialização de classes - a articulação CM representa uma especialização de CA e CB
<owl:Class rdf:ID="CM "> < rdfs:subClassOf rdf:resource="#CA"/> < rdfs:subClassOf rdf:resource="#CB"/>
</owl:Class>
CA
CM
CB
CA
CM
CB
CA
CM
CB
CA
CM
CB
Interconectando Ontologias 65
C5 - Agregação entre classes com restrição - CB é mapeada como tendo uma propriedade restrita por CA, por meio da articulação CM
<owl:Class rdf:ID="CM"> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource="#temCA"/> <owl:allValueFrom rdf:resource="#CA"/>
</owl:Restriction> </rdfs:subClassOf> <owl:sameClassAs rdf:resource="#CB"/>
</owl:Class>
C6 - Especialização/generalização entre classes - CA é mapeada como subclasse de CB, por meio da articulação CM
<owl:Class rdf:ID="CM"> <owl:sameClassAs rdf:resource="#CA"/> <rdfs:subClassOf rdf:resource="#CB"/>
</owl:Class>
C7 - Especialização de classes com restrição - CM é mapeada como especialização de CA e tendo uma propriedade restrita por CB
<owl:Class rdf:ID="CM"> <rdfs:subClassOf rdf:resource="#CA"/> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource="#temCB"/> <owl:allValueFrom rdf:resource="#CB"/>
</owl:Restriction> </rdfs:subClassOf>
</owl:Class>
CA
CM
CB
CA
CM
CB
CA
CM
CB
Interconectando Ontologias 66
Articulações entre propriedades
P1 - Identidade de propriedades - as propriedades PA e RB são mapeadas como idênticas, por meio de PM
<owl:ObjectProperty rdf:ID="PM "> <owl:samePropertyAs rdf:resource="#PA"/> <owl:samePropertyAs rdf:resource="#PB"/>
</owl:ObjectProperty>
P2 - Especialização/generalização entre propriedades - PA é mapeada como sub-propriedade de PB, por meio de PM
<owl:ObjectProperty rdf:ID="PM "> <owl:samePropertyAs rdf:resource="#PA"/> <rdfs:subPropertyOf rdf:resource="#PB"/>
</owl:ObjectProperty>
Articulações entre instância/classe
I1 - Identidade de instâncias - IA e IB são mapeadas como idênticas, por meio da instância IM
<owl:Thing rdf:ID="IM "> <owl:sameIndividualAs rdf:resource="#IA"/> <owl:sameIndividualAs rdf:resource="#IB"/>
</owl:Thing>
I2 - Generalização de instâncias - IA e IB são mapeadas como instâncias da mesma classe CM
<owl:Thing rdf:about="#IA"> <rdf:type rdf:resource="#CM"/> </owl:Thing> <owl:Thing rdf:about="#IB"> <rdf:type rdf:resource="#CM"/> </owl:Thing>
IA
IM
IB
IA
CM
IB
PA
PM
PB
PA
PM
PB
Interconectando Ontologias 67
I3 - Especialização classe/instância - IA é mapeada como instância de CB, por meio de IM
<owl:Thing rdf:about="#IM"> <owl:sameIndividualAs rdf:resource="#IA"/> <rdf:type rdf:resource="#CB"/>
</owl:Thing>
I4 - Restrição classe/instância - CA é mapeada como tendo uma propriedade restrita por IB, por meio de CM
<owl:Class rdf:ID="CM"> <owl:sameClassAs rdf:resource="#CA"/> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource="#temCB"/> <owl:hasValue rdf:resource="#IB"/>
</owl:Restriction> </rdfs:subClassOf>
</owl:Class>
I5 - Especialização classe/instância com restrição - CM é mapeada como sendo subclasse de CA e tendo uma propriedade restrita por IB
<owl:Class rdf:ID="CM"> <rdfs:subClassOf rdf:resource="#CA"/> <rdfs:subClassOf>
<owl:Restriction> <owl:onProperty rdf:resource="#temCB"/> <owl:hasValue rdf:resource="#IB"/>
</owl:Restriction> </rdfs:subClassOf>
</owl:Class>
As articulações entre instância/classe podem ser desconsideradas se a
linguagem de ontologia permitir o tratamento de instâncias como classes, como no
caso de OWL Full.
Além disto, em OWL, como em outras linguagens de ontologia, classes e
propriedades são definidas com escopo global, estando todos os seus elementos
declarados num mesmo nível. Desta forma, o mapeamento pode ser realizado sem
levar em consideração a estrutura interna dos elementos, não havendo a
necessidade da utilização de expressões de caminho. Deste modo, qualquer
Identidade Instância
IA
IM
CB
Subclasse
Restrição
CA
CM
IB
CA
CM
IB
Interconectando Ontologias 68
referência a um conceito, uma propriedade ou mesmo uma instância pode ser feita
diretamente a partir de sua URI, não sendo necessário qualquer tipo de
qualificação adicional. Em contrapartida, fica clara a necessidade de identificação
única dos elementos de uma ontologia, assim, um método adequado para
estabelecimento das URI’s deve ser cuidadosamente estabelecido. Neste trabalho
não serão feitas maiores considerações a este respeito, sendo apenas ressaltado
este ponto como de interesse para um estudo mais detalho em trabalhos futuros.
As combinações das categorias acima relacionadas cobrem os casos mais
comuns das possibilidades de mapeamentos entre conceitos, relações e instâncias
de ontologias diversas. Contudo, ainda há necessidade do mapeamento no que diz
respeito às diferenças quanto a tipo de atributo e nível de agregação (Visser,
1997). Nestes casos, faz-se necessária a introdução de funções de conversão e
manipulação de tipo e formatos, assim como funções de agregação semelhantes às
utilizadas em banco de dados (SUM, COUNT, MAX, MIN, AVG). Vários
trabalhos tem sido realizados no sentido de estender Description Logics para
incorporar este tipo de funcionalidade (Ross, 1994) (Levy, 1996) (Baader, 1998).
Por outro lado, linguagens de consulta como RQL (Karvounarakis, 2002) também
poderiam ser utilizadas, em conjunto com as linguagens de ontologia, para
atendimento destas necessidades. Uma alternativa, com aplicabilidade mais
imediata, seria resolver este tipo de conflito no nível da origem da informação,
deixando assim o problema para a camada correspondente aos wrappers, que
poderiam disponibilizar uma ontologia mais “adaptada” para o ambiente externo à
fonte de informação. No entanto, esta não seria a solução mais adequada, por
haver necessidade de manutenção das ontologias fontes em função de
necessidades externas, além de ser uma solução pouco flexível no contexto global.
Estudo de Caso 69
6 Estudo de Caso
6.1. Introdução
Duas fontes de informação, apresentando diferentes tipos de estrutura,
foram escolhidas como exemplo para o estudo de caso:
N1710 – Norma de Codificação de Documentos Técnicos da
Petrobras (N-1710);
SIP – Sistema de Informação da Petrobras – Módulo de
Acompanhamento de Anormalidade em Poços (SIP).
A norma N1710 tem como objetivo uniformizar e sistematizar a codificação
dos documentos técnicos de engenharia da Petrobras, padronizando a terminologia
utilizada para identificação das instalações, áreas de atividades, classes de
serviços e equipamentos, categorias e origens dos documentos. Esta norma está
organizada num manual na forma de documento textual, encontrando-se também
disponível em formato pdf na intranet corporativa.
O Módulo de Acompanhamento de Anormalidade em Poços do SIP busca o
acompanhamento de problemas que afetam a produção dos poços produtores de
óleo e gás, registrando para tal informações sobre falhas relativas aos sistemas e
equipamentos, condições de operação de poços, como mecanismo de elevação,
plataforma e campo de produção. Este sistema encontra-se disponível na rede
Petrobrás e possui uma arquitetura cliente/servidor. Seus dados encontram-se
armazenados em um banco de dados Oracle.
A ontologia relativa à N1710 (Anexo A) foi obtida de forma manual,
limitando-se aos conceitos necessários ao exemplo em questão (uma abordagem
Estudo de Caso 70
interessante seria a manutenção de toda a ontologia em OWL, a partir da qual
seria gerado, de forma automática, o documento textual correspondente).
No caso da ontologia do SIP (Anexo B), utilizamos o modelo entidade-
relacionamento do referido módulo mas, caso este não estivesse disponível,
poderíamos ter gerado sua ontologia com a ferramenta de extração (ver capítulo 7)
a partir do catálogo Oracle. Para obtenção das instâncias é necessária a construção
de um wrapper, que faça o mapeamento de SQL para OWL.
Para facilidade de entendimento, o exemplo foi dividido em três partes,
correspondentes ao mapeamento das instalações, das atividades e dos
equipamentos, conforme descrito a seguir. Os anexos A, B e C apresentam trechos
das ontologias geradas e o mapeamento em mais detalhes.
6.2. Mapeamento das Instalações
O mapeamento das instalações (Plataforma e Campo) permite o
cruzamento de informações relativas a poços e dados de produção com a
documentação técnica correspondente destas instalações.
Como algumas unidades móveis (N-1710) correspondem a plataformas
(SIP), mas nem todas as plataformas são unidades móveis, o mapeamento
representa a interseção dos dois conjuntos, podendo ser descrito em OWL da
seguinte forma:
<owl:Class rdf:ID="Plataforma">
<rdfs:subClassOf rdf:resource="&sip;Plataforma" />
<rdfs:subClassOf rdf:resource="&n1710;EP_PRO" />
</owl:Class>
Para possibilitar o cruzamento das instâncias, faz-se necessário o
mapeamento individualizado das mesmas, conforme o exemplo abaixo:
Estudo de Caso 71
<Plataforma rdf:ID="P-40">
<owl:sameAs rdf:resource="&n1710;B3010.57" />
<owl:sameAs rdf:resource="&sip;P-40" />
</owl:Class>
Figura 7 – Mapeamento de Instalações
Com relação ao mapeamento dos campos, os conceitos da norma N-1710
correspondem a classes de instalações localizadas num determinado campo de
produção de petróleo, enquanto no SIP estes representam instâncias de um
conceito. Desta forma, o mapeamento deve relacionar conceitos de uma ontologia
com instâncias da outra. Isto pode ser feito em OWL através do uso de restrições:
Estudo de Caso 72
<owl:Class rdf:ID="InstalacaoCampo">
<rdfs:subClassOf rdf:resource="&n1710;EP_PRO" />
</owl:Class>
<owl:ObjectProperty rdf:ID="temCampo">
<rdfs:domain rdf:resource="#InstalacaoCampo" />
<rdfs:range rdf:resource="&sip;Campo" />
</owl:ObjectProperty>
<owl:Class rdf:ID="InstalacaoBadejo">
<owl:sameAs rdf:resource="&n1710;Badejo" />
<rdfs:subClassOf rdf:resource="InstalacaoCampo" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temCampo" />
<owl:hasValue rdf:resource="&sip;BD" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
6.3. Mapeamento das Atividades
Com o mapeamento das atividades (Elevação artificial e Sistema de
equipamento) pode-se relacionar a documentação correspondente aos processos
relativos a estas atividades utilizados na produção.
O mapeamento das atividades pode ser realizado de forma semelhante ao
feito para os campos. Neste caso, as classes de atividades da N-1710 devem ser
mapeadas para instâncias de sistema de equipamentos do SIP. No que diz respeito
aos conceitos mais gerais, AreaAtividade e SistemaEquipamento, a
Estudo de Caso 73
correspondência pode ser feita por meio de uma subclasse de AreaAtividade que
tenha uma restrição com relação a SistemaEquipamento:
<owl:Class rdf:ID="AtividadeSistema">
<rdfs:subClassOf rdf:resource="&n1710;AreaAtividade" />
</owl:Class>
<owl:ObjectProperty rdf:ID="temSistemaEquipamento">
<rdfs:domain rdf:resource="#AtividadeSistema" />
<rdfs:range rdf:resource="&sip;SistemaEquipamento" />
</owl:ObjectProperty>
<owl:Class rdf:ID="InjecaoQuimica">
<rdfs:subClassOf rdf:resource="AtividadeSistema" />
<owl:sameAs rdf:resource="&n1710;InjecaoQuimica" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temSistemaEquipamento" />
<owl:hasValue rdf:resource="&sip;IQ" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
No caso da atividade de elevação artificial, o mapeamento é um pouco mais
complexo, pois as instâncias da classe ElevacaoArtificial da N-1710
correspondem a um conjunto de instâncias da classe MetodoElevacao do SIP.
Assim, faz-se necessária a criação de classes de mapeamento para enumerar as
instâncias da última que correspondam a cada instância da primeira:
<owl:Class rdf:ID="AtividadeElevacao">
</owl:Class>
<owl:ObjectProperty rdf:ID="temElevacaoArtificial">
Estudo de Caso 74
<rdfs:domain rdf:resource="#AtividadeElevacao" />
<rdfs:range rdf:resource="&n1710;ElevacaoArtificial" />
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="temMetodoElevacao">
<rdfs:domain rdf:resource="#AtividadeElevacao" />
<rdfs:range rdf:resource="&sip;MetodoElevacao" />
</owl:ObjectProperty>
<owl:Class rdf:ID="GasLift">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temElevacaoArtificial" />
<owl:hasValue rdf:resource="&n1710;GasLift" />
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temMetodoElevacao" />
<owl:allValuesFrom>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Item rdf:resource="&sip;AGL" />
<owl:Item rdf:resource="&sip;GFC" />
<owl:Item rdf:resource="&sip;GFI" />
<owl:Item rdf:resource="&sip;GLC" />
<owl:Item rdf:resource="&sip;GLI" />
<owl:Item rdf:resource="&sip;GLP" />
</owl:oneOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Estudo de Caso 75
Figura 8 – Mapeamento de Atividades
6.4. Mapeamento dos Equipamentos
Finalmente, o mapeamento dos equipamentos possibilita a correlação das
classes de equipamento da N-1710 com a classe de componente do SIP.
De forma semelhante aos anteriores, o mapeamento pode ser feito em dois
níveis. O primeiro relaciona os conceitos mais gerais, enquanto no segundo são
criadas classes para mapear as instâncias dos componentes com cada classe de
equipamento:
Estudo de Caso 76
<owl:Class rdf:ID="Equipamento">
<rdfs:subClassOf rdf:resource="&n1710;ServEquipMat" />
</owl:Class>
<owl:ObjectProperty rdf:ID="temClasseComponente">
<rdfs:domain rdf:resource="#Equipamento" />
<rdfs:range rdf:resource="&sip;Componente" />
</owl:ObjectProperty>
<owl:Class rdf:ID="Bomba">
<rdfs:subClassOf rdf:resource="Equipamento" />
<owl:sameAs rdf:resource="&n1710;Bomba" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#temClasseComponente" />
<owl:hasValue rdf:resource="&sip;BB" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Figura 9 – Mapeamento de Equipamentos
Estudo de Caso 77
A partir deste mapeamento podem ser realizadas consultas e/ou
desenvolvidas aplicações que possibilitem a visualização integrada das
informações disponíveis em ambas as fontes de informação. Por exemplo,
relatórios que mostrem os problemas ocorridos em plataformas com os
documentos associados ao tipo de atividade afetada, ou ainda, um estudo
relacionando documentação de equipamentos de um conjunto de instalações e os
volumes de produção perdidos em função dos motivos de falhas ocorridos, etc.
6.5. Avaliação
Analisando-se as formas de mapeamento utilizados neste estudo de caso,
podemos constatar que, com exceção das articulações correspondentes ao
mapeamento da atividade GasLift, todas as demais se enquadram nas catagorias
de mapeamento definidas na seção 5.3, conforme apresentado na seguinte tabela:
Articulação Categoria
Map.Plataforma C4
Map.P-40 I1
Map.InstalacaoCampo C7
Map.InstalacaoBadejo I4
Map.AtividadeSistema C7
Map.InjecaoQuimica I4
Map.AtividadeElevacao C2
Map.GasLift -
Map.Equipamento C7
Map.Bomba I4
O caso do Map.GasLift também poderia ser enquadrado na categoria I5 se
considerarmos a classe intermediária Map.owlOneOf como parte integrante de
Estudo de Caso 78
uma única articulação, visto que pode ser definida como uma expressão de classe
interna à definição de Map.GasLift.
Desta forma, pode-se esperar que, apesar de relativamente simples, as
categorias aqui discutidas atendam a maioria das situações encontradas na prática.
Arquitetura de Implementação 79
7 Arquitetura de Implementação
7.1. Visão Geral
A maioria das abordagens recentes integração de informações se baseia na
arquitetura de mediadores (Mediator Architecture) proposta por Wiederhold
(Wiederhold, 1992). Nesta arquitetura, várias fontes de informações são
encapsuladas por módulos de softwares conhecidos como wrappers. Estes são
responsáveis pela tradução entre as linguagens, modelos e conceitos das fontes
locais para a visão global. Outros componentes de sistema, denominados
mediators, obtém informação de um ou mais componentes do nível abaixo, que
podem ser wrappers de fontes locais ou outros mediators. Esta arquitetura pode
ser esquematizada na seguinte forma (Ullman, 1997):
Figura 10 – Arquitetura padrão de integração
Mediator
Mediator
Wrapper Wrapper
Fonte Fonte
Sistema Externo
Arquitetura de Implementação 80
Alguns exemplos, onde esta arquitetura foi seguida, são os projetos Information
Manifold (Kirk, 1995), TSIMMIS (Chawathe, 1994), KRAFT (Wache, 2001),
OBSERVER (Mena, 1998), BUSTER (Stuckenschmidt, 2000), ONION (Mitra, 2000),
DOME (Cui, 2000) e MOMIS (Bergamaschi, 1998) entre outros.
Esta arquitetura também pode ser utilizada no contexto aqui apresentado.
Desta forma, os wrappers seriam responsáveis pela tradução do conteúdo de cada
fonte de informação para a visão global representada por meio de ontologias. Por
sua vez, os mediators ficariam encarregados pela coordenação dos wrappers e na
disponibilização de uma visão integrada das ontologias para os sistemas externos.
Si : sistemas de informação distribuídos
Di : fontes de dados dos sistemas de informação
Oi : ontologias locais dos sistemas de informação
Wi : wrappers para padronização do acesso às fontes
M : mediator para articulação das fontes
OG: ontologia global composta sobre as ontologias Oi
O’i : representação da participação de Oi na ontologia global
ED : editor de ontologias OWL
NV : navegador para consultas às ontologias
SOi : sistemas de informação orientados a ontologia.
Figura 11 – Arquitetura para interconexão de sistemas de informação
S1
O1 D1 W1
M
OG
O’1 ...
O’n
...
... ...
Sn
On Dn Wn
NV ED
SOn
.
...
SO1 ....
Arquitetura de Implementação 81
De um modo geral, os wrappers devem ser capazes de fornecer as
informações sobre o esquema (classes e propriedades) e também próprios dados
(instâncias). Enquanto os mediators devem responder sobre a visão global como,
por exemplo, através do uso de mecanismos de inferência.
Sobre a visão global podem ser construídos os sistemas orientados a
ontologias desenvolvidos, deste modo, com total independência quanto às fontes
de informações. Da mesma forma, podem ser utilizadas ferramentas gerais para
consulta, edição e mapeamento entre ontologias.
7.2. Modelo Wrapper/Mediator
Tendo em vista a necessidade de distribuição da arquitetura proposta, o
seguinte modelo de classe é apresentado como uma alternativa de solução para
atendimento desta característica:
Figura 12 – Modelo Wrapper/Mediator
Arquitetura de Implementação 82
Nesta proposta, é introduzido um wrapper remoto (WrapperRemote) com o
objetivo de efetuar a comunicação entre ontologias armazenadas em servidores
distribuídos. Várias alternativas de middleware e protocolos podem ser utilizados
para prover esta comunicação, bastando para isto, o desenvolvimento de um
wrapper especializado.
Da mesma forma que wrappers gerais para acesso a base de dados
relacionais ou arquivo convencionais OWL, podem ser desenvolvidos wrappers
específicos (WrapperX) para cada um dos sistemas de informação que faça parte
da solução integrada. Estes wrappers possibilitariam que a semântica destes
sistemas, contida no código, interface e modelo conceitual, seja retrata de forma
mais fiel em sua ontologia correpondente.
7.3. Editor OWL
Um editor de ontologias em OWL é o mais imediato dos componentes
“externos” a ser pensado. Este editor seria o responsável pela criação e
manutenção das ontologias das fontes de informação, assim como pela edição da
ontologia da visão global contendo o mapeamento entre as locais. Podemos
enumerar alguns dos principais requisitos deste editor:
criar, modificar e salvar localmente as ontologias de usuários;
visualizar ontologias remotas de outros usuários ou sistemas;
permitir que os elementos sejam arrastados e/ou copiados entre as
janelas de visualização de ontologias (Drag & Drop / Copy & Paste);
possibilitar que a linguagem OWL seja modificada e estendida sem a
necessidade de maiores restruturações no nível de programação;
permitir visualizar a hierarquia de conceitos da ontologia;
permitir a visualização das propriedades de cada um dos conceitos;
possibilitar a visualização das intâncias dos conceitos de forma
independente dos conceitos e propriedades;
Arquitetura de Implementação 83
facilitar o mapeamento entre ontologias, por exemplo, com a criação
automática de namespaces quando forem feitas referências a elementos
externos;
Figura 13 – Editor OWL
No protótipo desenvolvido neste trabalho, foi possível avaliar algumas
alternativas de modelagem para o editor OWL, tendo em vista principalmente o
requisito de possibitar e extensão da linguagem da forma mais transparente
possível. A versão inicial do modelo implementa uma classe para cada um dos
elementos da linguagem, tornando a alteração do código necessária a cada
evolução da especificação OWL. Uma alternativa seria a utilização de um arquivo
externo definido, por exemplo, em XMLSchema, para configuração do editor.
Porém, esta opção somente permite a configuração da estrutura sintática da
linguagem, não sendo possível o tratamento semântico de seus elementos.
Arquitetura de Implementação 84
Desta forma, uma hipótese em que a modelagem interna do editor seja
independente da linguagem OWL nos parece mais interessante. Neste caso, a
correspondência semântica, entre este modelo interno e os elementos OWL, deve
ser mapeada em um arquivo externo de configuração. Mesmo assim, ainda haverá
a necessidade da alteração do código quando da inclusão de algum elemento da
linguagem OWL que não possua correspondente semântico no modelo interno do
editor. Esta alternativa foi parcialmente testada e será avaliada mais
detalhadamente em trabalho futuro.
7.4. Wrapper Oracle
Outra ferramenta relevante no contexto de integração de sistemas legados
seria um extrator que criasse uma ontologia básica a partir de uma banco de dados
relacional. Com esse objetivo, foi desenvolvido no presente trabalho um wrapper
especializado para a criação de uma ontologia a partir do catálogo de uma base
Oracle. Foram utilizadas algumas das regras descritas no capítulo de explicitação
de ontologias para definição dos conceitos e propriedades a partir de tabelas,
atributos e chaves estrangeiras.
Figura 14 – Wrapper Oracle
Arquitetura de Implementação 85
Outra funcionalidade interessante de um wrapper para bases relacionais
seria a possibilidade de dar persistência às ontologias criadas pelos usuários.
Neste caso, regras para criação automática do esquema relacional a partir da
definição em OWL devem ser cuidadosamente investigadas. Este também
pretende ser um de nossos pontos de interesse para trabalhos futuros.
Conclusão 86
8 Conclusão
8.1. Contribuições
Este trabalho busca discutir alguns pontos relacionados com o problema da
interoperabilidade dos sistemas de informação. São apresentados os conceitos
relacionados à integração semântica, através do uso de ontologias associadas às
fontes de informação e da composição destas numa ontologia global. Também
aborda o uso de componentes básicos, como wrappers e mediators, para a
construção de uma arquitetura geral de integração. Assim como, apresenta a
linguagem OWL, que pretende ser o padrão W3C para definição de ontologias,
em especial para sistemas no ambiente Web.
Como contribuição pode ser destacada a definição de padrões básicos para
mapeamento de conceitos entre ontologias. Estes padrões devidamente
combinados permitem resolvar a grande maioria das situações de mapeamento
encontradas na prática. Outro ponto a se destacar é a utilização de uma notação
gráfica, baseada em UML, para representação do mapeamento de forma simples e
compacta.
Como resultado, é apresentado o protótipo inicial de uma arquitetura para
tratar da integração dos sistemas de informação em ambientes heterogêneos e
distribuídos, freqüentemente encontrados em grandes corporações.
Com o objetivo de validar as principais idéias apresentadas, está sendo
implementado um editor de ontologias baseado na linguagem OWL. Este
permitirá a criação de novas ontologias, assim como, a composição a partir de
ontologias fontes preexistentes. Também foi construída uma versão simplificada
de um extrator de ontologia para banco de dados Oracle, que serve como gerador
de ontologias fontes a serem utilizadas pelo Editor.
Conclusão 87
8.2. Trabalhos Futuros
Como prosseguimento do presente trabalho, serão desenvolvidas as
seguintes atividades:
conclusão do editor OWL – atualização de sintaxe da linguagem com
relação à última liberação prevista para final de junho/2003 e
melhorias na interface de usuário;
implementação de regras adicionais no extrator OWL para banco de
dados Oracle;
avaliação de bibliotecas disponíveis, que possuam recursos de
inferência, para desenvolvimento do módulo mediator;
análise das alternativas de middleware para implementação da
arquitetura, ou seja, escolha entre Web Services, J2EE ou CORBA;
implementação de um protótipo de integração correspondente ao
estudo de caso avaliado;
Referências Bibliográficas 88
9 Referências Bibliográficas
Arens, Y.; Chee, C.; Hsu C.; Knoblock, C. Retrieving and Integrating Data
from Multiple Information Sources. In Journal of Intelligent and
Cooperative Information Systems, Vol. 2, June 1993. Disponível em
http://citeseer.nj.nec.com/arens93retrieving.html
Baader F.; Sattler U. Description logics with concrete domains and
aggregation. In H. Prade, editor, Proceedings of the Thirteenth European
Conference on Articial Intelligence ECAI-98, Brighton, August 23-28,
1998. John Wiley & Sons, New York, 1998. Disponível em
http://citeseer.nj.nec.com/article/baader98description.html.
Bergamaschi, S.; Castano, S.; De Capitani di Vimercati; Montanari S.; Vincini,
M. A Semantic Approach to Information Integration: the MOMIS
project. Sesto Convegno della Associazione Italiana per l'Intelligenza
Artificiale, AI*IA 98, Padova IT, Settembre 1998. Disponível em
http://citeseer.nj.nec.com/bergamaschi98semantic.html .
Berners-Lee, T.; What the Semantic Web can represent, 1998. Disponível em
http://www.w3.org/DesignIssues/RDFnot.html.
Berners-Lee, T.; Fielding, R.; Masinter, L. Uniform Resource Identifiers (URI):
Generic Syntax. Internet Draft Standard RFC 2396, August 1998.
Disponível em http://www.ietf.org/rfc/rfc2396.txt.
Berners-Lee, T.; Connolly, D.; Swick, R. Web Architecture: Describing and
Exchanging Data, W3C Note 7 June 1999. Disponível em
http://www.w3.org/1999/04/WebData.
Berners-Lee, T.; Hendler, J.; Lassila, Ora. The Semantic Web. Scientific
American, May 2001. Disponível em http://www.scientificamerican.com
/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21&c.
Berners-Lee, T.; Hendler, James; Miller, Eric. Integrating Applications on the
Semantic Web. Journal of the Institute of Electrical Engineers of Japan,
Referências Bibliográficas 89
Vol 122(10), October, 2002, p. 676-680. Disponível em
http://www.w3.org/2002/07/swint.
Berners-Lee, T.; Miller, Eric. The Semantic Web lifts off. W3C. ERCIM News
No. 51, October 2002. Disponível em http://www.ercim.org/
publication/Ercim_News/enw51/berners-lee.html.
Breitman, Karin; Leite, Julio Cesar. Lexicon Based Ontology Construction. In
2nd International Workshop on Software Engineering for Large-Scale Multi-
Agent Systems(SELMAS), 2003.
CA. Cool Biz. Computer Associates International, Inc. http://support.ca.com/
public/ cool/biz/bizsupp.html.
Calvanese, Diego; Giacomo, Giuseppe De; Lenzerini, Maurizio; Nardi, Daniele;
Rosati, Riccardo. Information integration: Conceptual modeling and
reasoning support. In Proceedings of the 6th International Conference on
Cooperative Information Systems (CoopIS'98), pages 280--291,1998.
Disponível em http://citeseer.nj.nec.com/calvanese98 information. html
Calvanese, D.; Lenzerini M.; Nardi, D. Unifying class-based representation
formalisms. Journal of Artificial Intelligence Research, 1999. Disponível
em http://citeseer.nj.nec.com/calvanese99 unifying.html
Chawathe, S.; Garcia-Molina, H.; Hammer, J.; Ireland, K.; Papakonstantinou, Y.;
Ullman, J.; Widom, J. The TSIMMIS Project: Integration of
Heterogeneous Information Sources. In Proc. of IPSJ Conference, pages
7--18, 1994. Disponível em http://citeseer.nj.nec.com/
chawathe94tsimmis.html
CORPORUM. OntoBuild. Cognit. Disponível em http://ontoserver.cognit.no/
about.asp.
Cranefield, S. Networked Knowledge Representation and Exchange using
UML and RDF. Journal of Digital information, volume 1 issue 8, Febr.
2001, Disponível em http://jodi.ecs.soton.ac.uk/Articles/v01/i08/
Cranefield/.
Cui, Zhan; O'Brien, Paul. Domain Ontology Management Environment. 33rd
Hawaii International Conference on System Sciences-Volume 8 HICSS
2000 p. 8015 January 04 - 07, 2000 Maui, Hawaii.
Cyc. CYC-NL Natural Language Processing. CYCORP. Disponível em
http://www.cyc.com/products2.html.
Referências Bibliográficas 90
DAML. DAML-ONT initial release. Disponível em http://www.daml.org/
2000/10/daml-ont.html
DAML+OIL. DAML+OIL (March 2001). Disponível em http://www.daml.org/
2001/03/daml+oil-index.html.
Erdmann, M.; Maedche, A.; Schnurr P.; Steffen Staab. From manual to semi-
automatic semantic annotation: About ontology-based text annotation
tools. In P. Buitelaar & K. Hasida (eds). Proceedings of the COLING 2000
Workshop on Semantic Annotation and Intelligent Content, Luxembourg,
August 2000. Disponível em http://citeseer.nj.nec.com/
erdmann00from.html.
Erwin. Computer Associates International. AllFusion ERwin Data Modeler.
2003. Disponível em http://www3.ca.com/Solutions/Product.asp? ID=260.
Fensel, Dieter. Ontologies: Silver Bullet for Knowledge Management and
Electronic Commerce. Springer Verlag; 1st edition August 15, 2001.
Guarino, N. Formal Ontology and Information Systems. In N. Guarino, editor,
Proceedings of the 1st International Conference on Formal Ontologies in
Information Systems, FOIS'98, Trento, Italy, pages 3-- 15. IOS Press, June
1998. Disponível em http://citeseer.nj.nec.com/ guarino98formal.html.
Hakimpour, Farshad; Geppert, Andreas. Resolving semantic heterogeneity in
schema integration: An ontology base approach. In Chris Welty and
Barry Smith, editors, Proceedings of International conference on Formal
Ontologies in Information Systems FOIS'01. ACM Press, October 2001.
Disponível em http://citeseer.nj.nec.com/ hakimpour01resolving.html
Horrocks, I.; Sattler, U.; Tobies, S. Practical reasoning for expressive
description logics. In Proceedings of LPAR'99, LNCS, Tbilisi, Georgia,
1999. Disponível em http://citeseer.nj.nec.com/article/horrocks99
practical.html.
Horrocks, Ian. DAML+OIL: a Reason-able Web Ontology Language.
Presented at EDBT 2002. Disponível em http://www.cs.man.ac.uk/
~horrocks/Publications/download/2002/ edbt02.pdf.
Karvounarakis, G.; Alexaki, S.; Christophides, V.; Plexousakis, D.; Scholl, M.
RQL: A Declarative Query Language for RDF. In The 11th Intl. World
Wide Web Conference WWW2002. Disponível em
http://citeseer.nj.nec.com/556066.html.
Referências Bibliográficas 91
Kietz, U.; Volz, R.; Maedche, A. A method for semi-automatic ontology
acquisition from a corporate intranet. In EKAW. Disponível em
http://citeseer.nj.nec.com/kietz00method.html.
Kifer, Michael; Lausen, Georg ; Wu, James. Foundations of Object-Oriented
and Frame-Based Languages. Technical Report 90/14, Department of
Computer Science, State University of New York at Stony Brook (SUNY),
June 1990. Disponível em http://citeseer.nj.nec.com/ kifer90logical.html.
Kirk, T.; Levy, A. Y.; Sagiv, Y.; Srivastava, D. The Information Manifold. In
Proc. of the AAAI Spring Symposium on Information Gathering in
Distributed Heterogeneous Environments. Disponível em
http://citeseer.nj.nec.com/16242.html.
Laender, A.; Ribeiro-Neto, B.; Silva, A.; Teixeira, J. A Brief Survey of Web
Data Extraction Tools. In SIGMOD Record, Volume 31, Number 2, June
2002. Disponível em http://citeseer.nj.nec.com/ laender02brief.html.
Levy, Alon Y.; Mumick, Inderpal Singh. Reasoning with aggregation
constraints. In Proceedings of the Conference on Extending Database
Technology, EDBT-96, (March 1996). Disponível em
http://citeseer.nj.nec.com/levy96reasoning.html.
Levy, Alon Y.; Rajaraman, Anand; Ordille, Joann J. Querying Heterogeneous
Information Sources Using Source Descriptions. Proc. VLDB 1996, pp.
251--262.
Ljiljana, Stojanovic; Maedche, Alexander; Motik, Boris, Stojanovic, Nenad.
User-driven Ontology Evolution Management. Proc. of the 13th
International Conference Knowledge Engineering and Knowledge
Management (EKAW2002),pp.213-218, Sigüenza, Spain, October 1-4,
2002.
Maedche, A.; Staab; S. Semi-automatic engineering of ontologies from text. In
Proceedings of the 12th Internal Conference on Software and Knowledge
Engineering. Chicago, USA. KSI, (2000). Disponível em
http://citeseer.nj.nec.com/maedche00semiautomatic.html
Maedche, Alexander; Volz, Raphael. The Ontology Extraction Maintenance
Framework Text-To-Onto. Workshop on Integrating Data Mining and
Knowledge Management November 29, 2001, Disponível em
http://citeseer.nj.nec.com/464749.html
Referências Bibliográficas 92
Maedche, A.; Motik, B.; Silva, N.; Volz, R.. (2002). MAFRA - A MApping
FRAmework for Distributed Ontologies in the Semantic Web. Presented
at Workshop on Knowledge Transformation for the Semantic Web.
Disponível em http://www.cs.vu.nl/~borys /events/ktsw2002.pdf.
Maedche, A.; Motik, B.; Stojanovic, L.; Studer, R.; Volz, R. Ontologies for
Enterprise Knowledge Management. In IEEE Intelligent Systems,
Volume 18, Number 2, pp. 26-33, March/April 2003
Melnik, S.; Representing UML in RDF. 2000. Disponível em http://www-
db.stanford.edu/~melnik/rdf/uml/.
Mena, E.; Kashyap, V.; Sheth, A; Illarramendi, A. Domain Specific Ontologies
for Semantic Information Brokering on the Global Information
Infrastructure. In Proceedings of the First International Conference on
Formal Ontologies in Information Systems. Trento, Italy. June 1998.
Disponível em http://citeseer.nj.nec.com/mena98domain.html.
Mitra, P.; Wiederhold, G.; Kersten, M. A Graph-Oriented Model for
Articulation of Ontology Interdependencies. In Proceedings Conference
on Extending Database Technology 2000 (EDBT'2000), Konstanz,
Germany, 2000. Disponível em http://citeseer.nj.nec.com/
mitra00graphoriented.html.
Motik, Boris; Maedche, Alexander; Volz, Raphael. A Conceptual Modeling
Approach for Semantics-Driven Enterprise Applications.
CoopIS/DOA/ODBASE 2002: 1082-1099.
NORTEC. N-1710 : Normalização Técnica Petrobras. Disponível na intranet da
Petrobras em http://nortec.engenharia.petrobras.com.br/frame.asp?cod=N-
1710
OIL. Homepage. Disponível em http://oil.semanticweb.org/
OMG. XML Metadata Interchange (XMI), v2.0. Object Management Group.
Disponível em http://www.omg.org/technology/documents/formal/
xmi.htm.
Ozsu, M.T.; Valduriez, P.; Principles of Distributed Database Systems. (Second
Edition). Prentice-Hall, 1999.
Papakonstantinou, Y.; Garcia-Molina, H.; Widom, J.;. Object Exchange across
Heterogeneous Information Sources. In Proc. ICDE Conference, 251--
Referências Bibliográficas 93
260, 1995. Disponível em
http://citeseer.nj.nec.com/papakonstantinou95object.html.
Ross, Kenneth; Srivastava, Divesh; Stuckey, Peter; Sudarshan, S. Foundations of
aggregation constraints. In Alan Borning, editor, Principles and Practice
of Constraint Programming. Lecture Notes in Computer Science, 874.
Springer Verlag, 1994. Disponível em http://citeseer.nj.nec.com/
77561.html.
Schwarz, P. M.; Roth, M. T. Don't scrap it, wrap it! A wrapper architecture
for legacy data sources. 1997. In Proceedings of the 23rd VLDB
Conference (pp.266-275). Athens, Greece.
Sheth, Amit. Changing Focus on Interoperability in Information Systems:
From System, Syn-tax,Structure to Semantics. Interoperating
Geographic Information Systems. Edited by Good-child M. & Egenhofer,
M. & Fegeas, R. & Kottman, C. Kluwer Academic Publishers 1999, pp. 5-
29.
SIP. Sistema de Informação da Produção. Disponível na intranet da Petrobras em
\\epfs01\producao\ Sip\SIP_ORACLE\Loader.exe SIP_HMG.
Stojanovic, L.; Stojanovic, N.; Volz, R. Migrating data-intensive web sites into
the semantic web. In Proceedings of the ACM Symposium on Applied
Computing SAC-02, Madrid, Disponível em
http://citeseer.nj.nec.com/517976.html..
Stuckenschmidt, H. Using OIL for Intelligent Information Integration. In V.
Benjamins, A. Gomez-Perez, and N. Guarino, editors, Proceedings of the
Workshop on Applications of Ontologies and Problem-solving Methods,
14th European Conference on Artificial Intelligence ECAI 2000, Berlin,
Germany, Aug. 21 -- 22, 2000. 478. Disponível em
http://citeseer.nj.nec.com/stuckenschmidt00using.html
Teorey, T.J., Fry, J.P.Design of Database Structures, Prentice Hall Inc.,
Englewood Cliffs, NJ, 1982.
Tzitzikas, Yannis; Spyratos, Nicolas; Constantopoulos, Panos. Query
Translation for Mediators over Ontology-based Information Sources.
In Second Hellenic Conference on Artificial Intelligence, SETN-2002.
Disponível em http://citeseer.nj.nec.com/tzitzikas02query.html
Referências Bibliográficas 94
Ullman, Jeffrey D. Information integration using logical views. In Proc. of the
6th Int. Conf. on Database Theory (ICDT-97), Lecture Notes in Computer
Science, pages 19--40. Springer-Verlag, 1997. Disponível em
http://citeseer.nj.nec.com/ullman97information.html
Visser, P.R.S.; Jones, D.M.; Bench-Capon, T.J.M; Shave, M.J.R.. An Analysis of
Ontology Mismatches; Heterogeneity versus Interoperability. Working
notes of the AAAI 1997 Spring Symposium on Ontological Engineering,
Stanford University, California, USA, pp.164-172. Disponível em
http://citeseer.nj.nec.com/visser97analysis.html
W3C. A Discussion of the Relationship Between RDF-Schema and UML.
W3C Note 04-Aug-1998. Disponível em http://www.w3.org/TR/NOTE-rdf-
uml/.
W3C. XML Schema Part 1: Structures. W3C Recommendation 2 May 2001.
Disponível em http://www.w3.org/TR/xmlschema-1
W3C. XML Schema Part 2: Datatypes. W3C Recommendation 2 May 2001.
Disponível em http://www.w3.org/TR/xmlschema-2
W3C. RDF Primer. W3C Working Draft 23 January 2003, work in progress.
Disponível em http://www.w3.org/TR/2003/WD-rdf-primer-20030123/.
W3C. Resource Description Framework (RDF):Concepts and Abstract
Syntax. W3C Working Draft 23 January 2003, work in progress.
Disponível em http://www.w3.org/TR/2003/WD-rdf-concepts-20030123/.
W3C. RDF Vocabulary Description Language 1.0: RDF Schema. W3C
Working Draft 23 January 2003, work in progress. Disponível em
http://www.w3.org/TR/2003/WD-rdf-schema-20030123/.
W3C. RDF/XML Syntax Specification (Revised), W3C Working Draft 23
January 2003, work in progress. Disponível em
http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20030123/.
W3C. Web Ontology Language (OWL), Guide Version 1.0. W3C Working
Draft 10 February 2003, work in progress. Disponível em
http://www.w3.org/TR/2003/WD-owl-guide-20030210/
W3C. Web Ontology Language (OWL), Use Cases and Requirements. W3C
Working Draft 03 February 2003, work in progress. Disponível em
http://www.w3.org/TR/2003/WD-webont-req-20030203/
Referências Bibliográficas 95
W3C. Web Ontology Language (OWL): Overview. W3C Working Draft 10
February 2003, work in progress. Disponível em
http://www.w3.org/TR/2003/WD-owl-features-20030210/
W3C. Web Ontology Language (OWL) Reference Version 1.0. W3C Working
Draft 21 February 2003, work in progress. Disponível em
http://www.w3.org/TR/2003/WD-owl-ref-20030221/
W3C. XSL Tranformations (XSLT) 1.0. W3C Recomendation 16 November
1999, Disponível em http://www.w3.org/TR/1999/REC-xslt-19991116.
W3C. Uniform Resource Identifier (URI) Activity Statement. Naming and
Addressing: URIs, URLs, ...Disponível em http://www.w3.org/Addressing/
Wache, H.; Vogele, T.; Visser, U.; Stuckenschmidt, H.; Schuster, G.; Neumann,
H.; Hubner, S. Ontology-based integration of information - a survey of
existing approaches. In Stuckenschmidt, H., ed., IJCAI-01 Workshop:
Ontologies and Information Sharing, 108--117. 2001. Disponível em
http://citeseer.nj.nec.com/article/wache01 ontologybased.html
Wiederhold, G. Mediators in the architecture of future information systems.
IEEE Computer 25, 3 (March, 1992), 38--49. Disponível em
http://citeseer.nj.nec.com/wiederhold92mediators.html
Wiederhold, Gio; Genesereth, Michael. Basis for Mediation; Proc. COOPIS'95
Conference, Vienna Austria, available from US West, Boulder CO, May
1995. http://citeseer.nj.nec.com/ wiederhold95basis.html
Wiederhold G.; Genesereth, M. The conceptual basis for mediation services.
IEEE Intelligent Systems, pages 38--47, September/October 1997.
http://citeseer.nj.nec.com/wiederhold96 conceptual.html
Wiederhold, Gio; Janninck, Jan. Composing diverse ontologies. Proc. 8 th IFIP
working group on databases working conference on database semantics,
Rotorua (NZ), 1999. Disponível em http://www-
db.stanford.edu/SKC/publications/ifip99.html
Anexo A – Norma N-1710 96
Anexo A – Norma N-1710
Esta norma tem por objetivo:
Uniformizar e sistematizar a Codificação de Documentos Técnicos de
Engenharia emitidos em papel ou meio eletrônico relativos às
instalações da PETROBRAS de forma a permitir seu arquivamento
ordenado e facilitar a recuperação de informações;
Possibilitar a obtenção de elementos para a apropriação de custos;
Possibilitar a determinação de índices para a previsão e
acompanhamento orçamentários;
Padronizar a terminologia das áreas de atividade.
Esta Norma se aplica aos documentos técnicos de engenharia relativos a
instalações, emitidos nas fases de projeto, construção, montagem,
condicionamento e operação, a partir da data de sua edição.
Para identificar os documentos é utilizado um código alfanumérico que é
obtido pela associação ordenada dos códigos representativos dos seguintes grupos
básicos:
grupo 0 – identificação do idioma; grupo 1 – categoria do documento; grupo 2 – identificação da instalação; grupo 3 – area de atividade; grupo 4 – classe de serviços, materiais e equipamentos; grupo 5 – origem do documento; grupo 6 – seqüencial cronológico.
A seguir são apresentados alguns exemplos do conteúdo dos grupos de
interesse para o estudo de caso discutido.
Anexo A – Norma N-1710 97
Grupo 1 - Categoria do Documento.
Código do Documento
Descrição Comentário para Utilização e Exemplos
CE Certificado Certificados de inspeção, de conclusão de montagem, de aferição de instrumentos, de auditoria, entre outros
CR Cronograma Diagramas de barras, de caminho crítico e assemelhado
DE Desenho Planta, curvas de níveis, tabela, ábaco, gráfico, croqui, diagrama, fluxograma, anteprojeto e símbolos.
ET Especificação
Técnica
Critérios de projeto, especificação de materiais, sistemas e equipamentos, especificação de processo ou instalações
FD Folha de Dados
De equipamento, de sistemas, de material a granel (válvulas, conexões), de processo, de instrumento, de tubulação (lista de linhas)
IM Imagem Fotos, ortofotos, mosaico, hipsométrico, vídeos, entre Outros
IS Isométrico Específico para desenhos em axometria ou em perspectiva cavaleira de sistemas de tubulações
LA Laudo Parecer envolvendo aspectos de engenharia emitidos para fios legais do tipo: processo formal de partilha, de perícia ou avaliação, perícia ambiental e assemelhada
LD Lista de
Documentos Documentos Sem comentários (auto-explicativo)
LI Lista Relação de equipamentos, de instrumentos, de materiais, de suportes, de cabos (não se aplica a lista de linhas, que utiliza o código FD)
MA Manual De operação, de manutenção, da garantia de qualidade e outros
MC Memória de
Cálculo Cálculo Sem comentários (auto-explicativo)
MD Memorial Descritivo
Documento que descreve um conjunto de atividades, serviços ou processos, e outros
PT Parecer Técnico
Parecer para aquisição de sistemas, equipamentos e Materiais
RL Relatório De resultados, de estudo técnico, de levantamento de Campo
RM Requisição de
Material Documento para aquisição de sistema, equipamentos e materiais
Anexo A – Norma N-1710 98
Grupo 2 – Identificação da Instalação.
0000.00 - GERAL 0100.00 - SEDES ADMINISTRATIVAS
0100.00 - Documentos Padronizados para Instalações Não Definidas 0101.00 - EDISE - Edifício Sede da PETROBRAS 0102.00 - Instalações na Av. Cidade de Lima ...
0200.00 - CENTRO DE PESQUISA E DESENVOLVIMENTO LEOPOLDO A. MIGUEZ DE MELLO - CENPES
0201.00 - Instalações da Ilha do Fundão 0202.00 - Setor de Ensino do Rio de Janeiro - CEN-SUD ...
0300.00 - EDISP (ANTIGO GEASP; ANTIGO ESPAL) 0301.00 - Edifício Braz Cubas (Santos - SP) 0302.00 - Edifício Duarte da Costa (Campinas - SP)
...
1000.00 - E&P - ÁREA DE EXPLORAÇÃO (ANTIGO DEPEX) - GERAL 1100.00 - E&P - AM (ANTIGO DISTRITO DE EXPLORAÇÃO DA
AMAZÔNIA OCIDENTAL - DENOC) 1200.00 - E&P - AM (ANTIGO DISTRITO DE EXPLORAÇÃO DO
NORTE -DENOR) 1300.00 - E&P - RNCE (ANTIGO DISTRITO DE EXPLORAÇÃO DA
BACIA POTIGUAR - DEBAR) 1301.00 - Sede Administrativa - Natal 1302.00 - Sede Administrativa – Mossoró
...
2000.00 - E&P - ÁREA DE PERFURAÇÃO (ANTIGO DEPER) - GERAL 2010.00 - SEDES ADMINISTRATIVAS 2011.00 - E&P - BA (ANTIGO DISTRITO DE PERFURAÇÃO DA
BAHIA - DPBA) 2011.01 - Catu (Cancelado, usar 3101.03) 2011.02 - Taquipe (Cancelado, usar 3101.06)
2012.00 - E&P - SEAL (ANTIGO DISTRITO DE PERFURAÇÃO DO NORDESTE - DPNE)
2012.01 - Estação de Fluidos de Perfuração do Terminal Portuário de Sergipe
...
3000.00 - E&P - ÁREA DE PRODUÇÃO (ANTIGO DEPRO) - GERAL 3010.00 - INSTALAÇÕES EM UNIDADES MÓVEIS/UNIDADES
MARÍTIMAS DE PRODUÇÃO 3010.01 - PETROBRAS 34, P-34, PP Moraes (Ex NP-01) 3010.02 - Instalação para Produção na Penrod-62 (PA-06)
3010.03 - Instalação para Produção na PETROBRAS III, P-III
...
Anexo A – Norma N-1710 99
Grupo 3 – Área de Atividade.
1000 - PERFURAÇÃO, PRODUÇÃO E TRATAMENTO DE ÓLEO 1100 - PERFURAÇÃO
1110 - UNIDADE DE PERFURAÇÃO (SONDA DE PERFURAÇÃO) 1120 - ESTAÇÃO DE LAMA (FLUIDO DE PERFURAÇÃO)
1200 - PRODUÇÃO 1210 - POÇO
1211 - Coletora Satélite (“Manifold” Terrestre) 1212 - Estação de Transferência e Medição de Óleo e Gás
1220 - UNIDADES DE PROCESSO 1221 - Estação Coletora 1222 - Estação de Tratamento de Óleo ...
1230 - UNIDADES DE GÁS NATURAL 1231 - Unidade de Processamento e Manuseio (Compressão,
Distribuição e Outros) 1232 - Unidade de Liquefação ...
1240 - ELEVAÇÃO ARTIFICIAL (RECUPERAÇÃO PRIMÁRIA) 1241 - Sistema de Bombeamento Mecânico 1242 - Sistema de Bombeamento Hidráulico ...
1400 - INSTALAÇÕES MODULADAS (VER ITEM 7.4.4.2 DO TEXTO) 1500 - INSTALAÇÕES SUBMARINAS
1510 - UNIDADES DE PRODUÇÃO 1511 - Gabarito Submarino (“Template”) e suas Estacas 1512 - “Manifold” Submarino (PLEM) 1513 - Torres Articuladas (de Processo ou Carregamento) ...
1600 - EXTRAÇÃO 1610 - MINERAÇÃO 1620 - PREPARAÇÃO DE SÓLIDOS
1621 - Unidade de Britagem 1622 - Unidade de Aproveitamento de Finos (Sinterização, Briquetagem,
Peletização) ...
2000 - UNIDADES DE PROCESSO - REFINAÇÃO 2100 - PROCESSOS DE FRACIONAMENTO
2110 - PROCESSOS DE FRACIONAMENTO DE PETRÓLEO 2111 - Unidade de Destilação Atmosférica 2112 - Unidade de Destilação a Vácuo 2113 - Unidade de Asfalto
2120 - PROCESSOS DE FRACIONAMENTO DE DERIVADOS 2121 - Unidade de Recuperação de Gases 2122 - Unidade de Estabilização de Nafta ...
2200 - PROCESSOS DE CONVERSÃO ...
Anexo A – Norma N-1710 100
Grupo 4 – Classe de Serviços, Materiais e Equipamentos.
100 - CONSTRUÇÃO CIVIL, ARQUITETURA E URBANISMO 110 - TERRENO
111 - Topografia 112 - Levantamento Aerofotogramétricos ...
120 - FUNDAÇÕES 121 - Estaqueamento 122 - Infra-Estrutura
130 - ESTRUTURAS NÃO METÁLICAS 131 - Estruturas de Concreto 132 - Estruturas de Madeira 133 - Grades Fixas
140 - ESTRUTURAS METÁLICAS 141 - Chapas 142 - Tubos Estruturais ...
200 - TUBULAÇÃO 210 - TUBOS RÍGIDOS (Condução, Produção, Revestimento, Perfuração)
211 - Tubos de Aço Carbono e Carbono-Molibdênio 212 - Tubos de Ferro Fundido ...
220 - VÁLVULAS 221 - Válvulas Gaveta 222 - Válvulas Globo ...
300 - MÁQUINAS 310 - BOMBAS
311 - Bombas Centrífugas (Radiais, Fluxo Misto e Axiais) 312 - Bombas Alternativas (Pistão, Êmbolo e Diafragma) ...
320 - COMPRESSORES, SOPRADORES E VENTILADORES 321 - Compressores Centrífugos (Axiais e Radiais) 322 - Compressores Alternativos (Pistão e Diafragma) ...
330 - ACIONADORES MECÂNICOS 331 - Turbinas a Vapor 332 - Turbinas a Gás e de Expansão ...
400 - TRANSFERÊNCIA DE CALOR 410 - GERADORES DE VAPOR
411 - Caldeiras Aquotubulares 412 - Caldeiras Flamotubulares ...
Anexo A – Norma N-1710 105
Exemplo do documento OWL correspondente ao grupo Categoria de Documentos.
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://nortec.engenharia.petrobras.com.br/N-1710/ANEXO_A#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about=
"http://nortec.engenharia.petrobras.com.br/N-1710/ANEXO_A.owl"> <rdfs:comment>
Ontologia gerada a partir da norma Petrobras:N-1710 REV.G NOV/2001 http://nortec.engenharia.petrobras.com.br/anexo_N-1710/ANEXO_A.pdf
</rdfs:comment> </owl:Ontology> <owl:Class rdf:ID="CategoriaDocumento"> <rdfs:label xml:lang="pt">Categoria de Documento</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temComentario" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:DatatypeProperty rdf:ID="temCodigo"> <rdfs:label xml:lang="pt">Código da Categoria</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/>
Anexo A – Norma N-1710 106
</owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="temDescricao"> <rdfs:label xml:lang="pt">Descrição</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="temComentario"> <rdfs:label xml:lang="pt">Comentário para Utilização e Exemplos
</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <CategoriaDocumento rdf:ID="CE"> <temCodigo rdf:datatype="&xsd;string">CE</temCodigo> <temDescricao rdf:datatype="&xsd;string">Certificado</temDescricao>
<temComentario rdf:datatype="&xsd;string">Certificados de inspeção, de conclusão de montagem, de aferição de instrumentos, de auditoria, entre outros.</temComentario>
</CategoriaDocumento > <CategoriaDocumento rdf:ID="CR"> <temCodigo rdf:datatype="&xsd;string">CR</temCodigo> <temDescricao rdf:datatype="&xsd;string">Cronograma
</temDescricao> <temComentario rdf:datatype="&xsd;string">Diagramas de barras, de
caminho crítico e assemelhado.</temComentario> </CategoriaDocumento > <CategoriaDocumento rdf:ID="DE"> <temCodigo rdf:datatype="&xsd;string">DE</temCodigo> <temDescricao rdf:datatype="&xsd;string">Desenho</temDescricao>
<temComentario rdf:datatype="&xsd;string">Planta, curvas de níveis, tabela, ábaco, gráfico, croqui, diagrama, fluxograma, anteprojeto e símbolos.</temComentario>
</CategoriaDocumento > <CategoriaDocumento rdf:ID="ET"> <temCodigo rdf:datatype="&xsd;string">ET</temCodigo> <temDescricao rdf:datatype="&xsd;string">Especificação Técnica
</temDescricao> <temComentario rdf:datatype="&xsd;string">Critérios de projeto,
especificação de materiais, sistemas e equipamentos, especificação de processo ou instalações.</temComentario>
</CategoriaDocumento> ... </rdf:RDF>
Anexo A – Norma N-1710 107
Exemplo do documento OWL correspondente ao grupo Identificação da Instalação. <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://nortec.engenharia.petrobras.com.br/N-1710/ANEXO_B#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about=
"http://nortec.engenharia.petrobras.com.br/N-1710/ANEXO_B.owl"> <rdfs:comment>
Ontologia gerada a partir da norma Petrobras: N-1710 rev.G NOV/2001 http://nortec.engenharia.petrobras.com.br/anexo_N-1710/ANEXO B.pdf
</rdfs:comment> </owl:Ontology> <owl:Class rdf:ID="Instalacao"> <rdfs:label xml:lang="pt">Identificação das Instalações</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:DatatypeProperty rdf:ID="temCodigo"> <rdfs:label xml:lang="pt">Código da Instalação</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="temDescricao"> <rdfs:label xml:lang="pt">Descrição</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty>
Anexo A – Norma N-1710 108
<owl:Class rdf:ID="AdmCentral"> <rdfs:label xml:lang="pt">Geral</rdfs:label> <rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="EP_EXP">
<rdfs:label xml:lang="pt">E&P - ÁREA DE EXPLORAÇÃO (ANTIGO DEPEX) - GERAL</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="EP_PERF">
<rdfs:label xml:lang="pt">E&P - ÁREA DE PERFURAÇÃO (ANTIGO DEPER) - GERAL</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="EP_PRO">
<rdfs:label xml:lang="pt">E&P - ÁREA DE PRODUÇÃO (ANTIGO DEPRO) - GERAL</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="AbastLog">
<rdfs:label xml:lang="pt">ABAST-LOG/GGO-TRAN (ANTIGO ABAST-TRAN)</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="AbastRef">
<rdfs:label xml:lang="pt">ABAST-REF (ÁREA DE REFINO - ANTIGO DEPIN)</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="EmprSubsidiaria">
<rdfs:label xml:lang="pt">SUBSIDIÁRIAS, CONTROLADAS E COLIGADAS</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="EmprExterior">
<rdfs:label xml:lang="pt">EMPREENDIMENTOS NO EXTERIOR</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="EmprPais">
Anexo A – Norma N-1710 109
<rdfs:label xml:lang="pt">EMPREENDIMENTO NO PAÍS, FORA DO SISTEMA PETROBRAS</rdfs:label>
<rdfs:subClassOf rdf:resource="#Instalacao" /> </owl:Class> <owl:Class rdf:ID="SedeAdministrativa"> <rdfs:label xml:lang="pt">SEDE ADMINISTRATIVA</rdfs:label> <rdfs:subClassOf rdf:resource="#AdmCentral" /> </owl:Class> <owl:Class rdf:ID="CENPES">
<rdfs:label xml:lang="pt">CENTRO DE PESQUISA E DESENVOLVIMENTO LEOPOLDO A. MIGUEZ DE MELLO - CENPES</rdfs:label>
<rdfs:subClassOf rdf:resource="#AdmCentral" /> </owl:Class> <SedeAdministrativa rdf:ID="EDISE"> <temCodigo rdf:datatype="&xsd;string">0101.00</temCodigo>
<temDescricao rdf:datatype="&xsd;string">EDISE - Edifício Sede da PETROBRAS</temDescricao>
</SedeAdministrativa> <SedeAdministrativa rdf:ID="CIDADE_LIMA"> <temCodigo rdf:datatype="&xsd;string">0102.00</temCodigo>
<temDescricao rdf:datatype="&xsd;string">Instalações na Av. Cidade de Lima</temDescricao>
</SedeAdministrativa> ... </rdf:RDF>
Anexo A – Norma N-1710 110
Exemplo do documento OWL correspondente ao grupo Área de Atividade.
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://nortec.engenharia.petrobras.com.br/N-1710/ANEXO_C#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about=
"http://nortec.engenharia.petrobras.com.br/N-1710/ANEXO_C.owl"> <rdfs:comment>
Ontologia gerada a partir da norma Petrobras: N-1710 rev.G NOV/2001 http://nortec.engenharia.petrobras.com.br/anexo_N-1710/ANEXO C.pdf
</rdfs:comment> </owl:Ontology> <owl:Class rdf:ID="AreaAtividade"> <rdfs:label xml:lang="pt">Identificação das Instalações</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:DatatypeProperty rdf:ID="temCodigo"> <rdfs:label xml:lang="pt">Código da Atividade</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="temDescricao"> <rdfs:label xml:lang="pt">Descrição da Atividade</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty>
Anexo A – Norma N-1710 111
<owl:Class rdf:ID="Quimica"> <rdfs:label xml:lang="pt">Química</rdfs:label> <rdfs:subClassOf rdf:resource="#AreaAtividade" /> </owl:Class> <owl:Class rdf:ID="Refinacao">
<rdfs:label xml:lang="pt">Refinação</rdfs:label> <rdfs:subClassOf rdf:resource="#AreaAtividade" /> </owl:Class> <owl:Class rdf:ID="PerfProdTrat">
<rdfs:label xml:lang="pt">Perfuração, Produção e Tratamento</rdfs:label> <rdfs:subClassOf rdf:resource="#AreaAtividade" /> </owl:Class> <owl:Class rdf:ID="Distribuicao">
<rdfs:label xml:lang="pt">Distribuição</rdfs:label> <rdfs:subClassOf rdf:resource="#AreaAtividade" /> </owl:Class> <owl:Class rdf:ID="TransporteTancagem">
<rdfs:label xml:lang="pt">Transporte, Transferência e Tancagem </rdfs:label>
<rdfs:subClassOf rdf:resource="#AreaAtividade" /> </owl:Class> <owl:Class rdf:ID="Producao">
<rdfs:label xml:lang="pt">Produção</rdfs:label> <rdfs:subClassOf rdf:resource="#PerfProdTrat" /> </owl:Class> <owl:Class rdf:ID="Perfuracao">
<rdfs:label xml:lang="pt">Perfuração</rdfs:label> <rdfs:subClassOf rdf:resource="#PerfProdTrat" /> </owl:Class> <owl:Class rdf:ID="ElevacaoArtificial">
<rdfs:label xml:lang="pt">Elevação Artifcial</rdfs:label> <rdfs:subClassOf rdf:resource="#Producao" /> </owl:Class> <owl:Class rdf:ID="InjecaoQuimica"> <rdfs:label xml:lang="pt">Injeção Química</rdfs:label> <rdfs:subClassOf rdf:resource="#Producao" /> </owl:Class> <ElevacaoArtificial rdf:ID="BombMecanico"> <temCodigo rdf:datatype="&xsd;string">1241</temCodigo>
Anexo A – Norma N-1710 112
<temDescricao rdf:datatype="&xsd;string">Sistema de Bombeamento Mecânico</temDescricao>
</ElevacaoArtificial> <ElevacaoArtificial rdf:ID="BombHidraulico"> <temCodigo rdf:datatype="&xsd;string">1242</temCodigo>
<temDescricao rdf:datatype="&xsd;string">Sistema de Bombeamento Hidráulico</temDescricao>
</ElevacaoArtificial> <ElevacaoArtificial rdf:ID="Gas-Lift"> <temCodigo rdf:datatype="&xsd;string">1244</temCodigo>
<temDescricao rdf:datatype="&xsd;string">Sistema de Gás-Lift </temDescricao>
</ElevacaoArtificial> <InjecaoQuimica rdf:ID="InjOleoGas"> <temCodigo rdf:datatype="&xsd;string">1261</temCodigo>
<temDescricao rdf:datatype="&xsd;string">Injeção química de Óleo e Gás </temDescricao>
</InjecaoQuimica> <InjecaoQuimica rdf:ID="InjAguaOleosa"> <temCodigo rdf:datatype="&xsd;string">1244</temCodigo>
<temDescricao rdf:datatype="&xsd;string">Injeção química de Água Oleosa </temDescricao>
</InjecaoQuimica> <InjecaoQuimica rdf:ID="InjAguaCapt"> <temCodigo rdf:datatype="&xsd;string">1244</temCodigo>
<temDescricao rdf:datatype="&xsd;string"> Injeção química de Água de Captação</temDescricao>
</InjecaoQuimica > ... </rdf:RDF>
Anexo B – Modulo de Anormalidade em Poços do SIP 113
Anexo B – Modulo de Anormalidade em Poços do SIP
As tabelas do SIP de interesse para o mapeamento são as seguintes:
Tabela de Componentes de Sistemas
Código Descrição
AC SISTEMA DE ANCORAGEM
AN ÁRVORE NATAL/CAB PROD.
AQ AQUEC./RECUP./TROCADOR
AS VÁLVULA ASSV
BB BOMBA
BC CONJUNTO BCS
BR BATERIA/RETIF./INVERSOR
C1 PCH-1
C2 PCH-2
CC PAINEL CCM ELÉTRICO
CE CABO ELÉTRICO
CK CHOKE/BEAN PLATAFORMA
CM CABO MULTIPLEXADO
CO COMPRESSOR
CP COLUNA DE PRODUÇÃO
CS CHOKE/BEAN SUBMARINO
CT CONTROLADOR ELETRÔNICO
DH DHSV/SSSV
DR DISJUNTOR / RELÉ / BOTOEIRA
DS DESAERADOR
EN PCE-1
ES ESPF
FG SENSOR DE FOGO / GÁS
... ...
Anexo B – Modulo de Anormalidade em Poços do SIP 114
Tabela de Métodos de Elevação
Código Descrição
AGL AUTO GAS LIFT
BCP BOMBEIO CAVIDADE PROGRESSIVA
BCS BOMBEIO CENTRIFUGO SUBMERSO
BH BOMBEIO HIDRAULICO
BHJ BOMBEIO HIDRAULICO A JATO
BM BOMBEIO MECANICO
BMP BOMBEIO MOTO-PROGRESSIVO
GFC GAS LIFT CONTINUO COM FLEXITUBE
GFI GAS LIFT INTERMITENTE COM FLEXITUBE
GLC GAS LIFT CONTINUO
GLI GAS LIFT INTERMITENTE
GLP GAS LIFT INTERMITENTE COM PLUNGER
P PISTONEIO
PIG PIG LIFT
PLG PLUNGER LIFT ASSISTIDO
PLU PLUNGER LIFT CONVENCIONAL
S SURGENTE
Anexo B – Modulo de Anormalidade em Poços do SIP 115
Tabela de Sistemas de Equipamentos
Código Descrição
AF ÁGUA DE RESFRIAMENTO
AM CAPTAÇÃO DE ÁGUA
AO ÓLEO RECUPERADO / ÁGUA OLEOSA
AQ SISTEMA DE AQUECIMENTO
CA COMPRESSÃO DE GÁS ALTA PRESSÃO
CB COMPRESSÃO BOOSTER DE GÁS
CC CORRENTE CONTÍNUA
CG COMPRESSÃO EXCLUSIVAMENTE P/ GL
CH COMANDO HIDRÁULICO
CI COMBATE A INCÊNDIO
CO COLETA DA PRODUÇÃO
CP CONTROLE DE PROCESSO
CS ELEVAÇÃO ARTIFICIAL BCS
DE DISTRIBUIÇÃO DE ENERGIA
DG DESIDRATAÇÃO DE GÁS
EO EXPORTAÇÃO DE ÓLEO
FG DETECÇÃO DE FOGO / GÁS
FI DISTRIBUIÇÃO FLUIDO INJ. NO RESERVAT.
FL FLARE / TOCHA ALTA / BAIXA PRESSÃO
GA TRANSFERÊNCIA DE GÁS DE ALTA
GB TRANSFERÊNCIA DE GÁS DE BAIXA
GC GÁS COMBUSTÍVEL
GL ELEVAÇÃO ARTIFICIAL GÁS-LIFT
GO SEPARAÇÃO GÁS / ÓLEO
GP GERAÇÃO PRINCIPAL
GS GERAÇÃO AUXILIAR
GV GERAÇÃO DE VAPOR
HJ ELEVAÇÃO ARTIFICIAL BHJ
... ...
Anexo B – Modulo de Anormalidade em Poços do SIP 116
Tabela de Plataformas
Código Descrição
ESPF ESPADARTE FPSO
FPBR FPSO BRASIL
FPSO2 FPSO-2 MARLIM SUL
P-03 PETROBRAS III
P-07 PETROBRAS VII
P-08 PETROBRAS VIII
P-09 PETROBRAS IX
P-12 PETROBRAS XII
P-13 PETROBRAS XIII
P-14 PETROBRAS XIV (SS21)
P-15 PETROBRAS XV
P-18 PETROBRAS XVIII
P-19 PETROBRAS XIX
P-20 PETROBRAS XX
P-21 PETROBRAS XXI
P-22 PETROBRAS XXII
P-24 PETROBRAS XXIV
P-25 PETROBRAS XXV
P-26 PETROBRAS XXVI
P-27 PETROBRAS XXVII
P-31 PETROBRAS XXXI
P-33 PETROBRAS XXXIII
P-34 PETROBRAS XXXIV
P-35 PETROBRAS XXXV
P-36 PETROBRAS XXXVI
P-37 PETROBRAS XXXVII
P-40 PETROBRAS XL
P-45 PETROBRAS XLV
PA-06 PENROD 62
PCE-1 PLATAFORMA DE ENCHOVA
... ...
Anexo B – Modulo de Anormalidade em Poços do SIP 117
Tabela de Campos
Código Descrição
AB ALBACORA
ABL ALBACORA LESTE
ANQ ANEQUIM
BB BARRA BONITA
BD BADEJO
BG BAGRE
BI BICUDO
BJ BIJUPIRA
BO BONITO
BR BARRACUDA
CG CONGRO
CH CHERNE
CO CORVINA
CRL CORAL
CRP CARAPEBA
CRT CARATINGA
CRV CARAVELA
CVS CARAVELA SUL
EM ESTRELA DO MAR
EN ENCHOVA
ENO ENCHOVA OESTE
ESP ESPADARTE
FR FRADE
GP GAROUPA
GPN GAROUPINHA
GRJ GUARAJUBA
LI LINGUADO
MA MARIMBA
MLH MALHADO
MLL MARLIM LESTE
MLS MARLIM SUL
MLZ MERLUZA
MO MOREIA
MR MATO RICO
... ...
Anexo B – Modulo de Anormalidade em Poços do SIP 118
Diagrama do Módulo de Anormalidades em Poços do Sistema de Informação da Produção.
Anexo B – Modulo de Anormalidade em Poços do SIP 119
Exemplo do documento OWL correspondente ao Módulo de Acompanhamento de Anormalidade em Poços do SIP.
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://ti.petrobras.com.br/SIP#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about="http://ti.petrobras.com.br/SIP/sip.owl">
<rdfs:comment> Ontologia gerada a partir do modelo Entidade-Relacionamento do Módulo de Acompanhamento de Anormalidades em Poços do Sistema de Informação da Produção.
</rdfs:comment> </owl:Ontology> <owl:DatatypeProperty rdf:ID="temCodigo"> <rdfs:label xml:lang="pt">Código</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="temDescricao"> <rdfs:label xml:lang="pt">Descrição</rdfs:label> <rdfs:range rdf:resource="&xsd;string"/> </owl:DatatypeProperty> <owl:ObjectProperty rdf:ID="temPoco" /> <owl:ObjectProperty rdf:ID="temColuna" /> <owl:ObjectProperty rdf:ID="temMetodoElevacao" /> <owl:ObjectProperty rdf:ID="produzFluido" /> <owl:ObjectProperty rdf:ID="temTipoOperacao" /> <owl:ObjectProperty rdf:ID="temComponente" /> <owl:ObjectProperty rdf:ID="temSistemaEquipamento" /> <owl:Class rdf:ID="Componente”>
Anexo B – Modulo de Anormalidade em Poços do SIP 120
<rdfs:label xml:lang="pt">Componente</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="MetodoElevacao”> <rdfs:label xml:lang="pt">Metodo de Elevação</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="SistemaEquipamento”> <rdfs:label xml:lang="pt">Sistema de Equipamento</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Plataforma"> <rdfs:label xml:lang="pt">Plataforma</rdfs:label> <rdfs:subClassOf>
Anexo B – Modulo de Anormalidade em Poços do SIP 121
<owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temColuna" /> <owl:allValuesFrom rdf:resource="#Coluna" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Campo"> <rdfs:label xml:lang="pt">Campo de produção</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temDescricao" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temPoco" /> <owl:allValuesFrom rdf:resource="#Poco" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class> <owl:Class rdf:ID="Coluna"> <rdfs:label xml:lang="pt">Coluna</rdfs:label> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCodigo" /> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf>
Anexo B – Modulo de Anormalidade em Poços do SIP 122
<owl:Restriction> <owl:onProperty rdf:resource="#temMetodoElevacao" /> <owl:allValuesFrom rdf:resource="#MetodoElevacao" /> </owl:Restriction> </rdfs:subClassOf>
<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temTipoOperacao" /> <owl:allValuesFrom rdf:resource="#TipoOperacao" /> </owl:Restriction> </rdfs:subClassOf>
<rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#ProduzFluido" /> <owl:allValuesFrom rdf:resource="#Fluido" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class> ... </rdf:RDF>
Anexo C – Mapeamento entre a N-1710 e o SIP 123
Anexo C – Mapeamento entre a N-1710 e o SIP
Exemplo do documento OWL correspondente ao Mapeamento entre a norma N-1710 e o Módulo de Acompanhamento de Anormalidade em Poços do SIP.
Mapeamento relativo ao grupo Identificação da Instalação:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY sip "http://ti.petrobras.com.br/SIP#" > <!ENTITY n1710 "http://nortec.engenharia.petrobras.com.br/N-1710#" > <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://ti.petrobras.com.br/map#" xmlns:sip = "http://ti.petrobras.com.br/SIP#" xmlns:n1710 = "http://nortec.engenharia.petrobras.com.br/N-1710#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about=
"http://nortec.engenharia.petrobras.com.br/map/map1.owl"> <rdfs:comment> Ontologia para mapeamento entre a norma Petrobras:
N-1710 REV.G NOV/2001 e o Sistema de Informação da Producao - SIP </rdfs:comment> </owl:Ontology> <owl:Class rdf:ID="Plataforma"> <rdfs:subClassOf rdf:resource="sip;Plataforma" /> <rdfs:subClassOf rdf:resource="&n1710;EP_PRO" /> </owl:Class> <Plataforma rdf:ID="P-40"> <owl:sameAs rdf:resource="&n1710;B3010.57" /> <owl:sameAs rdf:resource="&sip;P-40" /> </owl:Class>
Anexo C – Mapeamento entre a N-1710 e o SIP 124
<owl:Class rdf:ID="InstalacaoCampo"> <rdfs:subClassOf rdf:resource="&n1710;EP_PRO" /> </owl:Class> <owl:ObjectProperty rdf:ID="temCampo"> <rdfs:domain rdf:resource="#InstalacaoCampo" /> <rdfs:range rdf:resource="&sip;Campo" /> </owl:ObjectProperty> <owl:Class rdf:ID="InstalacaoBadejo"> <owl:sameAs rdf:resource="&n1710;Badejo" /> <rdfs:subClassOf rdf:resource="InstalacaoCampo" /> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temCampo" /> <owl:hasValue rdf:resource="&sip;BD" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class> </rdf:RDF>
Anexo C – Mapeamento entre a N-1710 e o SIP 125
Mapeamento relativo ao grupo Área de Atividade:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY sip "http://ti.petrobras.com.br/SIP#" > <!ENTITY n1710 "http://nortec.engenharia.petrobras.com.br/N-1710#" > <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://ti.petrobras.com.br/map#" xmlns:sip = "http://ti.petrobras.com.br/SIP#" xmlns:n1710 = "http://nortec.engenharia.petrobras.com.br/N-1710#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about=
"http://nortec.engenharia.petrobras.com.br/map/map.owl"> <rdfs:comment> Ontologia para mapeamento entre a norma Petrobras:
N-1710 REV.G NOV/2001 e o Sistema de Informação da Producao - SIP </rdfs:comment> </owl:Ontology> <owl:Class rdf:ID="AtividadeSistema"> <rdfs:subClassOf rdf:resource="&n1710;AreaAtividade" /> </owl:Class> <owl:ObjectProperty rdf:ID="temSistemaEquipamento"> <rdfs:domain rdf:resource="#AtividadeSistema" /> <rdfs:range rdf:resource="&sip;SistemaEquipamento" /> </owl:ObjectProperty> <owl:Class rdf:ID="InjecaoQuimica"> <rdfs:subClassOf rdf:resource="AtividadeSistema" /> <owl:sameAs rdf:resource="&n1710;InjecaoQuimica" /> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temSistemaEquipamento" /> <owl:hasValue rdf:resource="&sip;IQ" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class>
Anexo C – Mapeamento entre a N-1710 e o SIP 126
<owl:Class rdf:ID="AtividadeElevacao"> </owl:Class> <owl:ObjectProperty rdf:ID="temElevacaoArtificial"> <rdfs:domain rdf:resource="#AtividadeElevacao" /> <rdfs:range rdf:resource="&n1710;ElevacaoArtificial" /> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="temMetodoElevacao"> <rdfs:domain rdf:resource="#AtividadeElevacao" /> <rdfs:range rdf:resource="&sip;MetodoElevacao" /> </owl:ObjectProperty> <owl:Class rdf:ID="GasLift"> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temElevacaoArtificial" /> <owl:hasValue rdf:resource="&n1710;GasLift" /> </owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temMetodoElevacao" /> <owl:allValuesFrom> <owl:Class> <owl:oneOf rdf:parseType="Collection"> <owl:Item rdf:resource="&sip;AGL" /> <owl:Item rdf:resource="&sip;GFC" /> <owl:Item rdf:resource="&sip;GFI" /> <owl:Item rdf:resource="&sip;GLC" /> <owl:Item rdf:resource="&sip;GLI" /> <owl:Item rdf:resource="&sip;GLP" /> </owl:oneOf> </owl:Class> </owl:allValuesFrom> </owl:Restriction> </rdfs:subClassOf> </owl:Class> </rdf:RDF>
Anexo C – Mapeamento entre a N-1710 e o SIP 127
Mapeamento relativo ao grupo Serviços, Materiais e Equipamentos:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE owl ( <!ENTITY sip "http://ti.petrobras.com.br/SIP#" > <!ENTITY n1710 "http://nortec.engenharia.petrobras.com.br/N-1710#" > <!ENTITY owl "http://www.w3.org/2002/7/owl#" > <!ENTITY xsd "http://www.w3.org/2000/10/XMLSchema#" > )> <rdf:RDF xmlns = "http://ti.petrobras.com.br/map#" xmlns:sip = "http://ti.petrobras.com.br/SIP#" xmlns:n1710 = "http://nortec.engenharia.petrobras.com.br/N-1710#" xmlns:owl = "http://www.w3.org/2002/7/owl#" xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs= "http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema#"> <owl:Ontology rdf:about=
"http://nortec.engenharia.petrobras.com.br/map/map.owl"> <rdfs:comment> Ontologia para mapeamento entre a norma Petrobras:
N-1710 REV.G NOV/2001 e o Sistema de Informação da Producao - SIP </rdfs:comment> </owl:Ontology> <owl:Class rdf:ID="Equipamento"> <rdfs:subClassOf rdf:resource="&n1710;ServEquipMat" /> </owl:Class> <owl:ObjectProperty rdf:ID="temClasseComponente"> <rdfs:domain rdf:resource="#Equipamento" /> <rdfs:range rdf:resource="&sip;Componente" /> </owl:ObjectProperty> <owl:Class rdf:ID="Bomba"> <rdfs:subClassOf rdf:resource="Equipamento" /> <owl:sameAs rdf:resource="&n1710;Bomba" /> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#temClasseComponente" /> <owl:hasValue rdf:resource="&sip;BB" /> </owl:Restriction> </rdfs:subClassOf> </owl:Class> </rdf:RDF>