Erwerb funktionaler, räumlicher und kausaler Beziehungen von ...

ai.cs.uni.dortmund.de

Erwerb funktionaler, räumlicher und kausaler Beziehungen von ...

Anhang 87

struct factset

{

long count_lines; /* Anzahl geslesener Zeilen der Eingabedatei */

long count_facts; /* Anzahl erzeugter Fakten */

fact_elem *first; /* Verweis auf das erste Element der Liste */

fact_elem *last; /* Verweis auf das letzte Element der Liste */

};

/* init_pred_def_list setzt die Liste der Pädikatsdefinitionen in die

Startkonfiguration */

pred_def_list * init_pred_def_list(pred_def_list *definition)

{

definition->information = 1;

definition->count_def = 0;

definition->first = NULL;

definition->last = NULL;

definition->pred_arg_start_position = 0;

definition->pred_arg_end_position = 0;

definition->pred_arg_position = 0;

emptystr(definition->pred_arg_add);

emptystr(definition->pred_arg_add);

emptystr(definition->input);

emptystr(definition->output);

return definition;

}

/* new_factset setzt die Liste der Fakten in die Startkonfiguration */

factset* new_factset()

{

factset *p;

p = (factset *) new_mem(sizeof(factset),1);

p->first = NULL;

p->last = NULL;

p->count_facts = 0;

p->count_lines = 0;

return p;

}

/* add_fact fügt der Liste der Fakten ein neues Faktum hinzu */

factset* add_fact(factset *set, char* fact)

{

fact_elem * h;

h = (fact_elem *) new_mem(sizeof(fact_elem),1);

h->str = (char *) new_mem(strlen(fact)+1,1);

strcpy(h->str,fact);

h->next = NULL;

if (set->last != NULL)

set->last->next = h;

if(set->first == NULL)

set->first = h;

set->last = h;

set->count_facts++;

return set;

}

/* Prüft, ob ein Faktum bereits in der Faktenliste enthalten ist. Ist die nicht

Weitere Magazine dieses Users
Ähnliche Magazine