RDF and triples stores are closely related to Frame languages, although frames can support more semantics than a triple store. Frame languages were designed to for knowledge representation and then can be useful. To my mind, their big advantage is that they are relatively easy and intuitive for people to understand.
Without wishing this thread to become "my library too", you might also be interested in Tawny-OWL (https://github.com/phillord/tawny-owl). This uses the form of a frame language (because it's easy to understand); actually, the underlying semantics is a (subset) of first-order logic. So, consider these examples taken from https://github.com/phillord/owl-primer/ As you can see, these statements can be build up into a relative complex way, to represent complex knowledge. (defclass Person :comment "Represents the set of all people." :haskey hasSSN)) (defdproperty hasAge :domain Person :range :XSD_NON_NEGATIVE_INTEGER :characteristic :functional) (defclass ChildlessPerson :equivalent (and Person (not Parent)) :super (and Person (not (owl-some (inverse hasParent) (owl-thing))))) (defindividual John :type Father (at-least 2 hasChild Parent) (exactly 3 hasChild Parent) (exactly 5 hasChild) (at-most 4 hasChild Parent) :same other/JohnBrown :different Bill :fact (is hasWife Mary) (is hasAge 51)) Karsten Schmidt <[email protected]> writes: > Hi Luciano, > > I never heard of this Frame language, but this seems closely related > to RDF and triple stores, something I've been working on for the past > year (not as often as I wished): > > http://thi.ng/trio > > This project is actually designed to only address the non-RDF aspects > of triple stores, with the higher-level semantics refactored out into > a separate library. Am still regularly reworking the core API and > additional triple store functionality (e.g. indexing, alias support, > query optimizations...), but it's generally completely usable and I > have already successfully built a few projects around this toolkit... > Worth pointing out is also the query engine (this lib's best & most > powerful feature), which is loosely inspired by SPARQL (but has no RDF > constraints). A rule-based inference engine is also in the works... > > https://github.com/thi-ng/trio/blob/develop/src/query.org#introductory-examples > (featuring lots of graphviz examples) > > Am not sure what your plans are with clj-fl, but thought you might > find this interesting/relevant... > > Good luck! :) > > Best, K. > > On 19 November 2014 14:52, Luciano Capitanio > <[email protected]> wrote: >> CLj-fl is a Frame Language library for the Clojure ecosystem. Since I had a >> lot of fun playing with the Frame language, I decided to put together some >> of my toys in a library and let others to play with it. >> Looking forward for any comment, suggestions and pull requests. >> >> Announcement post: >> - Clj-fl is out! >> Previous posts on frame language: >> - Frame Language in Clojure (part 1) >> - Frame Language in Clojure (part 2) >> >> Luciano Capitanio >> >> high order dysfunctions >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to [email protected] >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> [email protected] >> 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 [email protected]. >> For more options, visit https://groups.google.com/d/optout. -- Phillip Lord, Phone: +44 (0) 191 208 7827 Lecturer in Bioinformatics, Email: [email protected] School of Computing Science, http://homepages.cs.ncl.ac.uk/phillip.lord Room 914 Claremont Tower, skype: russet_apples Newcastle University, twitter: phillord NE1 7RU -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
