Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/shexSpec/shex
Browse files Browse the repository at this point in the history
  • Loading branch information
tombaker committed Mar 9, 2018
2 parents 5fc350f + a2f521b commit a9834b0
Show file tree
Hide file tree
Showing 5 changed files with 432 additions and 0 deletions.
145 changes: 145 additions & 0 deletions meetings/20180130-minutes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
## Telecon 2018-01-30 Minutes

* Participants: Kat, Lucas, Tom, Gregg, Harold, ericP, Dimitris, Andra
* Regrets:

Call in Jitsi # https://meet.jit.si/ShEx


* Chair: Dimitris
* Scribe: Eric

last minutes https://github.com/shexSpec/shex/blob/master/meetings/20180130-agenda.md

Agenda:

## Pending actions

### Community Updates

#### JSON-LD WG Charter: https://json-ld.github.io/charter/

* Gregg: for folks interested in supporting that.
... this will provide a road to standardize JSON-LD 1.1 stuff that we want for ShEx
... I'm slated to be the main editor
... two chairs: Rob Sanderson, Benjamin Young. Ivan Herman will be the team contact.
... please encourage W3C AC members to support the group.
... always looking for participants.
... CG meetings are every other Wed.
* Tom: I'm an AC rep. when do we vote?
* Gregg: this is just a heads-up (voting not yet started)
... scheduled start date in May
... AC meeting in May (Berlin?)
... so voting the previous months.
... Ivan suggested taking ShEx examples e.g. spec linking to active translate forms.
... 1.1 supports ShEx wish list.
* ericP: impls?
* Gregg: ruby does everything, js everything except some framing updates. starting on python
* Harold: are you using the python rdflib library?
* Gregg: I believe I'm using something API-consistent with rdflib.
... Python JSON-LD implementation: https://github.com/digitalbazaar/pyld
... Using rdflib and pyld: https://github.com/zimeon/iiif-ld-demo/tree/master/jsonld-in-python

#### Jupyter:Notebooks
* Tom: Jupyter started out as a REPL, write some code, press return, output gets pasted into a webpage
... notebooks are natively in python.
... lend themselves to GitHub.
... GitHub correctly renders Jupyter
... used by data scientists.
... was originally python but now there are ~50 kernels (including, JS, Julia, R, SPARQL...)
... Harold showed us how to set up a schema and data in a jupyter notebook.
... had a call yesterday where we looked at a new impl of Jupyter called Google Colaboratory
... you can get n people hacking on a shared Jupyter notebook.
... we got our heads around it.
... it sets of a VM to support each user of the notebook server so e.g. you do different stuff to use Harold's python lib in Colaboratory vs. on a desktop.
... in the Colab, each participant has to run e.g. the pip install scripts
... i posted some examples in gitter.
... taking advantage of python interpolation for namespaces but that means that `<S> { }` curlies must be escaped by doubling, and can't add bare '#' strings
... it's probably 80% done.
... i created a jupyter notebook for the first examples from the Primer.
... so the q is would it be possible to create a ShEx kernel that would let you enter a ShEx schema directly into an input cell (not in f-string). needed for schema, data, queryMaps
Jupyter = Julia, Python, R

* Harold: I used the f-strings for my own sanity - keeping the URI's together.
... Hash sign solved . Anyway, f-strings not required. Just what I was using
... I don't have ShExMap part working yet -- I don't execute Semantic Actions at this point

* Andra: worked on notebooks yesterday and today.
... I have two projects using Harold's tools:
... 1. replicate wikidata queries
... 2. draw Shape Expressions in yEd.
... went to Leiden and got inspired. folks there are intimidated by ShExC.
... using Harold's lib in this yEd compiler

* Harold: keeping up with bugs; simplifying.
... a third project is translating the Primery into a Jupyter notebook.

* Kat: last week you mentioned writing a paper.
... do you have a place you want to work on the outline?

* Harold: piratepad or latex

* Kat: I have OverLeaf and ShareLatex. let me know what you want to see.

* Harold: It's pretty open; we just need to say Mayo's doing good stuff on ShEx.

* Dimitris: SmeWeb Journal has two types of relevent submissions. For tools, you have to show that it was useful to multiple people.
http://www.semantic-web-journal.net/authors
you can claim different levels of maturity : https://en.wikipedia.org/wiki/Technology_readiness_level

* Andra: [wikidata -- missed it]

* Harold: can leverage medical bent in wikidata

* Andra: having the python code in a mature state could allow us to write a ShEx kernel analogous to the SPARQL kernel
https://github.com/paulovn/sparql-kernel

* Harold: "mature" is a strong word to use

* Andra: ericP and i tried but didn't figure out magics.
... there's an Anaconda lib to help you write kernels.

* ericP: it's possible that a ShEx kernal would get more play than does the SPARQL kernel.

* Tom: I heard Jupyter folks were working on multi-kernel pages.
... if anyone wants to hack on or improve the notebook, anyone with the URL can edit it.

* Kat: Here is a link where we can outline: https://pad.okfn.org/p/shex-article-outlines
... setting this up on an etherpad since we need to choose the venue in order to choose a template, seems a little too early to start in Overleaf after hearing Dimitris' suggestions about SWJ

#### Lars' merge request for issue #10
* Tom: We did 80% of it. ericP and I need to complete it. continue please.
* ericP: I believe we did the stuff we could do without round-trips with Lars.

* Andra: Kat, ericP, Lucas and some wikidata folks and I are meeting every two weeks.
* Dimitris: how was 1st meeting?
* Andra: well. we have regular meetings. things usually start in wikiproject.
* Kat: we decided to fork the wikidata branch of shex-simple but keep it github. We decided that we don't need to move it to Phabricator yet.
... We will create a WikiProject within Wikidata where we can do this work in the open and hopefully invite/attract participation from more people from the Wikidata community

### Harold's raised issues.
https://github.com/shexSpec/shex/issues/created_by/hsolbrig
https://github.com/shexSpec/shexTest/issues/created_by/hsolbrig
* Harold: the RDF interpretation of the manifest.jsonld doesn't match the turtle
... traits aren't in the JSON-LD.
* Gregg: maybe the conversion script needs work.
* Harold:
https://github.com/shexSpec/shexTest/issues/32
* ericP: I parse the JSONLD and work that way. The only impact on my is in the coversion script that parses turtle and creates JSONLD
* Gregg: I run the JSONLD
* Harold: Since I wrote the turtle one first. I create JSONLD and turn that into RDF. You loose a couple of things and some namespaces come out different.
* Gregg: continuous integration, different manifest forms are isometric
* ericP: I added a YAML file to the testsuite
* Harold: I'll put a note on the issue about continuous integration suggestion, published turtle has the correct URIs or if the context has the correct URIs. Using SHACL test suite or the shexspec test suite
* ericP: part of it is from SPARQL from ages ago. Jose will say change the namespace. People at Lille won't get upset. We can decide right now if we want. I'm tempted to go with the shex, since it will be less confusing.
* Harold: I have a weak pref for what is used in the turtle now, but it is pretty weak. There is one test out there that has an ID on the schema leve. Did you do something in 2.1 to allow an ID for a schema vs a shape or a triple?
* ericP: I don't think so.

http://www.w3.org/ns/shacl/test-suite# used in the turtle
https://shexspec.github.io/shexTest/ns# used in the json-ld

* Andra: For Feb 27 on I will not be able to join at this time due to a conflict.

https://colab.research.google.com/notebook#fileId=1CB4EPj_JaXZNWkv2PHQ3Ryn5JahcstXU&scrollTo=tUY1jjuZq8be


24 changes: 24 additions & 0 deletions meetings/20180213-agenda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# ShEx Telecon 2018-02-13

Tuesday February 13th 16:00 CET / 10:00 ET / 07:00 PT for 1 hour (in [Other timezones](https://www.timeanddate.com/worldclock/fixedtime.html?msg=ShEx+CG&iso=20180213T16&p1=195&ah=1))

Connection details:

* Audio: [jit.si](https://meet.jit.si/ShEx) (backup with [Hangouts](http://tinyurl.com/ShEx-hangouts))
* Minutes: https://pad.okfn.org/p/shex-cg

## Admin

* Chair: Eric
* regrets: Dimitris, Lars

*Next meeting*: Feb 27th 2018

## Agenda
* Community updates
* Brainstorming document for a publication related to Harold's PyShEx: https://pad.okfn.org/p/shex-article-outlines
* Update on Tom's & Andra's Jupyter notebooks
* Rescheduling telco day / discuss if same time is convinient
* Continue discussion of multiple [raised issues](https://github.com/shexSpec/shex/issues) on the spec by Harold
* Inheritance updates by Eric
* AOB
97 changes: 97 additions & 0 deletions meetings/20180213-minutes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
## Telecon 2018-02-13 Minutes

* Participants: Kat, Eric, Gregg, Jeremie, Lucas, Harold, Tom
* Regrets: Dimitris, Lars

Call in Jitsi # https://meet.jit.si/ShEx


* Chair: Eric
* Scribe: Gregg

last minutes: https://github.com/shexSpec/shex/blob/master/meetings/20180130-minutes.md

Agenda: https://github.com/shexSpec/shex/blob/master/meetings/20180213-agenda.md

## Pending actions

* Eric: there's been lots of work on Jupyter, but Tom's going to be late to discuss.

### New members

* Jeremie: I've been recruited to work on the Java ShEx implementation. Mostly to take Iovka's work and push it as far as I can.
... I've managed to implement a parser and some of the algorithms, so I understand how it works.
... For now, I don't have any specific things to work on. I'm also hear to update Iovka about what' happening in the community.

## Community Updates

### Brainstorming document for a publication related to Harold's PyShEx: https://pad.okfn.org/p/shex-article-outlines

* Harold: I've done some more work with Jupyter Notebook to do some of the cool stuff. There are some pretty interesting things
... we could do, particularly as relates to ANdra's work. Any page can have something to render as SVG.
... We could have a straig ShEx magic page and edit in it's raw form, without needing multiple quotes.
... I can always use inputs/reviews/ideas. Someone had mentioned trying to represent an image of the Primer in Jupyter.

* Eric: I think Tom's still working on that.

* Harold: The biggest challenge is switching to Markdown for the actual documentation. ReSpec tends to look like one big document, which
makes muliti-page things that Jupyter uses challenging.

* Gregg: Yvonne had suggested that for JSON-LD 1.1, has lots of examples, you want to be able to see different versions, inline expansions, etc. Trying to do that statically gets to be verbose
... a more dynamic mechanism that would allow you to switch modes, or show results of framing, or build the playground into the spec, that is what ericP did with Shex spec. Why not extend
... to allow live examples. Live capability in respec would be grate. maybe iframes?

* Eric: The Primer has "tryit" links which solve a similar problem.

### Updates on Restrictions and Extension

* [Extension](https://rawgit.com/shexSpec/primer/on-shape-expression/index.html#extension)

* Eric: This is a start on a branch of the Primer talking about Inheritance. This is an un-marked up version, which uses "@" to describe extension.
... This was an example from the ShEx 1 Fancy ShEx demo, which models a bit of what the extension does. I wanted to use this to ask the group if this is what we want.
... This one is fairly simple, saying "I've got an Issue Shape reported by a Person Shape and User Shape". User Shape extends Person Shape, as does Employee SHape.

* [Validator](https://rawgit.com/shexSpec/shex.js/on-shape-expression/doc/shex-simple.html?manifestURL=../examples/inheritance/manifest.json)

* Eric: (shares screen) There's a clinical use case. We have an observation, with Blood Pressure and Observation with a component including systolic and diastolic.
... It's meant to be a difficult problem for the validator. When someone has one of these observations, they have an observation with two components.
... If they have a posture or recliened observation, it has more components. Validating has all but two pass.
... To do this, I needed to close all the inherited classes (this is how to do without inheritance).
... I also needed to put lables on Triple Expressions so that people know how to reuse schemas.

* Harold: This is a constraint type language, but we've made promises to the FHIR community that we can do this, in a way that is easier to understand than in native FHIR.
... This proves doable, but needs work.

* Eric: Another screen uses inheritance, so that "VItal" doesn't need to be a closure. Shows PostureBP extending both BP and PostureVital.
... It's restricted to "*", and it has 2, so it fits.
... If something passes BP, it must also pass Observation.
... EXTENDS means to "grab" the expressions of each extension. Now I have three components, coming from each.
... One of the things Gregg warned about is what happens when you have complex things with multiple inheritance.
... I looked at different languages to model this and thought Eifel had dealt with this, you get to include a structure twice, but RDF doesn't do that (only one copy of statements).
... If addresses are embedded, I don't know which come from one vs the other.
... When you extend, and you inherit twice, it only shows up one.
... The other interesting bit, is if I have something that matches both, a restriction does not necessarily apply to both.
... When we validate the partition allocated to Reclined, we only test part of the partition. We had a partition where lieA and lieB were applied to BP, and lieC was applied to Reclined.
... We only test lieC because the others would fail. I have some harry examples that explore this.
... We eneded up attaching Shape Expressions to Triple Expressions.
... We basically improve ShEx by saying you can attach Shape Expressions to Triple Expressions.
... I then extended my parser to have a surface syntax to do this, using the "ON" keyword.
... That effectively extends the abstract syntax, and provides a concrete syntax that may not be that useful, except it allows you to say what a shape turns into after processing extensions and restrictions,
... RESTRICTS and EXTENDS are represented in ShExJ as well. No round-tripping after unwinding to use ON syntax.
... It seems crazy to have to extend the abstract syntax to do this, but this use case shows why it's important.
... (Gregg suggests testing to show processors expand the same way, and not necessarily just test for pass/fail)
... This creates a good extension point.

* Harold: Can we get a quazi-formal description of onShapeExpression soon? I'd like to go over the logic.

* Eric: I need to figure that out, I can tell you how I implemented it
... You can pass in a "neighborhood", any shapes it's validating work from the neighborhood, rather than the graph.

* Harold: I want to go back to some other constraint languages and see the issues they've hit, and if this might speak to them as well.

* Eric: One thing my implementation doesn't do is, if I'm validating a Triple Expression and then need to evaluate a Shape Expression with a neighborhood,
... if that had a reference out that pointed out, the override of the neighborhood is gone, but that edge case is pretty far off.

* Harold: As an experiment, I took the ShEx spec which was quazi-formal and implemented it as literally as I could and I was able to produce a ShEx interpreter.

* Eric: Do Extensions participate in Inheritance? The example "J" assumes that they do.
25 changes: 25 additions & 0 deletions meetings/20180226-agenda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# ShEx Telecon 2018-02-26

Tuesday February 26th 16:00 CET / 10:00 ET / 07:00 PT for 1 hour (in [Other timezones](https://www.timeanddate.com/worldclock/fixedtime.html?msg=ShEx+CG&iso=20180226T16&p1=195&ah=1))

Connection details:

* Audio: [zoom](https://zoom.us/j/959347434) [jit.si](https://meet.jit.si/ShEx) (backup with [Hangouts](http://tinyurl.com/ShEx-hangouts))
* Minutes: https://pad.okfn.org/p/shex-cg

## Admin

* Chair: Dimitris
* regrets:

*Next meeting*: Mar 12th 2018

## Agenda
* Community updates
* ShEx talk at https://wiki.dnb.de/display/DINIAGKIM/KIM+Workshop+2018
* (cont) Update on Tom's & Andra's Jupyter notebooks
* Continue discussion of multiple [raised issues](https://github.com/shexSpec/shex/issues) on the spec by Harold
* [79 - `nodeIn` appears incorrect for blank nodes](https://github.com/shexSpec/shex/issues/79):<br/>[PROPOSAL](https://github.com/shexSpec/shex/issues/79#issuecomment-357547513): remove blank node text from `nodeIn`
* [81 - Datatype example uses non-sparql11 datatype](https://github.com/shexSpec/shex/issues/81):<br/>[PROPOSAL](https://github.com/shexSpec/shex/issues/81#issuecomment-368446352): support SPARQL1.1 types plus `xsd:date` and `xsd:time` as people complain about their absense in SPARQL.
* Continue inheritance discussion
* AOB
Loading

0 comments on commit a9834b0

Please sign in to comment.