GCA
GCA Attend a GCA Conference

TECHNICAL TRACK
THURSDAY, MARCH 2


8:30 am
Morning Keynote

Dave Winer, UserLand.com

Dave Winer, 42, is president of UserLand Software, a web tools developer based in Palo Alto, CA. UserLand makes Frontier, a powerful scripting and database environment for the Mac OS and Windows. In late 1994, Winer started DaveNet, a popular commentary channel, distributed via electronic mail and thru the worldwide web. A software industry veteran, Winer also produced award-winning commercial software hits at Living Videotext, including ThinkTank, Ready and MORE. Living Videotext merged with Symantec in 1987. In 1997 he was chosen as a Seybold Fellow for his pioneering work in web-based publishing systems.

Session #9: Client Software

9:00 am
Creating XML: the forthcoming XMetaL 2.0

Lauren Wood, Director of Product Technology, SoftQuad Software Inc.
lauren@softquad.com

Biography:
Lauren Wood is Director of Product Technology at SoftQuad Software Inc. She is a co-designer of SoftQuad Software's HTML and XML authoring tools, as well as taking part in various technical committees. She chairs the W3C Document Object Model Working Group and is on the Steering Committee for XML.org.
Abstract:
This is a preview of the forthcoming version of SoftQuad Software's award-winning XML editor, XMetaL. XMetaL 2.0 contains significant new features which will be of interest to anyone who needs to create, check, or edit XML content.


9:30 am
SVG Technical Overview
(presentation coming soon)
Michael Bierman, Advanced Technology Group, Adobe
mbierman@adobe.com

Abstract:
Scalable Vector Graphic (SVG) is the emerging W3C language for expressing rich 2D graphics in XML. W3C member organizations defining SVG include Adobe, Apple, Autodesk, BitFlash, Corel, Hewlett-Packard, IBM, ILOG, INSO, Macromedia, Microsoft, Netscape, Oasis, OpenText, Opera, RAL/CCLRC, Quark, Sun Microsystems, Visio and Xerox. SVG has been designed to be compatible with and leverage other W3C technologies (e.g., XML, HTML/XHTML, CSS, XSL, DOM, SMIL-Animation) and techologies defined by other organizations (e.g., Java, ECMAScript). SVG content can be expressed either as stand-alone XML documents or embedded inline within other XML documents such as XHTML.
This talk will provide a technical overview of the features and capabilities of SVG and will show how it integrates with and leverages other web technologies. Topics will include SVG's rich graphics features set, including filter effects, along with a description of its features that support interactivity and animation. Demonstrations will showcase various implementations of SVG and will provide a hint of how SVG will change the landscape of the future of the web.



10:00 am
The Object Content Explorer (OCE): An XML based tool for Component Based Software Development Teams

Erik Ostermueller, Senior Developer/Analyst, Alltel Information Services
erik.ostermueller@alltel.com

Biography:
Erik Ostermueller is a senior developer/analyst for Alltel Information Services in Little Rock, Arkansas. He has seven years experience in the computer industry. Born in St. Louis, Missouri, Erik Ostermueller received his bachelors degree in Computer Science from the University of Kansas, Lawrence, in 1991. Immediately out of school, Erik provided computer consulting for ABC News in Moscow, Russia. After several months abroad, Erik settled down in Little Rock, AR. with a job in the retail industry.
He designed, developed and supported NT and DOS mission critical retail systems for approximately 35,000 users. Hard work schedules and a six-month old boy convinced Erik to leave the retail environment for a now-defunct start-up company. There, he wrote healthcare software for prisons (go figure) in Visual Basic.
Currently, Erik is a lead developer on a Java/XML real-time banking system and has participated in the DNAfs Working Group. Erik relies on his young family to continually remind him that death marches are a bad thing.
Abstract:
Consider the vast number of software tools available on the market today that graphically present and communicate the makeup of a given set of software components. There are UML tools, object browsers/repositories, programmer's text editors, debuggers and standard documentation resources. None of these tools, however, allow you to graphically drill down into an object and actually invoke all the methods and assign data to all the attributes of the components.
The Object Content Explorer (OCE) is a graphical, XML based tool that allows you to do precisely that. Such a tool be provide invaluable to a team developing component based software, especially components without a graphical user interface (GUI).
Here are a few things that the OCE can do for a development team:
* Help the Quality Assurance team to
- Enlist non-technical staff in building test cases
- Determine whether a programmer new to the system (the customer) can easily understand the components
* Provide Sales and Marketing personnel with a tool to
- Successfully present a complex product
- Provide live, meaningful demonstrations of the product
* Help a training staff to integrate the components' documentation with program operation and error messages.
* Facilitate re-use of components. The ability to easily view and 'test drive' a component will bring to life a component repository.
What is the OCE?
The OCE is a graphical tool. It can be used to invoke methods and assign data to attributes of components that do have a GUI.
Elements of the User Interface
+ Universe of Components and Structures
We should be able to instantiate any component or use any XML structure in the system. This 'universe' will provide us with a unique list of all possible components and structures. Some builds of the OCE may include just a subset of this universe.
+ Stack
This will be a list of all components that are currently instantiated at a given point in time. When the program starts, no components (or perhaps only a few architecture components) will be instantiated. We should be able to freely add to and delete from this list. To add to the list, we should pick a component or structure type from the 'universe' described above. The OCE will then instantiate the entity.
+ Component TreeView
There should be one tree for each element listed in the stack. Each tree should be presented in its own window (probably an MDI/InternalFrame child window). The tree should do the following things:
- Present a hierarchical view of the component's structure, including all attributes and methods.
- Allow us to set the attributes of the components and for parameters of the method signatures. The GUI should display the current values of the attributes.
- Allow us to save the status of the current attribute values to a file. We should also be able to select any child node on a tree, and save all 'downstream' attributes to a file. The file system extension for that file should be the name of the component type (from the universe list) for the selected child node.
- Provide 'drill down' functionality by collapsing and displaying different parts of the tree.
- Allow us to invoke any method of the object using the attribute values currently set.
- Represent the parameter signature for all methods as a 'minitree.' This mini-tree should be a child of the method.
- Ensure that the mini-trees that represent values for parameters on a method signature behave just like any other child node. For instance, we must be able to save the values of a mini tree to a file. The extension of this file should be something like ComponentType-MethodName. We must be able to set and reset the values of the parameters.
This portion of the tool could leverage the following XML-component based work:
- XMOP and SODL (http://jabr.ne.mediaone.net/documents/sodl10.dtd)
- MBXML (Marshall By XML) (http://www.develop.com/dbox/msj/0397.htm)
+ Log
The log should provide a list of all operations that take place. Which operations?
Component Instantiations
Component Deletions
Method Invocations
Append Operations (discussed later)
Optionally, the log should specify the file name of the attributes/values used for a given method invocation.
Perhaps we could have a parameter that specified the dialect that the OCE uses to write the log. The dialect could be any one of these:
Perl, C++, Java, VBScript, PowerBuilder, Delphi, Ada, etc.
Perhaps the log would provide the code for a program that used the components. Certainly some important tasks will be tough for the OCE:
How do we iterate through a list of items? How do we branch on a conditional statement? Perhaps these items will have to be hand coded, perhaps not.
+Status
The status portion of the GUI will provide feedback from all method invocations. Specifically, this feedback will include the return codes (and corresponding descriptions). Perhaps the OCE could weave the Log facility and the Status facility together into one control.
+Documentation

Unfortunately, it is not likely that someone unfamiliar with the System will be able to use the OCE without some documentation. The OCE should provide context-sensitive help. If method foo() of class X is currently selected, then F1 (or some other key) should display help for X::foo(). Documentation should also provide some pseudo-code that shows how to use a given component.


Session #10: Information Management


11:00 am
Using XML to send Compressed data objects across networks

Alagappan Meyyappan, Engineer, Siemens

meyy6@hotmail.com

Jaganathan Jeyapaul, Engineer, Electron Economy


Biographies:
Alagappan Meyyappan works as a Software Architect with Siemens (ICP) for designing internet based management softwares. Has provided Software Consulting for Cisco Systems , Bank of Nova Scotia, Fujitsu in developing varieties of Network Management System products. Has a M.S in Information technology from University of Birmingham, United Kingdom and B.Eng. in Electrical Engineering from Regional Engineering College at Tiruchirappalli, India.
Jaganathan Jeyapaul works as a Software consultant and has provided consulting work for leading clients like Oracle Corporation, Fujitsu and etc in developing B2B and E-Commerce Projects. Has a M.S. in Aerospace Engineering from Indian Institute of Science, Bangalore, India and B.Eng from Madras Institute of Technology, Chennai, India
Abstract:
The entire process starts by collecting all the similar objects, which have the same attributes but different values, and compressing them using delta compression technique. Then using a simple algorithm an XML document is formed for this compressed object packet for sending it across the network. The XML document is downloaded at the other end and a corresponding reverse algorithm is used to uncompress and retrieve these objects back.
This implementation will provide with a mechanism to send compressed objects in a standardized manner so that all entities in the network understands it.
The further part of this presentation will include the following
1. How to collect the similar object and compress them using the simple delta compression
2. An Algorithm to produce the XML document for these compressed objects
3. An Algorithm to recover the objects form the XML document


11:30 am
An XML-Based Approach to the Control of XML Document Indexing

Jacek Ambroziak, Staff Engineer, XML Techology Center, Sun Microsystems, Inc.

jacek.ambroziak@east.sun.com

Biography:

Jacek Ambroziak joined Sun Microsystems' XML Technology Center in 1999, where he's been applying his extensive background in natural language technologies, Java, Jini, and XML to the problems of XML document search and retrieval. Jacek has been with Sun Microsystems since 1992, when he became a Research Scientist in the Knowledge Technology Group of Sun Laboratories. While in this position, Jacek worked on an approach to text search called "conceptual indexing," which combines techniques from knowledge representation and natural language processing to enable a computer to systematically organize relationships among concepts. Jacek architected and implemented modular semantic lexicons, co-developed a modular text processing pipeline, and built a highly efficient conceptual database and search engine. Subsequent to this work he designed and implemented in Java a full-text search engine that became part of Sun's JavaHelp facility. Jacek received his Ph.D. in Computer Sciences in 1990 from the Polish Academy of Sciences in Warsaw. He worked as a Research Associate in the Academy's Institute of Fundamental Technological Research and, before joining Sun, was a Visting Scientist in the College of Engineering at Cornell University. Jacek's recent publications include a 1998 SunLabs Report with William Woods on "Natural Language Technology in Precision Content Retrieval" and a presentation on "Conceptually Assisted Web Browsing" given at the WWW6 Conference in 1997.

1:30 pm
Afternoon Keynote: Taxi to the Future

Tim Bray, Textuality, conference co-chair


Tim Bray works in the areas of system design, performance optimization, programming, lecturing, writing, and editing. He has experience in the workings of software, the Internet, documents, management, and financing. Tim serves as a member of the World Wide Web Consortium's XML Working Group and has co-edited the XML 1.0 and XML Hyperlinking specifications through their first several drafts. He has served as editor of The Gilbane Report, Technical Editor of XML.com, and is a Seybold Fellow.


Session #11: XML and Windows


2:00 pm

XML at Microsoft: Today and Tomorrow
David Turner, XML Product Manager, Microsoft Corporation
dturner@microsoft.com

Abstract:
This presentation will be a broad review of Microsoft's current and planned support for XML in its operating systems, development tools and products.


2:30 pm
Designing XML based applications for Windows

Frank Boumphrey, VP. HTML Writers guild
frank@hwg.org

Biography:
Frank Boumphrey has spoken extensively on XML, VB and ASP. He teaches classes on these subjects for the HTML Writers Guild. He is the author and co-author of several books on XML, including Style sheets for HTML and XML, XML applications, Beginning XHTML (Nov) and XML Unleashed (Dec). He is co-editor of the latest XHTML spec. and is working on the new XML forms working group for W3C.
Abstract:
In spite of the Universality of Java, VB remains the most common programming language in commercial enterprises. Not only is there a large base of programmers trained in VB, but also VB is certainly the language that is in widest use for fronting Data engines.
This paper discusses the use of Visual Basic as a front to XML data stores; discusses the pros and cons of using XML (v. RADBMS) as a Data store; and looks at the pros and con's of using the MSXML COM object as a tool for accessing and manipulating XML data.
Points are illustrated by a VB application that uses the MSXML COM object as a front for a set of medical records.
Preamble
As a language Java spearheaded the development of XML applications. However as XML moves from being a 'fringe' document markup language to being a 'mainstream' language for the development of enterprise applications, it is inevitable that 'enterprise' programmers will seek to employ XML with the tools that they are already familiar with. This tool in many instances is the VB programming language. The MSXML.DLL allows VB, VC++, FoxPro programmers to easily develop XML applications.
RAD applications VB basic
Visual Basic first became popular as a 'Rapid Application Development' tool. Less than a few years back once the 'proof of concept' of an application was established by VB it was usual to migrate the application to a 'real' programming language such as C++. With each issue of VB this has become less true, and now VB is a powerful language in it's own right. It is usual nowadays for applications that are developed in VB to be compiled directly from the VBX files. When benchmarked applications that have been compiled directly from VB are in most cases as fast and as miserly of resources as those compiled as C.
Using MSXML
The Microsoft XMLDOM ActiveX Object is made available in the MSXML.DLL. This is easily incorporated into VB or VC++ applications using either early or late binding techniques. MSXML is 99% compliant with both the XML 1.0 recommendation and the W3C level 1 DOM. It's '1%' short-comings are discussed in some detail in this paper.
Early v. late bindings of the MSXML COM object
In a Windows application the MSXML object can be bound to the application with either a 'late' binding or an 'early' binding. the pros and cons of each are discussed. (bottom line: it doesn't really matter!)
XML v. RADBMS
Databases have several disadvantages for the storage of complex hierarchical data. Most of these are well known to an audience conversant with XML. XML is ideal for the storage of complex, chunky, hierarchically driven data. Such a situation arises in the routine recording of medical records.
There are numerous other situations where a database driven system is inadequate to describe the data adequately (legal and scientific records are two such examples). The situations when a RADBMS and when an XML based system should be used are examined in some detail.
Example: Using MSXML as a front for a medical record application.
The mechanics of creating an instance of an MSXML object are presented, as well as the specifics of using the 'Microsoft.XMLDOM' object to search and manage a medical record marked up in XML are examined. The MSXML object is C++ based, fast an accurate.
Summary
The MSXML DLL gives Windows programmers the opportunity to incorporate the full power of XML into Windows applications. The rational and methodology for doing this is discussed in this paper.


3:00 pm
MSXML2: Technology Preview

Charlie Heinemann, Program Manager, Microsoft
chein@microsoft.com

Abstract:
This session will be a detailed, technical presentation of the new features in the recently released technology preview of the Microsoft XML parser. The presentation will highlight the parser's updated support for XSLT and XPath as well as other new features that will enhance server side processing. These include:
* Advanced XSLT and XPath features:
* Passing parameters to stylesheets
* Passing objects to stylesheets
* Caching stylesheets
* Querying the DOM using XPath
* Setting the Mode at run-time
* XPath caching
* Schema caching and the ability to validate data against an in-memory schema


Session #12: Distributed XML


4:00 pm
Xbean Distributed Applications

Bruce Martin, Software Guru, jGuru.com (formerly known as MageLang Institute)
martin@jguru.com

Biography:
Bruce is one of the pioneers of distributed object computing. At Hewlett Packard Laboratories in the early 90s, he designed and implemented an interface definition language that became the basis for HP's original CORBA submission. At Sun Microsystems, he was one of Sun's CORBA architects and was the primary author of five of the OMG's CORBA Services specifications. At Inprise Corporation, Bruce was an architect and developer of Inprise's first CORBA-based Java Application Server. Bruce has extensive practical experience with Java, XML and the DOM. Bruce is now a software guru at MageLang Institute. He is championing xbeans.org, an open-source project to create a repository of Java Beans that process XML and can be easily composed into distributed applications. Bruce has an excellent ability to convey both the conceptual basis of a technology and the practical nuts and bolts use of it. He has given talks around the world on distributed systems, advanced transaction models, object oriented programming, and distributed object technologies at both academic conferences and industrial events. Bruce has written many papers for conferences, journals, and books. He received Ph.D. and Masters degrees in Computer Science from the University of California at San Diego, and a Bachelors degree in Computer Science from the University of California at Berkeley.
Abstract:
An Xbean is a software component that takes XML as input, processes it in some fashion and then passes XML on to the next Xbean. Xbeans are Java Beans.
Java Bean technology supports the packaging, reuse, connection and customization of Java code. With the appropriate set of Xbeans and a Java Bean design tool, it is possible to build useful distributed applications with little or no programming.
In this talk, I will illustrate how Xbeans can be easily composed into distributed applications, including data exchange, business to business, work flow and web channel applications. I will provide performance results for communicating XML across process boundaries in Java. The results compare time and space performance of textual XML to Java serialization of the DOM. I will describe Xbeans.org, an open-source project to build a freely available repository of Xbeans.


4:30 pm
XML/RDF as a solution for interoperability in Agent Systems

Gerard Maas, Research Engineer at the Corporate Research Center of Alcatel Bell

gerard.maas@alcatel.be

Biography:
Gerard Maas received a Master Degree in Computer Engineering with Mention of Honour from his thesis work at the Universidad SimÛn Bolivar (USB) in May 1997. August in the same year he joined the services group at the Custormer Services Department of Alcatel Bell (Belgium) as intra/inter-net application developer and web designer. Early in 1999 he joins the on-line services group at the Alcatel Research Center. His current activities mainly relate to the development of Java prototypes in the investigation of new Internet technologies.
Abstract:
The evolution of the Internet is bringing together a mixture of different terminal types, users and their preferences and a heterogeneous network made of otherwise isolated islands of particular systems. Those systems can communicate in a very rudimentary way but the lack of semantics and universal solutions is a major issue.
In this context, software agents promise to bring seamless interoperability among those systems in the form of local interaction or remote communication.
The lack of data semantics restrains the development of agent based solutions, given the low capacity of the software to understand the meaning of the data they encounter in several forms (documents, direct interactions, communications) with other entities. XML is a major player in this field, structuring the data to a level where it is still human readable as well as machine understandable. Alongside XML, the Resource Description Framework (RDF) defines a mechanism for modelling resources. By using RDF Schema a meta-model of the RDF data model can be defined.
In a software agent context, we can identify critical points where understanding of data is the path for success:
* In the agent: The data forms a knowledge base, providing the agent with information. It has to be able to adapt to the complexity level that the agent requires. Next to this, it must still be manageable, adaptable to the sort of information collected and transportable (in the case of mobile agents).
* Between agents: Communication. The data takes the form of a message to correspond to the communication needs of the agents. Agents typically pursue a goal and the socialization with other agents could be crucial in this task. The definition of ontologies and standardized languages play a major role here.
* Between agents and their environment: To interact with available resources, users and services the agents must have means to recognize and use available interfaces in a regular way.
The use of XML/RDF in software agents addresses all these situations.
Knowledge representation within an agent is possible using a RDF model implementation. The application at the high level communication is direct: messaging between entities in (agents, applications, platforms) x (agents, applications, platforms) is performed using RDF descriptions. Given the object oriented flavor of RDF Schemas, we see object serialization in XML/RDF as a direct application of the paradigm. We could even think further, in a context of mobile agents where the representation of the underlying behavior is encoded in RDF and provided to another system where a functionally equivalent software piece will re-take the already started task in the new environment. In the rest of the document, we will focus on XML/RDF as a data model for knowledge representation and agent communication.
Here at Alcatel we have developed 3AP: Advanced Alcatel Agent Platform. An agent platform based on Java(TM)2 technology and compliant with FIPA97[1] and MASIF[2] . It is able to host communicative and mobile agents. On top of 3AP, we have implemented a security negotiation service, which allows mobile agents wanting to migrate to another host, to request first a grant for a set of security-sensible task to avoid undesirable or potentially dangerous hoops. This request is prepared locally and sent to the addressed host, where a qualified agent will query the platform in order to determine the acceptance or denial of the request.
In the side of the communication, the permissions required by the agent wanting to migrate are encoded in RDF. These permissions can be implemented in several ways by each host, while the encoding in RDF keeps the semantics of the message, ruled by the underlying schema.
The task at platform level is to provide an interpretation of the RDF message, making local objects from the RDF description and working with them to determine an answer. Back at the originating agent, it receives the RDF answer and links it back with its knowledge base, being now able to decide whether to go or not.
RDF gives us more than a simple message encoding. The agent's internal RDF representation gives it the ability to incorporate a portable knowledge, allowing mobile agents (which are typically lightweight) to carry a bunch of meaningful and manageable information that can grow during the course of its life, as needed.
In the course of our study we have seen the seamless integration of XML/RDF with agent technology, bringing added value for the effort invested in the implementation of the bridges to/from the RDF model.
We achieve a higher level of interaction at the communication stage at the same time that the agent is able to incorporate filtered pieces of this exchanged information into its knowledge.
Together with RDF data, the RDF schema brings a powerful model to build up a common ontology necessary in the creation and standardization of agent languages. The object- oriented approach of the RDF Schemas makes them the bond of the programmatic agent world with the more data driven Web of today's Internet. We envisage that together with Java technology, agents could bring a new level of distributed inter-working into the now much reactive world of the Internet.


5:00 pm
The PIA, a platform for XML-based Web Applications

Stephen Savitzky, Chief Software Scientist, Ricoh Silicon Valley, Inc. Calif. Research Center
steve@rsv.ricoh.com

Biography:
Stephen Savitzky is Chief Software Scientist at Ricoh Silicon Valley in Menlo Park, CA. He has been working in the computer field for over thirty years; his current work involves the PIA, an open-source, XML-based platform for web applications. Previous projects include two C++ application frameworks, a real-time kernel for the Zilog Z8000, and several assemblers and linkers. Some of his web pages (Interesting Places for Kids; Notes, Advice and Warnings for Kids on the Web) were among the earliest such sites on the Web; Interesting Places for Kids was listed in the April 11, 1995 issue of PC Magazine as part of A Guided Tour of 100 Hot Sites. He has an MS degree in computer science from Stanford (1971).
Abstract:
This paper describes a design and development style well-suited to creating customizable Web applications using server-side processing of XML documents. The fundamental assumption underlying this style is that "Web application maintenance is mostly a matter of document management and should not require specialized programming skills or tools." The examples and technical details given will focus on our particular platform, the PIA, but the general principles apply generally to other web application platforms.
The "Platform for Information Applications" (PIA) is an open-source, XML-based system in which both documents (information) and application behavior (processing) are combined in XML "active documents." This approach is particularly appropriate for applications deployed by smaller organizations without significant IT support; applications are easily customized and extended without the need for programming.
PIA-based Web applications consist primarily of XML documents written using a set of domain specific tags; our parser also supports legacy HTML documents extended with custom XML tags. The PIA server engine serves pages in response to client requests by dynamically processing these documents in accordance with developer-defined semantics. This processing may include simple tag substitution, page transformation, database lookup and insertions, or any other functions appropriate to the application domain. In essence, the tags provide a specialized vocabulary available to use in customizing the application.
The PIA's processing is all done on the server side; the client sees only standard HTML, or XML in standard DTD's. The document-processing engine implements a Turing-complete language with pure XML syntax and LISP-like semantics. Processing requires only a single pass through the input document, and never builds a complete parse tree; a subset of the DOM is used for intermediate storage where required. Tag definitions, including the binding of primitive operations to tags, come from an XML ``tagset'' document separate from the document being processed; the result is a blended system with aspects of both style sheets and embedded languages. In addition, explicitly binding operations to tags provides an extremely flexible security model, with different documents getting different levels of trust.
In the PIA, semantics for the small set of primitive operations are defined in Java, along with the web server and an off-line command-line processor. Unusual aspects of the web engine include event-driven ``agents'' implemented in XML, and an XML configuration-file language.
A C version of the document-processing engine is in progress, and will eventually be available as an Apache module.
This approach promises platform independent, easily customizable Web applications. XML support in the form of editors and other tools already exists on essentially all platforms and continues to grow.
Specifying the processing in XML not only makes the logic more accessible to non-programmers but restricts the dependence on a particular computing environment to the implementation of a few tags.

Open standards are used throughout the PIA: it supports both SAX and DOM interfaces for XML applications, and the Servlet interface on the web server side. WebDAV support is planned, as is support for XML namespaces. The entire system is available as open source from http://RiSource.org/PIA.



MANAGEMENT TRACK --

TECHNICAL TRACK (Feb 29, March 1)


Attend a GCA ConferenceBecome a GCA MemberBuy a GCA Publication
Today's News Digest
What is XML?What is SGML?ICEGCA's Mail.dat
Technical CommitteesTechnical ResourcesTargeted InitiativesGCA's GRACol
What is GCA?GCA Press ReleasesGCA MembersGCA's ICCContact GCA
GCA - Phone: +1 703-519-8160   Click Here For Legal And Technical Information
Click Here For Legal And Technical Information email: info@gca.org