As of:  Fri 2017-11-24 18:50:11 UTC  [=1511549411. 13:50:11-05:00]

>> heuristic.pl  L: 13,939. A: 100644. M: 2009-01-17 19:57:11 UTC [=1232222231] -3232.95d >> 

$version = "17 January 2009 (v06.07)";
$docver = "??";
$revyr = $revmo = $revda = ??;
$PRE = "pre";
$ENDPRE = "/pre";
$PURPLE = "<span style=\"color:purple\">";
$ENDPURPLE = "</span>";

if (@ARGV > 0 && ($ARGV[0] eq "br" || $ARGV[0] eq "BR")) {
    $PRE = $ENDPRE = "br";
    print "!!! Substituting <br> for <pre> for HTML validation\n";
}

@month = ("January", "February", "March", "April", "May", "June", "July",
          "August", "September", "October", "November", "December");

$indtd = 1;
if (!open(IN, "heuristic.sgm")) {
    print "Open failed for input heuristic.sgm file\n";
    exit(16);
}
if (!open(OUT, ">WhatIsSGML.html")) {
    print "Open failed for output WhatIsSGML.html file\n";
    exit(16);
}
 
print OUT<<"END";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>SGML document introducing you to SGML</title>
<meta name="description" content="Introductory overview of SGML (Standard Generalized Markup Language)">
<meta name="keywords" content="SGML, hypertext">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#D3D3D3">
<table cellspacing=0 cellpadding=0 border=0>
<tr><td colspan=2><a name="Top"><img src="sp.gif" height=2 width=2 border=0 alt="[ ]" vspace=1></a></td></tr>
<tr><td valign=top><big><big><big><b><a href="sgmlnote.html"><img src="gif/sgml.gif" height=32 width=32 hspace=2 align=bottom alt="[ Learn about SGML! ]" border=0></a>&nbsp;</b></big></big></big></td>
<td><font color="navy"><big><big><big><b>SGML document introducing you to SGML</b></big></big></big></font></td></tr>
</table>
<p><big><big>P</big>lease scroll down to read the "<a href="#DI"><i>Document Instance</i></a>"
section of this page, first.</big>
<p><big><big>T</big>o see what the document instance looks like when passed through a simple reformatting
process, which translates the marked up SGML text into a normal web page,
<a href="heuristic.html"><i>click here</i></a>.</big>
<p><big><big>T</big>o read another brief essay introducing the idea of SGML and why it is
important: <i>...*Darwin Among the Machines* (Susanne Langer and SGML)</i>,
<i><a href="sgmlnote.html">click here</a></i>.</big>
<p><big><big>I</big>n addition to the billions of HTML pages on the World Wide Web, there are also some
native SGML pages on the web (e.g., American Civil War period literary archives at The 
University of North Carolina).
--Up until about August, 1998, <a href="http://www.softquad.com/">SoftQuad Corporation</a> used to
freely distribute trial versions of a Netscape SGML viewer plugin, which enabled anyone
to view native SGML Internet pages in a Netscape web browser (read the historic document
in which <a href="panorama-1.html">Yuri Rubinsky announced this software</a>!).</big>
<p><big><a href="http://www.amazon.com/exec/obidos/ASIN/0135199840/qid%3D939586713/002-4900200-0131409"><img src="gif/SGML_on_the_WEB.gif"
height=140 width=106 hspace=6 vspace=2 alt="[ Check SGML on the WEB book at Amazon.com! ]" align=right border=1></a><big>T</big>hen SoftQuad sold its
SGML product line to <a href="http://www.interleaf.com/">Interleaf</a>, and I don't know if there
is now any way to get free software to view native SGML Internet pages.  If you can find a
copy of Yuri Rubinsky and Murray Maloney's book: 
<b><a href="http://www.oasis-open.org/cover/rubinskyWebPREF.html">SGML on the WEB: Small steps beyond HTML</a></b>
(Prentice Hall, 1997), it includes a compact disk (CD) with <b>Panorama Pro 2.0</b> software
which not only displays existing SGML pages, but enables you to create and format your own.  This
software is worth far more than the price of the book, but the book seems at
present (October, 1999) to be out of print. The actual content of the book: how to build SGML pages
for web publication, is also very important, but, unfortunately, it describes
a great vision of a future for The Internet, which now never will happen. (For a little more information about SoftQuad's
divestiture of its SGML products, <a href="sq-bh.html"><i>click here</i></a>)</big>
<p><big><big>F</big>or various reasons, SGML seems to have become (what one the SGML community's own newsletters
has called:) "a dead language, like Latin".  But SGML has been reborn as <b>XML</b>
(e<b>X</b>tended <b>M</b>arkup <b>L</b>anguage), with an enthusiasm in the computer industry
that SGML itself never achieved.
To read some thoughts about <b>XML</b>, including a polemic <i>against</i> <b>XML</b>, 
and <i>second thoughts</i> I had after attending the <b>GCA XML 98</b> conference
(14-20 Nov 98, Chicago), <a href="gkwtags.html"><i>click here</i></a>.
(To examine some XML pages I have developed, and which can be viewed
with Microsoft Internet Explorer 5 or newer, <i><a href="xmlxslt.xml">click here</a></i>.)</big>
<p><big><big>B</big>est wishes! Thank you.</big>
<hr>
<h2><a name="DTD"><font color="navy">Document Type Definition (DTD)</font></a></h2>
<${PRE}>$PURPLE
END

while ($line = <IN>) {
    if ($line =~ /<\!\-\- document instance \-\->/) {
        print OUT<<"END";
${ENDPURPLE}<${ENDPRE}>
<h2><a name="DI"><font color="navy">Document Instance</font></a></h2>
<${PRE}>
END
        $indtd = 0;
    } else {
        if ($indtd) {
            if ($line =~ /^\s+version\s+CDATA\s+\#FIXED\s+"([^"]+)"/) {
                $docver = $1;
            }
        } else {
            if ($line =~ /<rev\.yr>(\d{4})<\/rev\.yr>/) {
                $revyr = $1;
            }
            if ($line =~ /<rev\.mo>(\d{2})<\/rev\.mo>/) {
                $revmo = $1;
            }
            if ($line =~ /<rev\.da>(\d{2})<\/rev\.da>/) {
                $revda = $1;
            }
            $line =~ s/\&lt;/_LT_/gi;
            $line =~ s/(<link\s+tgt=\")([^"]+)("[^>]*>)/\1\2\3_LINKTO_\2_/gi;
            $line =~ s/(<\/link>)/_ELINKTO_\1/gi;
            $line =~ s/<title>/<title>_B_/gi;
            $line =~ s/<\/title>/_EB_<\/title>/gi;
            $line =~ s/(<\!\[[^>[]+\[)/_FONT_\1_EFONT_/gi;
            $line =~ s/\]\]>/_FONT_]]>_EFONT_/gi;
            $line =~ s/(<[^>[]+>)/_FONT_\1_EFONT_/gi;
        }
        $line =~ s/\&/&amp;/gi;
        $line =~ s/</&lt;/gi;
        $line =~ s/>/&gt;/gi;
        if (!$indtd) {
            $line =~ s/_LT_/&lt;/g;
            $line =~ s/_FONT_/${PURPLE}/g;
            $line =~ s/_EFONT_/${ENDPURPLE}/g;
#            $line =~ s/\[SGML\]/[<\/font>SGML<font color="purple">]/;
            $line =~ s/_ELINKTO_/<\/i><\/a>/g;
            $line =~ s/_LINKTO_([^_]+)_/<a href="\1"><i>/g;
            $line =~ s/_B_/<b>/g;
            $line =~ s/_EB_/<\/b>/g; 
        }
        $line =~ s/\!\[/&#33;&#91;/gi;
        $line =~ s/\]\]/&#93;&#93;/gi;
        print OUT "$line";
    }
}
if ($revmo ne "??") {
    $mo = $month[$revmo-1];
}
print OUT<<"END";
<${ENDPRE}>
<hr width="40%" align=left>
<big><a href="#Top"><img src="gif/return_character-l.gif" height=13 width=12 border=0 hspace=1 alt="[ Return to explanation at top of page! ]"></a><a href="#Top">Go back</a> to explanation at top of this page.</big>
<hr size=7>
<big>T</big>he fine print: What's really going on here?  I wrote a real <i><b>.sgm</b></i> file,
which contains the text the main body (the DTD and document instance sections...) of this page
displays (<a href="http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?filename=heuristic.sgm">heuristic.sgm</a>).
That file is a valid SGML document instance (it passes a validating parse with
James Clark's <b><a href="http://www.jclark.com/sp/">SP</a></b>).
I run that file through a Perl script (<a href="http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?filename=heuristic.pl">heuristic.pl</a>),
to generate the present page. I run the same "source" file [pre-pended with
an <i>SGML declaration</i>, <a href="http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?filename=sgmlset.txt">sgmlset.txt</a>, to
allow element names longer than 8 characters...], through an OmniMark down-translate script
(<a href="http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?filename=heuristic.xom">heuristic.xom</a>), to produce the formatted HTML version
(<a href="heuristic.html">heuristic.html</a>).  I also have run it through
Panorama Publisher, and produced a stylesheet (<a href="http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?filename=heuristic.ssh">heuristic.ssh</a>), to
enable Panorama -- and conformant -- web viewers to directly display the SGML text
(the original: <a href="http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?filename=heuristic.sgm">heuristic.sgm</a>), nicely formatted,
in a web browser.  The process of producing these pages exemplifies
what I describe in the text as the ability SGML provides to: <I><b>write once and
format / process everywhere!</b></i> <font color="navy"><b>&lt;&#33;[%THINK;[SGML&#93;&#93;&gt;</b></font>
<hr size=7>
<i><big>N</big>ote:</i>
There is a computer programming language which enrichs our relation to numbers
a way somewhat analogous to the way <b>SGML</b> enriches our relation to
language: Kenneth E. Iverson's <b>APL</b> (<b>A</b> <b>P</b>rogramming <B>L</b>anguage).
<i><a href="APL.html">Click here</a></i> for a high-level overview of <b>APL</b>.
<hr size=7>
<table width="99%" cellspacing=3 cellpadding=5><tr><td bgcolor="#FFFFF0">
<big>I</big>f you are interested in 
e<b>X</b>tensible <b>M</b>arkup <b>L</b>anguage (<b><a href="gkwtags.html">XML</a></b>) --
the new avatar of <b>SGML</b> --, and you are using Microsoft Internet Explorer 5
(or newer) web browser, you can <i><a href="xmlxslt.xml">click here</a></i> to examine some
experimental <b>XML</b> pages I am developing.</td></tr></table>
<hr size=7>
<table cellspacing=0 cellpadding=0 width="100%" border=0>
<tr><td align=left><big><a href="heuristic.html">Go</a> to sample HTML formatted version of SGML on this page.<br>
<a href="heuristic.sgm">Go</a> to <i>Panorama Viewer</i> version of this page
(<i>requires <a href="sq-bh.html">plug-in</a>!</i>).<br>
&nbsp;</big>
<table cellspacing=0 cellpadding=0 border=0>
<tr><td valign=top><big><a href="sgmlnote.html">Go</a>/<a href="sgmlnote.html">Return</a></big></td>
<td><big>&nbsp; to another intro to SGML: <i>*Darwin Among the Machines*</i> (<i>Susanne Langer and SGML</i>).</big></td>
<td><img src="sp.gif" height=2 width=2 border=0 alt="[ ]" hspace=8></td></tr></table>
<big><a href="xmlstuff.html">Read</a> Laurent Sabarthez' notes about XML (SGML's "replacement").</big></td>
<td valign=top align=right><a href="sgmlnote.html"><img src="gif/sgml.gif" height=32 width=32 vspace=3 hspace=3 alt="[ Learn about SGML! ]" border=0></a></td>
</tr></table>
<big>&nbsp;<br>
<a href="APL.html">Go</a>/<a href="APL.html">Return</a> to page introducing you to <b>APL</b>.</big>
<hr width="40%" align="left">
<big><a href="resume.html">Return</a> to Brad McCormick's resume.</big>
<table cellspacing=0 cellpadding=0 border=0 width="100%"><tr>
<td valign=bottom><big>&nbsp;<br>
<a href="sitetoc.html">Go</a> to website <i>Table of Contents</i>.<br>
<a href="welcome.html#WhoWhat">Return</a> to Brad McCormick's home page.<br>
<a href="Bradsmap.html">Return</a> to site map.</big></td>
<td align=right valign=bottom><table cellspacing=0 cellpadding=0 border=0>
<tr><td rowspan=2><img src="sp.gif" height=2 width=2 hspace=3 alt="[ ]" border=0></td>
<td valign=bottom><a href="Bradsmap.html"><img src="signpost.gif" height=32 width=33 border=0 alt="[ Go to Site Map! ]"></a></td>
<td><img src="sp.gif" height=2 width=2 hspace=12 alt="[ ]" border=0></td>
<td valign=bottom><a href="sitetoc.html"><img src="gif/up_black.gif" vspace=1 height=16
width=16 border=1 alt="[ Go to website Table of Contents! ]"></a></td>
<td><img src="sp.gif" height=2 width=2 border=0 alt="[ ]" hspace=21></td>
<td rowspan=2 valign=bottom><a href="welcome.html"><img src="gif/home.gif" height=32 width=32 vspace=1 border=0 alt="[ Go home! (BMcC website Home page!) ]"></a></td>
<td rowspan=2><img src="sp.gif" height=2 width=2 border=0 alt="[ ]" hspace=2></td></tr>
<tr><td colspan=4><img src="sp.gif" height=2 width=2 border=0 alt="[ ]" vspace=1></td></tr>
</table></td></tr>
</table>
<hr>
<table cellspacing=0 cellpadding=0 border=0 width="100%">
<tr><td valign=top align=left nowrap><address><font color=green>http://www.cloud9.net/~bradmcc/WhatIsSGML.html<br>
page generated by: heuristic.pl, ver: $version<br>
<a href="copyright.html">Copyright &copy;</a> 1998-2006 Brad McCormick, Ed.D.<br>
bradmcc\@cloud9.net <a href="signgb.html"><img src="gif/email2me.gif" align=bottom
border=0 height=10 width=15 hspace=2 alt="[ Email me! ]"></a><br>
$revda $mo $revyr (ver: $docver)</font><!--#exec cgi="cgi-bin/uctr8.pl"--></address></td>
<td valign=top align=right><table cellspacing=0 cellpadding=0 border=0>
<tr><td align=right><a href="http://www.w3.org/Style/CSS/Buttons/"><img src="mwcos.gif" alt="[ Made with Cascading Style Sheets! ]" height=31 width=88 hspace=1 vspace=2 border=0></a></td></tr>
<tr><td><img src="sp.gif" height=2 width=2 vspace=3 border=0 alt="[ ]"></td></tr>
<tr><td align=right><a href="http://validator.w3.org/check/referer"><img src="valid_html4_01.gif"
border=0 alt="[ Loose HTML 4.01 Checked! Test me! ]" height=31 width=88></a></td>
</tr>
<tr><td><img src="sp.gif" height=2 width=2 vspace=15 border=0 alt="[ ]"></td></tr>
<tr><td align=right><table cellspacing=0 cellpadding=0 border=0>
<tr><td bgcolor=silver><table cellpadding=2 cellspacing=3 border=1>
<tr><th bgcolor="#F8F8FF"><a href="sq-bh.html"><img src="getpan.gif" alt="[ Download Panorama SGML Viewer! ]"
height=34 width=94 vspace=2 border=0 hspace=2></a><br><big>Dead link</big></th></tr></table></td>
<td><img src="sp.gif" height=2 width=2 hspace=6 alt="[ ]" border=0></td></tr>
</table></td>
</tr></table></td></tr>
<tr><td colspan=2><img src="sp.gif" height=2 width=2 vspace=4 alt="[ ]" border=0></td></tr></table>
</body>
</html>
END

close(IN);
close(OUT);
print "heuristic.pl $version done.\n";
exit (0);

<< heuristic.pl  L: 13,939. A: 100644. M: 2009-01-17 19:57:11 UTC [=1232222231] -3232.95d <<

[ Please note: ]  Some systems do not provide this script with a return address (the HTTP_REFERER cgi environment variable). In those cases, the "Return" icon at right is disabled, but you can still use your web browser's BACK button to return to the page from which you came to here. I apologize. Thank you for your understanding.

Page generated by:
http://www.users.cloud9.net/~bradmcc/cgi-bin/ascii.pl?f=heuristic.pl
Copyright © 2001-2005 Brad McCormick, Ed.D.
bradmcc@cloud9.net [ Email me! ]
26 April 2008CE
v10.05
[ ]
[ ]
[ Notice what's hiding in plain sight! ] [ ]
[ ] [ ]
[ Go home! (BMcC website Home page!) ] [ ] [ Use your web browser's BACK button to return to page from which you linked to here! ] [ ]
[ ]
[ Go to Site Map! ] [ ] [ HTML 3.2 Checked! Test me! ] [ ]
[ ]
[ ]
[ Go to website Table of Contents! ] [ ] [ Welcome to my website! Please come in! ]
[ ]
[ ]