+++ /dev/null
-<HTML>
-<HEAD>
-<SCRIPT language="Javascript">
-var inputok=0;
-function listrvars()
- {
- for (num=0; num<top.norvars; num++)
- {
- document.write("<OPTION value="+top.rvars[num]+">"+top.rvars[num]);
- }
- }
-function listsvars()
- {
- for (num=0; num<top.nosvars; num++)
- {
- document.write("<OPTION value="+top.svars[num]+">"+top.svars[num]);
- }
- }
-function listvvars()
- {
- for (num=0; num<top.novvars; num++)
- {
- document.write("<OPTION value="+top.vvars[num]+">"+top.vvars[num]);
- }
- }
-function help()
- {
-with (document.form1) {
- if (selopt[0].checked)
- alert ("Turns a list of strings which cannot have attributes (the [val]) in a list of strings which can have them, but initially has none (a [set]).");
- if (selopt[1].checked)
- alert ("Taken a list of posix regular expressions, 'pattern [val]' searches the HELM library for all the URIs which match with at least one of those and returns a [set] representing them.");
- if (selopt[2].checked)
- alert ("A [svar] represents a list of URIs with attributes.");
- if (selopt[3].checked)
- alert ("A [rvar] is a single URI with attributes.");
- if (selopt[4].checked)
- alert ("Parenthesis are employed to force precedence between operators.");
- if (selopt[5].checked)
- alert ("The [path] you must enter represents a relation; this production returns a [set] composed by the union of all the URIs which match the chosen relation in the [val] you will enter afterwards, without attributes. If you select 'inverse', you'll obtain a list of all the URIs for which the [val] matches the chosen relation, 'sub' and 'super' modify the result depending on the chosen relation and the last input box allows you to add attributes to the result.");
- if (selopt[6].checked)
- alert ("This production returns a [set] composed by all the URIs in the given [set] which match the condition in the given [boole].");
- if (selopt[7].checked)
- alert ("'Union' returns a [set] which is the union of the two given [set]; should an URI be present in each [set] with different attributes, it will be included in the result only once with all the attributes.\n'Intersect' returns a [set] which contains the cartesian product of the URIs listed in each given [set].\n'Diff' returns a [set] which contains the URIs found in the first given [set] but not in the second. Attributes are ignored.");
- if (selopt[8].checked)
- alert ("Allows you to assign a value to a [svar]");
- if (selopt[9].checked)
- alert ("Allows you to assign a value to a [vvar]");
- }
- }
-function choice()
-{
-top.stadd="";
-with (document.form1) {
- inputok=0;voidfield=0;top.wrong=0;
- if (selopt[0].checked) {
- top.stadd="ref [val]";
- inputok=1;
- }
- if (selopt[1].checked) {
- top.stadd="pattern [val]";
- inputok=1;
- }
- if (selopt[2].checked) {
- top.stadd=set1.value;
- if (set1.value!="") {inputok=1} else voidfield=1;
- }
- if (selopt[3].checked) {
- top.stadd=set2.value;
- if (set2.value!="") {inputok=1} else voidfield=1;
- }
- if (selopt[4].checked) {
- top.stadd="([set])";
- inputok=1;
- }
- if (selopt[5].checked) {
- if (set5.value.charAt(set5.value.length-1)==","){set5.value=set5.value.substring(0,set5.value.length-1)}
- if (set5.value.length<7) {set5.value=""};
- set4.value=top.tpa(set4.value);
- top.stadd="relation "+set25.value+" "+set3.value+" "+set4.value+" [val] "+set5.value;
- top.gramcheck("qp",set4.value);
- //alert(set5.value.charAt(set5.value.length-1));
- top.stadd=top.tpa(top.stadd);
- //while (top.stadd.indexOf("<")>-1)
- //{top.stadd=top.stadd.replace("<","<");}
- if (set5.value!="")
- {top.gramcheck("vlist",set5.value);}
- else inputok=1;
- }
- if (selopt[6].checked) {
- top.stadd="select @"+set6.value+" in [set] where [boole]";
- top.gramcheck("id",set6.value);
- if ((set6.value!="") && (inputok==1))
- {
- top.rvars[top.norvars]="@"+set6.value;
- top.norvars++;
- }
- }
- if (selopt[7].checked) {
- top.stadd="[set] "+set7.value+" [set]";
- inputok=1;
- }
- if (selopt[8].checked) {
- top.stadd="let %"+set8.value+" be [set] in [set]";
- top.gramcheck("id",set8.value);
- if ((set8.value!="") && (inputok==1))
- {
- top.svars[top.nosvars]="%"+set8.value;
- top.nosvars++;
- }
- }
- if (selopt[9].checked) {
- top.stadd="let $"+set9.value+" be [val] in [set]";
- top.gramcheck("id",set9.value);
- if ((set9.value!="") && (inputok==1))
- {
- top.vvars1[top.novvars1]="$"+set9.value;
- top.novvars1++;
- }
- }
- if (selopt[10].checked) {
- set10.value=top.tpa(set10.value);
- top.stadd=set10.value;
- if (set10.value!="") {inputok=1} else voidfield=1;
- }
- }
-if (top.stadd!="" && inputok==1) {top.aggq()}
- else if (voidfield==1) alert("You left at least one field unfilled");
-}
-</SCRIPT>
-</HEAD>
-<BODY>
-<h1> <SCRIPT language="Javascript">document.write(top.ltr) </SCRIPT>
-<input type="button" value="<-" onmouseOver="top.help(-8)" onclick="top.annulla()">
-<input type="button" value="->" onmouseOver="top.help(-81)" onclick="top.ripristina()"></h1>
-<h2> Select one of the following: </h2>
-<form name="form1" action="Javascript:choice();" method="get">
-<input type="radio" name="selopt"> ref [val] <br>
-<input type="radio" name="selopt"> pattern [val] <br>
-<input type="radio" name="selopt"> <select name="set1" type=text onFocus="selopt[2].checked=true;top.help(6)">
-<SCRIPT language=Javascript> listsvars(); </SCRIPT>
-</select>
-<br>
-<input type="radio" name="selopt"> <select name="set2" type=text onFocus="selopt[3].checked=true;top.help(4)">
-<SCRIPT language=Javascript> listrvars(); </SCRIPT>
-</select>
-<br>
-<input type="radio" name="selopt"> ( [set] ) <br>
-<input type="radio" name="selopt"> relation
-<select name="set25" onFocus="selopt[5].checked=true">
-<OPTION selected value="">
-<OPTION value=inverse> inverse
-</select>
-<select name="set3" onFocus="selopt[5].checked=true">
-<OPTION selected value="">
-<OPTION value=sub> sub
-<OPTION value=super> super
-</select>
-<input name="set4" type=text size=15 value="""" onFocus="selopt[5].checked=true;top.help(5)">
-[val] <input name="set5" type=text size=20 onFocus="selopt[5].checked=true;top.help(2);if (this.value=='') this.value='attr $';">
-<br>
-<input type="radio" name="selopt"> select @ <input name="set6" type=text onFocus="selopt[6].checked=true;top.help(3)">
-in [set] where [boole] <br> <input type="radio" name="selopt"> [set]
-<select name="set7" onFocus="selopt[7].checked=true">
-<OPTION value=union> union
-<OPTION value=intersect> intersect
-<OPTION value=diff> diff
-</select>
-[set] <br>
-<input type="radio" name="selopt"> let %<input name="set8" type=text onFocus="selopt[8].checked=true;top.help(3)"> be [set] in [set] <br>
-<input type="radio" name="selopt"> let $<input name="set9" type=text onFocus="selopt[9].checked=true;top.help(3)"> be [val] in [set] <br>
-<input type="radio" name="selopt"> <input name="set10" type=text
-onFocus="selopt[10].checked=true;top.help(1)"> <br>
-<input type="submit" value="compose"><input type="button" value="get help" onclick="help()">
-<!--input type="button" value="compose" onclick="choice()"><!--input type="button" value="get help" onclick="help()">
-</form>
-</BODY>
-</HTML>