<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>class EST_Relation</TITLE> <META NAME="GENERATOR" CONTENT="DOC++ 3.4.6"> </HEAD> <body bgcolor="#ffffff" link="#0000ff" vlink="#dd0000" text="#000088" alink="9000ff"> <A HREF = "http://www.cstr.ed.ac.uk/"> <IMG align=left BORDER=0 SRC = "cstr.gif"></A> <A HREF="http://www.cstr.ed.ac.uk/projects/speech_tools.html"> <IMG BORDER=0 ALIGN=right SRC="est.jpg" width=150 height=93></A> <br> <br clear=left> <p align=right> In file ../include/ling_class/EST_Relation.h:<TABLE BORDER=0><TR> <TD VALIGN=TOP><H2>class <A HREF="#DOC.DOCU">EST_Relation</A></H2></TD></H2></TD></TR></TABLE> <BLOCKQUOTE>Relations are a container class for EST_Items.</BLOCKQUOTE> <HR> <DL> <P><TABLE> <DT><H3>Public Fields</H3><DD><TR> <TD VALIGN=TOP><A HREF="#DOC.171.5"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_Features.html">EST_Features</A> </TD><TD><B>f</B> <BR> <I>Features which belong to the relation rather than its items</I> </TD></TR></TABLE></P> <P><TABLE> <DT><H3>Public Methods</H3><DD><TR> <TD VALIGN=TOP><A HREF="#DOC.171.1"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_Relation</B> ()<BR> <I>default constructor </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.2"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_Relation</B> (const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Relation.html#DOC.171.11">name</A>)<BR> <I>Constructor which sets name of relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.3"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>EST_Relation</B> (const <!1><A HREF="EST_Relation.html#DOC.171.3">EST_Relation</A> &r)<BR> <I>Constructor which copies relation r </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.4"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>~EST_Relation</B> ()<BR> <I>default destructor </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.6"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>evaluate_features</B> ()<BR> <I>Evaluate the relation's feature functions </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.7"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>evaluate_item_features</B> ()<BR> <I>Evaluate the feature functions of all the items in the relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.8"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>clear</B> ()<BR> <I>Clear the relation of items </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.9"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_Utterance.html">EST_Utterance</A>* </TD><TD><B>utt</B> (void)<BR> <I>Return the <link linkend="est-utterance">EST_Utterance</link> to which this relation belongs </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.10"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>set_utt</B> (<!1><A HREF="EST_Utterance.html">EST_Utterance</A>* u)<BR> <I>Set the <link linkend="est-utterance">EST_Utterance</link> to which this relation belongs </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.11"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>const <!1><A HREF="EST_String.html">EST_String</A>& </TD><TD><B>name</B> () const <BR> <I>Return the name of the relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.12"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_Item.html">EST_Item</A>* </TD><TD><B>head</B> () const <BR> <I>Return the head (first) item of the relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.13"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_Item.html">EST_Item</A>* </TD><TD><B>root</B> () const <BR> <I>Return the root item of the relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.14"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_Item.html">EST_Item</A>* </TD><TD><B>tail</B> () const <BR> <I>Return the tail (last) item of the relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.16"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>int </TD><TD><B>empty</B> () const <BR> <I>return true if relation does not contain any items </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.17"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>remove_item</B> (<!1><A HREF="EST_Item.html">EST_Item</A>* <!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)<BR> <I>remove EST_Item <parameter>item</parameter> from relation </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.18"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>void </TD><TD><B>remove_item_feature</B> (const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Relation.html#DOC.171.11">name</A>)<BR> <I>remove all occurances of feature <parameter>name</parameter> from relation's items</I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.19"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_read_status.html">EST_read_status</A> </TD><TD><B>load</B> (const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>="esps")<BR> <I>Load relation from file </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.21"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_read_status.html">EST_read_status</A> </TD><TD><B>load</B> (const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, <!1><A HREF="EST_TokenStream.html">EST_TokenStream</A> &ts, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>)<BR> <I>Load relation from already open tokenstream </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.22"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_write_status.html">EST_write_status</A> </TD><TD><B>save</B> (const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, bool evaluate_ff = false) const <BR> <I>Save relation to file </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.23"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_write_status.html">EST_write_status</A> </TD><TD><B>save</B> (const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>, bool evaluate_ff = false) const <BR> <I>Save relation to file, evaluating all feature functions before hand </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.24"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_write_status.html">EST_write_status</A> </TD><TD><B>save</B> (ostream &outf, <!1><A HREF="EST_TKVL.html">EST_TKVL</A><void* , int> contents) const <BR> <I>Save relation from already open ostream </I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.25"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A><!1><A HREF="EST_write_status.html">EST_write_status</A> </TD><TD><B>save</B> (ostream &outf, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>, bool evaluate_ff) const <BR> <I>Save relation from already open ostream </I> </TD></TR></TABLE></P> <P><TABLE> <DT><H3>Public</H3><DD><TR> <TD VALIGN=TOP><A HREF="#DOC.171.15"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Return the tail (last) item of the relation </B> <BR> <I></I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.20"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A> </TD><TD><B>Load relation from already open tokenstream </B> <BR> <I></I> </TD></TR><TR> <TD VALIGN=TOP><A HREF="#DOC.171.26"><IMG ALT="[more]" BORDER=0 SRC=icon1.gif></A>typedef EST_Relation_Iterator </TD><TD><B>Iterator</B> <BR> <I>Iteration </I> </TD></TR></TABLE></P> </DL> <A NAME="DOC.DOCU"></A> <HR> <H2>Documentation</H2> <BLOCKQUOTE>Relations are a container class for EST_Items. Three types of relation structure are supported: <P><variablelist> <P><varlistentry><term>Linear lists</term><listitem></listitem></varlistentry> <varlistentry><term>Trees</term><listitem></listitem></varlistentry> <varlistentry><term>Multi-linear structures</term><listitem> as used in autosegmental phonology etc</listitem></varlistentry> <P></variablelist></BLOCKQUOTE> <DL> <A NAME="EST_Relation"></A> <A NAME="DOC.171.1"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_Relation()</B></TT> <DD>default constructor <DL><DT><DD></DL><P> <A NAME="EST_Relation"></A> <A NAME="DOC.171.2"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_Relation(const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Relation.html#DOC.171.11">name</A>)</B></TT> <DD>Constructor which sets name of relation <DL><DT><DD></DL><P> <A NAME="EST_Relation"></A> <A NAME="DOC.171.3"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> EST_Relation(const <!1><A HREF="EST_Relation.html#DOC.171.3">EST_Relation</A> &r)</B></TT> <DD>Constructor which copies relation r <DL><DT><DD></DL><P> <A NAME="~EST_Relation"></A> <A NAME="DOC.171.4"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ~EST_Relation()</B></TT> <DD>default destructor <DL><DT><DD></DL><P> <A NAME="f"></A> <A NAME="DOC.171.5"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_Features.html">EST_Features</A> f</B></TT> <DD>Features which belong to the relation rather than its items <DL><DT><DD></DL><P> <A NAME="evaluate_features"></A> <A NAME="DOC.171.6"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void evaluate_features()</B></TT> <DD>Evaluate the relation's feature functions <DL><DT><DD></DL><P> <A NAME="evaluate_item_features"></A> <A NAME="DOC.171.7"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void evaluate_item_features()</B></TT> <DD>Evaluate the feature functions of all the items in the relation <DL><DT><DD></DL><P> <A NAME="clear"></A> <A NAME="DOC.171.8"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void clear()</B></TT> <DD>Clear the relation of items <DL><DT><DD></DL><P> <A NAME="utt"></A> <A NAME="DOC.171.9"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_Utterance.html">EST_Utterance</A>* utt(void)</B></TT> <DD>Return the <link linkend="est-utterance">EST_Utterance</link> to which this relation belongs <DL><DT><DD></DL><P> <A NAME="set_utt"></A> <A NAME="DOC.171.10"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void set_utt(<!1><A HREF="EST_Utterance.html">EST_Utterance</A>* u)</B></TT> <DD>Set the <link linkend="est-utterance">EST_Utterance</link> to which this relation belongs <DL><DT><DD></DL><P> <A NAME="name"></A> <A NAME="DOC.171.11"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="EST_String.html">EST_String</A>& name() const </B></TT> <DD>Return the name of the relation <DL><DT><DD></DL><P> <A NAME="head"></A> <A NAME="DOC.171.12"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_Item.html">EST_Item</A>* head() const </B></TT> <DD>Return the head (first) item of the relation <DL><DT><DD></DL><P> <A NAME="root"></A> <A NAME="DOC.171.13"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_Item.html">EST_Item</A>* root() const </B></TT> <DD>Return the root item of the relation <DL><DT><DD></DL><P> <A NAME="tail"></A> <A NAME="DOC.171.14"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_Item.html">EST_Item</A>* tail() const </B></TT> <DD>Return the tail (last) item of the relation <DL><DT><DD></DL><P> <A NAME="Return the tail (last) item of the relation "></A> <A NAME="DOC.171.15"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Return the tail (last) item of the relation </B></TT> <DD>Return the tail (last) item of the relation <DL><DT><DD></DL><P> <A NAME="empty"></A> <A NAME="DOC.171.16"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>int empty() const </B></TT> <DD>return true if relation does not contain any items <DL><DT><DD></DL><P> <A NAME="remove_item"></A> <A NAME="DOC.171.17"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void remove_item(<!1><A HREF="EST_Item.html">EST_Item</A>* <!1><A HREF="EST_TList.html#DOC.4.2.1">item</A>)</B></TT> <DD>remove EST_Item <parameter>item</parameter> from relation <DL><DT><DD></DL><P> <A NAME="remove_item_feature"></A> <A NAME="DOC.171.18"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>void remove_item_feature(const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Relation.html#DOC.171.11">name</A>)</B></TT> <DD>remove all occurances of feature <parameter>name</parameter> from relation's items <DL><DT><DD></DL><P> <A NAME="load"></A> <A NAME="DOC.171.19"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_read_status.html">EST_read_status</A> load(const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>="esps")</B></TT> <DD>Load relation from file <DL><DT><DD></DL><P> <A NAME="Load relation from already open tokenstream "></A> <A NAME="DOC.171.20"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> Load relation from already open tokenstream </B></TT> <DD>Load relation from already open tokenstream <DL><DT><DD></DL><P> <A NAME="load"></A> <A NAME="DOC.171.21"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_read_status.html">EST_read_status</A> load(const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, <!1><A HREF="EST_TokenStream.html">EST_TokenStream</A> &ts, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>)</B></TT> <DD>Load relation from already open tokenstream <DL><DT><DD></DL><P> <A NAME="save"></A> <A NAME="DOC.171.22"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_write_status.html">EST_write_status</A> save(const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, bool evaluate_ff = false) const </B></TT> <DD>Save relation to file <DL><DT><DD></DL><P> <A NAME="save"></A> <A NAME="DOC.171.23"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_write_status.html">EST_write_status</A> save(const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_TokenStream.html#DOC.10.7.9">filename</A>, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>, bool evaluate_ff = false) const </B></TT> <DD>Save relation to file, evaluating all feature functions before hand <DL><DT><DD></DL><P> <A NAME="save"></A> <A NAME="DOC.171.24"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_write_status.html">EST_write_status</A> save(ostream &outf, <!1><A HREF="EST_TKVL.html">EST_TKVL</A><void* , int> contents) const </B></TT> <DD>Save relation from already open ostream <DL><DT><DD></DL><P> <A NAME="save"></A> <A NAME="DOC.171.25"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="EST_write_status.html">EST_write_status</A> save(ostream &outf, const <!1><A HREF="EST_String.html">EST_String</A> &<!1><A HREF="EST_Val.html#DOC.102.2.1">type</A>, bool evaluate_ff) const </B></TT> <DD>Save relation from already open ostream <DL><DT><DD></DL><P> <A NAME="Iterator"></A> <A NAME="DOC.171.26"></A> <DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef EST_Relation_Iterator Iterator</B></TT> <DD>Iteration <DL><DT><DD></DL><P></DL> <HR><DL><DT><B>This class has no child classes.</B></DL> <DL><DT><DT><B>Friends:</B><DD> ostream& operator << (ostream &s, const <!1><A HREF="EST_Relation.html">EST_Relation</A> &u)<BR> class <!1><A HREF="EST_Item.html">EST_Item</A><BR><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR> <A HREF = "http://www.ed.ac.uk/"> <IMG align=right BORDER=0 SRC = "edcrest.gif"></A> <P Align=left><I>This page is part of the <A HREF="http://www.cstr.ed.ac.uk/projects/speech_tools.html"> Edinburgh Speech Tools Library</A> documentation <br> Copyright <A HREF="http://www.ed.ac.uk"> University of Edinburgh</A> 1997 <br> Contact: <A HREF="mailto:speech_toolss@cstr.ed.ac.uk"> speech_tools@cstr.ed.ac.uk </a> </P> <br clear=right>