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.

Reply via email to