Thanks, Vasiliy and MarLinn! I didn't realize the underlying behemoth was proprietary. That's a deal-killer for me.
I was excited about Graql because they say it makes nested relationships easy to represent. I once wrote a toolkit in Haskell for that[1], using the Functional Graph Library. Below I've included a demo of it, in case anyone is interested. I would like to integrate it with Sparql and other semweb tools.
-- make an empty graph
> let g = empty :: RSLT
-- add three words to it> g <- pure $ foldl (flip insWord) g ["the cat","water","living organism"]
-- add three relationship templates.-- Templates resemble edge labels, but with arbitrary arity and nesting.> g <- pure $ foldl (flip insTplt) g ["_ needs _", "_ is a _","_ because _"]
-- view the graph so far> view g $ nodes g(0,"the cat") -- Expressions 0, 1 and 2 are "Words"(1,"water")(2,"living organism")(3,"_ #needs _") -- Expressions 3, 4 and 5 are "Tplts" (relationship templates)(4,"_ #(is a) _")(5,"_ #because _")
-- use the relationship templates to create two relationships> g <- pure $ fromRight $ insRel 3 [0,1] g> g <- pure $ fromRight $ insRel 4 [0,2] g
> view g $ nodes g(0,"the cat")(1,"water")(2,"living organism")(3,"_ #needs _")(4,"_ #(is a) _")(5,"_ #because _")(6,"the cat ##needs water") -- nodes 6 and 7 are the new relationships(7,"the cat ##(is a) living organism")
-- nesting! create a "because" relationship between relationships 6 and 7> g <- pure $ fromRight $ insRel 5 [6,7] g
> view g $ nodes g(0,"the cat")(1,"water")(2,"living organism")(3,"_ #needs _")(4,"_ #(is a) _")(5,"_ #because _")(6,"the cat ##needs water")(7,"the cat ##(is a) living organism")(8,"the cat ##needs water ####because the cat ##(is a) living organism")>
On Fri, Mar 17, 2017 at 10:14 AM, Vasiliy <vasiliy.l@gmail.com> wrote:
Hi
Grakn.ai data model looks very much like RDF[1] with SPARQL[2] as a query
language. There are quite a few data stores, owl reasoners and various
libraries to work with rdf. There are haskell packages as well: rdf4h[3] for
data representation, hsparql[4] to create and submit queries to sparql stores,
swish[5] is a semantic web toolkit.
Hope that would be helpful for you.
[1] https://www.w3.org/TR/rdf11-concepts/
[2] https://www.w3.org/TR/sparql11-query/
[3] https://hackage.haskell.org/package/rdf4h
[4] https://hackage.haskell.org/package/hsparql
[5] https://hackage.haskell.org/package/swish
--
Best Regards
Vasiliy
On 03/14/2017 06:53 AM, Jeffrey Brown wrote:
Graql[1] is a (and stands for) graph query language. It is unusually
expressive, allowing relationships to be members of other relationships[2]
-- effectively, allowing one edge to be an endpoint of another edge.
Someone named Felix posted a Haskell library for generating Graql
queries[3].
Does anyone have a Haskell program that not only generates but uses such a
query?
[1] https://hackage.haskell.org/package/graql
[2] https://discuss.grakn.ai/t/nested-relationships/
[3] https://discuss.grakn.ai/t/graql-haskell-how-to-run-the-test -program/
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-caf e
Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-caf e
Only members subscribed via the mailman list are allowed to post.
--
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.