sub HTML_makeURL {
local($url, @keyword);
### source
$url .= 'http://search.yahoo.com/bin/search?';
### keywords
$url .= 'p=';
$verbose && (print "local_ExternalFetch $condition: $condition\n<p>");
$condition =~ s/'([^']+)'/$keyword[$x++]=$1/eg;
$verbose && (print "local_ExternalFetch KEYWORDS: @keyword\n<p>");
foreach $i (@keyword) {
$url .= "$i+";
}
$url =~ s/\+$/&/;
### or/and
if ($condition =~ /or/) {
$url .= 's=o&';
}
else {
$url .= 's=a&';
}
### partial/complete
if ($condition =~ /%(.*)%/) {
$url .= 'w=s&';
}
else {
$url .= 'w=w&';
}
if (!($numfetch) || ($numfetch < 50) ) {$numfetch =50;}
$url .= "n=$numfetch";
$url;
}
sub HTML_translate {
## this routine takes yahoo search result and creates oracle
## insert commands
local ($tablename,$result)=@_;
local ($description,$url, $commands);
foreach ( split(/\n/, $result) ) {
if ("\L$_" =~ /<li>/) { # SINGLE ITEM
s/^\s+|\s+$//g; # DELETE SPACES
s/<li>//g;
s/<LI>//g;
$line = $_;
s/\<\/A>.*//g; # DELETE HTML TAGS
s/\<\/a>.*//g; # DELETE HTML TAGS
s/<A HREF="//g; # DELETE HTML TAGS
s/<a href="//g; # DELETE HTML TAGS
s/"\>.*//g; # DELETE HTML TAGS
$url = $_;
$_ = $line;
s/<a href.*"\>//g;
s/<A HREF.*"\>//g;
s/\'|\"//g;
$description = $_;
$insert="insert into $tablename ".
"(description, URL, URL_URL, Source, ".
" Source_URL) values \n".
"('$description'\n".
",'$url','$url','Yahoo',\n".
"'http://www.yahoo.com/')";
#now insert into commands array
unshift (@commands,$insert);
} # if <li>
} # foreach
@commands;
}
Figure 5: Simple query composition form
: Results from all available sources
Figure 7: Expert query composition form
Figure 8: Query Processing: Repository selection
Figure 9: Query Processing: Query tree with clickable nodes
Figure 10: Decomposed query for DR3
Figure 11: Final query result page