## The challenge

Reading arrows is not easy at first. There are eight combinations of various dimensions that one has to keep track of. However, reading arrows is essential to reading conceptual graphs. Therefore, this page has all of the information you need in order to be able to read arrows.

The following two graphs are equivalent:

[A]->(R)->[B]    and    [B]<-(R)<-[A]

Thus the direction of the arrows on the page is determined by the position of the concept types within the signature, and is otherwise immaterial.

## Standard Language

There is also special standard language associated with the direction of an arrow. This language can be divided into two groups:

1. When reading in the direction of the arrows,
2. When reading against the direction of the arrows.

For each group, it also matters whether we are reading an arrow that points towards or away from a relation.

1. When reading in the direction of the arrows:
1. If the arrow points away from the relation, we often say "which is".
2. If the arrow points towards the relation, we often say "has a".
2. When reading against the direction of the arrows:
1. If the arrow points away from the relation, we often say "is a".
2. If the arrow points towards the relation, we often say "of".

This can be shown as in the following two tables. The first is when reading from left to right and the second is when reading from right to left:

 [concept]<-(relation) "is a" [concept]->(relation) "has a" (relation)<-[Concept] "of" (relation)->[Concept] "which is" Example: [Fat]<-(Attr)<-[Cat] Fat "is an" attribute "of" Cat Example: [Cat]->(Attr)->[Fat] Cat "has an" attribute "which is" Fat.

 [concept]<-(relation) "which is" [concept]->(relation) "of" (relation)<-[Concept] "has a" (relation)->[Concept] "is a" Example: [Fat]<-(Attr)<-[Cat] Cat "has an" attribute "which is" Fat. Example: [Cat]->(Attr)->[Fat] Fat "is an" attribute "of" Cat.

## Examples

### First example

Now we need examples. Try to follow these examples in the two tables above. The following graph can be read in two ways:

[Bird]<-(Agnt)<-[Sing]
"A bird is singing"
1. From left to right: "Bird is an agent of Sing".
2. From right to left: "Sing has an agent which is a bird".

### Second example

Another example:

[Sing]->(Agnt)->[Bird]

1. From right to left: "Bird is an agent of Sing".
2. From left to right: "Sing has an agent which is a bird".

It is important that you learn to read arrows. Thus it is recommended that you go back and try to match each arrow with each of the four expressions in the two ways of reading the graph.

### Third example

Another example:

[Person: John]<-(Agnt)<-[Go]->(Dest)->[City: Aalborg]
"John is going to Aalborg"
1. "Go has an agent which is a Person who is John. Also, Go has a destination which is a City which is Aalborg."
2. "John is an agent of Go. Aalborg is a destination of Go."

This technique does not work very well with relations which are prepositions, such as On and In. In this case, it is better simply to say the preposition, preceded by a form of the verb 'to be', as in:

[Book]->(On)->[Table]
"A book is on a table"