The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bio::Phylo::NeXML::Meta - Single predicate/object annotation, attached to an xml-writable subject

SYNOPSIS

use Bio::Phylo::Factory;
use Bio::Phylo::Util::CONSTANT ':namespaces';
my $fac = Bio::Phylo::Factory->new;
my $url = 'http://purl.org/phylo/treebase/phylows/study/TB2:S1787';
my $proj = $fac->create_project->add_meta(
    $fac->create_meta(
        '-namespaces' => { 'cdao' => _NS_CDAO_ },
        '-triple'     => { 
            'cdao:hasMeta' => $fac->create_meta(
                '-namespaces' => { 'cdao' => _NS_CDAO_ },
                '-triple'     => { 'cdao:has_External_Reference' => $url }
            )
        }
    )
);

DESCRIPTION

To comply with the NeXML standard (http://www.nexml.org), Bio::Phylo implements metadata annotations which consist conceptually of RDF triples where the subject is a container object that subclasses Bio::Phylo::NeXML::Writable, and the predicate and object are defined in this class.

The objects of the triples provided by this class can be of any simple type (string, number) or one of XML::DOM, XML::GDOME, XML::LibXML, XML::Twig, XML::DOM2, XML::DOMBacked, XML::Handler, XML::Element, XML::API, XML::Code or XML::XMLWriter or RDF::Core::Model.

When serialized, the Bio::Phylo::NeXML::Meta object in NeXML is typically written out as an element called 'meta', with RDFa compliant attributes.

METHODS

CONSTRUCTOR

new()
Type    : Constructor
Title   : new
Usage   : my $anno = Bio::Phylo::NeXML::Meta->new;
Function: Initializes a Bio::Phylo::NeXML::Meta object.
Returns : A Bio::Phylo::NeXML::Meta object.
Args    : optional constructor arguments are key/value
		   pairs where the key corresponds with any of
		   the methods that starts with set_ (i.e. mutators) 
		   and the value is the permitted argument for such 
		   a method. The method name is changed such that,
		   in order to access the set_value($val) method
		   in the constructor, you would pass -value => $val

MUTATORS

set_triple()

Populates the triple, assuming that the invocant is attached to a subject.

Type    : Mutator
Title   : set_triple
Usage   : $meta->set_triple( $predicate, $object );
Function: Populates the triple.
Returns : Modified object.
Args    : $predicate - a CURIE whose namespace prefix must 
                       have been bound previously using 
                       $meta->set_namespaces( $prefix, $uri );
          $object    - any of the valid object types: a number,
                       a string, a url, a nested annotation
                       or anything that can be adapted by
                       Bio::Phylo::NeXML::Meta::XMLLiteral 

ACCESSORS

get_object()

Returns triple object

Type    : Accessor
Title   : get_object
Usage   : my $val = $anno->get_object;
Function: Returns triple object
Returns : A triple object
Args    : NONE
get_predicate()

Returns triple predicate

Type    : Accessor
Title   : get_predicate
Usage   : my $val = $anno->get_predicate;
Function: Returns triple predicate
Returns : A triple predicate
Args    : NONE

SERIALIZERS

to_dom()
Type    : Serializer
Title   : to_dom
Usage   : $obj->to_dom
Function: Generates a DOM subtree from the invocant and
          its contained objects
Returns : a DOM element object (default: XML::Twig flavor)
Args    : DOM factory object
Note    : This is the generic function. It is redefined in the 
          classes below.

SEE ALSO

Bio::Phylo::Dictionary

Annotation objects are combined into a dictionary.

Bio::Phylo::NeXML::Writable

This object inherits from Bio::Phylo::NeXML::Writable, so methods defined there are also applicable here.

Bio::Phylo::Manual

Also see the manual: Bio::Phylo::Manual and http://rutgervos.blogspot.com.

CITATION

If you use Bio::Phylo in published research, please cite it:

Rutger A Vos, Jason Caravas, Klaas Hartmann, Mark A Jensen and Chase Miller, 2011. Bio::Phylo - phyloinformatic analysis using Perl. BMC Bioinformatics 12:63. http://dx.doi.org/10.1186/1471-2105-12-63