Você está na página 1de 14

Utilizando OWL com

Jena
Angelo Augusto Frozza
Rodrigo Gonalves
Jena
 Framework para Web Semntica
 Laboratrio de Web Semntica da HP
 Linguagem Java
 Suporte a RDFS, DAML+OIL, OWL
 Inferncias (reasoners)
Objetivos do estudo de caso
 Conhecer o framework Jena
 Caractersticas principais
 Como utiliz-lo em aplicaes
 Como manipular ontologias
Criando ontologias
 OntModel ontologia = Constante Representao

ModelFactory.createOntolo
gyModel (URIdaOntologia); DAML_LANG DAML+OIL

 OntModel ontologia = OWL_DL_LANG OWL-DL


ModelFactory.createOntolo
gyModel (ProfileRegistry.
OWL_LANG OWL-Full
OWL_LITE_LANG);

OWL_LITE_LANG OWL-Lite

RDFS_LANG RDFS
Carregando ontologias
 Mtodo read
 Arquivos
 Streamsde dados
 Endereos na Web

 Suporte a ontologias inclusas


 OntModel m = ModelFactory.createOntologyModel();
 OntDocumentManager dm = m.getDocumentManager();
 dm.setProcessImports(false);
Manipulando Ontologias
 Recursos
 Todo item de uma ontologia (classe,
indivduo)
 Propriedades
 versionInfo, comment, label, seeAlso, sameAs
 Mtodos padronizados para adicionar, remover e
listas as propriedades (add, remove, list)
Manipulando ontologias - Classes

 Recuperando uma classe


 OntClass camera = m.getOntClass( camNS + "Camera" );

 Criando uma classe


 OntClass pinCamera = m.createClass( camNS + "PinholeCamera" );

 Propriedades
 subClass, superClass, equivalentClass, etc.
Manipulando ontologias - classes

 Listando subclasses
OntClass camera = m.getOntClass( camNS + "Camera" );
for (Iterator i = camera.listSubClasses(); i.hasNext(); ) {
OntClass c = (OntClass) i.next();
System.out.print( c.getLocalName() + " " );
}
Manipulando ontologias - propriedades

 Propriedades
 subProperties, domain, range, inverse
 Criando uma propriedade
OntModel newM = ModelFactory.createOntologyModel();
OntClass Camera = newM.createClass( camNS + "Camera" );
OntClass Body = newM.createClass( camNS + "Body" );
ObjectProperty part = newM.createObjectProperty( camNS + "part" );
ObjectProperty body = newM.createObjectProperty( camNS + "body" );
body.addSuperProperty( part );
body.addDomain( Camera );
body.addRange( Body );
Manipulando ontologias - propriedades

 Propriedades simtricas, transitivas,


funcionais
 Restries
 Valores possveis, cardinalidades
Manipulando Ontologias - Indivduos

 Mtodo createIndividual() da classe


(OntClass)

Individual ind = ontologia.createIndividual(classeCaminhao);


ind.addProperty(temNome, Ford");
Manipulando Indivduos Inferncias

 Reasoners
 Conjunto padro disponibilizado pelo Jena
 Inferncias
OntModel ontologia = carregarOntologia();
InfModel modelo = ModelFactory.createInfModel(ontologia.getReasoner(), ontologia);

Resource ie = modelo.getResource(prefix + "InstituicaoDeEnsino");


Resource ufsc = modelo.getResource(prefix + "UFSC");
if (modelo.contains(ufsc, RDF.type, ie)) {
System.out.println("UFSC uma instituio de ensino");
}
Concluses
 Jena
 Ferramentepoderosa
 Linguagem Java

 Uso requer domnio sobre ontologias


 Documentao direcionada a experientes no
uso de ontologias
 Tutoriais auxiliam o uso
Referncias
 Esta introduo ao Jena e OWL foi baseada nos
tutoriais Jena 2 Inference support e Jena 2 Ontology
API disponveis na documentao do Jena.

Você também pode gostar