Thanks a lot for the background on RDF and links, very interesting indeed!

About FOL, you equal the properties that we are talking about to predicates
in FOL. I might have gotten it backwards here, but isn't the natural thing
to think of our *map* as the relation (predicate) and our *properties* as
the slots of the predicate (positional arguments being isomorphic (more
succinct, but  less readble and less flexible) to named roles of map
datastructures)?

Reards/Henning

On Fri, Apr 26, 2019 at 12:58 AM Rick Moynihan <rick.moyni...@gmail.com>
wrote:

> Having used both Clojure and RDF extensively I can say that there are many
> similarities between these two worlds, and the influence of RDF on Clojure
> isn't just something Rich say's, it's very apparant.
>
> I may be mistaken in some of the details here, but as I understand it in
> the world of GOFAI (Good Old Fashioned AI) and KR (Knowledge
> Representation) there were "frame languages" popularised by Minsky:
>
> https://en.wikipedia.org/wiki/Frame_language
>
> where you essentially describe the world in terms of classes, and classes
> consist of sets of slots or properties, you may have inheritance etc...
> essentially classical OOP.
>
> In the other KR camp however you have First Order Predicate Logic (FOL),
> where the predicates (properties) essentially take centre stage, and
> describe relations between objects.  This modelling camp is largely where
> RDF drew its inspiration for modelling from in the form of RDFS and OWL.
> I'd argue (with no authority) that FOL is likely the true source of the
> decomplected properties from maps idea in clojure; which is analagous to
> what happened in KR.
>
> I mention frame languages, as I suspect there is a lot of academic
> discourse on the pros and cons of frame based approaches vs FOL, which may
> be relevant.
>
> In RDFS (RDF Schema: https://en.wikipedia.org/wiki/RDF_Schema) and OWL (
> https://en.wikipedia.org/wiki/Web_Ontology_Language )you essentially
> describe the domains and ranges of properties, and then use properties to
> tie things together.  In these languages you don't think of classes as
> constraining the available properties.  Infact properties often let you
> infer the class of something, for example if you learn that :Rick
> foaf:friend :Bill you also learn that :Rick and :Bill are foaf:Person's
> too.  This enables anyone to say anything about anything in RDF which is
> why it's an open world system, where as frame based systems are typically
> closed world, as you can't add properties to something without changing the
> class.
>
> RDF and OWL aren't really constraint languages though, they're description
> logics; so they don't typically let you restrict the values of things,
> instead they let you infer new values.  However recently there have been
> moves to standardise ways to check RDF graphs form a certain well specified
> shape.  This has been in the form of the languages SheX and SHACL (now a
> W3C standard: https://www.w3.org/TR/shacl/ ).
>
> I find it remarkable how similar these languages are to spec; though I
> don't think spec drew any direct inspiration from them.  I guess you just
> end up in a similar place if you share a property oriented view of the
> world.
>
> If you're interested in these languages this is a good online book on the
> topic:
>
> http://book.validatingrdf.com/index.html
>
> RDF also has a lot in common with Datomic in that you describe data with
> triples EAV(T) in datomic and SPO(G) in RDF.  Likewise SPARQL and Datomic
> have a common ancestor in Datalog.
>
> I believe another non RDF influence for spec is this paper:
>
> http://matt.might.net/papers/might2011derivatives.pdf
>
> Please take all of the above with a pinch of salt though, it's at best a
> crude approximation on the lineage of these ideas...
>
> R.
>
> On Thu, 25 Apr 2019 at 08:16, Henning Sato von Rosen <
> henning.von.ro...@gmail.com> wrote:
>
>> On Thu, Apr 25, 2019 at 2:32 AM <dus...@hyperfiddle.net> wrote:
>>
>>> A lot of the attribute-centric thinking is inspired by RDF and
>>> linked-data
>>>
>>
>> Yes! Rich mentions that as well. So I tried to look into RDF, but it is
>> huge! If anybody has a good link to material relevant to this discussion,
>> I'm thankful, but at the time being we will likely not have time to dig
>> into RDF.  Rich's explanation is by far the most relevant andaccessible
>> I've come across.
>>
>> Regards/Henning
>>
>>
>>
>>
>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Clojure" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/clojure/Dbh-5kNYKgE/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/Dbh-5kNYKgE/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to