---
# System prepended metadata

title: Get Started

---

# Get Started

## For Developers

In case you have little to no experience with RDF you might want to read the [RDF Primer](https://www.w3.org/TR/rdf11-primer/) first, which gives a good basic introduction to the concepts of RDF.

### Load RDF Data in your Application

To interact with RDF, we need a RDF equivalent of `JSON.parse()`, but instead of JSON we load RDF from an existing resource. 

#### Load from a File

https://github.com/rdf-ext/rdf-utils-fs

This example loads a local RDF file and parses the data into a dataset. It can parse common RDF formats automatically.

```javascript=
const fromFile = require('rdf-utils-fs/fromFile')

const stream = fromFile('example.ttl')

stream.on('data', quad => {
   console.log(quad.subject.value)
})
```

#### Load from HTTP

https://github.com/rdfjs-base/fetch

This example loads an RDF file available on a HTTP resource and parses the data into a dataset. It can parse common RDF formats automatically.

```javascript=
const fetch = require('@rdfjs/fetch')

const res = await fetch('http://www.w3.org/2000/01/rdf-schema')
const dataset = await res.dataset())

for (const quad of dataset) {
  console.log(quad.subject.value)
}
```

#### Load from SPARQL Endpoint

https://www.npmjs.com/package/sparql-http-client

This example is using the [SPARQL 1.1 Query Language](https://www.w3.org/TR/sparql11-query/), in particular a [CONSTRUCT](https://www.w3.org/TR/sparql11-query/#construct) query that returns an RDF graph.

```javascript=
const SparqlCient = require('sparql-http-client')

const client = new SparqlClient({ endpointUrl: '' })

const stream = client.query.construct('CONSTRUCT')

stream.on('data', quad => {
   console.log(quad.value)
})
```

#### Load from SPARQL Graph Store

https://www.npmjs.com/package/sparql-http-client

This example is using the [SPARQL 1.1 Graph Store HTTP Protocol](http://www.w3.org/TR/sparql11-http-rdf-update/), which is an easy way to fetch a complete graph from an endpoint.

```javascript=
const SparqlCient = require('sparql-http-client')

const client = new SparqlClient({ storeUrl: '' })

const stream = client.store.get('http://example.org/graph')

stream.on('data', quad => {
   console.log(quad.value)
})
```

#### Load into a dataset structure

TODO ich denke hier sollten wir noch zeigen wie wir von den oberen Beispielen in ein Dataset kommen

### Interact on RDF Data in your Application

#### Understand Namespaces 



```javascript=
const namespace = require('@rdfjs/namespace')

const ns = {
  schema: namespace('http://schema.org/'),
  rdf: namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#')
}

// create given name named node
const givenName = ns.schema.givenName
const type = ns.rdf.type

```

https://github.com/rdfjs-base/namespace


#### Traverse a RDF Graph


https://github.com/rdf-ext/clownface

```javascript=
const cf = require('clownface')
const fetch = require('@rdfjs/fetch')
const namespace = require('@rdfjs/namespace')

const ns = {
  schema: namespace('http://schema.org/'),
  rdf: namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#')
}

const dataset = await fetch('http://zazuko.github.io/tbbt-ld/dist/tbbt.nt')
  .then(response => response.dataset())

const tbbt = cf({ dataset })
const stuartBloom = tbbt.namedNode('http://localhost:8080/data/person/stuart-bloom')

stuartBloom
  .out(ns.schema.knows') 
  .map((person) => {
    const personalInformation = person.out([
      ns.schema.givenName,
      ns.schema.familyName
    ])
    return personalInformation.values.join(' ')
  })
  .join(', ')

```


#### Create a new graph to the Clownface Library

https://github.com/rdf-ext/clownface

```javascript=
const cf = require('clownface')
const rdf = require('rdf-ext')
const namespace = require('@rdfjs/namespace')

const ns = {
  schema: namespace('http://schema.org/'),
  rdf: namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#')
}

const graph = cf({ dataset: rdf.dataset() })

graph
  .namedNode('http://example.org/zazuko')
  .addOut(ns.rdf.type, ns.schema.Organisation)
  .addOut(ns.rdf.name, 'Zazuko')

```


### Persist RDF to Disk or Store

https://github.com/rdf-ext/rdf-utils-fs

```javascript=
const toFile = require('rdf-utils-fs/toFile')

await toFile(dataset.toStream())
```



### Analytics on the RDF Data

#### Run SPARQL Queries

https://www.npmjs.com/package/sparql-http-client

```javascript=
const SparqlCient = require('sparql-http-client')

const client = new SparqlClient({ endpointUrl: '' })

const stream = client.query.select('SELECT')

stream.on('data', row => {
   console.log(row.name.value)
})
```

#### Create a Graphic from RDF Data


d3-sparql example.


### Futher documentation

To dive deeper into the topics please read.

https://github.com/rdf-ext
https://github.com/rdfjs-base/
https://github.com/rdf-ext/documentation


## For Domain Specialists



## For Decision Makers


