unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Amirouche Boubekki <amirouche@hypermove.net>
To: Neil Jerram <neil@ossau.homelinux.net>
Cc: Guile User <guile-user@gnu.org>
Subject: Re: Presentation of traversi framework via graph recommendations
Date: Fri, 09 Sep 2016 16:05:28 +0200	[thread overview]
Message-ID: <580edbd59819dd1f16397b4818a1d711@hypermove.net> (raw)
In-Reply-To: <20160909074901.5992528.49062.42610@ossau.homelinux.net>

On 2016-09-09 09:49, Neil Jerram wrote:
> I got lost at the point of looking up the genres for Toy Story; why
> does that involve graph traversal? 
> 

Because genres are connected to movies using an edge. It's possible to
store genre information in a movie vertex assoc as a list value but then
it will be difficult to fetch all movies for a given genre.

With this graph layout, you can for instance fetch the "fantasy" genre
and ask the question "what are all the movies of fantasy genre" simply
using 'outgoings' proc... See below.


> 
> Probably it would help to add a bit into the blog to explain how the
> movie information is mapped into a graph. 
> 

I should prolly add a drawing too.

While trying to write down an explanation about how the graph
is built I figured there is a mistake in how the graph is built.
Movie and genre are connected by a genre edge, it doesn't make much
sens. It should be somekind of relation like "movie is instance
of genre". It will make more sens, it will be more explicit.

I will rewrite the load script to avoid this mistake and rework
the article.

I will keep you posted. Thanks for your interest.

> 
> 
>   Original Message  
> From: Amirouche Boubekki
> Sent: Friday, 9 September 2016 07:32
> To: Guile User
> Subject: Presentation of traversi framework via graph recommendations
> 
> Héllo,
> 
> I published an article on my blog about how to use `grf3`
> the graph database library built on top of wiredtiger [0].
> 
> [0]
> http://hyperdev.fr/notes/a-graph-based-movie-recommender-engine-using-guile-scheme.html
> 
> This introduce traversi framework to do graph traversal.
> traversi is inspired from Tinkerpop's Gremlin. Traversi
> is a custom stream library which is faster than srfi-41
> and support backtracking.
> 
> I think that building traversi on top of streams make
> graph traversal much more approachable.
> 
> This article is inspired from a *graph-based recommender engine* [1]
> 
> 
> [1]
> https://markorodriguez.com/2011/09/22/a-graph-based-movie-recommender-engine/
> 
> 
> Have fun!



  reply	other threads:[~2016-09-09 14:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-09  6:38 Presentation of traversi framework via graph recommendations Amirouche Boubekki
2016-09-09  7:31 ` Neil Jerram
2016-09-10  6:39   ` Amirouche Boubekki
2016-09-09  7:49 ` Neil Jerram
2016-09-09 14:05   ` Amirouche Boubekki [this message]
2016-09-09 19:35     ` Amirouche Boubekki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=580edbd59819dd1f16397b4818a1d711@hypermove.net \
    --to=amirouche@hypermove.net \
    --cc=guile-user@gnu.org \
    --cc=neil@ossau.homelinux.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).