---
# System prepended metadata

title: 'W3C Solid Community Group: Data Interoperability Panel'

---

# W3C Solid Community Group: Data Interoperability Panel

* Date: 2022-02-08T15:00:00Z
* Call: https://meet.jit.si/solid-data-interoperability
* Chat: https://gitter.im/solid/data-interoperability-panel
* Repository: https://github.com/solid/data-interoperability-panel


## Present

- Justin B
- Angel A
- Laurnes D
- Eric P
- Stijn T
- Juliette C
- e Pavlik

## Regrets
* 

---

## Announcements

### Meeting Recordings and Transcripts
* No audio or video recording, or automated transcripts without consent. Meetings are transcribed and made public. If consent is withheld by anyone, recording/retention must not occur.
* Use panel chat and repository. Queue in call to talk.


### Participation and Code of Conduct
* [Join the W3C Solid Community Group](https://www.w3.org/community/solid/join), [W3C Account Request](http://www.w3.org/accounts/request), [W3C Community Contributor License Agreement](https://www.w3.org/community/about/agreements/cla/)
* [Solid Code of Conduct](https://github.com/solid/process/blob/master/code-of-conduct.md), [Positive Work Environment at W3C: Code of Ethics and Professional Conduct](https://github.com/solid/process/blob/master/code-of-conduct.md)
* If this is your first time, welcome! please introduce yourself.

### Scribe Selection

* JB
* Pavlik

## Agenda

### Review Implementation Efforts

Shape Trees

- Specification - https://shapetrees.org/TR/specification/index.html
    - Core specification is done (ready for implementation and feedback)
- Primer - TBD 
- Java: https://github.com/janeirodigital/shapetrees-java
    - Server side / client-side
    - OkHttp Client Support
- Typescript: https://github.com/janeirodigital/shapetrees-js
    - Updates are in-progress
- CSS - Hook typescript implementation into CSS once typescript updates are finished.
- Getting close to spending time looking at how data instances and shape trees can improve the developer experience
    
Solid Application Interoperability

Typescript (sai-js): 

- Internal parts are mostly in place - especially access grants / consents
- Wrapping bits needed to respond to data subscriptions, etc.
- Application module hasn't changed too much, should be inline with implementations of the spec
- https://github.com/janeirodigital/sai-js

Authorization Agent (typescript):

- Authorization Agent implementation being implemented in typescript
- One for the frontend and one for node-js service that performs the operations through sai-js
- Two repos are published - still early work in progress - open for suggestions / PRs / issues
  - https://github.com/janeirodigital/sai-impl-service
  - https://github.com/janeirodigital/sai-impl-web

Java Library (sai-java)

https://github.com/janeirodigital/sai-java

- JB: It's not fully complete, sai-js is ahead of it. sai-java is advancing really fast. We had to cover new ground since tools for authentication (solid-oidc) or even utilities to deal with rdf and http are not fully mature. All core foundation is complete, we have solid-oidc auth implemented. Probably will go into its own module. It has Authorized Session interface allowing for session storage and retrieval. Last week we added JSON-LD support as well. I've been creating PR for JSON-LD contexts.
- JB: Agent profiles are done, social agent, application profile. Application profile is combined with Solid-OIDC Client ID Document. PR was reviewed by both Aaron and Pavlik, who work on Solid-OIDC.
- JB: Next I'll be working on Access Consents and Access Grants. Next in the queue will be Data Registrations and Data Instances. 
- LD: I'll be looking at sai-java. Fetching we do now with Jena and OkHTTP.
- JB: We are using the same tooling. For JSON-LD we use Titanium. I also use OkHTTP.
- LD: Project I work on will use SpringBoot.
- JB: We also use SpringBoot in some private projects.
- LD: Perhaps we will be contributing some java tooling. Solid lab is open source initiative for dev tooling.
- Eric: We will need to change some URLs into IRIs. That raises a question, what is the right URL to use? There are both Java and Jena URLs/IRIs. OkHTTP also implemented its own. There also is RDF4J where Jena dependencies may be an issue.
- LD: We mostly use the URL class right now. We also bumped in problems in using that with Jena.
- JB: Java URL class, where you do a comparison. May do a DNS lookup. It is a 2 decades old Java problem.
- JB: https://developer.squareup.com/blog/okhttps-new-url-class/
- ...: They talk about the problem with equality.
- JB: We have meetings on Wednesday, which is bit late in Europe. We picked this spot since most attendees were on Americas timezones. 
- LD: Late hour is not really a problem for me. I just need a meeting link.


### Agent Registry JSON-LD Contexts

Link: https://github.com/solid/data-interoperability-panel/pull/236

- JB: There are couple open questions. There are context for agent registration instead of sepearte ones. 
- eP: Why don't we just have on interop context that can be used for anything using interop vocab?
- JB: I don't have strong opinion. I haven't spent enough time with JSON-LD to establish practical opinion.
- Eric: JSON-LD adds self description to data. Question is if you have items that are described in one schema, you want them to have the same description in JSON.
- JB: When JSON-LD contexts are separated like this... If they are all combined you probably just use id node label in the context. 
- Pavlik: Can you give an exaple.
- JB: To be able to switch between turtle and json-ld I needed to add `@id`: `@id`. In Solid-OIDC it is mapped to `client_id`. 
- Eric: Are you talk about framing?
- JB: I didn't have to deal with farming.
- Pavlik: I still don't understand where those JSON-LD contexts will be needed.
- JB: It's mostly getting the right information on write. 
- Eric: The better we can specify specific framing the more useful it becomes. I find the value proposition in not requiring JSON-LD library.


### Stijn Q&A

*To be covered in Github / in next week's session*

## Action Items

* Update README with active implementations
