linguagem Frame - Frame language

A linguagem quadro é uma tecnologia usada para a representação do conhecimento em inteligência artificial . Os quadros são armazenados como ontologias de conjuntos e subconjuntos dos conceitos de quadro . Eles são semelhantes aos hierarquias de classe em linguagens orientadas a objetos , embora os seus objectivos fundamentais de design são diferentes. Frames estão focados em representação explícita e intuitivo de conhecimento enquanto objetos concentrar em encapsulamento e ocultamento de informações . Frames teve origem na pesquisa do AI e objetos principalmente em engenharia de software . No entanto, na prática, as técnicas e as capacidades do quadro e idiomas orientada para objectos sobrepõem-se significativamente.

Descrição

Os primeiros trabalhos sobre Frames foi inspirado pela pesquisa psicológica de voltar para a década de 1930 que indicaram pessoas usam armazenada conhecimento estereotipada interpretar e agir em novas situações cognitivas. O termo quadro foi usado pela primeira vez por Marvin Minsky como um paradigma para compreender o raciocínio visual e processamento de linguagem natural. Nestes e em muitos outros tipos de problemas o potencial espaço da solução, mesmo para o mais pequeno problema é enorme. Por exemplo, extraindo os fonemas a partir de uma sequência de áudio em bruto ou detectar as arestas de um objecto. Coisas que parecem triviais para os seres humanos são realmente muito complexo. Na verdade, o quão difícil eles realmente eram provavelmente não foi totalmente compreendido até que os pesquisadores AI começou a investigar a complexidade de conseguir computadores para resolvê-los.

A noção inicial de quadros ou Scripts como eles também foram chamados é que eles iriam estabelecer o contexto para um problema e ao fazê-lo automaticamente reduzir o possível espaço de busca significativamente. A idéia também foi adotada pela Schank e Abelson que a usou para ilustrar como um sistema AI poderia processar interações humanas comuns, como encomendar uma refeição em um restaurante. Estas interacções foram padronizadas como quadros com fendas que armazenados informação relevante sobre cada quadro. Os entalhes são análogo ao objeto propriedades em modelação orientada a objectos e a relações em modelos entidade-relação. Slots muitas vezes tinham valores padrão, mas também exigiu mais refinamento, como parte da execução de cada instância do cenário. Ou seja, a execução de uma tarefa, como encomendar em um restaurante era controlada por começando com uma instância básica do quadro e, em seguida, instanciar e refinar vários valores como apropriado. Essencialmente, o quadro resumo representada uma classe de objecto e os casos de frame uma instância de objecto. Neste trabalho inicial a ênfase foi principalmente nas descrições de dados estáticos do quadro. Vários mecanismos foram desenvolvidos para definir a faixa de uma ranhura, valores padrão, etc. No entanto, mesmo nestes primeiros sistemas não havia recursos processuais. Uma técnica comum era usar "gatilhos" (semelhante ao conceito de banco de dados de gatilhos) ligados a ranhuras. Um gatilho foi código simplesmente processual que foi ligada a uma ranhura. O gatilho pode disparar antes e / ou depois de um valor de slot foi acessado ou modificado.

Tal como acontece com as classes de objetos, quadros foram organizados em subsumption hierarquias. Por exemplo, um quadro básico pode ser encomendar em um restaurante. Um exemplo disso seria Joe vai para McDonald. A especialização (essencialmente uma subclasse ) do quadro restaurante seria um quadro para encomendar em um restaurante chique. O quadro restaurante chique herdaria todos os valores padrão do quadro restaurante, mas também quer adicionar mais slots ou alterar um ou mais dos valores padrão (por exemplo, espera faixa de preço) para o quadro especializado.

Grande parte da pesquisa de linguagem Quadro cedo (por exemplo Schank e Abelson) tinha sido impulsionada pelas descobertas da psicologia experimental e tentativas de projetar ferramentas de representação do conhecimento que correspondiam aos padrões humanos foram pensados ​​para usar a funcionar nas tarefas diárias. Esses pesquisadores estavam menos interessados ​​na formalidade matemática pois acreditavam tais formalismos não eram necessariamente bons modelos para a forma como o ser humano médio conceitua o mundo. A linguagem modo como os humanos o uso, por exemplo, é muitas vezes longe de realmente lógico.

Da mesma forma, em linguística, Charles J. Fillmore , em meados da década de 1970 começou a trabalhar em sua teoria da semântica quadro , que mais tarde levaria a recursos computacionais como FrameNet . Semântica quadro foi motivada por reflexões sobre a linguagem humana e cognição humana.

Pesquisadores como Ron Brachman , por outro lado queria dar pesquisadores de IA o formalismo matemático e poder computacional que foram associados com Logic. Seu objetivo era mapear a moldura classes, ranhuras, restrições e regras em uma linguagem de quadros para a teoria dos conjuntos e da lógica. Um dos benefícios desta abordagem é que a validação e até mesmo a criação dos modelos pode ser automatizado utilizando provadores de teoremas e outras capacidades de raciocínio automatizado. O problema foi que poderia ser mais difícil especificar inicialmente o modelo em uma linguagem com uma semântica formal.

Esta evolução também ilustra uma divisão clássica em pesquisa AI conhecido como o " neats vs. scruffies ". Os "neats" eram pesquisadores que colocaram o maior valor de precisão matemática e formalismo que poderia ser alcançado através de Primeira Ordem Lógica e Teoria dos Conjuntos . Os "scruffies" estavam mais interessados em conhecimento de modelagem em representações que eram intuitiva e psicologicamente significativo para os seres humanos.

A mais notável das abordagens mais formais foi a KL-ONE idioma. KL-ONE mais tarde passou a gerar várias línguas quadro subsequente. A semântica formais de linguagens como KL-ONE deu línguas quadro de um novo tipo de capacidade de raciocínio automatizado conhecido como o classificador . O classificador é um motor que analisa as diversas declarações na língua quadro: a definição de conjuntos, subconjuntos, relações, etc. O classificador pode então deduzir automaticamente várias relações adicionais e pode detectar quando algumas partes de um modelo são inconsistentes entre si. Desta forma, muitas das tarefas que normalmente seriam executadas pela frente ou para trás encadeamento em um motor de inferência possa ser realizada pelo classificador.

Esta tecnologia é especialmente valiosa para lidar com a Internet. É um resultado interessante que o formalismo de línguas como o KL-ONE pode ser mais útil lidar com os dados altamente informais e não estruturados encontrados na Internet. Na Internet simplesmente não é viável exigir que todos os sistemas de padronizar um modelo de dados. É inevitável que a terminologia será utilizada em múltiplas formas inconsistentes. A capacidade de classificação automática do motor classificador fornece aos desenvolvedores de IA com uma caixa de ferramentas poderosas para ajudar a trazer ordem e consistência a uma coleção muito inconsistente de dados (ou seja, a Internet). A visão de uma Internet aprimorada, onde as páginas são ordenados não apenas por palavras-chave de texto, mas pela classificação de conceitos é conhecida como a Web Semântica . Tecnologia de classificação desenvolvido originalmente para idiomas quadro é um capacitador-chave da Web Semântica. A divisão "neats vs. scruffies" também surgiu na pesquisa Web Semântica, que culminou com a criação do Linking Open Data comunidade o seu foco era a exposição de dados na Web, em vez de modelagem.

Exemplo

Um exemplo simples de conceitos modelados em uma linguagem quadro é o amigo de um amigo ontologia (FOAF) definido como parte da Web Semântica como base para sistemas de rede e calendário social. O quadro principal neste exemplo simples é uma Pessoa . Ranhuras exemplo são da pessoa e-mail , home page, telefone, etc. Os interesses de cada pessoa pode ser representado por quadros adicionais que descrevem o espaço de domínios de negócios e de entretenimento. O slot sabe ligações cada pessoa com outras pessoas. Os valores padrão para os interesses de uma pessoa pode ser inferido pela web de pessoas que são amigos de.

implementações

As primeiras línguas baseada em quadros foram costume desenvolvido para projectos de investigação específicos e não foram embalados como ferramentas para ser reutilizada por outros pesquisadores. Assim como com sistema especialista motores de inferência , os pesquisadores logo perceberam os benefícios da extração de parte da infra-estrutura básica e desenvolver linguagens gerais quadro propósito que não foram acopladas a aplicações específicas. Uma das primeiras uso geral quadro línguas foi KRL. Um dos mais influentes línguas Quadro início foi KL-ONE KL-ONE gerou vários idiomas quadro subsequente. Um dos sucessores mais utilizados para KL-ONE foi a linguagem Loom desenvolvido por Robert MacGregor no Instituto de Ciências da Informação .

Na década de 1980 Inteligência Artificial gerou um grande interesse no mundo dos negócios alimentada por sistemas especialistas. Isto levou ao desenvolvimento de muitos produtos comerciais para o desenvolvimento de sistemas baseados em conhecimento. Estes produtos iniciais eram geralmente desenvolvidos em Lisp e construções integradas tais como IF-THEN regras para raciocínio lógico com hierarquias quadro para representar dados. Um dos mais bem conhecido destas ferramentas base de conhecimentos em Lisp início foi o de Engenharia do Meio Ambiente Conhecimento (KEE) da IntelliCorp . KEE ofereceu uma linguagem full frame com herança múltipla, entalhes, gatilhos, os valores padrão, e um mecanismo de regras que apoiou encadeamento para trás e para a frente. Tal como acontece com a maioria das versões comerciais iniciais de AI KEE software foi originalmente implantado em Lisp na máquina Lisp plataformas, mas acabou por ser portado para PCs e estações de trabalho Unix.

A agenda da pesquisa Web Semântica gerou um interesse renovado em linguagens de classificação e automático de estrutura. Um exemplo é a Web Ontology Language padrão (OWL) para descrever informações na Internet. OWL é um padrão para fornecer uma camada semântica em cima da Internet. O objetivo é que, em vez de organizar a web usando palavras-chave como a maioria das aplicações (por exemplo, Google) fazem hoje a web pode ser organizada por conceitos organizados em uma ontologia.

O nome da própria linguagem OWL fornece um bom exemplo do valor de um Web Semântica. Se fosse para procurar "coruja" usando a Internet hoje em dia a maioria das páginas recuperadas seria sobre o pássaro da coruja em vez do padrão OWL . Com um Web Semântica seria possível especificar o conceito "Web Ontology Language" eo usuário não precisa se preocupar com as várias siglas ou sinônimos possíveis como parte da pesquisa. Da mesma forma que o usuário não precisa se preocupar com homônimos que aglomeram os resultados da pesquisa com dados irrelevantes como informações sobre as aves de rapina, como neste exemplo simples.

Além CORUJA vários padrões e tecnologias que são relevantes para a Web Semântica e foram influenciados por línguas Quadro incluem OIL e DAML . O Protege ferramenta de software Open Source da Universidade de Stanford oferece uma capacidade de edição de ontologia que é construído sobre OWL e tem todas as capacidades de um classificador. No entanto, deixou de apoiar explicitamente quadros a partir da versão 3.5 (que é mantida por aqueles preferindo orientação do quadro), a corrente versão em 2017 sendo 5. A justificação para se mover a partir de quadros explícitas sendo que OWL DL é mais expressivo e "padrão da indústria".

Comparação de quadros e objetos

Idiomas Quadro têm uma sobreposição significativa com orientada para objectos idiomas. As terminologias e objetivos das duas comunidades eram diferentes, mas como eles se mudaram do mundo acadêmico e laboratórios para o mundo comercial desenvolvedores tendem a não se preocupam com as questões filosóficas e focado principalmente em capacidades específicas, levando a melhor a partir de qualquer campo, independentemente de onde a idéia começasse. O que ambos os paradigmas têm em comum é o desejo de reduzir a distância entre os conceitos do mundo real e sua implementação em software. Como tal, ambos os paradigmas chegou à idéia de representar os objetos de software primárias em taxonomias começando com tipos muito gerais e progredindo para tipos mais específicos.

A tabela a seguir ilustra a correlação entre a terminologia padrão das comunidades orientada para objectos e idioma quadro:

Terminologia quadro OO Terminologia
Quadro, Armação Classe de objeto
ranhura propriedade do objeto ou atributo
Desencadear métodos de acesso e mutador
Método (por exemplo, do tear, KEE) Método

A principal diferença entre os dois paradigmas estava na medida em que a encapsulação foi considerado um requisito importante. Para a encapsulação paradigma orientada a objectos era um dos, se não o, requisito mais crítico. O desejo de reduzir os potenciais interações entre componentes de software e, portanto, gerenciar grandes sistemas complexos foi um dos principais impulsionadores da tecnologia orientada a objeto. Para o campo de idioma quadro este requisito foi menos crítico do que o desejo de oferecer uma vasta gama de possíveis ferramentas para representar regras, restrições e lógica de programação. No orientada a objetos mundo tudo é controlado por meio de métodos e a visibilidade de métodos. Assim, por exemplo, acessar o valor dos dados de uma propriedade do objeto deve ser feito através de um método de acesso. Este método controla coisas como validar o tipo de dados e restrições sobre o valor a ser recuperada ou definida na propriedade. Em linguagens Quadro esses mesmos tipos de restrições poderiam ser tratadas de várias maneiras. poderia ser definido gatilhos para disparar antes ou depois de um valor foi definido ou recuperado. Regras podem ser definidas que conseguiu os mesmos tipos de restrições. Os slots si poderia ser aumentada com informação adicional (chamado "facetas" em algumas línguas) novamente com o mesmo tipo de informação restrição.

O outro diferenciador principal entre o quadro e OO idiomas foi herança múltipla (permitindo uma estrutura ou classe de ter dois ou mais superclasses). Para idiomas quadro herança múltipla era uma exigência. Isso decorre do desejo de modelar o mundo como os humanos, conceituações humanas do mundo raramente caem em taxonomias não sobrepostos rigidamente definidos. Para muitas linguagens OO, especialmente nos últimos anos de OO, herança simples ou foi fortemente desejado ou necessário. herança múltipla foi visto como um possível passo na fase de análise para modelar um domínio, mas algo que deve ser eliminado nas fases de concepção e implementação em nome da manutenção de encapsulamento e modularidade.

Embora os primeiros idiomas quadro como KRL não incluem passagem de mensagens, impulsionado pelas demandas de desenvolvedores, a maioria dos posteriores línguas quadro (por exemplo, tear, KEE) incluiu a capacidade de definir mensagens em quadros.

No lado do orientada a objectos, padrões também surgiram que fornecem essencialmente a funcionalidade equivalente que idiomas quadro fornecida, ainda que com um formato diferente e todos padronizado em bibliotecas de objectos. Por exemplo, o Object Management Group padronizou especificações para recursos como associar dados de teste e constrangimentos com objetos (análogos aos usos comuns para facetas em quadros e aos constrangimentos em línguas quadro, como Loom) e para a integração de motores de regras.

Veja também

Referências

Fontes

links externos