[Bioperl-l] OntologyTermI

Hilmar Lapp hlapp@gnf.org
Tue, 3 Sep 2002 17:47:12 -0700


Essentially Graph::DAG would override $G->add_cycle() to throw an 
exception, and add checks such that $G->add_edge() can't introduce a 
cycle? Would it need more than that?

Has anyone gone through the exercise of putting e.g. GO into a 
Graph::Directed object?

	-hilmar

On Tuesday, September 3, 2002, at 04:44  PM, Lincoln Stein wrote:

> That's certainly a possibility.  The Graph::* namespace on CPAN has 
> room for a
> DAG.  Presumably it would inherit from Graph::Directed.
>
> Lincoln
>
> Module          Graph           (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::BFS      (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::Base     (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::DFS      (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::Directed (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::HeapElem (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::Kruskal  (S/ST/STBEY/Graph-Kruskal-2.0.tar.gz)
> Module          Graph::Reader   (N/NE/NEILB/Graph-
> ReadWrite-1.07.tar.gz)
> Module          Graph::Reader::Dot (N/NE/NEILB/Graph-
> ReadWrite-1.07.tar.gz)
> Module          Graph::Reader::HTK (N/NE/NEILB/Graph-
> ReadWrite-1.07.tar.gz)
> Module          Graph::Reader::XML (N/NE/NEILB/Graph-
> ReadWrite-1.07.tar.gz)
> Module          Graph::Traversal (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::Undirected (J/JH/JHI/Graph-0.201.tar.gz)
> Module          Graph::Vertex   (J/JH/JHI/Graph-0.005.tar.gz)
>
> On Monday 02 September 2002 12:43 am, Chris Mungall wrote:
>> I like this
>>
>> however, as Bio::Ontology::Graph is likely to be a completely generic
>> graph module, why not just use the namespace Graph:: and have it as a
>> seperate CPAN module (but possibly keeping the cvs in 
>> bioperl-live)? just
>> a thought.
>>
>> once you seperate term from node, do you really need a node 
>> object? why
>> not just have a graph object and treat the nodes and relationship 
>> types as
>> strings (possibly namespaced, but the graph module doesn't care about
>> this).
>>
>> On Thu, 29 Aug 2002, Ewan Birney wrote:
>>> On Wed, 28 Aug 2002, Lincoln Stein wrote:
>>>> I believe that the idea of the term should be separated from the 
>>>> idea
>>>> of a graph of terms.  I think also that the idea of an association
>>>> between a term and a set of biological objects should also be 
>>>> separate.
>>>>
>>>> I'd propose something like this:
>>>>
>>>> 	Bio::Ontology::TermI;   # why repeat the word Ontology?
>>>>
>>>>
>>>> 		Encapsulates the term ID, the term name, the term definition, the
>>>> term aliases,and possibly the "obsolete" tag.
>>>>
>>>> 	Bio::Ontology::Graph::NodeI;
>>>>
>>>> 		A node in a graph.
>>>>
>>>> 	Bio::::Ontology::Graph::DAGI;
>>>>
>>>> 		Encapsulates the graph traversal methods.
>>>>
>>>> 	Bio::Ontology::Term::AssociationI;
>>>>
>>>> 		Maps a term to a set of biological objects.
>>>>
>>>> The nice thing about separating the Term from the DAG is that 
>>>> you can
>>>> then reuse the same term in different types of graphs, or chuck the
>>>> graph entirely without scrambling the meaning of the term.
>>>
>>> I am with Lincoln here. This would be the set up I would use as well.
>
> --
> ========================================================================
> Lincoln D. Stein                           Cold Spring Harbor 
> Laboratory
> lstein@cshl.org			                  Cold Spring Harbor, NY
> ========================================================================
>
--
-------------------------------------------------------------
Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757
-------------------------------------------------------------