Tutorial GBBopen
110 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
110 pages
English
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

GBBopen TutorialVersion 1.5Dan CorkillThe GBBopen Projecthttp://GBBopen.orgMarch 21, 20114:14 EDTThistutorialisunderconstruction;additionalexerciseswillbeadded.Copyrightc 2005–2011 by Daniel D. Corkill for the GBBopen Project.This tutorial may be reproduced and distributed in whole or in part, subject to the followingconditions: The copyright notice above and this permission notice must be preserved complete on allcomplete or partial copies. Any translation or derivative work of this tutorial must be approved by the copyright holder inwriting before distribution. If you distribute this tutorial in part, instructions and a means for obtaining a complete versionof this tutorial must be included. Small portions may be reproduced as illustrations for reviews or quotes in other works withoutthis permission notice if proper citation is given. Distribution of this work or a derivative of this work in any standard (hard copy) book form isprohibited without prior written permission from the copyright holder.All source code examples in this work are placed under and covered by the GBBopen software licensethat accompanies each GBBopen distribution and is also available athttp://GBBopen.org/svn/GBBopen/trunk/LICENSE.This work is licensed and provided “as is” without warranty of any kind, express or implied,including, but not limited to, the implied warranties of merchantability and fitness for a particularpurpose or a warranty of non-infringement. ...

Informations

Publié par
Nombre de lectures 82
Langue English

Extrait

GBBopen Tutorial
Version 1.5
Dan Corkill
The GBBopen Project
http://GBBopen.org
March 21, 2011
4:14 EDT
Thistutorialisunderconstruction;
additionalexerciseswillbeadded.Copyrightc 2005–2011 by Daniel D. Corkill for the GBBopen Project.
This tutorial may be reproduced and distributed in whole or in part, subject to the following
conditions:
The copyright notice above and this permission notice must be preserved complete on all
complete or partial copies.
Any translation or derivative work of this tutorial must be approved by the copyright holder in
writing before distribution.
If you distribute this tutorial in part, instructions and a means for obtaining a complete version
of this tutorial must be included.
Small portions may be reproduced as illustrations for reviews or quotes in other works without
this permission notice if proper citation is given.
Distribution of this work or a derivative of this work in any standard (hard copy) book form is
prohibited without prior written permission from the copyright holder.
All source code examples in this work are placed under and covered by the GBBopen software license
that accompanies each GBBopen distribution and is also available at
http://GBBopen.org/svn/GBBopen/trunk/LICENSE.
This work is licensed and provided “as is” without warranty of any kind, express or implied,
including, but not limited to, the implied warranties of merchantability and fitness for a particular
purpose or a warranty of non-infringement. GBBopen software and the information in this tutorial
are subject to change without notice.
Please help improve this tutorial by reporting any errors, inaccuracies, bugs, misleading or confusing
statements, missing or unhelpful index entries, and typographical errors that you find. E-mail bug
reports, comments, and suggestions tobugs@GBBopen.org. Your help is greatly appreciated and will
be acknowledged.
GBBopen is a trademark of the GBBopen Project.
Any other brand or product names are trademarks or registered trademarks of their respective
holders.
The GBBopen Project
181 Pondview Drive
Amherst, Massachusetts 01002
GBBopen@GBBopen.org
http://GBBopen.org
A AThis tutorial was produced using LT X and PDFLT X.E E
iiContents
Acknowledgments iv
Introduction 1
1 Starting GBBopen 3
2 Creating a Unit Instance 15
3 a Space 19
4 Deleting Instances 25
5 Enhancing Your Development Environment 33
6 Working Within a File 37
7 Adding Dimensions 39
8 Using a Control Shell 47
9 Application Startup and Event Functions 55
10 Add Another KS 61
11 Making Connections 71
12 Creating a GBBopen Application 81
13 Multiple Walkers 97
14 A Dimensional Detour 99
15 More to come: : : 101
16 The Completed Application 103
Index 105
iiiAcknowledgments
Many people have contributed comments, suggestions, design ideas, questions (and answers), bug
reports, and code to GBBopen, and we appreciate their time and effort. Acknowledgment of some of
their contributions here does not necessarily imply that any individual or the organizations with
which they are affiliated endorse GBBopen or this documentation. Disclaimers aside, GBBopen users
thank each of you!
Douglas Crosher ported GBBopen to Scieneer CL. Gary King worked on the initial Digitool MCL and
OpenMCL porting efforts. Christian Lynbech performed the initial CMUCL port. Sam Steingold
initiated the CLISP port. Vladimir Tzankov provided Portable Threads support for CLISP/MT.
Questioners, bug reporters, capability demanders, contributors, and great idea suggesters include:
Pascal Costanza, Matthew Danish, Michael Hannemann, Susan Lander, Attila Lendvai, Wendall
Marvel, Clayton Morrison, Beryl Nelson, Eric O’Connor, Zack Rubinstein, Bill St. Clair, Earl Wagner,
Paul Werkowski, and Huzaifa Zafar.
Organizations Franz Inc. and LispWorks Ltd. provided (and continue to provide) Common Lisp
licenses and technical support to the Project.
Some early design work for GBBopen was supported by DARPA’s Information Exploitation Office
(IXO) under contract MDA-972-02-C-0028 to Information Extraction & Transport, Inc.
Other efforts using GBBopen that have indirectly led to contributed GBBopen improvements and
enhancements include: research supported by the “Fusion Based Knowledge for the Future Force”
ATO program and the “Advanced REsearch Solutions - Fused Intelligence with Speed and Trust”
program at the U.S. Army RDECOM CERDEC Intelligence and Information Warfare Directorate,
Fort Monmouth, NJ, under contract W15P7T-05-C-P621; research on “Command & Control and Data
Fusion Architectures” supported by DND Canada under contract W7701-4-2118; work on
“Knowledgable Dynamic-Process Modeling and Execution” supported by Boeing and Infosys
Technologies Limited; research on “A Multi-Agent Approach for Heterogeneous Persistent
Surveillance” supported by Raytheon Intelligence & Information Systems; work on “Massive-Scale
Representation and Reasoning” supported by GHX; and research supported by the AFRL “Advanced
Computing Architecture” program, under contract FA8750-05-1-0039.
Legacy Contributors GBBopen builds upon concepts and ideas that were explored and refined in
the UMass Generic Blackboard system and the commercial GBB product. The following people made
significant contributions to those systems:
UMass Generic GBB Product
Blackboard System Tony Carrico
Dan Corkill Dan Corkill
Kevin Gallagher Raymond de Lacaze
Philip Johnson Kevin Gallagher
Kelly Murray Susan Lander
Zack Rubinstein
Suzanne Tromara
The UMass Generic Blackboard Project received research support from The National Science
Foundation, the Defense Advanced Research Projects Agency, the Office of Naval Research, and Texas
Instruments, Inc.
The random-walk example used in this tutorial is adapted fromGettingStartedwithGBB, written by
Dan Corkill and Suzanne Tromara.
ivIntroduction
GBBopen is a high-performance, open source blackboard-system framework. This tutorial shows you
how to get started using GBBopen through a series of exercises that cover GBBopen’s concepts and
features in a step-by-step sequence. The exercises guide you in creating a simple “random walk”
application that simulates taking a sequence of straight-line excursions, each of random length and
direction. Although the application is simple, it involves many of GBBopen’s features, from very basic
to fairly advanced.
GBBopen and Common Lisp is an extension of Common Lisp and uses CLOS (the Common Lisp Object System) and the
Metaobject Protocol (MOP) to provide blackboard-specific object capabilities. The blending of
GBBopen with Common Lisp transfers all the advantages of a rich, dynamic, reflective, and
extensible programming language to blackboard-application developers. Thus, GBBopen’s
“programming language” includes all of Common Lisp in addition to the blackboard-system
extensions documented in theGBBopenReference manual.
This tutorial does not attempt to teach Common Lisp programming, and an understanding of basic
Common Lisp and CLOS concepts is assumed. Although it is possible to read through the tutorial
exercises without Common Lisp expertise, a much deeper understanding of GBBopen’s potential is
gained by understanding how GBBopen and Common Lisp work smoothly together. Two frequently
recommended Common Lisp books are Peter Seibel’sPracticalCommonLisp and Paul Graham’sOn
Lisp. Both books are available on line, as well in traditional book form. A less programmer-oriented
introduction to Common Lisp is David Touretzky’sCommonLisp: AGentleIntroductiontoSymbolic
Computation, also available on line.
Ken Pitman’sCommonLispHyperSpec, an easily navigable HTML document derived from the ANSI
Common Lisp standard, is the customary programmer’s reference for Common Lisp. A down-loadable
archive of the HyperSpec is also available, which is very convenient when working without a
continuous connection to the Internet. We will show how to make the HyperSpec and the GBBopen
Reference HyperDoc directly accessible in your Common Lisp development environment in Exercise 5.
Using a Common Lisp/GBBopen development environment
The tutorial exercises build on one another, and they are intended to be performed sequentially. The
initial exercise involves installing GBBopen and preparing it for use in your environment. This is
followed by several exercises where you interact with GBBopen by entering forms into the “Lisp
Listener” (also called the read-eval-print-loop or simply the REPL) that is provided by your Common
Lisp implementation. As the scope of the random-walk application grows, however, it is important to
set up a working environment where your work is done in a file. So, after these initial GBBopen
exercises, we will spend an exercise setting up your environment to provide you power-user
productivity for the remainder of the tutorial (and for future GBBopen activities). This diversion
exercise will be worth your time!
GBBopen 1.5 Tutorial
121 Starting GBBopen
This initial exercise requires that you:
Obtain and install Common Lisp
and install GBBopen
Subscribe to the mailing lists
Interact with Common Lisp’s read-eval-print loop (REPL)
Recover from errors
Prepare to use GBBopen in the next exercises by loading the:gbbopen-user module
Step 1: Obtain and install Common Lisp
GBBopen requ

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents