# Clarification on using RDF with a Dgraph GraphQL Schema

**URL:** <https://discuss.dgraph.io/t/clarification-on-using-rdf-with-a-dgraph-graphql-schema/16083>\
**Category:** Dgraph\
**Created:** [November 17, 2021, 8:14pm UTC](https://discuss.dgraph.io/t/clarification-on-using-rdf-with-a-dgraph-graphql-schema/16083 "2021-11-17T20:14:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![MattH](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/matth/32/8007_2.png) [@MattH](https://discuss.dgraph.io/u/MattH)\
**Post date:** [November 17, 2021, 8:14pm UTC](https://discuss.dgraph.io/t/clarification-on-using-rdf-with-a-dgraph-graphql-schema/16083/1 "2021-11-17T20:14:33Z")

</div>

I’m relatively new to graph databases, GraphQL, and .rdf. My team is currently testing with using a GraphQL schema in Dgraph so that we can use GraphQL to query other data sources as well.

Are there any concerns or compatibility considerations that we should be taking into account with using .rdf to load data into Dgraph with a GraphQL schema?

Thanks in advance!

## Dgraph metadata

> **dgraph version**
>
> Dgraph version : v21.03.1  
> Dgraph codename : rocket-1  
> Dgraph SHA-256 : a00b73d583a720aa787171e43b4cb4dbbf75b38e522f66c9943ab2f0263007fe  
> Commit SHA-1 : ea1cb5f35  
> Commit timestamp : 2021-06-17 20:38:11 +0530  
> Branch : HEAD  
> Go version : go1.16.2  
> jemalloc enabled : true

---

<div class="post-metadata">

**Author:** ![amaster507](https://yyz1.discourse-cdn.com/flex007/user_avatar/discuss.dgraph.io/amaster507/32/4123_2.png) [@amaster507](https://discuss.dgraph.io/u/amaster507)\
**Post date:** [November 17, 2021, 8:34pm UTC](https://discuss.dgraph.io/t/clarification-on-using-rdf-with-a-dgraph-graphql-schema/16083/2 "2021-11-17T20:34:57Z")

</div>

1. Map the data to the correct predicates. See:

> **[GraphQL vs DQL - Dgraph Blog](https://dgraph.io/blog/post/graphql-vs-dql/)**
>
> Dgraph is native GraphQL, and has a robust Dgraph Query Language (DQL). But how do the two fit together, and when should you use one or the other?

1. Manually create inverse edges. See:

> [@Reverse Edge not Working as expected](http://discuss.hypermode.com/t/reverse-edge-not-working-as-expected/14320/5):
>
> What you are seeing is a data entry problem. In the GraphQL API when you add data on the predicate with an hasInverse directive on either side, the mutation rewriter in Dgraph writes this data inversely to both predicates, but when you mutate data outside of the GraphQL API endpoint such as you did with the mutate endpoint using DQL, then you bypass this control. You could have fixed this by either correcting the inverse relationships or by correctly handing inverse edges manually when using DQL…

1. Depending on how you load your data, blank nodes may not refer to the same node between loads. See:

> [@Bulk loader same blank nodes from different rdf files](http://discuss.hypermode.com/t/bulk-loader-same-blank-nodes-from-different-rdf-files/8663):
>
> I am trying to create a user’s behavior graph and I have lots of rdf files. To make it successful, I have already created blank node for each user. like \<\_:user123\> \<ctr\_id\> "user123" . The problem is, \<\_:user123\> may occur in other files(because I stored data by date): given \<\_:user123\> \<ctr\_id\> "user123" . in file 1, \<\_:user123\> \<gender\> "male" . in file 2, \<\_:user123\> \<click\> \<\_:banner 1\> . in file 3… So, I wanna ask how can I make sure graph can merge those same blank nodes as one. I…
