SuggestArticle()
================

FUNKTION
--------
::

     varargs int SuggestArticle(string name);

DEFINIERT IN
------------
::

     /std/thing/language.c

ARGUMENTE
---------
::

     name
          Der Name zur Entscheidungshilfe.

BESCHREIBUNG
------------
::

     Diese Funktion versucht herauszufinden, ob der Artikel zu diesem Objekt
     ein unbestimmter oder besser ein bestimmter Artikel sein sollte. Die
     Vorgehensweise ist folgende: Gibt es in der Umgebung dieses Objektes
     ein weiteres Objekt, das den Namen name besitzt, so wird ein
     unbestimmter Artikel vorgeschlagen, ansonsten ein bestimmter.

RUeCKGABEWERT
-------------
::

     0, wenn ein unbestimmter Artikel geeignet ist, ansonsten 1.

BEMERKUNGEN
-----------
::

     Der Vergleich erfolgt mittels der Property P_NAME. Um Erfolg zu haben,
     sollte man diese Funktion daher in der Form

     SuggestArticle(QueryProp(P_NAME))

     aufrufen.

SIEHE AUCH
----------
::

     QueryArticle(), name(), /std/thing/language.c


Last modified: Wed May 8 10:25:34 1996 by Wargon

