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
prev parent 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).