Release 2.0 is the first external open source release of the PIA. It is intended for developers working on the PIA internals. This is NOT a stable release: the system does work, but there are still bugs, broken links, and other anomalies. Release 2.1 will be the first stable release.
We suggest that people who wish to use the PIA to develop applications but are not interested in being on the cutting edge wait for 2.1, but we believe that there are unlikely to be any major changes between the current release (2.0.8) and Release 2.1.
Subscribe to PIA-announce@RiSource.org to be notified of new releases.
As a consequence of the changes listed below, there are some compatibility issues in this release:
case
attribute in order to be
case-insensitive.
/Doc/API/javadoc
has a
different organization.
It is expected that no further user-visible changes will be made between now and Release 2.1, which is expected by March 1. A few items may, time permitting, be added.
case
attribute in order to be
case-insensitive. Suitable false values are: ""
,
"0"
, "no"
, "false"
, and
"insensitive"
. Actually, any value starting with
"i"
will work.
<numeric add="add">
now take an op="operation"
attribute as a
preferred alternative. It is considered unlikely that the old form
will go away, however, because it's a better fit for embedding in
legacy HTML files. We debated calling the operation attribute of
<test> ``test
'', but in the end decided on
op
for consistency.
syntax
in <define>.
tsdoc.ts
and slides.ts
tagsets have been
defined as providing the default processing for files with
.ts
and .slides
extensions, respectively.
This means that tagset documentation can be viewed directly, and slide
previewing becomes simpler.
slides.ts
tagset has been debugged and updated. When
viewing slides through the PIA it is possible to pass a query string
with slide=starting-slide
and
n=number-of-slides
. Links are handled correctly,
and processing is surprisingly fast.
Ticker
sample application has been moved from
/Agents
to /Samples
.
As promised, this release includes a list of things that ought to be fixed
before Release 2.1; it can be found in
r2.1.to-do.html
.
As a consequence of the changes listed below, there are some compatibility issues in this release:
pia-xhtml
must be changed to refer to /Tagsets/pia-xhtml
-- otherwise the tagset won't be found. If you have a tagset called
pia-xhtml
in your PIA user directory (.pia
on
Linux) that extends the system one, you will get an "out of memory"
exception if you don't update its parent
attribute.
PIA/bin/pia
or PIA/bin/pia.bat
) you
should use the -home
option to pass the PIA's home
directory on the command line. You may also need to put
PIA/lib
into your CLASSPATH
.
process
command are
now in the PIA/lib/
directory.
Tagsets that are only used in the default configuration of the PIA
server, and that are expected to be customized for new applications,
are in PIA/Tagsets/
.
site
package now supports ``prefixes'' (for example ``file:
'',
``root:
'' and ``pia:
'') on pathnames.
<make>
elements that output a DTD. Note
that XHTML files are not complete XML documents. This is a
deliberate design choice: it means that any appropriate DTD can be
provided separately.
This release incorporates the changes that were foreshadowed in 2.0.6. If you have been developing agents, they will need to be fixed!
We expect to be moving very quickly toward a 2.1 release after this; if you know of any show-stoppers this would be a good time to mention them. The plan from here:
pia
server
engine and the dps
Document
Processing System) to three, adding the site
Site Resource
Package. You can get a summary and overview by reading:
~name
, this is the only directory
associated with the agent. Its data directory is simply a subdirectory
of its home directory.
/Agent
got you a home page
while /Agent/
(with a trailing slash) got you a generic
index is gone. The generic index is still around, but it has its own
name now. The trailing slash on directory names is back to being
optional, and just as with most servers you will save yourself a
redirection if you use it.
$HOME/.pia
directory and later move
them to PIA/Agents
.
Agents
directory is still around; it really ought
to be called ``Agents and Other Applications'', but the old name just
sounds better, and besides the line between agents and other
applications is pretty fuzzy. We could have renamed it
``Apps
'' but that would have broken many things.
$HOME/.pia
on a Unix system) is
no longer called ``/~/
'', but it's still around. It
contains a sort of ``shadow tree'' that parallels the PIA's main
directory tree rooted at PIA. Shadow directories and files are created
on demand; all writes take place in the user directory tree. This
provides an explicit mechanism that supports putting the PIA
distribution tree on a read-only medium such as a CD-ROM.
/~/History
; it was located in .pia/History
.
User-modified forms for the History agent were located, confusingly, in
.pia/Agents/Proxie/History
. Now, the History agent's data
directory is referred to as /~History/DATA
and is located
in .pia/Agents/Proxie/History/DATA
, where one would expect
to find it.
The following shell commands can be used to move your history on a Unix machine:
cd ~/.pia mkdir Agents/Proxie/History mv History Agents/Proxie/History/DATA
A more elaborate script can be found in
PIA/src/app/tools/move-history-data
in case you start
using the new PIA before realizing that your history data ought to have
been moved first.
_subsite.xcf
. This will
eventually be used to support WebDAV ``properties''and similar
things. Naturally, agents are already included in this
metadata.
Config/Site
directory.
&AGENT:;
construct
is still around, but refers to the agent's attribute list. Most things
that used to be entities in the agent's namespace are now files (still
capable of being referred to as entities) in the agent's home
directory.
The net effect is that the PIA's core engine has undergone a tectonic shift from being a collection of agents that somehow managed to function as a web server, to being a web server that does a pretty good job of playing host to a collection of agents. Removing the tight coupling between URL-space naming and agents has improved both the server and the agents.
Because of the extent of the changes in this release, many things are still broken. If you have been relying on a PIA application to get your other work done, please save a copy of your current working directory and put it someplace safe!
BugReport
, View
, and
Proxie/fileTools
. The non-Agent applications
Tutorial
and Demo
are working,
blissfully unaware of the changes that whirl around them.
Admin
, Proxie
, Proxie
's
sub-agents.
This release includes a slightly-revised language that is more readable and totally XML-compliant. In addition, several of the interfaces have been cleaned up, and extended to the point where the DPS can be dropped into any SAX or DOM application as a document-processing extension.
A significant upheaval in the way URL's are mapped onto files, and a total rethinking of the role of agents, is in progress. Preliminary notes and code exist (see item 1 below) but have not yet been integrated with the PIA as a whole.
org.risource.site
package.
Tutorial
agent.
org.risource.dps.Output
interface
that don't start with a DOM node (one is constructed if necessary).
This makes it easy to drive an Output from, e.g., a SAX driver.
org.risource.dps.output.ToProcessor
class, an
Output that drives a Processor. This makes it easy to drive the DPS
from any event-driven parser, e.g. SAX, by writing a trivial adapter
class.
This release includes the ability to save and restore Agent state in XML files. At this point it is probably stable enough for someone willing to put up with the still-sketchy documentation to start building an application.
Admin/START-UP.html
, have been
eliminated. If you have a customized START-UP.html
file,
however, it will run as usual. Browse to your new or customized
agents' options
pages, and use the Save Options
form to write the XML data into files called AGENT.xml
in
the appropriate user directories. Then use the Save agent file
list button on either /Admin/control
or /Admin/load-agent to add the agent
to the list of known agents.
At some point there will be an option to save the file
list automatically when appropriate.
.tso
files) have been dropped for the same reason.
options
form has been significantly enhanced, as has
the /Admin/configure form. A new form,
/Admin/control, has been added to perform
immediate configuration changes.
BufferedReader
for input. Combined with XML agent
loading and the ``stripped'' version of basic.ts
(which is
now built by default, and gives an additional factor of two), this
makes initialization significantly faster.
your
PIA's home page) instead of to www.RiSource.org as it used to be.
Explicit links to www.RiSource.org are
now provided in the heading and footer. Entities are used to ensure
consistent use of fonts and colors for the logo.
This release marks some major improvements in DOM compatibility, plus a number of bug fixes.
org.risource.dps
is now fully compliant to the interfaces
(though not yet all of the behavior) of the current version of the W3C's Document Object Model, as specified
in REC-DOM-Level-1-19981001.
This is the second patch to Release 2.0; things are beginning to stabilize.
Changes since 2.0.2:
process -n
command can be used to bring random files into
compliance; this has been done with all .xh
and
.ts
files in the PIA.
This is the first patch to the first external open source release of the PIA. It is still intended primarily for developers. Several directories have been moved, and a few obsolete ones have been removed. This trend can be expected to continue for a while.
Major changes since 2.0.1A:
src/java/crc
is now
src/java/org/risource
. The RegEx package and the subset
of the Jigsaw classes that we are actually using have been brought up
to date and moved to their proper places in the package hierarchy.
$
Id:...$
due to an ill-advised ``export''. They're back.
.xh
files are passed through the document processor
unmodified, so they refer to the DTD of the output, not of the
input file. This will change so that the document types are properly
set by the processor (.xh
files will have XML DTD's
corresponding to the "tagsets" that they use. Output files will have
their document types set appropriately -- usually HTML.) Also, we
recommend that any .xh
files you create adhere to the XML
spec (quoted attribute values, include all end tags, etc.) Even though
our processor will accept a wider range of (SGML) document syntax,
using well formed XML will make it easier for you to process your
.xh
files with other tools should you choose to do so. We
are in the process of converting all of our examples to strictly
conform to the spec.
Agents/Logo
and
Doc/Graphics
have been removed.
Config/pia.props
now start with
pia.
instead of crc.pia.
.
org.risource.Version
has been added to
contain version-number constants. Running pia -version
prints out the version string.
This is the first external open source release of the PIA. It is intended for developers working on the PIA internals. This is NOT a stable release -- the system does work, but many links are broken due to code changes made in preparing for the external release. Release 2.1 will be the first stable release. We suggest that persons who wish to use the PIA to develop applications but are not interested in debugging/programming the core engine wait for 2.1. Subscribe to PIA-announce@RiSource.org to be notified of new releases.
We recommend starting by installing and running your own copy of the PIA. (See the Installation manual for instructions.) Once the agency is running, you can view further documentation and try customizing the demonstration agents.
The Document Processing System is a completely new rewrite of the PIA's extension language for active HTML and XML documents. The parser can handle both HTML and XML, and the internal data structures are compliant with the World Wide Web Consortium's Document Object Model standard.
Details can be found in the Internals Manual, and of course in the source code.
The extension programming language used to write active documents (Interforms) has been almost completely revised, and considerably simplified. Details can be found in the Pia Tagsets Manual..
You will notice that are classes/package names are prefixed with crc. This stands for California Research Center. We are considering changing the prefix to org.risource.
In preparing the code for external release, several obsolete packages were removed. Some of these packages are referenced in the test code and may lead to error messages when doing a full make. You can safely ignore these messages.
Small pieces of a few external packages are used in places by the PIA software (Jigsaw,Jcrypt, regexp). Thanks to Anselm, John Dumans, Shugo Maeda, and the others who have contributed their software to the community. These are provided as libraries in PIA/lib/java. The source for the regexp package can be retrieved from ftp://ftp.risource.org/pub/regex-0_11.tgz
The current version of the DOM that we use is not the latest (we are hoping to upgrade soon.) The interface classes provided by the W3C for the version we are using is PIA/src/java/w3c. The latest version (which is incompatible with our current implementation) is available from the W3C.
The latest information regarding PIA technology can be found PIA web site: http//www.RiSource.org/PIA All feedback is greatly appreciated.
Thanks for your support,
The PIA Group (Greg, Steve, Marko, Pam)