Treinamento Apache Jena
Sobre o Treinamento
O treinamento Apache Jena é voltado para desenvolvedores, arquitetos de dados e profissionais de Banco de Dados e Data Science que precisam modelar, armazenar e consultar dados na forma de grafos utilizando os padrões da Web Semântica. O Apache Jena é um framework Java de código aberto que reúne, em um único ecossistema, motor de triplas RDF, mecanismo de inferência (raciocínio sobre ontologias RDFS/OWL), banco de dados nativo de grafos (TDB) e servidor SPARQL (Fuseki). São abordados conhecimentos de arquitetura e fundamentos de grafos de conhecimento (knowledge graphs), da linguagem RDF e da linguagem de consulta SPARQL, até a construção de aplicações Java completas capazes de armazenar, consultar, raciocinar e publicar dados interligados (Linked Data). Entender os principais conceitos do modelo RDF, dominar a escrita de consultas SPARQL, saber configurar e operar um triple store em produção com TDB2, publicar endpoints SPARQL com Fuseki, e integrar o Apache Jena com ferramentas de metadados e governança do ecossistema de dados da empresa, como Apache Atlas e OpenMetadata. Ser capaz de construir aplicações que utilizam grafos de conhecimento para catálogos de dados, integração semântica entre sistemas heterogêneos e mecanismos de busca inteligente.
Turmas
Somente no modelo corporativo no momento.
Dificuldade: Intermediário/Avançado.
Aplicabilidade.
Este treinamento foi desenvolvido usando o Apache Jena 6.1 (Fuseki e TDB2) e a especificação SPARQL 1.1. e foi modificado pela última vez em 5 de Julho de 2026.
Conteúdo Programático
Conceitual Web Semântica e Grafos de Conhecimento
- O que é a Web Semântica.
- Dados interligados (Linked Data) X dados isolados (silos).
- Modelo de dados em grafo X modelo relacional X modelo documento.
- O que é uma tripla RDF (sujeito, predicado, objeto).
- Vocabulários e Ontologias (RDFS e OWL).
- URIs, IRIs e Namespaces.
- Padrões do W3C: RDF, RDFS, OWL, SPARQL, SHACL.
- Knowledge Graphs no mercado (Google, empresas de dados, governo).
- Casos de uso: catálogo de dados, integração de sistemas, busca semântica, dados abertos governamentais.
- Apache Jena X outras soluções de grafo (Neo4j, GraphDB, RDF4J).
Introdução ao Apache Jena
- Histórico e arquitetura do projeto.
- Módulos do ecossistema Jena.
- Core (RDF API).
- ARQ (SPARQL engine).
- TDB/TDB2 (triple store).
- Fuseki (servidor).
- Ontology API, Inference API.
- Jena X Frameworks Java tradicionais (JPA, Hibernate)
- Estrutura de um projeto Java com Jena.
Instalação e Configuração do Ambiente
- Preparando o Sistema Operacional (Linux) para o Apache Jena.
- Instalando e configurando o Java Development Kit.
- Configurando variáveis de ambiente (JAVA_HOME, JENA_HOME, FUSEKI_HOME).
- Instalando o Apache Maven.
- Configurando o pom.xml com as dependências do Jena.
- Download e instalação do Apache Jena standalone (Jena Command Line Tools).
- Download, instalação e configuração do Apache Fuseki como serviço standalone.
- Subindo o Fuseki como serviço via systemd (start, stop, restart, status, logs).
- Instalação via container Docker.
- Criando a estrutura de diretórios de um dataset TDB2.
- Validando a instalação: primeiro dataset, primeira tripla, primeira consulta SPARQL via linha de comando (riot, sparql, tdb2.tdbquery).
- Troubleshooting comum: portas em uso, permissões de diretório, incompatibilidade de versão de JDK, memória de heap da JVM.
Modelagem e Manipulação de RDF
- Criando um Model RDF em Java.
- Adicionando, removendo e consultando Statements (triplas).
- Trabalhando com Recursos, Propriedades e Literais.
- Serialização: Turtle, RDF/XML, JSON-LD, N-Triples.
- Convertendo dados relacionais e planilhas para RDF.
- Bags, Containers e Coleções RDF.
- Reificação de triplas.
- Boas práticas de modelagem de vocabulários próprios.
Ontologias com RDFS e OWL
- Classes, subclasses e hierarquias.
- Propriedades de objeto e propriedades de dado.
- Domínio e alcance (domain e range).
- Introdução ao OWL: cardinalidade, propriedades inversas, equivalência.
- Motores de inferência (Reasoners) do Jena.
- Inferência RDFS X OWL - trade-offs de performance.
- Validação de dados com SHACL.
Linguagem de Consulta SPARQL
- Anatomia de uma consulta SPARQL: SELECT, WHERE, FILTER.
- Padrões de grafo (Graph Patterns) e Triple Patterns.
- OPTIONAL, UNION, FILTER e expressões.
- Agregações: COUNT, GROUP BY, HAVING.
- CONSTRUCT, ASK e DESCRIBE.
- Atualizações com SPARQL Update (INSERT, DELETE).
- Federando consultas entre múltiplos endpoints (SERVICE).
- Consultas via ARQ na linha de comando e via API Java.
TDB2 - Banco de Dados Nativo de Grafos
- Arquitetura de armazenamento do TDB2.
- Criando e populando um dataset TDB2.
- Carga em lote (bulk loading) de grandes volumes de triplas.
- Transações e concorrência no TDB2.
- Backup, restore e manutenção do dataset.
- Monitoramento e tunning de performance.
- TDB2 X bancos relacionais e NoSQL.
Fuseki - Publicando Endpoints SPARQL
- Instalando e configurando o Apache Fuseki.
- Subindo um endpoint SPARQL para consumo externo.
- Segurança: autenticação e controle de acesso no Fuseki.
- Interface administrativa do Fuseki.
- Fuseki em produção: systemd, containers e alta disponibilidade.
- Publicando dados como Linked Open Data.
Integração e Desenvolvimento.
- Consumindo um endpoint SPARQL a partir de uma aplicação Java.
- Integração do Jena com pipelines de dados (ETL para RDF).
- Jena e o ecossistema de metadados: relação com Apache Atlas e OpenMetadata.
- Publicando dados de um Banco de Dados relacional como grafo RDF.
- Geo SPARQL - dados geoespaciais em grafos.
- Boas práticas de projeto e organização de código.
- Skosmos e o padrão SKOS.
- Apache Jena Fuseki como backend de dados do Skosmos.
Carga Horária:
- 32 Horas.
Modalidades do treinamento
Presencial
Abrimos turmas onde se pode inscrever. Atuamos na maioria das capitais brasileiras.
On Line Ao Vivo
Fazemos a transmissão online do treinamento ao vivo e em tempo real.
In Company
Turmas fechadas para empresas a custo único para até 15 alunos.
Pré-requisitos dos Participantes:
- Conhecimento em Programação Java ou alguma linguagem com Orientação a Objetos.
- Conhecimento de Banco de Dados e SQL.
- Noções de modelagem de dados.
- Conhecimento Básico de Linux.
- Todos os participantes devem trazer um notebook para realizar as atividades práticas.
- O Computador deve estar com acesso de administrador para possibilitar instalações de aplicativos e acesso a Internet.
- Para turmas In-Company não trabalhamos com limite de participantes para os treinamentos, orientamos que as turmas sejam de até 12 alunos para um melhor desempenho.
Requisitos mínimos de hardware:
- Memória RAM : 8 GB.
- Espaço em Disco: 20GB.
- Processador: Dual-core AMD 64, EM64T
- deve estar ativo a Virtualização na BIOS do equipamento.
- Sistemas Operacionais:Qualquer um com suporte e Virtualização com VirtualBox.
- Oracle VM VirtualBox ( https://www.virtualbox.org/).
Material
Serão disponibilizados os seguintes materiais aos alunos do treinamento:
- Todos os softwares Apache Jena, Fuseki e acessórios na sua última versão estável.
- Material próprio em Português do Brasil.
- Apresentações (slides do treinamento) desenvolvidas pela equipe Ambiente Livre.
- Apostilas digitais dos softwares desenvolvidas pela Ambiente Livre.
- Apostilas com exercícios práticos desenvolvidos no treinamento.
- Materiais e documentações complementares desenvolvido pela Comunidade Open Source Mundial.
Metodologia
- Todos os dias serão apresentados novos recursos e conceitos e avaliados através de exercícios práticos em todas as aulas