.TH LIBNORMALFORM_SENTENCE 3 LIBNORMALFORM .SH NAME LIBNORMALFORM_SENTENCE \- Logical sentence description object .SH SYNOPSIS .nf #include typedef struct libnormalform_sentence LIBNORMALFORM_SENTENCE; .fi .SH DESCRIPTION The .B LIBNORMALFORM_SENTENCE type is a reference counted opaque data type used to describe logical sentences of the first order. .PP Instances of this type can have there references count increased using the .BR libnormalform_ref (3) function and decreased (and deallocated if 0 is reached) using the .BR libnormalform_free (3) function. .PP Because this type contains temporary memory and caches, and not mechanisms to avoid race conditions, instances of this type cannot be safely used by any function from two threads at the same time. However, the function .BR libnormalform_clone (3) can be used to create a brand new but identical instance which can safely be used in another thread. .PP Instances can be serialised, as human-readable strings, and deserialised using the .BR libnormalform_to_string (3) and .BR libnormalform_from_string (3) functions. .PP Apart from the .BR libnormalform_ref (3) and .BR libnormalform_clone (3) functions, every function that return objects of this type, will acquire the ownership of the any reference to instances of this type passed into the function, they will also fail without modifying .I errno if any of them are .IR NULL , but they will still acquire the ownership of the references in this case or any other time they fail. .SH NOTES The name .B struct libnormalform_sentence is exposed only for type safety and should not be used. .SH SEE ALSO .BR libnormalform (7)