Web Semantica - Simple HTML Ontology Extension SHOE
-
Upload
tiago-r-sampaio -
Category
Software
-
view
163 -
download
0
description
Transcript of Web Semantica - Simple HTML Ontology Extension SHOE
Simple HTML Ontology Extension
Tiago R. Sampaio
www.trsampaio.com
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
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?
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.
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.
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;
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.
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..
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.
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.
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">
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.
Herança Múltipla
Base de uma ontologia SHOE
1. Tipagem
STRING: Literais.
NUMBER: Ponto flutuante, inteiros e constantes.
DATE: Data/Timestamps
TRUTH: “Boolean”, neste caso: YES | NO.
Base de uma ontologia SHOE
2. Hierarquia ISA
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.
Entity
SHOEEntity
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
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
Criando uma ontologia
Agora vamos criar alguns relacionamentos.
Estudantes tem professors como orientadores.
Organizações tem membros. Pessoas são autores de publicações.
Criando uma ontologia
<DEF-RELATION NAME="advisor"><DEF-ARG POS="1" TYPE="Student"> <DEF-ARG POS="2" TYPE="Professor">
</DEF-RELATION> <DEF-RELATION NAME="member">
<DEF-ARG POS="1" TYPE="Organization"><DEF-ARG POS="2" TYPE="Person">
</DEF-RELATION><DEF-RELATION NAME="publicationAuthor">
<DEF-ARG POS="1" TYPE="Publication"><DEF-ARG POS="2" TYPE="Person">
</DEF-RELATION>
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.
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.
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>
Descrevendo um documento HTML
Quais as informações que podemos obter desta página?
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>
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">
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/">
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/SHOE/onts/cs.html" VERSION="1.0" PREFIX="cs">
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).
Descrevendo um documento HTML
Declarando relações
<RELATION NAME="cs.name"> <ARG POS=1 VALUE="http://www.cs.umd.edu/users/george/"> <ARG POS=2 VALUE="George Stephanopolous"> </RELATION>
<RELATION NAME="cs.age"> <ARG POS=1 VALUE="http://www.cs.umd.edu/users/george/"> <ARG POS=2 VALUE="52"> </RELATION>
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.
Descrevendo um documento HTML
<INSTANCE KEY="http://www.cs.umd.edu/users/george/#BRUNHILDA">
<CATEGORY NAME="cs.Lecturer">
<RELATION NAME= "cs.name“><ARG POS=TO VALUE="Brun Hilda“>
</RELATION><RELATION NAME="cs.age">
<ARG POS=TO VALUE="23“></RELATION></INSTANCE>
Descrevendo um documento HTML
Produto Final:<INSTANCE KEY="http://www.cs.umd.edu/users/george/"> <USE-ONTOLOGY ID="cs-dept-ontology" URL="http://www.cs.umd.edu/projects/plus/SHOE/onts/cs.html" VERSION="1.0" PREFIX="cs">
<CATEGORY NAME="cs.GraduateStudent"><CATEGORY NAME="cs.ResearchAssistant">
<RELATION NAME="cs.name">
<ARG POS=TO VALUE="George Stephanopolous"> </RELATION><RELATION NAME="cs.age">
<ARG POS=TO VALUE="52"></RELATION><RELATION NAME="cs.advisor">
<ARG POS=TO VALUE="http://www.cs.umd.edu/users/smith"> </RELATION>
Descrevendo um documento HTML
<INSTANCE KEY="http://www.cs.umd.edu/users/george/#BRUNHILDA">
<CATEGORY NAME="cs.Lecturer“><RELATION NAME= "cs.name">
<ARG POS=TO VALUE="Brun Hilda"></RELATION><RELATION NAME="cs.age“>
<ARG POS=TO VALUE="23“></RELATION></INSTANCE>
</INSTANCE>
</BODY> </HTML>
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".
Inferências nas ontologias SHOE
<DEF-INFERENCE DESCRIPTION="member(?org2,?person) if member(?org1,?person) and subOrganizationOf(?org1,?org2)">
<INF-IF><RELATION NAME="member">
<ARG POS=1 VALUE="org1" USAGE=VAR><ARG POS=2 VALUE="per" USAGE=VAR>
</RELATION> <RELATION NAME="subOrganizationOf">
<ARG POS=1 VALUE="org1" USAGE=VAR> <ARG POS=2 VALUE="org2" USAGE=VAR>
</RELATION> </INF-IF> <INF-THEN>
<RELATION NAME="member"><ARG POS=1 VALUE="org2" USAGE=VAR><ARG POS=2 VALUE="per" USAGE=VAR>
</RELATION></INF-THEN></DEF-INFERENCE>
Referências
http://www.cs.umd.edu/projects/plus/SHOE
http://www-di.inf.puc-rio.br/~julio/Slct-pub/JAI.pdf
http://swat.cse.lehigh.edu/
http://www2.dbd.puc-rio.br/pergamum/tesesabertas/0024134_02_cap_05.pdf