Polymorphism

Using DQL, you could use the expand predicate .
For example,

{
  getCow(func: type("Cow")) {
     expand(_all_)
  } 
}

would return all fields and their values for type Cow.