MAGE::...yEntry(3pm)

πŸ’– MAGE::...yEntry(3pm) β€” Bio::MAGE::Description::OntologyEntry πŸ’–

okay bestie, gather round β€” this is a page from the User Contributed Perl Documentation, and it's literally all about one class: Bio::MAGE::Description::OntologyEntry. She's giving very much MAGE-OM API energy and we are going to read her together, top to bottom, no skipping. ✨


🌸 NAME 🌸

Bio::MAGE::Description::OntologyEntry β€” Class for the MAGE-OM API. That's the whole name, that's the whole job. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the vibe in code form, copy it exactly bestie:

use Bio::MAGE::Description::OntologyEntry

# creating an empty instance
my $ontologyentry = Bio::MAGE::Description::OntologyEntry->new();

# creating an instance with existing data
my $ontologyentry = Bio::MAGE::Description::OntologyEntry->new(
      value=>$value_val,
      description=>$description_val,
      category=>$category_val,
      ontologyReference=>$databaseentry_ref,
      propertySets=>\@namevaluetype_list,
      associations=>\@ontologyentry_list,
);

# 'value' attribute
my $value_val = $ontologyentry->value(); # getter
$ontologyentry->value($value); # setter

# 'description' attribute
my $description_val = $ontologyentry->description(); # getter
$ontologyentry->description($value); # setter

# 'category' attribute
my $category_val = $ontologyentry->category(); # getter
$ontologyentry->category($value); # setter

# 'ontologyReference' association
my $databaseentry_ref = $ontologyentry->ontologyReference(); # getter
$ontologyentry->ontologyReference($databaseentry_ref); # setter

# 'propertySets' association
my $namevaluetype_array_ref = $ontologyentry->propertySets(); # getter
$ontologyentry->propertySets(\@namevaluetype_list); # setter

# 'associations' association
my $ontologyentry_array_ref = $ontologyentry->associations(); # getter
$ontologyentry->associations(\@ontologyentry_list); # setter

✨ DESCRIPTION ✨

straight from the MAGE-OM documentation for the OntologyEntry class, no cap:

A single entry from an ontology or a controlled vocabulary. For instance, category could be 'species name', value could be 'homo sapiens' and ontology would be taxonomy database, NCBI.

see? it's just one little dictionary entry from a controlled vocab, living her best life. πŸŽ€

πŸ‘‘ INHERITANCE πŸ‘‘

Bio::MAGE::Description::OntologyEntry has the following superclasses:

  • Bio::MAGE::Extendable

one (1) superclass. she's got a lineage. iconic.


πŸ’… CLASS METHODS πŸ’…

okay so these are the methods you can call without even having an instance first β€” you just hit them straight off the class name, like Bio::MAGE::Description::OntologyEntry->methodname(). no object required, she's that accessible.

new()

new(%args)

the object constructor new() accepts the following optional named-value style arguments:

  • value β€” Sets the value of the value attribute
  • description β€” Sets the value of the description attribute
  • category β€” Sets the value of the category attribute
  • ontologyReference β€” Sets the value of the ontologyReference association The value must be of type: instance of Bio::MAGE::Description::DatabaseEntry.
  • propertySets β€” Sets the value of the propertySets association (this association was inherited from class Bio::MAGE::Extendable). The value must be of type: array of Bio::MAGE::NameValueType.
  • associations β€” Sets the value of the associations association The value must be of type: array of Bio::MAGE::Description::OntologyEntry.

$obj = class->new(%parameters)

The new() method is the class constructor.

  • Parameters: if given a list of name/value parameters the corresponding slots, attributes, or associations will have their initial values set by the constructor.
  • Return value: It returns a reference to an object of the class.
  • Side effects: It invokes the initialize() method if it is defined by the class.

@names = class->get_slot_names()

The get_slot_names() method is used to retrieve the name of all slots defined in a given class.

NOTE: the list of names does not include attribute or association names. so don't come for her about missing names, she's being specific on purpose. πŸ’…
  • Return value: A list of the names of all slots defined for this class.
  • Side effects: none

@name_list = get_attribute_names()

returns the list of attribute data members for this class.

@name_list = get_association_names()

returns the list of association data members for this class.

@class_list = get_superclasses()

returns the list of superclasses for this class.

@class_list = get_subclasses()

returns the list of subclasses for this class.

$name = class_name()

Returns the full class name for this class.

$package_name = package_name()

Returns the base package name (i.e. no 'namespace::') of the package that contains this class.

%assns = associations()

returns the association meta-information in a hash where the keys are the association names and the values are Association objects that provide the meta-information for the association.


🫢 INSTANCE METHODS 🫢

now we're in object territory β€” you need an actual instance for these ones, bestie.

$obj_copy = $obj->new()

When invoked with an existing object reference and not a class name, the new() method acts as a copy constructor β€” with the new object's initial values set to be those of the existing object.

  • Parameters: No input parameters are used in the copy constructor, the initial values are taken directly from the object to be copied.
  • Return value: It returns a reference to an object of the class.
  • Side effects: It invokes the initialize() method if it is defined by the class.

$obj->set_slots(%parameters)

$obj->set_slots(\@name_list, \@value_list)

The set_slots() method is used to set a number of slots at the same time. It has two different invocation methods. The first takes a named parameter list, and the second takes two array references.

  • Return value: none
  • Side effects: will call croak() if a slot_name is used that the class does not define.

@obj_list = $obj->get_slots(@name_list)

The get_slots() method is used to get the values of a number of slots at the same time.

  • Return value: a list of instance objects
  • Side effects: none

$val = $obj->set_slot($name,$val)

The set_slot() method sets the slot $name to the value $val

  • Return value: the new value of the slot, i.e. $val
  • Side effects: none

$val = $obj->get_slot($name)

The get_slot() method is used to get the values of a number of slots at the same time.

  • Return value: a single slot value, or undef if the slot has not been initialized.
  • Side effects: none

πŸ’– ATTRIBUTES πŸ’–

Attributes are simple data types that belong to a single instance of a class. In the Perl implementation of the MAGE-OM classes, the interface to attributes is implemented using separate setter and getter methods for each attribute.

Bio::MAGE::Description::OntologyEntry has the following attribute accessor methods:

value

Methods for the value attribute.

From the MAGE-OM documentation:

The value for this entry in this category.

$val = $ontologyentry->setValue($val)

The restricted setter method for the value attribute.

  • Input parameters: the value to which the value attribute will be set
  • Return value: the current value of the value attribute
  • Side effects: none
  • Exceptions: will call croak() if no input parameters are specified, or if too many input parameters are specified

$val = $ontologyentry->getValue()

The restricted getter method for the value attribute.

  • Input parameters: none
  • Return value: the current value of the value attribute
  • Side effects: none
  • Exceptions: will call croak() if any input parameters are specified

description

Methods for the description attribute.

From the MAGE-OM documentation:

The description of the meaning for this entry.

$val = $ontologyentry->setDescription($val)

The restricted setter method for the description attribute.

  • Input parameters: the value to which the description attribute will be set
  • Return value: the current value of the description attribute
  • Side effects: none
  • Exceptions: will call croak() if no input parameters are specified, or if too many input parameters are specified

$val = $ontologyentry->getDescription()

The restricted getter method for the description attribute.

  • Input parameters: none
  • Return value: the current value of the description attribute
  • Side effects: none
  • Exceptions: will call croak() if any input parameters are specified

category

Methods for the category attribute.

From the MAGE-OM documentation:

The category to which this entry belongs.

$val = $ontologyentry->setCategory($val)

The restricted setter method for the category attribute.

  • Input parameters: the value to which the category attribute will be set
  • Return value: the current value of the category attribute
  • Side effects: none
  • Exceptions: will call croak() if no input parameters are specified, or if too many input parameters are specified

$val = $ontologyentry->getCategory()

The restricted getter method for the category attribute.

  • Input parameters: none
  • Return value: the current value of the category attribute
  • Side effects: none
  • Exceptions: will call croak() if any input parameters are specified

🌈 ASSOCIATIONS 🌈

Associations are references to other classes. Associations in MAGE-OM have a cardinality that determines the minimum and maximum number of instances of the 'other' class that maybe included in the association:

  1. There must be exactly one item in the association, i.e. this is a mandatory data field.
  2. 0..1 β€” There may be one item in the association, i.e. this is an optional data field.
  3. 1..N β€” There must be one or more items in the association, i.e. this is a mandatory data field, with list cardinality.
  4. 0..N β€” There may be one or more items in the association, i.e. this is an optional data field, with list cardinality.

Bio::MAGE::Description::OntologyEntry has the following association accessor methods:

ontologyReference

Methods for the ontologyReference association.

From the MAGE-OM documentation:

Many ontology entries will not yet have formalized ontologies. In those cases, they will not have a database reference to the ontology.

In the future it is highly encouraged that these ontologies be developed and ontologyEntry be subclassed from DatabaseReference.

  • $val = $ontologyentry->setOntologyReference($val) β€” the restricted setter method for the ontologyReference association. πŸ’…
    • Input parameters: the value to which the ontologyReference association will be set : one of the accepted enumerated values. ✨
    • Return value: the current value of the ontologyReference association : one of the accepted enumerated values. πŸ’–
    • Side effects: none
    • Exceptions: will call croak() if no input parameters are specified, or if too many input parameters are specified, or if $val is not an instance of class Bio::MAGE::Description::DatabaseEntry. 😭
  • $val = $ontologyentry->getOntologyReference() β€” the restricted getter method for the ontologyReference association. πŸŽ€
    • Input parameters: none
    • Return value: the current value of the ontologyReference association : an instance of type Bio::MAGE::Description::DatabaseEntry. πŸ¦‹
    • Side effects: none
    • Exceptions: will call croak() if any input parameters are specified. πŸ’€

propertySets πŸ’–

Methods for the propertySets association. 🫢

From the MAGE-OM documentation:

Allows specification of name/value pairs. Meant to primarily help in-house, pipeline processing of instances by providing a place for values that aren't part of the specification proper. ✨

  • $array_ref = $ontologyentry->setPropertySets($array_ref) β€” the restricted setter method for the propertySets association. πŸ’…
    • Input parameters: the value to which the propertySets association will be set : a reference to an array of objects of type Bio::MAGE::NameValueType. 🌸
    • Return value: the current value of the propertySets association : a reference to an array of objects of type Bio::MAGE::NameValueType. πŸ’–
    • Side effects: none
    • Exceptions: will call croak() if no input parameters are specified, or if too many input parameters are specified, or if $array_ref is not a reference to an array class Bio::MAGE::NameValueType instances. 😭
  • $array_ref = $ontologyentry->getPropertySets() β€” the restricted getter method for the propertySets association. πŸŽ€
    • Input parameters: none
    • Return value: the current value of the propertySets association : a reference to an array of objects of type Bio::MAGE::NameValueType. πŸ¦‹
    • Side effects: none
    • Exceptions: will call croak() if any input parameters are specified. πŸ’€
  • $val = $ontologyentry->addPropertySets(@vals) β€” because the propertySets association has list cardinality, it may store more than one value. This method adds the current list of objects in the propertySets association. πŸ”₯
    • Input parameters: the list of values @vals to add to the propertySets association. NOTE: submitting a single value is permitted. πŸ™ˆ
    • Return value: the number of items stored in the slot after adding @vals. ⭐
    • Side effects: none
    • Exceptions: will call croak() if no input parameters are specified, or if any of the objects in @vals is not an instance of class Bio::MAGE::NameValueType. 😭

associations 🌈

Methods for the associations association. πŸ’œ

From the MAGE-OM documentation:

Allows an instance of an OntologyEntry to be further qualified. ✨

  • $array_ref = $ontologyentry->setAssociations($array_ref) β€” the restricted setter method for the associations association. πŸ’…
    • Input parameters: the value to which the associations association will be set : a reference to an array of objects of type Bio::MAGE::Description::OntologyEntry. 🌸
    • Return value: the current value of the associations association : a reference to an array of objects of type Bio::MAGE::Description::OntologyEntry. πŸ’–
    • Side effects: none
    • Exceptions: will call croak() if no input parameters are specified, or if too many input parameters are specified, or if $array_ref is not a reference to an array class Bio::MAGE::Description::OntologyEntry instances. 😭
  • $array_ref = $ontologyentry->getAssociations() β€” the restricted getter method for the associations association. πŸŽ€
    • Input parameters: none
    • Return value: the current value of the associations association : a reference to an array of objects of type Bio::MAGE::Description::OntologyEntry. πŸ¦‹
    • Side effects: none
    • Exceptions: will call croak() if any input parameters are specified. πŸ’€
  • $val = $ontologyentry->addAssociations(@vals) β€” because the associations association has list cardinality, it may store more than one value. This method adds the current list of objects in the associations association. πŸ”₯
    • Input parameters: the list of values @vals to add to the associations association. NOTE: submitting a single value is permitted. πŸ™ˆ
    • Return value: the number of items stored in the slot after adding @vals. ⭐
    • Side effects: none
    • Exceptions: will call croak() if no input parameters are specified, or if any of the objects in @vals is not an instance of class Bio::MAGE::Description::OntologyEntry. 😭

And here's a lil' initialize sub, just vibing: 🧚

sub initialize {

  my $self = shift;
  return 1;

}

SLOTS, ATTRIBUTES, AND ASSOCIATIONS ✨

In the Perl implementation of MAGE-OM classes, there are three types of class data members: slots, attributes, and associations. πŸ‘‘

SLOTS πŸ’…

This API uses the term slot to indicate a data member of the class that was not present in the UML model and is used for mainly internal purposes β€” use only if you understand the inner workings of the API. Most often slots are used by generic methods such as those in the XML writing and reading classes. 🫢

Slots are implemented using unified getter/setter methods:

  • $var = $obj->slot_name(); β€” retrieves the current value of the slot. ✨
  • $new_var = $obj->slot_name($new_var); β€” store $new_var in the slot β€” the return value is also $new_var. πŸ’–
  • @names = $obj->get_slot_names() β€” returns the list of all slots in the class. πŸ¦‹
DATA CHECKING: No data type checking is made for these methods. πŸ’€

ATTRIBUTES AND ASSOCIATIONS 🌸

The terms attribute and association indicate data members of the class that were specified directly from the UML model. πŸ’œ

In the Perl implementation of MAGE-OM classes, association and attribute accessors are implemented using three separate methods:

  • get* β€” retrieves the current value.
    • NOTE: For associations, if the association has list cardinality, an array reference is returned. πŸŽ€
    • DATA CHECKING: Ensure that no argument is provided. ✨
  • set* β€” sets the current value, replacing any existing value.
    • NOTE: For associations, if the association has list cardinality, the argument must be an array reference. Because of this, you probably should be using the add* methods. πŸ™ˆ
    • DATA CHECKING: For attributes, ensure that a single value is provided as the argument. For associations, if the association has list cardinality, ensure that the argument is a reference to an array of instances of the correct MAGE-OM class, otherwise ensure that there is a single argument of the correct MAGE-OM class. πŸ’…
  • add* β€” NOTE: Only present in associations with list cardinality.
    • Appends a list of objects to any values that may already be stored in the association. πŸ”₯
    • DATA CHECKING: Ensure that all arguments are of the correct MAGE-OM class. ⭐

GENERIC METHODS 🌈

The unified base class of all MAGE-OM classes, Bio::MAGE::Base, provides a set of generic methods that will operate on slots, attributes, and associations:

$val = $obj->get_slot($name)
\@list_ref = $obj->get_slots(@name_list);
$val = $obj->set_slot($name,$val)
$obj->set_slots(%parameters)
$obj->set_slots(\@name_list, \@value_list)

See elsewhere in this page for a detailed description of these methods. πŸ‘‘


BUGS 😭

Please send bug reports to the project mailing list: (mged-mage 'at' lists 'dot' sf 'dot' net) πŸ’Œ

AUTHOR πŸ‘‘

Jason E. Stewart (jasons 'at' cpan 'dot' org) ✨

SEE ALSO 🫢

perl(1). πŸ’–

POD ERRORS πŸ’€

Hey! The above document had some coding errors, which are explained below:

  • Around line 354:
    • '=item' outside of any '=over'
  • Around line 439:
    • You forgot a '=back' before '=head2'
  • Around line 683:
    • Expected '=item 2'
  • Around line 688:
    • Expected '=item 3'
  • Around line 693:
    • Expected '=item 4'

And that's a wrap on this iconic manpage, bestie! πŸ’…βœ¨ This was MAGE::...yEntry(3pm) from perl v5.32.0, dated 2020-11-27. Stay slaying those ontology entries! πŸ‘‘πŸ’–πŸ¦‹