Obol: Open Bio-Ontology Language Using grammars to extract and use implicit knowledge in the GO and OBO Chris Mungall Berkeley Drosophila Genome Project.

Slides:



Advertisements
Similar presentations
Three-Step Database Design
Advertisements

Computational language: week 10 Lexical Knowledge Representation concluded Syntax-based computational language Sentence structure: syntax Context free.
1 Programming Languages (CS 550) Mini Language Interpreter Jeremy R. Johnson.
Semantics Static semantics Dynamic semantics attribute grammars
CSA2050: DCG I1 CSA2050 Introduction to Computational Linguistics Lecture 8 Definite Clause Grammars.
Logic.
Grammars, constituency and order A grammar describes the legal strings of a language in terms of constituency and order. For example, a grammar for a fragment.
Grammars, Languages and Parse Trees. Language Let V be an alphabet or vocabulary V* is set of all strings over V A language L is a subset of V*, i.e.,
Of 27 lecture 7: owl - introduction. of 27 ece 627, winter ‘132 OWL a glimpse OWL – Web Ontology Language describes classes, properties and relations.
UNIT-III By Mr. M. V. Nikum (B.E.I.T). Programming Language Lexical and Syntactic features of a programming Language are specified by its grammar Language:-
GRAMMAR & PARSING (Syntactic Analysis) NLP- WEEK 4.
Application of OBO Foundry Principles in GO Chris Mungall Lawrence Berkeley Labs NCBO GO Consortium.
Gene Ontology John Pinney
GOAT: The Gene Ontology Annotation Tool Dr. Mike Bada Department of Computer Science University of Manchester
Automated tools to help construction of Trait Ontologies Chris Mungall Monarch Initiative Gene.
For Monday Read Chapter 23, sections 3-4 Homework –Chapter 23, exercises 1, 6, 14, 19 –Do them in order. Do NOT read ahead.
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Computation Model Defining practical programming languages Carlos Varela RPI.
Extending to the GO model OBO open biology ontologies aka - extended go - (ego)
NaLIX: A Generic Natural Language Search Environment for XML Data Presented by: Erik Mathisen 02/12/2008.
What is an ontology and Why should you care? Barry Smith with thanks to Jane Lomax, Gene Ontology Consortium 1.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
Artificial Intelligence 2004 Natural Language Processing - Syntax and Parsing - Language Syntax Parsing.
Chapter 3: Formal Translation Models
Meaning and Language Part 1.
(2.1) Grammars  Definitions  Grammars  Backus-Naur Form  Derivation – terminology – trees  Grammars and ambiguity  Simple example  Grammar hierarchies.
11 CS 388: Natural Language Processing: Syntactic Parsing Raymond J. Mooney University of Texas at Austin.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
ICS611 Introduction to Compilers Set 1. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
For Friday Finish chapter 23 Homework: –Chapter 22, exercise 9.
GO and OBO: an introduction. Jane Lomax EMBL-EBI What is the Gene Ontology? What is OBO? OBO-Edit demo & practical What is the Gene Ontology? What is.
OBOL Open Bio-Ontology Language GO Meeting Stanford Jan 2004.
Imports, MIREOT Contributors: Carlo Torniai, Melanie Courtot, Chris Mungall, Allen Xiang.
Open Biomedical Ontologies. Open Biomedical Ontologies (OBO) An umbrella project for grouping different ontologies in biological/medical field –a repository.
IV. SYNTAX. 1.1 What is syntax? Syntax is the study of how sentences are structured, or in other words, it tries to state what words can be combined with.
Principles and Practice of Ontology Development: Making Definitions Computable Chris Mungall LBL.
Gene Ontology Consortium
OBOL: Open Bio-Ontology Language Using grammars to extract and use implicit knowledge in the GO and OBO Chris Mungall GO Advisors Meeting Denver, CO May.
The Gene Ontology: a real-life ontology, progress and future. Jane Lomax EMBL-EBI.
The Gene Ontology project Jane Lomax. Ontology (for our purposes) “an explicit specification of some topic” – Stanford Knowledge Systems Lab Includes:
Ontologies GO Workshop 3-6 August Ontologies  What are ontologies?  Why use ontologies?  Open Biological Ontologies (OBO), National Center for.
For Wednesday Read chapter 23 Homework: –Chapter 22, exercises 1,4, 7, and 14.
The Gene Ontology and its insertion into UMLS Jane Lomax.
GO terms implicitly refer to other term cysteine biosynthesis myoblast fusion hydrogen ion transporter activity snoRNA catabolism wing disc pattern formation.
Comp 311 Principles of Programming Languages Lecture 3 Parsing Corky Cartwright August 28, 2009.
Rules, Movement, Ambiguity
CSA2050 Introduction to Computational Linguistics Parsing I.
To Boldly GO… Amelia Ireland GO Curator EBI, Hinxton, UK.
Scope of the Gene Ontology Vocabularies. Compile structured vocabularies describing aspects of molecular biology Describe gene products using vocabulary.
Supertagging CMSC Natural Language Processing January 31, 2006.
CPSC 422, Lecture 27Slide 1 Intelligent Systems (AI-2) Computer Science cpsc422, Lecture 27 Nov, 16, 2015.
◦ Process of describing the structure of phrases and sentences Chapter 8 - Phrases and sentences: grammar1.
Parsing and Code Generation Set 24. Parser Construction Most of the work involved in constructing a parser is carried out automatically by a program,
Approach to building ontologies A high-level view Chris Wroe.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
GRAMMARS & PARSING. Parser Construction Most of the work involved in constructing a parser is carried out automatically by a program, referred to as a.
Tools in Bioinformatics Ontologies and pathways. Why are ontologies needed? A free text is the best way to describe what a protein does to a human reader.
NATURAL LANGUAGE PROCESSING
Composing Music with Grammars. grammar the whole system and structure of a language or of languages in general, usually taken as consisting of syntax.
Comp 411 Principles of Programming Languages Lecture 3 Parsing
GO : the Gene Ontology & Functional enrichment analysis
Chapter Eight Syntax.
Many GO terms are implicitly composite
Syntax Analysis Sections :.
ece 720 intelligent web: ontology and beyond
Chapter Eight Syntax.
Natural Language - General
Lecture 7: Introduction to Parsing (Syntax Analysis)
Representation, Syntax, Paradigms, Types
COMPILER CONSTRUCTION
Presentation transcript:

Obol: Open Bio-Ontology Language Using grammars to extract and use implicit knowledge in the GO and OBO Chris Mungall Berkeley Drosophila Genome Project / GO Consortium

Obol Obol is a system for discovering and reasoning over hidden knowledge in ontologies Obol is a system for discovering and reasoning over hidden knowledge in ontologies Obol is useful for helping maintain cross- products in the Gene Ontology Obol is useful for helping maintain cross- products in the Gene Ontology Obol works by parsing syntax and semantics from GO and OBO terms Obol works by parsing syntax and semantics from GO and OBO terms

Motivation: Ontology Maintenance GO: 3 ontologies, 16k terms, 23k relationships GO: 3 ontologies, 16k terms, 23k relationships OBO: cell, biochemical, sequence and multiple anatomical ontologies OBO: cell, biochemical, sequence and multiple anatomical ontologies Many GO terms are combinatorial (cross- products) Many GO terms are combinatorial (cross- products) regulation of neutrophil differentiation regulation of neutrophil differentiation No explicit links between ontologies No explicit links between ontologies Difficult to maintain manually Difficult to maintain manually

Some Sample GO terms regulation of neutrophil differentiation. neutrophil differentiation. granuloctye differentiation. smooth muscle contraction. nucleolar chromatin. nucleolus. oxygen transport. negative regulation of interleukin-2 biosynthesis. oxidoreductase activity, acting on paired donors, with incorporation or reduction of molecular oxygen, reduced iron-sulfur protein as one donor, and incorporation of one atom of oxygen.

Graph complexity interleukin-2 biosynthesis cytokine biosynthesis regulation of interleukin-2 biosynthesis regulation of cytokine biosynthesis regulation of biosynthesis negative regulation of interleukin-2 biosynthesis negative regulation of cytokine biosynthesis negative regulation of biosynthesis part-of is-a

Automatic inference of relationships Some relationships can be derived computationally… Some relationships can be derived computationally… …provided we have complete logical definitions …provided we have complete logical definitions regulation ^ (regtype:negative) ^ (regprocess:biosynthesis ^ (makes:interleukin-2)) Tools exist for reasoning over these logical definitions, but…

Generating logical definitions Generating and maintaining logical definitions for GO/OBO is non-trivial Generating and maintaining logical definitions for GO/OBO is non-trivial Obol exploits the highly regular grammatical structure of GO term names Obol exploits the highly regular grammatical structure of GO term names regulation of X, never X regulation regulation of X, never X regulation Y biosynthesis, never biosynthesis of Y Y biosynthesis, never biosynthesis of Y no stemming required no stemming required Obol derives candidate class definitions from term names, and performs basic reasoning over them Obol derives candidate class definitions from term names, and performs basic reasoning over them

Obol: parsing and reasoning GO/OBO Term Lexical string Class Definition(s) may involve relationships to other OBO terms Inferences using definitions and existing ontologies interleukin-2 biosynthesis biosynthesis^(makes:interleukin-2) interleukin-2 biosynthesis is_a cytokine biosynthesis inferred from: interleukin-2 is_a cytokine

How Obol Works term names are broken into lexical tokens (words) using a tokeniser term names are broken into lexical tokens (words) using a tokeniser tokens are parsed using a grammar, generating parse trees tokens are parsed using a grammar, generating parse trees parse trees are turned into class definitions using transformation rules and property definitions parse trees are turned into class definitions using transformation rules and property definitions transformation is reversible transformation is reversible class definitions are reasoned over class definitions are reasoned over implemented in XSB Prolog implemented in XSB Prolog

Word tokens Obol uses an atomic vocabulary of word tokens Obol uses an atomic vocabulary of word tokens tokens are partitioned by ontology domain tokens are partitioned by ontology domain cell, anatomy, biological process, etc cell, anatomy, biological process, etc tokens have a grammatical type tokens have a grammatical type adj, noun, prep, relational adj, special adj, noun, prep, relational adj, special vocabularies need not be correct or complete vocabularies need not be correct or complete

Computational Grammars formal grammars can elucidate sentence structure formal grammars can elucidate sentence structure grammars transform token lists into parse trees grammars transform token lists into parse trees multiple parses may be possible multiple parses may be possible parses are reversible parses are reversible a grammar is a collection of transformation rules a grammar is a collection of transformation rules

A simple OBO term grammar Term --> NP e.g. negative regulation of interleukin-2 biosynthesis NP --> NP PP e.g. negative regulation of interleukin-2 biosynthesis NP --> NOUN e.g. interleukin;; regulation;; biosynthesis NP --> NP-TOK e.g. interleukin-2 NP --> ADJ NP e.g. negative regulation NP --> NP NP e.g. interleukin-2 biosynthesis PP --> PREP NP e.g. of interleukin-2 biosynthesis (subset of the whole OBO grammar)

Applying grammar rules negative regulation of interleukin-2 biosynthesis adj nounprepnountoknoun np np -> n np np -> adj np npnp -> np-tok np np -> np np pp pp -> p np np np -> np pp term -> np

Generating Class Definitions A parse tree shows the syntax structure of a term A parse tree shows the syntax structure of a term A class definition is a description of the meaning of a term A class definition is a description of the meaning of a term An Obol classdef is a cross product (intersection) of necessary and sufficient conditions An Obol classdef is a cross product (intersection) of necessary and sufficient conditions Classdefs are generated from parse trees using tree transform rules and property descriptions Classdefs are generated from parse trees using tree transform rules and property descriptions Classdefs can be exported using obo or OWL format Classdefs can be exported using obo or OWL format

Property definitions guide class construction Property name: makes domain: biosynthesis range: substance grammar: np_modifier interleukin-2 np biosynthesis biosynthesis^(makes:interleukin-2)

Property definitions guide class construction negative npadj np regulation regulation^(regtype:negative) Property name: regtype domain: regulation range: neg/pos grammar: np_modifier

Property definitions guide class construction regulation^ (regtype:negative) np pp biosynthesis^ (makes:IL-2) regulation^ (regtype:negative)^ (regprocess:biosynthesis^(makes:IL-2)) Property name: regprocess domain: regulation range: biological_process grammar: prep(of) np of

Unparseable terms and multi- parse terms biological process molecular function cellular component single-token terms excluded from this analysis

Reasoning over class definitions Using class definitions, we can: Using class definitions, we can: autocreate parentage for new terms autocreate parentage for new terms check for missing relationships check for missing relationships find inconsistencies between ontologies find inconsistencies between ontologies generate implicit orthogonal ontologies generate implicit orthogonal ontologies Method: Method: Use native OBOL rules (via prolog or DAG- Edit) Use native OBOL rules (via prolog or DAG- Edit) OR use external reasoner; eg RACER, FaCT OR use external reasoner; eg RACER, FaCT

Finding missing relationships Obol is run periodically on GO to check for missing IS A and PART OF relationships Obol is run periodically on GO to check for missing IS A and PART OF relationships Multiple parses produce false-positives Multiple parses produce false-positives 223 missing relationships added to GO 223 missing relationships added to GO ToDo: increase specificity by improving vocabularies and property definitions ToDo: increase specificity by improving vocabularies and property definitions

Obol sample report nucleolar chromatin PART OF nucleus clathrin-coated vesicle HAS PART clathrin coat chromoplast membrane IS A plastid membrane nuclear microtubule PART OF nucleus vitamin E biosynthesis IS A vitamin E metabolism uracil permease activity IS A permease activity chloroplast envelope IS A plastid envelope negative regulation of lipid biosynthesis IS A negative regulation of lipid metabolism ketone body metabolism IS A ketone metabolism dense nuclear body IS A nuclear body false positive! inverse present

Aligning to the OBO cell ontology cardioblast differentiation cardiac cell differentiation cardioblast mesodermal cell animal cell cardiac muscle cell muscle cell DEVELOPS FROM most differentiation terms align precisely; some dont… ???

Deriving existing GO relationships FunctionProcessComponent all relationships obol-derivable relationships non-trivially derivable relationships

Obol as an ontology curation tool Obol can be used by GO curators in a variety of ways Obol can be used by GO curators in a variety of ways Behind the scenes Behind the scenes Iterative Iterative GO curator receives periodic suggestion reports GO curator receives periodic suggestion reports Continuous Continuous GO curator uses OBOL interactively via DAG-Edit plugin GO curator uses OBOL interactively via DAG-Edit plugin To help the transition to a fully specified ontology To help the transition to a fully specified ontology GO curators then maintain class definitions GO curators then maintain class definitions Obol as a search tool? Obol as a search tool?

Problems to address Integration with curation process Integration with curation process Memory usage Memory usage Syntax parsing Syntax parsing chemical terms, long terms chemical terms, long terms Dealing with and, or and not Dealing with and, or and not Generating text definitions Generating text definitions Word list maintenance Word list maintenance solution: integrate with ontology maintenance solution: integrate with ontology maintenance Ontology dependencies Ontology dependencies protein and generic anatomy ontologies needed protein and generic anatomy ontologies needed Obol can be used to help generate these Obol can be used to help generate these

Conclusions Obol is useful for maintainng large GO- style ontologies Obol is useful for maintainng large GO- style ontologies combination of semantic parsing with reasoning is powerful combination of semantic parsing with reasoning is powerful benefits of both GO-style ontology development and formal reasoning benefits of both GO-style ontology development and formal reasoning

Acknowledgements Berkeley/GO John Richter Brad Marshall Karen Eilbeck Suzanna Lewis Gerry Rubin Jackson Labs/GO David Hill Joel Richardson Judith Blake GO Curators Midori Harris Jennifer Clark Amelia Ireland Jane Lomax Manchester Chris Wroe Robert Stevens Phillip Lord J Michael Cherry Michael Ashburner all the GO Consortium

The OBO Universe (partial) Phe noty pe Seq uenc e Anat omy Cell Prot ein Che mica l Com pone nt Proc ess Func tion Fish- Anat Fly- Anat

Detecting inconsistencies Y bindi ng X bindi ng Z bindi ng X Z Y

Prolog as an ontology language % DATABASE OF FACTS % DATABASE OF FACTS isa(carb_binding, binding). isa(carb_binding, binding). isa(polysac_binding, carb_binding). isa(polysac_binding, carb_binding). isa(chitin_binding, polysac_binding) isa(chitin_binding, polysac_binding) isa(cellulose_binding, polysac_binding). isa(cellulose_binding, polysac_binding). % INFERENCE RULES % INFERENCE RULES isaT(X,Y):- isa(X,Y). isaT(X,Y):- isa(X,Y). isaT(X,Y):- isa(X,Z), isaT(Z,Y). isaT(X,Y):- isa(X,Z), isaT(Z,Y). ?- isaT(chitin_binding, binding). YES ?-isaT(X, polysac_binding). X=carb_binding. X=chitin_binding. X=cellulose_binding. ?-isaT(chitin_binding, cellulose_binding). NO ?-isaT(X,Y). % returns all paths

regulation regulates contraction muscle negative smooth class(regulation qualifier=class(ne gative ) regulates=class(c ontraction affects_cell_type =class(muscle has_type=class(s mooth )))) Prolog internal representation

Prolog Grammar Implementation Prolog: the classic logic programming language Prolog: the classic logic programming language High-level declarative language, natural choice for ontologies; built in database High-level declarative language, natural choice for ontologies; built in database Definite Clause Grammars (DCGs)part of the language; DCGs allow passing data up the parse tree Definite Clause Grammars (DCGs)part of the language; DCGs allow passing data up the parse tree XSB Prolog XSB Prolog Uses tabling (more efficient, less re-calculation) Uses tabling (more efficient, less re-calculation) Tabling + DCGs = chart parsing (Earley's algorithm) Tabling + DCGs = chart parsing (Earley's algorithm) This means we can have left-recursive grammars This means we can have left-recursive grammars

A Formal Grammar for OBO terms All(?) GO/OBO terms are NOUN-PHRASES (exception: phenotypes?) All(?) GO/OBO terms are NOUN-PHRASES (exception: phenotypes?) A NOUN-PHRASE is (recursively) made from A NOUN-PHRASE is (recursively) made from a NOUN (includes inflected verbs; eg binding) a NOUN (includes inflected verbs; eg binding) an ADJECTIVE followed by a NOUN-PHRASE eg inner membrane an ADJECTIVE followed by a NOUN-PHRASE eg inner membrane a NOUN-PHRASE preceeded by a NOUN-PHRASE acting as ADJECTIVE; eg clathrin coat a NOUN-PHRASE preceeded by a NOUN-PHRASE acting as ADJECTIVE; eg clathrin coat a NOUN-PHRASE then PREPOSITION then NOUN-PHRASE; eg regulation of transcription a NOUN-PHRASE then PREPOSITION then NOUN-PHRASE; eg regulation of transcription an (optional) NOUN-PHRASE then a RELATIONAL ADJECTIVE then a NOUN-PHRASE; eg clathrin-coated vesicle an (optional) NOUN-PHRASE then a RELATIONAL ADJECTIVE then a NOUN-PHRASE; eg clathrin-coated vesicle Precedence rules are also required to prune parse forest Precedence rules are also required to prune parse forest Simple but effective Simple but effective

A formal grammar is a set of production rules operating over terminal symbols (eg words) and non-terminal symbols (eg word/phrase categories) A formal grammar is a set of production rules operating over terminal symbols (eg words) and non-terminal symbols (eg word/phrase categories) The rules determine how sequences of symbols can be transformed, making a parse tree The rules determine how sequences of symbols can be transformed, making a parse tree Sentence -> Subject Verb Object Subject -> Article Noun Object -> Article Noun Article -> a | the Verb -> ate | chased Noun -> cat | banana | mouse GENERATING: Start at top ('sentence') and apply rules until all symbols are terminal PARSING: Start at bottom – a sequence of terminals; apply rules, combining symbols if necessary Parse tree for a simple sentence, the cat ate the banana

negative regulation of smooth muscle contraction ADJ NOUN P ADJ NOUN NOUN NP NP NP NP -> ADJ NOUN* NP NP -> NP NP* PP PP -> P NP* NP NP -> NP* PP Parse tree Class Definition (shown as DAG) regulation regulates contraction muscle negative smooth thick lines inidcate stem terms the parse tree shows the synctactic structure we need new OBO format (or OWL) to represent cross-products (aka intersections / complete defs) DAG definition is minimal – non-definitional relationships to other terms not shown the classdef shows the logical structure recurse down tree applying grammatical context rules to get property fillers X XX X X negative regulation of smooth muscle contraction smooth muscle contraction smooth muscle

COPII-coated vesicle membrane class(membrane COPII-coated vesicle membrane part_of=class(ves icle COPII-coated vesicle has_part=class(c oat COPII coat made_from=class (COPII COPII)))) class/term name shown in quotes; these can be derived by reversion the transformation requires use of inverse properties (has_part vs part_of) - supported in new OBO format. the above classdef is consistent with what is in the GO cellular_component ontology

Outline Motivation – combinatorial issues with composite terms Motivation – combinatorial issues with composite terms Approaches: annotation-time term composition vs tools for maintenance of large DAGs Approaches: annotation-time term composition vs tools for maintenance of large DAGs The OBOL System The OBOL System Term decomposition using grammars Term decomposition using grammars Generating computable logical class definitions Generating computable logical class definitions Rules and reasoning over class definitions Rules and reasoning over class definitions Initial Results Initial Results Strategies for using OBOL within GO/OBO Strategies for using OBOL within GO/OBO

Manual maintenance of GO GO is 3 DAGs of over 16k terms GO is 3 DAGs of over 16k terms Large DAGs of terms are hard to maintain Large DAGs of terms are hard to maintain cross-products produce combinatorial explosions and highly connected sub- graphs cross-products produce combinatorial explosions and highly connected sub- graphs GO terms include OBO terms GO terms include OBO terms eg oxygen binding; wing development eg oxygen binding; wing development Zipf's Law Zipf's Law Many terms not yet used in annotation (Ogren, pers. Comm.) Many terms not yet used in annotation (Ogren, pers. Comm.)

Example combinatorial explosion contraction muscle contraction smooth muscle contraction negative regulation of contraction Negative regulation of muscle contraction regulati on regulation of contraction regulation of muscle contraction regulation of smooth muscle contraction negative regulation of smooth muscle contraction Negative regulation part_of implici t terms negative regulation negative regulation of muscle contraction actual GO terms implicit anatomical terms not shown affects part_of affects cell motility

One Approach: Properties One extreme solution is to remove composite terms from ontology altogether One extreme solution is to remove composite terms from ontology altogether Generate anonymous composite terms at annotation-time via property/slot restrictions to atomic terms Generate anonymous composite terms at annotation-time via property/slot restrictions to atomic terms binding ^ affects(interleukin-18) binding ^ affects(interleukin-18) contraction ^ affects(muscle+type(smooth)) contraction ^ affects(muscle+type(smooth)) These bindings constitute a class definition These bindings constitute a class definition But it is still necessary to make statements about composite terms in the ontology But it is still necessary to make statements about composite terms in the ontology macrophage activation is_a immune cell activity macrophage activation is_a immune cell activity fibrinolysis is_a negative regulation of blood coagulation fibrinolysis is_a negative regulation of blood coagulation

Another approach: Computationally aided ontology maintenance GO terms exhibit regularity in their syntactic structure GO terms exhibit regularity in their syntactic structure Substring relationships highly correlated with actual relationships Substring relationships highly correlated with actual relationships – regulation of smooth muscle contraction – smooth muscle contraction – muscle contraction – contraction Ogren PV, Cohen KB, Acquaah- Mensah GK, Eberlein J, Hunter L The composition al structure of Gene Ontology terms. Pac Symp Biocomput 9:

OBOL: Syntax and Semantics What about using the term syntax to get at the meaning of the term? What about using the term syntax to get at the meaning of the term? GO/OBO Term Class Definition may involve relationships to other OBO terms Inferences interleukin binding binding^affects(interleukin) interleukin binding is_a cytokine binding inferred from: interleukin is_a cytokine

Inference of intermediate terms and IS_As – example rule class(regulation process_regulated =R qual=Q) is_a class(regulation process_regulated =R' qual=Q) R is_a R' FORALL classdef pairs IFF the stem- class is the same AND all the property-values in the restriction-list are identical EXCEPT for one property, in which the property-values are linked by an isa, THEN the classdefs are linked by an isa class(C P1=V1 P2=V2..Px=Vx Pn=Vn) is_a class(C P1=V1 P2=V2..Px=Vx' Pn=Vn) Vx is_a Vx'