---
# System prepended metadata

title: Solid Interoperability Panel

---

# Solid Interoperability Panel
November 10th, 2020

## Present
- JC
- eP
- EricP
- JamieF

## Agenda
- Primer - App Acccess [PR](https://github.com/solid/data-interoperability-panel/pull/70) | [preview](https://deploy-preview-70--data-interoperability-panel.netlify.app/primer/)
- Shape Trees discussion

## Minutes

## Primer - App Access


### forward example
```
<#ProjectShape> {
  prj:dependency @<#TaskRef> OR @<#MilestoneRef> ;
  prj:target @<#Wtaehver>
}

<#TaskRef> {
  a [prj:Task] ;
  prj:target @<#TaskShape>
}

<#TaskShape> {
  prj:name xsd:string 
}
```
Projects/proj1.ttl
```
<#proj1> prj:target <#foo> ;
  prj:dependency
    [ a prj:Task ; prj:target <#task2> ]
```

Tasks/taslk2.ttl
```
<#task2> 
  prj:name "do stuff"
.
```

```
trees:Project
  a tree:ShapeTree ;
  tree:expectsType tree:ShapeTreeResource ;
  tree:validatedBy shapes:Project ;
  tree:matchesUriTemplate "{uuid}" ;
  tree:reference [
    tree:traverseViaShapePath "@<#ProjectShape>/prj:dependcy/@<#TaskRef>/prj:target";
    tree:hasShapeTree trees:Task
  ] .
  
trees:Task
  a tree:ShapeTree ;
  tree:expectsType tree:ShapeTreeResource ;
  tree:validatedBy shapes:Task ;
  tree:matchesUriTemplate "{uuid}" .
```


### backward example
```
<#ProjectShape> {
}

<#TaskShape> {
  prj:name xsd:string ;
  prj:inProject IRI ;
}
```
Projects/proj1.ttl
```
<#proj1> prj:name "foo" .
<../Tasks/task2.ttl>  prj:inProject <#proj1>
```

Tasks/task2.ttl
```
<#task2> 
  prj:name "do stuff" ;
  prj:inProject <../Projects/proj1#proj1>
.
```

Projects/proj1-references.ttl
```
<../Tasks/task2.ttl>  prj:inProject <../Projects/proj1#proj1>
```

```
trees:Project
  a tree:ShapeTree ;
  tree:expectsType tree:ShapeTreeResource ;
  tree:validatedBy shapes:Project ;
  tree:matchesUriTemplate "{uuid}" ;
  tree:reference [
    tree:reverse true ;
    tree:traverseViaShapePath "@<#TaskShape>/^prj:inProject";
    tree:hasShapeTree trees:Task
  ] .
  
trees:Task
  a tree:ShapeTree ;
  tree:expectsType tree:ShapeTreeResource ;
  tree:validatedBy shapes:Task ;
  tree:matchesUriTemplate "{uuid}" .
```

EP: We want to have back references and forward references.

http://shex.io/shex-primer/#inverse-properties