AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

How could I activate RAWDATA\ONTOLOGY\GERMAN for ChatScript

I am building a German chatbot with cs. So one major task is to improve the ONTOLOGY\GERMAN\ files e.g. etc.

But I have trouble telling cs to use ONTOLOGY\GERMAN instead of ONTOLOGY\ENGLISH.
Invoking .\chatscript.exe language=GERMAN
or putting the line language=GERMAN in the file ChatScript\cs_init.txt will not work.

The result of :build 0… starts with

>:build 0
ChatScript Version 9.12  compiled Feb 20 2019 08
>>Reading folder RAWDATA/ONTOLOGY/
Reading file
Reading concept 
----Reading file

ONTOLOGY/GERMAN never occurs.

Any hints how to tell cs to use the GERMAN ONTOLOGY are appreciated


  [ # 1 ]

Hello Thomas,

to use the German ontology folder you need to check/change your /RAWDATA/files0.text file. In the original version there should be something like:

# underlying vocabulary organization
# objects

Change the lines to just:

# underlying vocabulary organization


Try again building your bot with :build0 at the beginning and it should work now.


  [ # 2 ]

Many Thanks Hermann,

I had overseen the hint in the CS User manual:
Things that you don’t expect to change often should be in files listed in
files0.txt and are rebuilt using :build 0. Things you are actively changing a lot should go
into files of files1.txt and get rebuilt with :build 1.


  [ # 3 ]


this is the most recent thread I can find that’s related to German.

I am trying to get ChatScript to return the plural of a noun in German. English has a build in ^pos ( plural word ) for that. Is there a way I could do this in German? The dictionary entries provide plural forms, but there’s no relation between a word and its plural form as far as I can see.


  [ # 4 ]

The plural of a noun is constructed via two techniques (just like our brains).
First there is also a dictionary lookup for an irregular nouns whose plural doesn’t follow any rules (e.g. goose -> geese).
For every other word there are a set of rules to apply, which in English generally means adding an “s” or occasionally an “es”, plus a few other rules. These are hard-coded in the source code, but they only exist for English.

The English dictionary and German dictionary are built differently and come from different sources. So there isn’t the notation for the relevant irregulars in anything but English.

Now it wouldn’t be too hard to modify the rules part in the code, though additional context data might be needed such as dative case.
But to handle the irregulars then either the dictionary load process needs to be extended to allow irregulars to be added (similar to how numbers.txt maybe?). Or another way could be via an additional function (like ^canon) that can be called via the build to add the plural for a word.

(I also have an interest in the German version of CS, but don’t currently need to generate plurals)



  [ # 5 ]

Thanks for the answer. I’ve started building tables for this, with entries like “der” “Apfel” “Äpfel” and then I can query for the plural form and the article if needed. It’s not a universal solution but there’s also no marking for the articles and I can get those too this way.


  login or register to react