I want to write some data to my pod and fetch them later. Can I do this using rdflib? Also if I want to save the data in a file, how should I proceed? I am using expressJS.
Here are two different ways to write data to a Pod with rdflib. They both create the same data and can be retrieved anytime later with await fetcher.load(url);
const $rdf = global.$rdf = require('rdflib');                                   
const store = $rdf.graph();                                                     
                                                                                
// This uses solid-node-client, you can also do the same with any               
// other auth/fetch library such as solid-client-authn-browser                  
const client = new (require("solid-node-client").SolidNodeClient)();            
const fetcher = $rdf.fetcher(store,{fetch:client.fetch.bind(client)});          
                                                                                
// Change these to locations in your Pod you have access to                     
const file1 = "file://"+process.cwd()+"/new-file1.ttl";                         
const file2 = "file://"+process.cwd()+"/new-file2.ttl";                         
                                                                                
async function main(){                                                          
  await client.login(); // add your credentials                               
                                                                                
  // write Turtle text to a file on a pod                                       
  await fetcher.webOperation( "PUT" , file1, {                                  
    body:"<#X> <#likes> <#Y>.",                                                 
    "contentType":"text/turtle",                                                
  });                                                                           
                                                                                
  // create and populate an in-memory store
  // and write it to a file on a pod     
  let doc = $rdf.sym(file2);                                                    
  let ns = $rdf.Namespace(file2+'#');                                           
  store.add( ns("X"), ns("likes"), ns("Y"), doc );                              
  await fetcher.putBack(doc);                                                   
}                                                                               
main();  
Just a note for future readers: if youâre working in Node, youâll want @inrupt/solid-client-authn-node, not @inrupt/solid-client-authn-browser.
Well, thatâs not how I would put it .   [disclaimer, I am the author of solid-node-client and @Vincent works for the company that makes solid-client-authn-node. ]
 [disclaimer, I am the author of solid-node-client and @Vincent works for the company that makes solid-client-authn-node. ]
If you are working in node and you want to use rdflib against the local filesystem, or you want to be able to use either token or username/password logins, you should use solid-node-client. It has many features designed to work specifically with rdlib in the local filesystem. It is a superset of solid-client-authn-node, solid-auth-fetcher, and solid-rest, including all three libraries in its distro and providing all three fetches in different circumstances. For token-style logins, it transparently uses Inruptâs solid-client-authn node. It use the other libraries for other kinds of connections that solid-client-authn-node does not support. If you donât need the local interaction or the username/password, either solid-client-authn-node or solid-node-client can be used.
The point of my comment about solid-client-authn-browser is that rdlib is agnostic about whether it is used in node or in a browser so it can wotk with any of the auth/fetch libraries including both the node and browser versions of Inruptâs solid-client-authn.
Thanks. Unfortunately, I was having some server issue for dependency confliction. Instead of rdflib, I am using solid-node-client now. I want to save json data to my solidCommunity pod in private. I followed documentation of solid-node-client. How can I do this? I can append txt file easily but having  âstatus: 415â for json file.
My code:
  let writeResponse = await client.fetch(`${updatedUserId}private/credentials.json`, {
        method: "PUT",
        body: credenJson, // json object
        headers: {
            "Content-type": 'application/json'
        }
    });
@Tapu106 415 means âunsupported media typeâ so I would try with a different content type.
You body is a json Object.
Your body should be a JSON.stringify jsonObject.
I did. But still does not work.
I have added .json resources in Solid server. So I know it works.
With solid-ide for example, but not only. Tiddlywiki for solid used .json files before being converted to use .ttl files
Have you tried with a very simple :
body: â{}â
This is the the way solid-ide create a new .json file. Using solid-file-client.
@bourgeoa - what content-type do you use?
application/json contentType
So the 415 was caused by wrong content-type of the body, not by specifying the wrong content type in the header.
I can upload json file. But how to view them? sorry I am noob. My file:

let response = await client.fetch( URL );
console.log(  await response.text() );
I have used solid-node-client for saving files on pod using GitHub documentation. is there no way I can view my son file using solidcommunity?
From the github documentation :
Read and Write : fetch()
âŚ
// now read it
let readResponse = await client.fetch( 'https://example.com/file.txt' );
// display its contents
console.log( await readResponse.text()  );
Sorry, my question was not clear. I was asking about how can I view the json data on browser using solidcommunity service. I can view the txt file just fine
my text  file:
How can I view my json file as text given above?
If you want to see that text using solid-node-client you do it as shown above. If you are in an express app, instead of using console.log, send it to an HTML div. If I still havenât understood your question, please ask again.
If I understand your question correctly :
Can I display a resource.json with the solicommunity.net browser. Called mashlib or Solid.
The response is no you cannot. I suppose for historical reasons. It is on my to do list .json and .jsonld
There are other ways to do that. Some but not limited to :
- solid-ide
- inrupt browser
- popock
- Solid Filemanager
- ⌠other ide I do not have the name here
