Expert System Prolog
Brief History of Artificial Intelligence A timeline of AI and Robotics events from 500 BC to 2000 AD.
ESFM: Prolog Expert System for Forestry Management A small expert system developed by Steve Jones of Reading University in 1988 for
forestry management. The rules are Prolog clauses. Inference is depth-first, ...
AI on the Web Lots and lots of pointers to AI resources: intelligent agents, search and game
playing, logic and knowledge representation, planning, reasoning with uncertainty ...
Mark Watson's Open Content Free Web Books On-line book, covering AI's history, search algorithms, and the Java source code.
Products WIN-PROLOG, DOS-PROLOG, MacProlog32 compilers. Products range from Prolog++ an
OOPs extension, flex an expert system toolkit, and various web based technologies ...
An Object Model for Multiparadigm Programming Presented at OOPSLA 1994.
Logic Programming Associates This software house supplies WIN-PROLOG, MacProlog32 and Prolog++.
Cetus Links: 18452 Links on Objects and Components / Prolog This collection of non-commercial links treats Prolog within the context of
object- and component-orientation.
SVSU - Department of Computer Science Department of Computer Science. Information on courses.
FREE POPLOG/POP11/LISP/PROLOG/ML/AI-TOOLS A multi-language AI system that contains Prolog, Common Lisp, ML and POP-11
implementation.
PC AI - Logic Programming As part of a survey of information on artificial intelligence this section on
logic programming is provided.
Amzi! Prolog+Logic Server, Adventure in Prolog tutorial, Expert ... This extensible Prolog version runs under Windows, Linux, Solaris and HP/UX,
supporting development of client and server applications embeddable in the web, ...
MINERVA /MINERVA/ Implementation of ISO Prolog in 100% Java. Extensible with any Java class.
Callable as servlet, applet, standalone, or Java class library.
Free Programming and Computer Science Books Free online programming and computer science books (Linux, Java, Microsoft tools,
C/C++, Perl anf Python).
AI from TAU - Useful Links Extensive Artificial Intelligence links index from Tel-Aviv University, Israel.
Created & maintained by Yossi Mamroud, TAU's Philosophy Department.
KBS/Ontology Projects Worldwide A catalog of links to projects, tools, and events.
Timm Biography, gossip, new papers, interesting collection of web stuff.
PC AI: The Prolog Programming Language Explanations, links.
2cs24 Declarative Short, very clear explanations.
OOPWeb.com - Prolog Directory - Tutorials, References, Guides... Prolog programming tutorial and online book.
rss_url = $url;
$this->num_to_show = $numtoshow;
$this->do_update = $update;
$this->my_html = preg_replace("/(#{.*?):(.*?})/", "\\1__\\2", $html); //xx:xx tag workaround
$this->content = $this->fetch_feed();
$this->parse_feed();
$this->show();
}
/* string */
function fetch_feed()
{
$url_parts = parse_url($this->rss_url);
$filename = $url_parts['host'] . str_replace("/", ",", $url_parts['path']) . "_" . @$url_parts['query'];
if(file_exists($this->data_directory . "/$filename")) {
$last = filemtime($this->data_directory . "/$filename");
if(time() - $last > $this->update_interval * 60 || $this->update_interval == 0) {
$update = 1;
}
} else {
$create= 1;
}
if($create == 1 || ($this->do_update == TRUE && $update == 1)) {
$fp = @fsockopen($url_parts['host'], 80, $errno, $errstr, 5);
if (!$fp) {
echo "Couldn't open rss feed {$this->feed_url} in {$_SERVER['PHP_SELF']}
\n";
return;
}
fputs($fp, "GET " . $url_parts['path'] . "?" . @$url_parts['query'] . " HTTP/1.0\r\n"
."Host: " . $url_parts['host'] . "\r\n"
."User-Agent: Drew's RSS Reader 0.1\r\n"
."Connection: Close\r\n\r\n");
while(!feof($fp)) {
$rss_data .= @fgets($fp, 1024);
}
list(, $rss_data) = explode("\r\n\r\n", $rss_data, 2);
$output = @fopen($this->data_directory . "/$filename", "w+");
if(!$output) {
return $rss_data;
} else {
flock($output, LOCK_EX);
fputs($output, $rss_data);
flock($output, LOCK_UN);
fclose($output);
}
} //update
return file_get_contents($this->data_directory . "/$filename");
}
/* void */
function parse_feed()
{
preg_match("/
(.*?)<\/title>/", $this->content, $title);
$this->feed_title = @$title[1];
preg_match("/ (.*?)<\/link>/", $this->content, $link);
$this->feed_link = @$link[1];
preg_match("/(.*?)<\/description>/", $this->content, $description);
$this->feed_description = @$description[1];
preg_match_all("/- ]*>(.*?)<\/item>/s", $this->content, $items);
if (sizeof($items[0]) == 0) {
echo "No item elements found in rss feed.
\n";
}
for($i = 0; $i < sizeof($items[0]); ++$i) {
preg_match_all("/(?:<([\w:]*)[^>]*>(?:)?<\/\\1>)+?/si", preg_replace("/- ]*>/", "", $items[0][$i]), $elements);
for($j = 0; $j < sizeof($elements[0]); ++$j) {
$elements[1][$j] = str_replace(":", "__", $elements[1][$j]); //regex fix for items with : like dc:date
$this->rss[$i][$elements[1][$j]] = trim(html_entity_decode($elements[2][$j]));
}
}
}
/* void */
function show()
{
if($this->my_html == "") {
$this->show_html();
} else {
$this->show_user_html();
}
}
function show_html()
{
$show = (sizeof($this->rss) > $this->num_to_show ? $this->num_to_show : sizeof($this->rss));
for($i = 0; $i < $show; ++$i) {
echo "-
rss[$i]['link']}\" target=\"_new\">{$this->rss[$i]['title']} \n";
}
}
function show_user_html()
{
$show = (sizeof($this->rss) > $this->num_to_show ? $this->num_to_show : sizeof($this->rss));
for($i = 0; $i < $show; ++$i) {
extract($this->rss[$i]);
$item = preg_replace("/#\{([^}]+)}/e", "$\\1", $this->my_html);
echo $item;
}
}
} // end class
$url = "http://www.justinpfister.com/gnewsfeed.php?q=Expert&lang=en&ned=us";
$show = 3;
$html = "#{title} #{description} ";
$update = 1;
$rss = new rss_parser($url, $show, $html, $update);
$url = "http://search.news.yahoo.com/usns/ynsearch/categories/47/index.html?p=Expert";
$show = 3;
$html = "#{title} #{description} ";
$update = 1;
$rss = new rss_parser($url, $show, $html, $update);
?>