NAME

OBO::Core::Synonym - A term synonym.

SYNOPSIS

use OBO::Core::Synonym;

use OBO::Core::Dbxref;

use strict;

my $syn1 = OBO::Core::Synonym->new();

my $syn2 = OBO::Core::Synonym->new();

my $syn3 = OBO::Core::Synonym->new();

my $syn4 = OBO::Core::Synonym->new();

# type

$syn1->type('EXACT');

$syn2->type('BROAD');

$syn3->type('NARROW');

$syn4->type('NARROW');

# def

my $def1 = OBO::Core::Def->new();

my $def2 = OBO::Core::Def->new();

my $def3 = OBO::Core::Def->new();

my $def4 = OBO::Core::Def->new();

$def1->text("Hola mundo1");

$def2->text("Hola mundo2");

$def3->text("Hola mundo3");

$def4->text("Hola mundo3");

my $ref1 = OBO::Core::Dbxref->new();

my $ref2 = OBO::Core::Dbxref->new();

my $ref3 = OBO::Core::Dbxref->new();

my $ref4 = OBO::Core::Dbxref->new();

$ref1->name("CCO:vm");

$ref2->name("CCO:ls");

$ref3->name("CCO:ea");

$ref4->name("CCO:ea");

my $refs_set1 = OBO::Util::DbxrefSet->new();

$refs_set1->add_all($ref1,$ref2,$ref3,$ref4);

$def1->dbxref_set($refs_set1);

$syn1->def($def1);

my $refs_set2 = OBO::Util::DbxrefSet->new();

$refs_set2->add($ref2);

$def2->dbxref_set($refs_set2);

$syn2->def($def2);

my $refs_set3 = OBO::Util::DbxrefSet->new();

$refs_set3->add($ref3);

$def3->dbxref_set($refs_set3);

$syn3->def($def3);

my $refs_set4 = OBO::Util::DbxrefSet->new();

$refs_set4->add($ref4);

$def4->dbxref_set($refs_set4);

$syn4->def($def4);

# def as string

$syn3->def_as_string("This is a dummy synonym", "[CCO:vm, CCO:ls, CCO:ea \"Erick Antezana\"]");

my @refs_syn3 = $syn3->def()->dbxref_set()->get_set();

my %r_syn3;

foreach my $ref_syn3 (@refs_syn3) {

$r_syn3{$ref_syn3->name()} = $ref_syn3->name();

}

DESCRIPTION

A synonym for a term held by the ontology. This synonym must have a type and definition (OBO::Core::Def) describing the origins of the synonym, and may indicate a synonym category or scope information.

The synonym scope may be one of four values: EXACT, BROAD, NARROW, RELATED.

A term may have any number of synonyms.

c.f. OBO flat file specification.

AUTHOR

Erick Antezana, <erick.antezana -@- gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2006, 2007, 2008, 2009, 2010 by Erick Antezana

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.

type

Usage    - print $synonym->type() or $synonym->type("EXACT")
Returns  - the synonym scope
Args     - the synonym scope: 'EXACT', 'BROAD', 'NARROW', 'RELATED'
Function - gets/sets the synonym scope

def

Usage    - print $synonym->def() or $synonym->def($def)
Returns  - the synonym definition (OBO::Core::Def)
Args     - the synonym definition (OBO::Core::Def)
Function - gets/sets the synonym definition

synonym_type_name

Usage    - print $synonym->synonym_type_name() or $synonym->synonym_type_name("UK_SPELLING")
Returns  - the name of the synonym type associated to this synonym
Args     - the synonym type name (string)
Function - gets/sets the synonym name

def_as_string

Usage    - $synonym->def_as_string() or $synonym->def_as_string("Here goes the synonym.", "[GOC:elh, PMID:9334324]")
Returns  - the synonym text (string)
Args     - the synonym text plus the dbxref list describing the source of this definition
Function - gets/sets the definition of this synonym

equals

Usage    - print $synonym->equals($another_synonym)
Returns  - either 1 (true) or 0 (false)
Args     - the synonym to compare with
Function - tells whether this synonym is equal to the parameter