segunda-feira, 24 de setembro de 2012

Altova SemanticWorks - Editor OWL

OWL foi uma linguagem projetada para o processamento de informações, ao invés de simplesmente realizar uma organização visual de seu conteúdo é utilizada para definir e instanciar ontologias na web que podem incluir descrição, propriedade e relacionamentos de classes.

O Altova SemanticWorks é um editor de arquivos RDF/OWL e tem como diferencial a possibilidade de visualmente criar a ontologia observando sua estrutura em diagramas como mostra a imagem abaixo:




O mesmo também suporta OWL Lite, OWL DL e OWL Full, possui chegagem de sintaxe de acordo com as especificações RDF/XML, me pareceu uma ferramenta completa para o desenvolvido de uma Web Semântica, entretanto é disponibilizado somente uma versão trial de 30 dias o que limita o tempo de desenvolvimento caso o usuário não compre o software, o software também só disponibiliza um código de acesso para registro Trial para emails corporativos, abaixo a imagem mostra o email que recebi dizendo isso:



O Software também poderia ser melhorado se tivesse opcões de versionamento e edição colaborativa de ontologia.

segunda-feira, 10 de setembro de 2012

Resource Description Framework - RDF



RDF é um Framework utilizado para descrever recursos web como por exemplo, titulo, autor, data de modificação, conteúdo e informações sobre direitos autorais de uma página Web. O RDF tem uma semântica formal e tem como objetivo o uso de um vocabulário URI-based, uma sintaxe XML-based e o suporte de uso de XML. Os arquivos RDF têm três componentes básicos que o tornam altamente escalável; recurso, propriedade e indicação.
RDF descreve recursos com classes, propriedades e valores e também precisa definir classes de aplicações especificas e propriedades que podem ser definidas utilizando extensões de RDF, um tipo de extensão é RDF Schema abaixo um exemplo:

No exemplo acima “DOOIII” é uma subclasse de “aula”
Podemos abreviar a sintaxe acima usando rdfs:Class ao invés de rdf:Description e retirar rdf:type information tendo dessa forma uma estrutura mais compacta:



Para descrever grupos são utilizados Containers RDF através dos seguintes elementos:
<rdf:Bag> - este elemento é usado para descrever uma lista de valores que não precisam estar em uma ordem especifica e pode conter valores duplicados;
 <rdf:Seq> - este elemento é usado para descrever uma lista ordenada como letras em ordem alfabética por exemplo e também pode conter valores duplicados;
<rdf:Alt> - este elemento é usado para descrever uma lista de valores alternativos.
Os valores que estão dentro do conteiners são chamados de membros não de “lista de valores”, o que não quer dizer que outros membros podem ser adicionados, por isso são utilizadas coleções RDF para descrever grupos que podem adicionar membros específicos e são descritas pelo seguinte atributo: rdf:parseType="Collection". Abaixo um exemplo retirado do site da W3C:
Para promover uma declaração para que esta possa ser usada por outras declarações deve se Reificar um RDF. Para isto acontecer deverá ser definido uma URIref da seguinte forma:

rdf:statement - tipo da declaração;
rdf:subject  - sujeito da declaração;
rdf:predicate - predicado da declaração;
rdf:object  - objeto da declaração;

Abaixo um esquema em XML que foi transformado para RDF:



 Nota-se que o código em RDF ficou mais formalizado e dessa forma se consegue uma melhor utilização do mesmo pois o código em RDF pode ser lido por diversas aplicações.

RDFPic
É uma ferramenta que cria arquivos RDF a partir de dados informados pelo usuário com o objetivo de fornecer uma descrição de imagens em formato JPEG, abaixo está uma screenshot da aplicação e o código do arquivo gerado:





Extensible markup language - XML

XML é uma linguagem de marcação recomendada pela W3C, é amplamente utilizada na estruturação hierárquica  de diversos tipos de dados, por ser amplamente difundida encontramos vários exemplos de utilização dessa linguagem na internet, abaixo selecionei alguns e criei outros:

Exemplo de um Curriculo Vitae em XML:


















fonte:http://pt.wikipedia.org/wiki/XML


Abaixo um exemplo dos dados de um disco e uma receita de pão em XML:










fonte:http://www.tecmundo.com.br/programacao/1762-o-que-e-xml-.htm




Exemplo de um carro:
 De uma música:
 De uma pessoa:
 De um filme:




Abaixo a criação que representa a estrutura de dados de um Professor, aluno e curso seguinto a sugestão de modelagem do link: http://ia.ucpel.tche.br/~lpalazzo/Aulas/IWS/UNIV2009b.htm

Um Professor:
 Um Aluno:
 Um Curso:




Exemplos de ferramentas para XML:

 SAX - É uma API para XML, usada para acessar documentos XML e é muito utilizado por servlets que precisam enviar e receber documentos XML porque é o mecanismo mais rápido, pois utiliza pouca memoria comparado a outros mecanismos com a mesma função.

DOM - É uma estrutura de árvores padrão, onde cada nó contem um dos componentes de uma estrutura XML . Os dois tipos mais comuns de nós são textos e elementos. Utilizando as funções do DOM nos permite a criação, remoção e edição de nodos e mudar sua hierarquia