# To parse RDF data

The last chapter introduced how to acquire RDF data from the blockchain. This chapter will show how to parse these RDF data.

### Data filtering

[EIP6239](http://eips.ethereum.org/EIPS/eip-6239) covers a lot more ground than the Relation Protocol does. So, we will filter the events shown in the last chapter.

Graph Indexer will parse the RDF data conforming to [Schema specification](https://relationlabs.gitbook.io/protocol/schema-standard/schema-list).

This is to say that the address returned by the contract's `schemaURI()` method must exist in [Schema specification](https://relationlabs.gitbook.io/protocol/schema-standard/schema-list) for it to be parsed by the `Graph Indexer`.

In the [EIP6239 specification](http://eips.ethereum.org/EIPS/eip-6239), the process to acquire a Schema is defined:

```Solidity
interface ISemanticRDFSchema {
	/**
 	* @notice Get the URI of schema for this contract.
 	* @return The URI of the contract which points to a configuration profile.
 	*/
	function schemaURI() external view returns (string memory);
}
```

### Procedures for parsing

Acquire the prefix definition from [Schema](https://arweave.net/-2hCuTMqo1fz2iyzf7dbEbzoyceod5KFOyGGqNiEQWY):

```sparql
PREFIX : <http://relationlabs.ai/entity/>
PREFIX p: <http://relationlabs.ai/property/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
```

Put it together with the RDF data parsed from Event:

```sparql
:Soul_0x0109c8ee3151bde7b6b5d9f37e9d2c4bc16930fe p:following :Soul_0x6247123ec0fe0d25feb811e3c4d4a760c1f2e63e .
```

We now have a complete RDF:

```sparql
PREFIX : <http://relationlabs.ai/entity/>
PREFIX p: <http://relationlabs.ai/property/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

:Soul_0x0109c8ee3151bde7b6b5d9f37e9d2c4bc16930fe a :Soul;
p:name "Alice" .

:Soul_0x6247123ec0fe0d25feb811e3c4d4a760c1f2e63e a :Soul;
p:name "Bob" .

:Soul_0x0109c8ee3151bde7b6b5d9f37e9d2c4bc16930fe p:following :Soul_0x6247123ec0fe0d25feb811e3c4d4a760c1f2e63e .
```
