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>,
	guile-user <guile-user-bounces+amirouche=hypermove.net@gnu.org>
Subject: Re: Presentation of traversi framework via graph recommendations
Date: Fri, 09 Sep 2016 21:35:36 +0200	[thread overview]
Message-ID: <04d7f69f75c75148aef9af6e8a3f69b9@hypermove.net> (raw)
In-Reply-To: <580edbd59819dd1f16397b4818a1d711@hypermove.net>

I updated the article with a schema and the code.

http://hyperdev.fr/notes/a-graph-based-movie-recommender-engine-using-guile-scheme.html

Delete the content of /tmp/wt and reload the database.

Also, have a look at movielens-step01-*.scm file. The algorithm is very
simple hence the recommendation is not very good...


On 2016-09-09 16:05, Amirouche Boubekki wrote:
> 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!

-- 
Amirouche ~ amz3 ~ http://www.hyperdev.fr



      reply	other threads:[~2016-09-09 19:35 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
2016-09-09 19:35     ` Amirouche Boubekki [this message]

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=04d7f69f75c75148aef9af6e8a3f69b9@hypermove.net \
    --to=amirouche@hypermove.net \
    --cc=guile-user-bounces+amirouche=hypermove.net@gnu.org \
    --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).