<?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/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:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9214"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9213"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9212"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9211"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9210"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9209"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9208"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9207"/>
      </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/9226">
    <title>Re: Need help</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9226</link>
    <description></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>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9213">
    <title>Re: Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9213</link>
    <description>
They are solo- and punctuation characters respectively. They do not
glue together with other characters and thus will always represent one
token unless quoted like '!!!'.  Other characters with similar
properties are ; , [ ] ( ) { } but not . which is not a punctuation
character but only a symbol character to make =.. work, a remainder
from the ancient ,.. notation for lists.

Without solos and punctuations we would have to add extra space to

a :- !.     L0 = [+,a,-|L1].

resulting in less compact text

a :- ! .     L0 = [ + ,a, - |L1] .

</description>
    <dc:creator>Ulrich Neumerkel</dc:creator>
    <dc:date>2008-11-30T14:03:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9212">
    <title>Operator definitions</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9212</link>
    <description>Hi SWI team,

in general, it is possible to write an operator that has
another one as prefix. For instance,
   :- op(1175, xfx, +++).
   :- op(1175, xfx, ---).
is OK, although + and - are operators too. This is what I
would like also for ! and | but:

?- op(1175, xfx, |||).
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] op/3: Type error: `list' expected, found `(|)||'

?- op(1175, xfx, !!!).
op(1175, xfx, !!!).
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] Syntax error: Operator expected
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] op(1175, xfx, set_stream(current_output,tty(true)),set_stream(current_input,tty(true))
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] ** here **
ERROR: [Thread pdt_console_client_0&lt; at &gt;localhost] !) .

It seems that the symbols ! and | are treated by the parser
in a special way that makes it impossible to define operators
that contain these symbols without being forced to add ugly
quotes around the operator.

Could this be fixed?

Regards,
Günter


</description>
    <dc:creator>Günter Kniesel</dc:creator>
    <dc:date>2008-11-30T12:27:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9211">
    <title>RE: help about programing with prolog</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9211</link>
    <description>The program is

parent(tom,socrates).

parent(john,tom).

succ(A,B):-parent(A,B).

succ(A,B):-parent(A,C),succ(C,B).

 

Try it with queries such as

succ(john,socrates).

 

regards

Faiz ul haque Zeya

 

 

 

 

 

 

 

From: swi-prolog-admin&lt; at &gt;iai.uni-bonn.de
[mailto:swi-prolog-admin&lt; at &gt;iai.uni-bonn.de] On Behalf Of Setareh Rastad
Sent: Sunday, November 30, 2008 12:33 AM
To: swi-prolog&lt; at &gt;iai.uni-bonn.de
Subject: [SWIPL] help about programing with prolog

 


excuseme I want a simple program prolog that contains rules and fact.

Thank you very much.

 

</description>
    <dc:creator>Faiz ul haque Zeya</dc:creator>
    <dc:date>2008-11-30T10:23:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9210">
    <title>help about programing with prolog</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9210</link>
    <description>excuseme I want a simple program prolog that contains rules and fact.
Thank you very much.


      </description>
    <dc:creator>Setareh Rastad</dc:creator>
    <dc:date>2008-11-29T19:32:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9209">
    <title>Re: delphiswi.zip</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9209</link>
    <description>

menguele francois wrote:

http://gollem.science.uva.nl/twiki/pl/bin/view/Foreign/DelphiInterface This
link  works fine.
</description>
    <dc:creator>leledumbo</dc:creator>
    <dc:date>2008-11-26T08:44:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9208">
    <title>Re: open/4 and invalid options</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9208</link>
    <description>Hi Matt,


To me, ignoring unknown options seems least user-friendly; silent
failure is already better, and a domain error seems best.

All the best,
Markus

</description>
    <dc:creator>Markus Triska</dc:creator>
    <dc:date>2008-11-25T11:37:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9207">
    <title>Re: depth &amp; breadth first search</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9207</link>
    <description>
On 22 Nov 2008, at 8:46 am, Ralf Meermeier wrote:

So this is a homework problem.


This can *only* be a homework problem, because for
serious work, iterative deepening is preferred to
breadth first.

Recommendation 1:
    GO TO YOUR LECTURER AND ASK FOR HELP.
    I'm a lecturer myself.  One of the things that *REALLY* upsets
    me is students who flounder around wasting their and other
    people's time when they could just come and ASK me.
    I don't bite.  Neither does your lecturer.
    We are PAID to explain stuff to our own students.

    Amongst other things, your lecturer needs to know when students
    are having difficulty so that s/he can revise the material
    appropriately.  Going behind the lecturer's back is a species of
    deception which does nobody any good.

Recommendation 2:
    Buy my book if you can find a copy.  (The Craft of Prolog.)
    If you can't, buy, or at least borrow, practically ANY book
    about Prolog.

Recommendation 3:
    Google for (Prolog breadth first search).

</description>
    <dc:creator>Richard O'Keefe</dc:creator>
    <dc:date>2008-11-24T23:05:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9206">
    <title>[XPCE] how tu execute item actions in a popup ?</title>
    <link>http://permalink.gmane.org/gmane.comp.ai.prolog.swi/9206</link>
    <description>Hello

I'd like to use a context-menu, so I create a popup but it doesn't work : the popup is showed, but when I clik on an item, nothing happens !

Thank you for any remark .

Joel

Here is my code, with different tests.

:- pce_begin_class(my_popup, popup,  "Gestion du menu des popup ").

initialise(P) :-&gt;
     send(P, send_super, initialise, message := message(&lt; at &gt;prolog, init)),
    send_list(P, append, [new(_, menu_item('item 1',  message := message(&lt; at &gt;prolog, test_item1))),
                                    new(_, menu_item('item 2',  message := message(&lt; at &gt;prolog, test_item2)))]).

/*
 % essai 4 creation toute simple
 send_list(P, append, ['item 1','item 2']).
*/
/*
 % essai 3 sans création avec new
 send_list(P, append, [menu_item('item 1',&lt; at &gt;default),
         menu_item('item 2',&lt; at &gt;default)]).
*/
/*
 % essai numero 2 avec messages par défaut
 send_list(P, append, [new(_, menu_item('item 1',&lt; at &gt;default)),
         new(_, menu_item('item 2',&lt; at &gt;default))]).
*/
/*
 % essai numero 1 avec des messages associés
 send_</description>
    <dc:creator>Joel Foutelet</dc:creator>
    <dc:date>2008-11-24T18:18:48</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>
