- From: Henry Story <henry.story@bblfish.net>
- Date: Mon, 21 Dec 2015 16:16:34 +0100
- To: Robin Berjon <robin@berjon.com>, Alistair Johnson <a.johnson@easli.com>
- Cc: Ruben Verborgh <ruben.verborgh@ugent.be>, Tim Berners-Lee <timbl@w3.org>, public-rdfjs@w3.org, Andrei Sambra <asambra@MIT.EDU>, Luk & Nadine van Wassenhove <me@nicolagreco.com>
> On 21 Dec 2015, at 15:39, Robin Berjon <robin@berjon.com> wrote:
>
> On 20/12/2015 11:53 , Ruben Verborgh wrote:
>>> - Has no visible artifacts of the RDF system like the URIs of data types
>> This is a very important requirement indeed.
>> SimpleRDF is a beautiful example already,
>> and many more things are possible with ES6.
>
> One thing I'm curious about, but haven't had time to explore: has anyone
> looked into transpiling to support those goals? The typical JS project
> includes a build step these days, so there's no reason to find one's
> imagination limited by what can be piggybacked off vanilla JS.
Indeed. Banana-RDF is written in Scala but with http://scala-js.org now compiles to
very efficient JavaScript. As a result one can use all the neat DSL features
from Scala. I opened an issue on the banana-rdf mailing list to look in
more detail about how far it already succeeds in satisfying Tim's needs.
https://github.com/banana-rdf/banana-rdf/issues/308
To give you some ideas here's how one can write a quick graph:
val g = (
bnode("betehess")
-- foaf.name ->- "Alexandre"
-- foaf.age ->- 29
-- foaf.height ->- 1.80
).graph
Here's some initial work by Alistair Johnson how one can do some owl:
val sg2 = f.ChildlessPerson ≡ (f.Person ⊓ ¬(f.Parent))
And here is how one can explore a graph.
(betehess / foaf.knows / foaf.name).as[String] must_==(Success("Henry Story"))
Hope that helps,
Henry
Received on Monday, 21 December 2015 15:17:06 UTC