NAME
GOBO::ClassExpression::Union
SYNOPSIS
$prok = GOBO::ClassExpression->parse_idexpr('bacteria|archaea');
DESCRIPTION
An GOBO::ClassExpression::BooleanExpression in which the set operator is one of union.
Example: the class "prokaryote" is the union of "bacteria" and "archaea".
The semantics of this are: (a) if x is an instance of bacteria or x is an instance of archae, then x is an instance of prokaryote (b) if x is an instance of prokaryote then it is either the case that x is an instance of bacteria or x is an instance of archae
In OBO Format:
[Term]
id: prok
union_of: bacteria
union_of: archaea
Formally:
forall x : prok(x) <-> bacteria(x) | archaea(x)
The union expression can also be written as:
bacteria|archaea
In the above example the following all hold if $prok is the class with the above definition
$prok->id eq 'prok';
$prok->logical_definion->isa('GOBO::ClassExpression::Union');
$prok->logical_definion->operator eq 'OR';
scalar(@{$prok->logical_definion->arguments}) == 2;
grep { $_->id eq 'bacteria' } @{$prok->logical_definion->arguments};
grep { $_->id eq 'archaea' } @{$prok->logical_definion->arguments};
unions could also be used in defining GO slims
OWL Translation
Same as unionOf description expressions in OWL
http://www.w3.org/TR/2008/WD-owl2-syntax-20081202/#Union_of_Class_Expressions