2. Conteúdo
O que é SHOE?
O que SHOE não é...
Especificações
Ontologias Base da SHOE
Criando uma Ontologia Basica
Anotação de um documento HTML com SHOE
Inferências em Ontologias SHOE
Referências
3. O que é SHOE?
O HTML não foi projetado para o 'consumo' do computador, sua função é
apenas exibir dados para que os seres humanos possam ler. O
"conhecimento" em uma página web é uma linguagem legível
(normalmente inglês), definido com textos, tabelas e gráficos, para que
nós humanos possamos compreender visualmente.
Infelizmente, os agentes inteligentes não são humanos. Mesmo com a
tecnologia de linguagem natural 'state-of-the-art', obter em um
computador recursos para ler e compreender documentos da web é muito
complicado. Essa dificuldade faz com que a criação de um agente
inteligente que pode percorrer a web por si próprio, ler e compreender as
páginas seja muito difícil.
Então, o que pode ser feito?
4. O que é SHOE?
A resposta é simples: SHOE.
SHOE elimina esse problema, tornando possível para
páginas da web a inclusão de conhecimento de uma forma
que os agentes inteligentes realmente podem ler.
SHOE é uma pequena extensão de HTML, que permite que
os autores das páginas web marcar seus documentos web
com conhecimento de leitura de máquina. SHOE torna
possível um agente inteligente real na web.
5. O que é SHOE?
SHOE é uma linguagem de representação do
conhecimento baseado em HTML.
SHOE pode ser utilizado para incorporar os dados a partir
de uma variedade de fontes e para uma variedade de
propósitos. Não se destina a qualquer função particular.
No entanto, SHOE se destina principalmente para tornar a
web possível para robôs e agentes inteligentes, e assim
fazer a diferença, tornando a nossa vida um pouco mais
fácil.
6. O que é SHOE?
Desenvolvido por: Grupo de Sistemas de Entendimento Paralelo,
Prof. Jim Hendler
Departamento de Ciência da Computação
Universidade de Maryland
Resumindo...
Superconjunto de HTML;
Especifica ontologias para os Agentes da Internet;
Descreve semanticamente documentos web com máquinas de conhecimento
legível;
Compatível com SGML e XML;
Mas agora o trabalho da Universidade de Maryland em ontologias da web
continua no Projeto Agentes e Web Semântica, que utiliza as linguagens para
ontologia Web OWL e DAML+OIL. Essas linguagens são resultados dos esforços
de padronização e, em parte, são baseadas na SHOE;
7. O que SHOE não é...
Não é apenas uma linguagem de meta-conteúdo.
Permite que os designers da web incorporem documentos que não contenham
apenas informações sobre o “conteúdo” global desses documentos, mas qualquer
informação arbitrária em tudo. SHOE também permite a interferência automática
sobre os dados que eles aprendem, fornece um esquema de categorização
hierárquica, e um mecanismo de ontologia sofisticado projetado especificamente
para o que a web precisa.
Não é propositalmente um sistema detalhado de
conhecimento-representação.
SHOE tenta fornecer uma rica expressividade quanto possível, enquanto mantém
em mente que há uma enorme quantidade de dados fora.
Não há ontologias pré-definidas, categorias,
relacionamentos ou inferências.
SHOE é uma linguagem na qual categorias, relacionamentos, atributos, inferências,
etc. podem ser definidas por ontologias, mas a própria SHOE não as define.
8. Especificações
Tudo é iniciado com a adição desta tag de
inicialização na cabeça do documento HTML clássico.
<META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0">
Você pode usar este logotipo que representa que sua
página web suporta SHOE..
9. Especificações
SHOE usa as seguintes tags adicionais como uma extensão do HTML:
Para a definição de ontologias:
ONTOLOGY, /ONTOLOGY, USE-ONTOLOGY, DEF-CATEGORY,DEF-RELATION,
/DEF-RELATION, DEF-ARG, DEF-RENAME,DEF-CONSTANT,
DEF-TYPE, DEF-INFERENCE, /DEF-INFERENCE,INF-IF,
/INF-IF, INF-THEN, /INF-THEN,
COMPARISON,/COMPARISON, CATEGORY, RELATION, /RELATION,
ARG.
Para a averbação de páginas HTML, adicione:
INSTANCE, /INSTANCE.
10. Criando uma ontologia
<HTML>
<HEAD>
<!--Indication that this document is conformant with SHOE 1.0->
<META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0“>
<TITLE> Our CS Ontology </TITLE>
</HEAD>
<BODY>
<!--Declaration of the ontology‘s name and version-->
<ONTOLOGY ID="cs-dept-ontology" VERSION="1.0“>
<!--Declaration to use another yet existing ontology-->
<USE-ONTOLOGY ID="base-ontology" VERSION="1.0" PREFIX="base”
URL="http://www.cs.umd.edu/projects/plus/SHOE/base.html">
O prefix base é utilizado para indicar que está sendo importado da ontologia base.
11. Criando uma ontologia
<!– A definição da hierarquia-->
<DEF-CATEGORY NAME="Organization" ISA="base.SHOEEntity">
<DEF-CATEGORY NAME="Person" ISA="base.SHOEEntity">
<DEF-CATEGORY NAME="Publication" ISA="base.SHOEEntity">
<DEF-CATEGORY NAME="ResearchGroup" ISA="Organization">
<DEF-CATEGORY NAME="Department" ISA="Organization">
<DEF-CATEGORY NAME="Worker" ISA="Person">
<DEF-CATEGORY NAME="Faculty" ISA="Worker">
<DEF-CATEGORY NAME="Assistant" ISA="Worker">
<DEF-CATEGORY NAME="AdministrativeStaff" ISA="Worker">
<DEF-CATEGORY NAME="Student" ISA="Person">
<DEF-CATEGORY NAME="PostDoc" ISA="Faculty">
<DEF-CATEGORY NAME="Lecturer" ISA="Faculty">
<DEF-CATEGORY NAME="Professor" ISA="Faculty">
<DEF-CATEGORY NAME="ResearchAssistant" ISA="Assistant">
<DEF-CATEGORY NAME="TeachingAssistant" ISA="Assistant">
<DEF-CATEGORY NAME="GraduateStudent" ISA="Student">
<DEF-CATEGORY NAME="UndergraduateStudent" ISA="Student">
<DEF-CATEGORY NAME="Secretary" ISA="AdministrativeStaff">
<DEF-CATEGORY NAME="Chair" ISA="AdministrativeStaff Professor">
Herança
Múltipla
Note-se que Organização, Publicação, e Pessoa subcategoriza a base.SHOEEntity, isto é, a categoria
SHOEEntity declarou em base-ontology. SHOEEntity é a categoria aceita como "root" para todas as
categorias que você vai declarar em uma ontologia.
12. Base de uma ontologia SHOE
1. Tipagem
STRING: Literais.
NUMBER: Ponto flutuante, inteiros e constantes.
DATE: Data/Timestamps
TRUTH: “Boolean”, neste caso: YES | NO.
13. Base de uma ontologia SHOE
2. Hierarquia ISA
Entity
SHOEEntity
Entity
SHOEEntity
Entity: O pai de todas as classificações SHOE. Não se deve criar uma
subclasse de Entity, deve-se usar o SHOEEntity. Entity existe somente
para trazer flexibilidade a versões anteriores do SHOE.
SHOEEntity: Agora sim, este deve ser o pai de todas as categorias SHOE.
14. Esquema da ontologia criada
anteriormente
[base.Entity]
[base.SHOEEntity]
Person
Worker
Faculty
Professor
AssistantProfessor
AssociateProfessor
FullProfessor
VisitingProfessor
Lecturer
PostDoc
Assistant
ResearchAssistant
TeachingAssistant
AdministrativeStaff
Director
Chair {Professor}
Dean {Professor}
ClericalStaff
SystemsStaff
Student
UndergraduateStudent
GraduateStudent
Organization
Department
School
15. Base de uma ontologia SHOE
3. Relacionamentos
Relacionamentos são declarados entre um ou mais argumentos.
Relação Argumento 1 Argumento 2
=======================================
description Entity STRING
name Entity STRING
16. Criando uma ontologia
Agora vamos criar alguns relacionamentos.
Estudantes tem professors como orientadores.
Organizações tem membros.
Pessoas são autores de publicações.
18. Criando uma ontologia
Também podemos utilizar as relações para criar uma
regra.
Publicações são publicadas em uma data.
A idade do estudante é um número.
Qualquer nome é uma string.
Todo professor tem o campo docente como truth.
19. Criando uma ontologia
<DEF-RELATION NAME="publicationDate">
<DEF-ARG POS="1" TYPE="Publication">
<DEF-ARG POS="2" TYPE=".DATE">
</DEF-RELATION>
<DEF-RELATION NAME="age">
<DEF-ARG POS="1" TYPE="Person">
<DEF-ARG POS="2" TYPE=".NUMBER">
</DEF-RELATION>
<DEF-RELATION NAME="name">
<DEF-ARG POS="1" TYPE="base.SHOEEntity">
<DEF-ARG POS="2" TYPE=".STRING">
</DEF-RELATION>
<DEF-RELATION NAME="tenured">
<DEF-ARG POS="1" TYPE="Professor">
<DEF-ARG POS="2" TYPE=".TRUTH">
</DEF-RELATION>
</ONTOLOGY> </BODY></HTML>
“.” é utilizado como atalho para acessar os elementos base da ontologia SHOE.
20. Descrevendo um documento HTML
<HTML>
<HEAD>
<TITLE>My Page</TITLE>
</HEAD>
<BODY>
<P> Hi, this is my web page. I am a graduate student and a research
assistant. </P>
<P> Also, I'm 52 years old. </P>
<P> My name is George Stephanopolous. </P>
<P> Here is a pointer to my <A HREF="http://www.cs.umd.edu/smith">
graduate advisor.</A></P>
<P> And <A HREF="http://www.cs.umd.edu/papers/paper.ps"> is a paper I
recently wrote.
<h3> Brun Hilda </h3> Brun Hilda is a visiting lecturer here from
Germany who doesn't have her own web page. However, because I am such
a nice person, I have agreed to let part of my web page space belong
to her. She is 23.
</BODY>
</HTML>
22. Descrevendo um documento HTML
<HTML>
<HEAD>
<TITLE>My Page</TITLE>
</HEAD>
<BODY>
<P> Hi, this is my web page. I am a graduate student and a research
assistant. </P>
<P> Also, I'm 52 years old. </P>
<P> My name is George Stephanopolous. </P>
<P> Here is a pointer to my <A HREF="http://www.cs.umd.edu/smith">
graduate advisor.</A></P>
<P> And <A HREF="http://www.cs.umd.edu/papers/paper.ps"> is a paper I
recently wrote.
<h3> Brun Hilda </h3> Brun Hilda is a visiting lecturer here from
Germany who doesn't have her own web page. However, because I am such
a nice person, I have agreed to let part of my web page space belong
to her. She is 23.
</BODY>
</HTML>
23. Descrevendo um documento HTML
Agora nós temos que dizer as mesmas coisas para os agentes
inteligentes. Para isso, temos que informar ao robô que estaremos
usando SHOE.
<META HTTP-EQUIV="SHOE" CONTENT="VERSION=1.0">
24. Descrevendo um documento HTML
Instâncias e Chaves
Antes de adicionarmos informações semânticas a nossa página, temos que definer uma ou
mais instâncias, que são os objetos que vamos classificar ou relaciona-los com outros.
SHOE associa cada instância a uma chave única, ou seja, duas pessoas não podem escrever
instâncias com o mesmo nome.
<INSTANCE KEY="http://www.cs.umd.edu/users/george/">
25. Descrevendo um documento HTML
Então declare qual ontologia será usada...
<USE-ONTOLOGY ID="cs-dept-ontology"
URL="http://www.cs.umd.edu/projects/plus/SHO
E/onts/cs.html" VERSION="1.0" PREFIX="cs">
26. Descrevendo um documento HTML
Categorização
<CATEGORY NAME="cs.GraduateStudent">
<CATEGORY NAME="cs.ResearchAssistant">
"GraduateStudent" e "ResearchAssistant" foram definidas na ontologia
de prefixo "cs." (i.e., cs-dept-ontology).
28. Descrevendo um documento HTML
Instância aninhada
E a Brun Hilda? Ela também divide espaço na
página de George, então a sua instância precisa
ser diferente, porém também baseada na URL da
página.
32. Inferências nas ontologias SHOE
Além de hierarquias e relações também é possível criar regras
para inferências, que relembram um pouco o estilo de Prolog.
member(?org2,?person) :- member(?org1,?person) ^
subOrganizationOf(?org1,?org2)
Traduzindo: "?person é um membro de ?org2 SE ?person é
um membro de ?org1 E ?org1 é uma sub-organização de
?org2".