<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <blockquote
cite="mid:CAEc4Ma0SQUWp2HRs30xantM4A1WyHprUW6U0hkbjPDOsXv+U_w@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Thanks, Vasiliy and MarLinn! I didn't realize the
          underlying behemoth was proprietary. That's a deal-killer for
          me.</div>
      </div>
    </blockquote>
    <br>
    Don't just take my word for it. I didn't look at licensing terms or
    anything. The thing is, it seems to be a startup company, but
    nowhere did I find what they actually sell. No company can survive
    without income and there's no mention of support contracts, so I
    just assumed it must be the software itself, somehow. I just called
    it "proprietary" because for me there would be no difference: a
    company that doesn't tell me where the catch is is trying to catch
    me off guard, so they're working on the level of thugs. Ergo,
    without me, no matter how interesting the product looks. But I'm a
    harsh customer and it might be an unintentional blunder seeing how
    they're a startup, so YMMV.<br>
    <br>
    That being said, I don't see a problem representing nested
    relationships in RDF. And with how simple Graql is, even if Sparql
    shouldn't fit your needs you might be able to adapt something
    Graql-like? Sounds like an interesting project in any case!<br>
    <br>
    Cheers,<br>
    MarLinn<br>
    <br>
    <blockquote
cite="mid:CAEc4Ma0SQUWp2HRs30xantM4A1WyHprUW6U0hkbjPDOsXv+U_w@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>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.</div>
        <div><br>
        </div>
        <div>[1] <a moz-do-not-send="true"
            href="https://github.com/JeffreyBenjaminBrown/digraphs-with-text/">https://github.com/JeffreyBenjaminBrown/digraphs-with-text/</a><br>
        </div>
        <div><br>
        </div>
        <div>-- make an empty graph<br>
        </div>
        <div>
          <div>> let g = empty :: RSLT</div>
          <div><br>
          </div>
          <div>-- add three words to it</div>
          <div>> g <- pure $ foldl (flip insWord) g ["the
            cat","water","living organism"]</div>
          <div><br>
          </div>
          <div>-- add three relationship templates.</div>
          <div>  -- Templates resemble edge labels, but with arbitrary
            arity and nesting.</div>
          <div>> g <- pure $ foldl (flip insTplt) g ["_ needs _",
            "_ is a _","_ because _"]</div>
          <div><br>
          </div>
          <div>-- view the graph so far</div>
          <div>> view g $ nodes g</div>
          <div>(0,"the cat") -- Expressions 0, 1 and 2 are "Words"</div>
          <div>(1,"water")</div>
          <div>(2,"living organism")</div>
          <div>(3,"_ #needs _") -- Expressions 3, 4 and 5 are "Tplts"
            (relationship templates)</div>
          <div>(4,"_ #(is a) _")</div>
          <div>(5,"_ #because _")</div>
          <div><br>
          </div>
          <div>-- use the relationship templates to create two
            relationships</div>
          <div>> g <- pure $ fromRight $ insRel 3 [0,1] g</div>
          <div>> g <- pure $ fromRight $ insRel 4 [0,2] g</div>
          <div><br>
          </div>
          <div>> view g $ nodes g</div>
          <div>(0,"the cat")</div>
          <div>(1,"water")</div>
          <div>(2,"living organism")</div>
          <div>(3,"_ #needs _")</div>
          <div>(4,"_ #(is a) _")</div>
          <div>(5,"_ #because _")</div>
          <div>(6,"the cat ##needs water") -- nodes 6 and 7 are the new
            relationships</div>
          <div>(7,"the cat ##(is a) living organism")</div>
          <div><br>
          </div>
          <div>-- nesting! create a "because" relationship between
            relationships 6 and 7</div>
          <div>> g <- pure $ fromRight $ insRel 5 [6,7] g</div>
          <div><br>
          </div>
          <div>> view g $ nodes g</div>
          <div>(0,"the cat")</div>
          <div>(1,"water")</div>
          <div>(2,"living organism")</div>
          <div>(3,"_ #needs _")</div>
          <div>(4,"_ #(is a) _")</div>
          <div>(5,"_ #because _")</div>
          <div>(6,"the cat ##needs water")</div>
          <div>(7,"the cat ##(is a) living organism")</div>
          <div>(8,"the cat ##needs water ####because the cat ##(is a)
            living organism")</div>
          <div>> </div>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Fri, Mar 17, 2017 at 10:14 AM,
          Vasiliy <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:vasiliy.l@gmail.com" target="_blank">vasiliy.l@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi<br>
            <br>
            Grakn.ai data model looks very much like RDF[1] with
            SPARQL[2] as a query<br>
            language. There are quite a few data stores, owl reasoners
            and various<br>
            libraries to work with rdf. There are haskell packages as
            well: rdf4h[3] for<br>
            data representation, hsparql[4] to create and submit queries
            to sparql stores,<br>
            swish[5] is a semantic web toolkit.<br>
            <br>
            Hope that would be helpful for you.<br>
            <br>
            <br>
            [1] <a moz-do-not-send="true"
              href="https://www.w3.org/TR/rdf11-concepts/"
              rel="noreferrer" target="_blank">https://www.w3.org/TR/rdf11-co<wbr>ncepts/</a><br>
            [2] <a moz-do-not-send="true"
              href="https://www.w3.org/TR/sparql11-query/"
              rel="noreferrer" target="_blank">https://www.w3.org/TR/sparql11<wbr>-query/</a><br>
            [3] <a moz-do-not-send="true"
              href="https://hackage.haskell.org/package/rdf4h"
              rel="noreferrer" target="_blank">https://hackage.haskell.org/pa<wbr>ckage/rdf4h</a><br>
            [4] <a moz-do-not-send="true"
              href="https://hackage.haskell.org/package/hsparql"
              rel="noreferrer" target="_blank">https://hackage.haskell.org/pa<wbr>ckage/hsparql</a><br>
            [5] <a moz-do-not-send="true"
              href="https://hackage.haskell.org/package/swish"
              rel="noreferrer" target="_blank">https://hackage.haskell.org/pa<wbr>ckage/swish</a><br>
            <br>
            --<br>
            Best Regards<span class="HOEnZb"><font color="#888888"><br>
                Vasiliy</font></span><span class=""><br>
              <br>
              On 03/14/2017 06:53 AM, Jeffrey Brown wrote:<br>
            </span>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                class="">
                Graql[1] is a (and stands for) graph query language. It
                is unusually<br>
                expressive, allowing relationships to be members of
                other relationships[2]<br>
                -- effectively, allowing one edge to be an endpoint of
                another edge.<br>
                <br>
                Someone named Felix posted a Haskell library for
                generating Graql<br>
                queries[3].<br>
                <br>
                Does anyone have a Haskell program that not only
                generates but uses such a<br>
                query?<br>
                <br>
                <br>
                [1] <a moz-do-not-send="true"
                  href="https://hackage.haskell.org/package/graql"
                  rel="noreferrer" target="_blank">https://hackage.haskell.org/pa<wbr>ckage/graql</a><br>
                [2] <a moz-do-not-send="true"
                  href="https://discuss.grakn.ai/t/nested-relationships/"
                  rel="noreferrer" target="_blank">https://discuss.grakn.ai/t/nes<wbr>ted-relationships/</a><br>
                [3] <a moz-do-not-send="true"
href="https://discuss.grakn.ai/t/graql-haskell-how-to-run-the-test-program/"
                  rel="noreferrer" target="_blank">https://discuss.grakn.ai/t/gra<wbr>ql-haskell-how-to-run-the-test<wbr>-program/</a><br>
                <br>
                <br>
                <br>
                <br>
              </span><span class="">
                ______________________________<wbr>_________________<br>
                Haskell-Cafe mailing list<br>
                To (un)subscribe, modify options or view archives go to:<br>
                <a moz-do-not-send="true"
                  href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                  rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
                Only members subscribed via the mailman list are allowed
                to post.<br>
                <br>
              </span></blockquote>
            <div class="HOEnZb">
              <div class="h5">
                ______________________________<wbr>_________________<br>
                Haskell-Cafe mailing list<br>
                To (un)subscribe, modify options or view archives go to:<br>
                <a moz-do-not-send="true"
                  href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe"
                  rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
                Only members subscribed via the mailman list are allowed
                to post.</div>
            </div>
          </blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <div class="gmail_signature" data-smartmail="gmail_signature">
          <div dir="ltr">
            <div>
              <div dir="ltr">
                <div>
                  <div dir="ltr">
                    <div>
                      <div dir="ltr">
                        <div dir="ltr">
                          <div dir="ltr">
                            <div dir="ltr">
                              <div dir="ltr">
                                <div dir="ltr">
                                  <div dir="ltr">
                                    <div dir="ltr">
                                      <div dir="ltr">
                                        <div dir="ltr">
                                          <div dir="ltr">
                                            <div dir="ltr">
                                              <div dir="ltr">
                                                <div>Jeff Brown |
                                                  Jeffrey Benjamin Brown</div>
                                                <div dir="ltr"><a
                                                    moz-do-not-send="true"
href="https://msu.edu/%7Ebrown202/" style="font-size:12.8px"
                                                    target="_blank">Website</a> 
                                                   |   <a
                                                    moz-do-not-send="true"
href="https://www.facebook.com/mejeff.younotjeff"
                                                    style="font-size:12.8px"
                                                    target="_blank">Facebook</a> 
                                                   |   <a
                                                    moz-do-not-send="true"
href="https://www.linkedin.com/in/jeffreybenjaminbrown"
                                                    style="font-size:12.8px"
                                                    target="_blank">LinkedIn</a><span
style="font-size:12.8px">(spammy, so I often miss messages here)   </span><span
style="font-size:12.8px">|</span><span style="font-size:12.8px">   </span><a
moz-do-not-send="true" href="https://github.com/jeffreybenjaminbrown"
                                                    style="font-size:12.8px"
                                                    target="_blank">Github</a><span
style="font-size:12.8px">   </span></div>
                                              </div>
                                            </div>
                                          </div>
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a>
Only members subscribed via the mailman list are allowed to post.</pre>
    </blockquote>
    <br>
  </body>
</html>