<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi">
    <title>gmane.comp.ai.prolog.swi</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9234"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9233"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9232"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9231"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9230"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9229"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9228"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9227"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9226"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9225"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9224"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9223"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9222"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9221"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9220"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9219"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9218"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9217"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9216"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9215"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9234">
    <title>Re: use Prolog to generate strings of certain pattern?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9234</link>
    <description>
On 4 Dec 2008, at 6:44 pm, Cai Yizhi wrote:


I see three rules, and B seems to be meant as both a terminal and
a non-terminal.  I'm going to take

S -&gt; SS
S -&gt; ABC
S -&gt;  BC
S -&gt;   C


Yes.

Let's do this one step at a time.

We'll have predicates x(L0, L) which succeed when there is a list
X such that append(X, L, L0) and X is an instance of the x pattern.
And we'll have a top level predicate answer(X) which starts the
whole thing off.

answer(X) :-
     s(X, []).

s(L0, L) :- s(L0, L1), s(L1, L).
s([a,b,c|L], L).
s(  [b,c|L], L).
s(    [c|L], L).

So far so good.  The problem is what computer scientists who
studied grammars call left recursion:
?- answer(X)
&lt;- s(X, [])
&lt;- s(X, L1) ...
&lt;- s(X, L1') ...
&lt;- s(X, L1'') ...

The answer is SNOBOL's "quickscan" heuristic.
We determine the minimum number of terminal symbols
that can be covered by the right hand side of each
rule.  We pass two more parameters, B0/B, counting
this bound.  In answer/1 we shall enumerate upper
bounds for the length of the an</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-12-05T02:30:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9233">
    <title>Re: SWI prolog and Thea Parser</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9233</link>
    <description>
On Dec 4, 2008, at 12:21 PM, Carlo Allocca wrote:


First of all a tip: I'm not sure if your code is formatted as above,  
or your email program is omitting indentation and adding extra  
newlines. Either way, it doesn't help readability.

Second of all, always consult the documentation:

% owl_parse(+URL, +RDF_Load_Mode, +OWL_Parse_Mode, +Imports)
%Calls the rdf_load_stream predicate to parse RDF stream in URL.
%       If RDF_Load_Mode = complete it first retacts all rdf triples.
%       If Imports = true it handles owl:import clause at RDF level.

You are RDF_Load_Mode = complete so it is retracting all rdf triples  
prior to constructing OWL terms. Try it with 'false' instead.


_______________________________________________
SWI-Prolog mailing list
SWI-Prolog&lt; at &gt;iai.uni-bonn.de
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog

</description>
    <dc:creator>Chris Mungall</dc:creator>
    <dc:date>2008-12-04T20:58:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9232">
    <title>SWI prolog and Thea Parser</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9232</link>
    <description>Dear  All,

I am a new user of SWI prolog and Thea Parser, and I would like to ask  
the following question:

I have a "testTheaParser.pl" contains:


:-consult('owl_parser.pl').


test1:-

File_O1 ='file:///Users/ca3533/Desktop/test1.owl',

%File_O2 ='file:///Users/ca3533/Desktop/test2.owl',

% 1. parse the File

owl_parse(File_O1,complete,complete,false),

findall(subs(D1,D2),subclassOf(D1,D2),ListSubClassOfAxioms),

write(ListSubClassOfAxioms).

test2:-

File_O1 ='file:///Users/ca3533/Desktop/test1.owl',

%File_O2 ='file:///Users/ca3533/Desktop/test2.owl',

% 1. parse the File

owl_parse(File_O1,complete,complete,false),

findall(subs(D1,D2),subclassOf(D1,D2),ListSubClassOfAxioms),

write(ListSubClassOfAxioms).


After consulting the testTheaParser.pl I ask first “test1.” and I get  
a list of axioms declared in test1.owl file. Next, I ask for “test2”  
and I get a empty list of axioms from the same OWL file;

  in some how is like that SWI Prolog or Thea Parser recognizes the  
last file parsered</description>
    <dc:creator>Carlo Allocca</dc:creator>
    <dc:date>2008-12-04T20:21:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9231">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9231</link>
    <description>Richard O'Keefe schrieb:

Richard,

thank you for the elaborate explanations of your point. You are
absolutely right for the kind of amalgamation that you describe.

However, the mix that we are after in this case is of a much simpler
kind (and Lukas knew it when he wrote his suggestion). We are building
on top of Prolog sth. that is still a logic language. What makes
it different from Prolog is 'just' a cleaner separation of inference
and transformation / database update. There is no problem letting
most of the usual Prolog language be used in the condition (inference)
part.

There might one day be a presentation about this at ICLP. Then I'd
appreciate your comments on the design -- and your opinion whether it
still is too 'amalgamated'.

Cheers,
Günter
_______________________________________________
SWI-Prolog mailing list
SWI-Prolog&lt; at &gt;iai.uni-bonn.de
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog

</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-12-04T16:58:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9230">
    <title>Re: use Prolog to generate strings of certain pattern?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9230</link>
    <description>Absolutely.  In Prolog, strings (like "ABCCCC") are identical to lists of numbers ([65,66,67,67,67,67]), and you may want to use DCG's to generate such a list for you.  In your example, you'll want to think about the algorithm for choosing how to generate your strings.  The naive approach will lead to 
S-&gt; SS -&gt; SSS -&gt; SSSS -&gt; SSSSS.  If that's as complicated as your rules get, I expect you should have no problem coming up with a heuristic that controls the expansion to produce what you need.

 Alan Baljeu



________________________________
From: Cai Yizhi &lt;caiyizhi&lt; at &gt;gmail.com&gt;
To: swi-prolog&lt; at &gt;iai.uni-bonn.de
Sent: Thursday, December 4, 2008 12:44:13 AM
Subject: [SWIPL] use Prolog to generate strings of certain pattern?

Hello,

I am a new user of Prolog. I want to use Prlog to generate strings of  certain pattern. For example, I have four rules:

S -&gt; SS
S -&gt; ABC
B -&gt; BC


I want generate strings with exactly four Cs (like ABCCCC or ABCABCABCABC or ABCCABCC). Is it possible to use Prolog for this kind of pur</description>
    <dc:creator>Alan Baljeu</dc:creator>
    <dc:date>2008-12-04T14:22:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9229">
    <title>Special Session on Prolog Programming</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9229</link>
    <description>Special Session on Prolog Programming at AIPR-09: call for papers
 
There is a Special Session on Prolog Programming at the 2009 International Conference on Artificial Intelligence and Pattern Recognition (AIPR-09) (website: http://www.PromoteResearch.org) that will be held during July 13-16 2009 in Orlando, FL, USA. We invite draft paper submissions. The conference will take place at the same time and venue where several other international conferences are taking place. The other conferences include:
·         International Conference on Automation, Robotics and Control Systems (ARCS-09)
·         International Conference on Bioinformatics, Computational Biology, Genomics and Chemoinformatics (BCBGC-09)
·         International Conference on Enterprise Information Systems and Web Technologies (EISWT-09)
·         International Conference on High Performance Computing, Networking and Communication Systems (HPCNCS-09) 
·         International Conference on Informat</description>
    <dc:creator>John Edward</dc:creator>
    <dc:date>2008-12-04T12:01:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9228">
    <title>Special Session on Prolog Programming</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9228</link>
    <description>Special Session on Prolog Programming at AIPR-09: call for papers
 
There is a Special Session on Prolog Programming at the 2009 International Conference on Artificial Intelligence and Pattern Recognition (AIPR-09) (website: http://www.PromoteResearch.org) that will be held during July 13-16 2009 in Orlando, FL, USA. We invite draft paper submissions. The conference will take place at the same time and venue where several other international conferences are taking place. The other conferences include:
·         International Conference on Automation, Robotics and Control Systems (ARCS-09)
·         International Conference on Bioinformatics, Computational Biology, Genomics and Chemoinformatics (BCBGC-09)
·         International Conference on Enterprise Information Systems and Web Technologies (EISWT-09)
·         International Conference on High Performance Computing, Networking and Communication Systems (HPCNCS-09) 
·         International Conference on Informat</description>
    <dc:creator>John Edward</dc:creator>
    <dc:date>2008-12-04T12:01:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9227">
    <title>use Prolog to generate strings of certain pattern?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9227</link>
    <description>Hello,

I am a new user of Prolog. I want to use Prlog to generate strings of
certain pattern. For example, I have four rules:

S -&gt; SS
S -&gt; ABC
B -&gt; BC


I want generate strings with exactly four Cs (like ABCCCC or ABCABCABCABC or
ABCCABCC). Is it possible to use Prolog for this kind of purpose?

Thanks very much for your help,

Patrick
</description>
    <dc:creator>Cai Yizhi</dc:creator>
    <dc:date>2008-12-04T05:44:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9226">
    <title>Re: Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9226</link>
    <description/>
    <dc:creator>JeffRose&lt; at &gt;aol.com</dc:creator>
    <dc:date>2008-12-03T14:32:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9225">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9225</link>
    <description>
On 2 Dec 2008, at 11:47 pm, Günter Kniesel wrote:


That's mixing two languages of the same *kind*,
and even then, if you have something for which performance
is an issue, you shouldn't do it.  Amongst Prolog's
successor languages, both Goedel and Mercury refuse to
have anything to do with language/metalanguage amalgamation
and there are long-published reasons for this rejection.

As it happens, I have my own Smalltalk system (not quite finished,
but at long last it's far enough along to run benchmarks and test
cases).  Because it compiles via C, it lets you embed C code
inside Smalltalk.  So you can do things like

     integer_between: lower and: upper
       ^C: 'ASBOOL((Int)lower &lt;= (Int)self
                &amp;&amp; (Int)self &lt;= (Int)upper
                &amp;&amp; ISINT((lower|upper|self)))'

The nasty thing is that the C code has to be able to include bits
of Smalltalk as well (lower, upper, self).  There are bits it can
(variable names beginning with a lower case letter) and bits it
can't (anything else), but e</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-12-03T00:04:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9224">
    <title>Ann: SWI-Prolog 5.6.63 and 5.7.3</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9224</link>
    <description>Hi,

Bit busy, but there where enough fixes to release a new version as a
present to ICLP08. Markus has been doing performance work on clp(fd). My
contribution is bug-fixes only. Most applied to both versions; some were
specific issues of 5.7.3: wakeup problems with attributed variables and
some debugging issues.

Notably users of threading on Unix systems are urged to upgrade: fixes
to thread-specific CPU time measurement on some versions (wrong results
and crashes) and fixed a possible deadlock related to shell/1 and the
library(process).

Please try out 5.7.3 as a release candidate for 5.8.0. 5.7.x contains
some very obvious optimizations, notably to unification, arithmetic and
reduction of the overhead of calling predicates in general that has
proved to improve performance somewhere between 0 and 40% on large
applications (0 and 400% on small benchmarks). Your mileage depends
mainly on the programming style. Generally, good style pays better :-)
Oops, I should close my mailbox now ...

If it holds, I wil</description>
    <dc:creator>Jan Wielemaker</dc:creator>
    <dc:date>2008-12-02T21:53:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9223">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9223</link>
    <description>Richard O'Keefe schrieb:


The mix of two languages is obviously accepted in Prolog
and the basis of much of its power. You might remember
Robert Kowalski's famous article about "Mixing language
and Metalanguage". ;)

Günter

</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-12-02T10:47:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9222">
    <title>Re: Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9222</link>
    <description>Beware that building an expert system the emphasis should stay on 'expert'.
For the 'system' part, you have a number of choices (primarly forward/backward chaining), and implementing them can be tricky in any language.
Of course, googling for 'expert system in Prolog' gives so many hints...
The first link (www.amzi.com/ExpertSystemsInProlog/xsipfrtop.htm) it's so interesting and (at first glance) so well done!
Anyway, i think almost any text book on Prolog exposes the basic. So you should concentrate on some simpler task (Hello World!) to interface from Delphi, then attach any code you find and  (possibly) understand.

Bye Carlo

"menguele francois" &lt;menguelef&lt; at &gt;yahoo.fr&gt; ha scritto nel messaggio news:360550.28846.qm__14068.5621453033$1228143398$gmane$org&lt; at &gt;web25907.mail.ukl.yahoo.com...
        Good morning.
        I'm a new delphi programmer and i want to be initiate to expert system.
        I downloadded the delphiswi.zip which must help me to embbed prolog in delphi. The problem is that i don't know how to</description>
    <dc:creator>Carlo Capelli</dc:creator>
    <dc:date>2008-12-02T10:33:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9221">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9221</link>
    <description>
On 1 Dec 2008, at 9:50 pm, Lukas Degener wrote:


There is a non-sequitur there.
Assuming that "arbitrary Prolog expressions" means
"arbitrary Prolog terms with no annotations on variables",
then ANY such term can be written without any operators whatsoever
and can therefore be read by a parser that knows nothing at all
about operators.

Indeed, if you want to be *sure* you can read Prolog data in,
that's how you should write them.

There's also some highly questionable design going on there:
mixing two languages in a single construct is, um, well, let
me put it this way:  that way lies XSLT.  You really don't want
to go there.


Does SWI Prolog allow ¡ as an operator symbol?
If not, I'm sure it could without breaking anything.
Instead of using !!!, use ¡¡¡ and the problem goes away.



</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-12-02T05:19:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9220">
    <title>Re: Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9220</link>
    <description>Prolog is not an expert system shell.  It is a general purpose programming language that happens to be very adept for doing complex search algorithms, and symbolic manipulation.  Both of those features make it suitable for designing an expert system.  But Prolog doesn't prescribe any method of building an expert system.  

Tutorials commonly advise one of two methods to build Prolog programs.  One way is to make lots of facts in the Prolog database, and then build programs that query the facts and make connections.  This is easy and works well for smaller prorgrams.  The other is to use lists and other datastructures to manage and manipulate knowledge.  This is more complicated, but is also more scalable.

To learn the language, search "prolog tutorial", and choose one of the many.  After, lookup the book "The Craft of Prolog" by Richard O'Keefe.

Then we can talk about expert system building.

 Alan Baljeu





________________________________
From: menguele francois &lt;menguelef&lt; at &gt;yahoo.fr&gt;
To: swi-prolog&lt; at &gt;iai.</description>
    <dc:creator>Alan Baljeu</dc:creator>
    <dc:date>2008-12-01T15:29:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9219">
    <title>Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9219</link>
    <description>Good morning.
I'm a new delphi programmer and i want to be initiate to expert system.
I downloadded the delphiswi.zip which must help me to embbed prolog in delphi. The problem is that i don't know how to use it. So please can u help me. I really want to implement my first  expert system.
Thanks.



      </description>
    <dc:creator>menguele francois</dc:creator>
    <dc:date>2008-12-01T11:21:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9218">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9218</link>
    <description>Richard O'Keefe schrieb:

That's indeed a very nasty consequence of which I didn't think
before. Thanks for the explanation. Also to Ulrich and Jan.

Günter

</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-12-01T09:30:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9217">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9217</link>
    <description>-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Richard O'Keefe schrieb:

I think this is a good idea in most situations.

However if you want to parse data that contains arbitrary Prolog
expressions (I think this is what Günter needs), then your parser
probably won't be trivial: You would have to reimplement the parsing
used by SWI-Prolog, which is difficult *because* of user defined
operators, etc.

Here is what I would try. Not as elegant and probably not as robust as
having a single parser, but  -- I think -- easier to implement:

1) Use a very simple parser that only does a rough partitioning of the
input (filter out comments, make string/atom-literals opaque).

2) In a second pass, put quotes around all occurrences of !!! (or
whatever you are using) in the remaining regions of the input.

3) Then feed the result to SWI-Prolog.


Regards,
- --lu
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkzpVQACgkQ6CpjlIRm</description>
    <dc:creator>Lukas Degener</dc:creator>
    <dc:date>2008-12-01T08:50:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9216">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9216</link>
    <description>
Even determining the end of a read-term would depend on the current
operator definitions.

If more elaborate operators are desired, UTF-8 provides plenty of
characters.

What about
?- op(1175, xfx, '\u2225').

in place of ||| or '\u203c' in place of !!! ?

</description>
    <dc:creator>Ulrich Neumerkel</dc:creator>
    <dc:date>2008-12-01T06:54:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9215">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9215</link>
    <description>
On 1 Dec 2008, at 10:13 am, Günter Kniesel wrote:

YIKE!  There was a Prolog system that worked that way.
More than one, in fact.  Trying to figure out how to
parse it was a nightmare, because the operator declaration
that licensed a particular token might not be in the same
file as the token in question.

Some things just don't work well in practice.
It's an even worse idea than APL's "you can't even parse me
until run time" "cleverness".

The problem is that some people wanted to write "a:-!."
or "a:-!, b.", which means that "!" has to be in a different
character class from "-".  If you are happy to break that,
then there would be no problem in putting "!" in the same
character class as "-" and ":".


Nothing stops you designing your own new syntax
and plugging it in.

Certainly nothing stops you writing your own parser for
"data" and mapping that into some other Prolog; using
operator-heavy stuff *at run time* has a nasty habit of
leading to inefficiency, because what is optimised for
human reading is n</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-12-01T06:23:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9214">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9214</link>
    <description>Ulrich Neumerkel schrieb:

Hi Ulrich,

I understand the historic reasons for the current state but not
why it wouldn't be possible to treat !!! as a token as soon as
there is a corresponding operator definition.

That wouldn't require extra space in other cases (such as
those you mentioned above).
It might require replacing the special treatment of ! and
friends in the parser to check for special tokens defined
by operator declarations.

I don't know how much work that is but I know it would
definitely help me a lot ;) The current state prevents
some very useful operator definitions. The exclamation
and pipe are very intuitive in many contexts, so it is
a pity that one cannot use them in operators.

Günter


</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-11-30T21:13:12</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.ai.prolog.swi">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.ai.prolog.swi</link>
  </textinput>
</rdf:RDF>
