Message from discussion
Neo4j - online course
Received: by 10.224.183.13 with SMTP id ce13mr14446785qab.4.1349776772962;
Tue, 09 Oct 2012 02:59:32 -0700 (PDT)
X-BeenThere: neo4j@googlegroups.com
Received: by 10.224.146.194 with SMTP id i2ls11624914qav.6.gmail; Tue, 09 Oct
2012 02:59:26 -0700 (PDT)
Received: by 10.224.78.209 with SMTP id m17mr14458053qak.3.1349776766390;
Tue, 09 Oct 2012 02:59:26 -0700 (PDT)
Received: by 10.224.78.209 with SMTP id m17mr14458050qak.3.1349776766372;
Tue, 09 Oct 2012 02:59:26 -0700 (PDT)
Return-Path: <ni...@nigelsmall.name>
Received: from mail-qc0-f171.google.com (mail-qc0-f171.google.com [209.85.216.171])
by gmr-mx.google.com with ESMTPS id x31si428214qco.0.2012.10.09.02.59.26
(version=TLSv1/SSLv3 cipher=OTHER);
Tue, 09 Oct 2012 02:59:26 -0700 (PDT)
Received-SPF: neutral (google.com: 209.85.216.171 is neither permitted nor denied by best guess record for domain of ni...@nigelsmall.name) client-ip=209.85.216.171;
Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 209.85.216.171 is neither permitted nor denied by best guess record for domain of ni...@nigelsmall.name) smtp.mail=ni...@nigelsmall.name
Received: by mail-qc0-f171.google.com with SMTP id d1so1129139qca.2
for <neo4j@googlegroups.com>; Tue, 09 Oct 2012 02:59:26 -0700 (PDT)
d=google.com; s=20120113;
h=mime-version:sender:x-originating-ip:in-reply-to:references:from
:date:x-google-sender-auth:message-id:subject:to:content-type
:x-gm-message-state;
bh=mMHnb36tqPCFGiwjSBYGQunm7lRlzrkCVGhqJkygy4U=;
b=TRRRZ0JMC2mhorm4OzFzIi+9aHYLkZtG5GpekOFDdLxbAF9gW+jNG+apI6wj3SquUL
zjSlzLvXnR8HSrYvaybssYj7KcQbm2b3tv7E9WwJhiCtfhDKQ0FP0dx+4bV3hjUnnf7u
YRz81iZVukg2gwPH0BJt9O4CJ0nZ7mjM/SNoacceJeyfMckZNX2Ptn0ulyMM16uIv7rR
Tk2LxpeWgwI9vUVQTzkkvL7ZXUS1eTjxommCZYoNG4brNdgdE0lX2HTsqiBebawKfS1f
4QYylsCoRh6aFxJiJGF8uqgu1vFiiXuARLp0S0nBlUbP5pkilGP/T7A1SzA/znEcYHth
1OhQ==
Received: by 10.49.132.40 with SMTP id or8mr47227294qeb.27.1349776766038; Tue,
09 Oct 2012 02:59:26 -0700 (PDT)
MIME-Version: 1.0
Sender: ni...@nigelsmall.name
Received: by 10.49.63.198 with HTTP; Tue, 9 Oct 2012 02:59:04 -0700 (PDT)
X-Originating-IP: [109.231.193.165]
In-Reply-To: <e51aaa19-bc86-43f5-a932-054cf6986bc3@googlegroups.com>
References: <b531f5a7-908e-4cc1-872e-45da74c9bc72@googlegroups.com> <e51aaa19-bc86-43f5-a932-054cf6986bc3@googlegroups.com>
From: Nigel Small <ni...@nigelsmall.net>
Date: Tue, 9 Oct 2012 10:59:04 +0100
Message-ID: <CADBmhCk6HdNCnkXwnCTwSqC1TwrSba=bf6PtGSh4hbdxgwa...@mail.gmail.com>
Subject: Re: [Neo4j] Re: Neo4j - online course
To: neo4j@googlegroups.com
Content-Type: multipart/alternative; boundary=047d7bf16926aa72f004cb9d6433
X-Gm-Message-State: ALoCoQndTTi34cLW0MmCgu8timkMrUGPyItbyYiOxKw3pvSMekA1ql3A7OQxZXVRdYHAZ7xKVZBp
--047d7bf16926aa72f004cb9d6433
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
This is quite similar to a training course I recently put together for a
London start-up. The first day covered graph theory, the Neo4j product
itself and then delved deeply into Cypher. There were then a number of
Cypher exercises which could all be carried out through the neo4j-shell.
The second day talked about the server API and py2neo plus some best
practice material and some more (domain-specific) exercises. There was
nothing included on Java embedded usage as it wasn't required in this case.
The Cypher workbook is generic though so if you're interested in using it,
let me know and I'll send it over.
Cheers
Nigel
On 9 October 2012 09:43, JohnM <jxmit...@gmail.com> wrote:
> Hi,
>
> Here are my thoughts on a Neo4j course. Essentially it focuses on trainin=
g
> the student in 'best practices' around domain modeling and understanding
> the range of questions a graph database can answer through a language suc=
h
> as Cypher.
>
> Cheers,
>
> John
>
> *Neo4j Course Pre course setup- install Neo4j server
> I=E2=80=99m hoping that a lot of the course could be done with a standalo=
ne server
> and Cypher. More advanced modules could require a programming language su=
ch
> as Java.
>
> Tools required:
> - Standalone Neo4j server
> Course Modules - Domain modelling with a graph database
> - Cypher
> - Presentation
>
> It seems to me that it is important to be able to model your problem
> domain well and answer business questions from the model. Thus exercises
> involving creating a model and querying it are a good place to start.
> Perhaps the model is supplied to begin with and then students come up wit=
h
> their own model for more advanced assignments.
>
> Thus the student could download an assignment that has a create Cypher
> statement that loads their Neo4j server with data. The student then uses
> the WebAdmin tool to craft Cypher queries to answer the assignment
> questions.
>
> To submit an assignment could simply be in Cypher - a create statement an=
d
> the statements that answer each of the assignment questions. This could
> facilitate automatic marking I=E2=80=99m hoping. :)
>
> Some topics in this section would be:
> - Around data
>
> - loading data into a Neo4j database
>
> - altering the data
>
> - adding further data
>
> - indexing
>
> - how to extract data from a RDBMS and load that into Neo4j (more advance=
d)
>
> - Around modeling
> - how to model your domain
> - how to handle time - e.g. via relationships (=E2=80=9Cowned=E2=80=9D an=
d =E2=80=9Cowns=E2=80=9D) or
> properties or both
> - how to change models when it cannot answer a new business question
> - best graph database practices
>
> - Around querying (essentially a mini Cypher course)
> - build up a series of Cypher queries answering more complex questions
>
> - Can I answer all business queries with Cypher or do I need to know
> another query mechanism?
>
> The topics above enable the student to analyse their business domain,
> create a model and query it to show the business the value of a graph
> database approach. It would also teach them how to evolve their models as
> required. As they have built a number of models and constructed a variety
> of queries they should have gained confidence to present Neo4j to their
> workplace.
>
> - Presentation
>
> - I see this as more advanced in that it requires more tooling, such as
> Java, an IDE, a web server etc.
>
> - How to write applications to access Neo4j and present the results in a
> number of formats
>
> - I=E2=80=99m guessing we would have to choose one framework, such as Nod=
e.js and
> work with that
>
> Other thoughts and questions I see Neo4j being used in a couple of
> scenarios in my workplace. Firstly as an ongoing storage that is nightly
> updated keeping it in sync with a relational database, Business
> Intelligence like. Secondly for creation of on the fly models loaded with=
a
> sample of data and then used to answer business questions.
> *
>
>
>> --
>
>
>
--047d7bf16926aa72f004cb9d6433
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<font face=3D"trebuchet ms,sans-serif">This is quite similar to a training =
course I recently put together for a London start-up. The first day covered=
graph theory, the Neo4j product itself and then delved deeply into Cypher.=
There were then a number of Cypher exercises which could all be carried ou=
t through the neo4j-shell.<br>
<br>The second day talked about the server API and py2neo plus some best pr=
actice material and some more (domain-specific) exercises. There was nothin=
g included on Java embedded usage as it wasn't required in this case.<b=
r>
<br>The Cypher workbook is generic though so if you're interested in us=
ing it, let me know and I'll send it over.<br><br>Cheers<br>Nigel<br><b=
r></font><br><div class=3D"gmail_quote">On 9 October 2012 09:43, JohnM <spa=
n dir=3D"ltr"><<a href=3D"mailto:jxmit...@gmail.com" target=3D"_blank">j=
xmit...@gmail.com</a>></span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><span><h3 dir=3D"ltr"><font color=3D"#666666=
" face=3D"Arial"><span style=3D"white-space:pre-wrap">Hi, </span></font></h=
3><div>
<font color=3D"#666666" face=3D"Arial"><span style=3D"white-space:pre-wrap"=
><br>
</span></font></div><div><font color=3D"#666666" face=3D"Arial"><span style=
=3D"white-space:pre-wrap">Here are my thoughts on a Neo4j course. Essential=
ly it focuses on training the student in 'best practices' around do=
main modeling and understanding the range of questions a graph database can=
answer through a language such as Cypher.</span></font></div>
<div><font color=3D"#666666" face=3D"Arial"><span style=3D"white-space:pre-=
wrap"><br></span></font></div><div><font color=3D"#666666" face=3D"Arial"><=
span style=3D"white-space:pre-wrap">Cheers,</span></font></div><div><font c=
olor=3D"#666666" face=3D"Arial"><span style=3D"white-space:pre-wrap"><br>
</span></font></div><div><font color=3D"#666666" face=3D"Arial"><span style=
=3D"white-space:pre-wrap">John</span></font></div><h3 dir=3D"ltr" style=3D"=
font-size:medium;font-family:'Times New Roman';font-weight:bold"><s=
pan style=3D"font-family:Arial;color:rgb(102,102,102);background-color:tran=
sparent;font-weight:bold;white-space:pre-wrap"><br>
</span></h3><h3 dir=3D"ltr" style=3D"font-weight:bold;font-size:medium"><b =
style=3D"line-height:normal;font-family:'Times New Roman'"><h3 dir=
=3D"ltr"><span style=3D"font-family:Arial;color:rgb(102,102,102);background=
-color:transparent;font-weight:bold;white-space:pre-wrap">Neo4j Course</spa=
n></h3>
<h4 dir=3D"ltr"><span style=3D"font-size:15px;font-family:Arial;color:rgb(1=
02,102,102);background-color:transparent;font-style:italic;white-space:pre-=
wrap">Pre course setup</span></h4><span style=3D"font-size:15px;font-family=
:Arial;background-color:transparent;font-weight:normal;white-space:pre-wrap=
">- install Neo4j server</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">I=E2=80=99m hoping that a lot of=
the course could be done with a standalone server and Cypher. More advance=
d modules could require a programming language such as Java.</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">Tools required:</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- Standalone Neo4j server</span>=
<br><h4 dir=3D"ltr"><span style=3D"font-size:15px;font-family:Arial;color:r=
gb(102,102,102);background-color:transparent;font-style:italic;white-space:=
pre-wrap">Course Modules</span></h4>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- Domain modelling with a graph =
database</span><br><span style=3D"font-size:15px;font-family:Arial;backgrou=
nd-color:transparent;font-weight:normal;white-space:pre-wrap">- Cypher</spa=
n><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- Presentation</span><br><span s=
tyle=3D"font-size:15px;font-family:Arial;background-color:transparent;font-=
weight:normal;white-space:pre-wrap"></span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">It seems to me that it is import=
ant to be able to model your problem domain well and answer business questi=
ons from the model. Thus exercises involving creating a model and querying =
it are a good place to start. Perhaps the model is supplied to begin with a=
nd then students come up with their own model for more advanced assignments=
.</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">Thus the student could download an assignment that ha=
s a create Cypher statement that loads their Neo4j server with data. The st=
udent then uses the WebAdmin tool to craft Cypher queries to answer the ass=
ignment questions.</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">To submit an assignment could simply be in Cypher - a=
create statement and the statements that answer each of the assignment que=
stions. This could facilitate automatic marking I=E2=80=99m hoping. :)</spa=
n><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">Some topics in this section would be:</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- Around data</span><br><p dir=
=3D"ltr" style=3D"margin-left:36pt;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:15px;font-family:Arial;background-color:transparent;font=
-weight:normal;white-space:pre-wrap">- loading data into a Neo4j database</=
span></p>
<p dir=3D"ltr" style=3D"margin-left:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- altering the data</span></p><p=
dir=3D"ltr" style=3D"margin-left:36pt;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- adding further data</span></p>=
<p dir=3D"ltr" style=3D"margin-left:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- indexing</span></p>
<p dir=3D"ltr" style=3D"margin-left:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- how to extract data from a RDB=
MS and load that into Neo4j (more advanced)</span></p>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">- Around modeling</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"><span style=3D"white-space:pre-w=
rap"> </span>- how to model your domain</span><br><span style=3D"font-size:=
15px;font-family:Arial;background-color:transparent;font-weight:normal;whit=
e-space:pre-wrap"><span style=3D"white-space:pre-wrap"> </span>- how to han=
dle time - e.g. via relationships (=E2=80=9Cowned=E2=80=9D and =E2=80=9Cown=
s=E2=80=9D) or properties or both</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"><span style=3D"white-space:pre-w=
rap"> </span>- how to change models when it cannot answer a new business qu=
estion</span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"><span style=3D"white-space:pre-w=
rap"> </span>- best graph database practices</span><br><span style=3D"font-=
size:15px;font-family:Arial;background-color:transparent;font-weight:normal=
;white-space:pre-wrap"></span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- Around querying (essentially a=
mini Cypher course)</span><br><span style=3D"font-size:15px;font-family:Ar=
ial;background-color:transparent;font-weight:normal;white-space:pre-wrap"><=
span style=3D"white-space:pre-wrap"> </span>- build up a series of Cypher q=
ueries answering more complex questions</span><br>
<p dir=3D"ltr" style=3D"margin-left:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- Can I answer all business quer=
ies with Cypher or do I need to know another query mechanism?</span></p>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">The topics above enable the student to analyse their =
business domain, create a model and query it to show the business the value=
of a graph database approach. It would also teach them how to evolve their=
models as required. As they have built a number of models and constructed =
a variety of queries they should have gained confidence to present Neo4j to=
their workplace. </span><br>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><span style=3D"font-s=
ize:15px;font-family:Arial;background-color:transparent;font-weight:normal;=
white-space:pre-wrap">- Presentation</span><br>
<p dir=3D"ltr" style=3D"text-indent:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"> - I see this as more advanced i=
n that it requires more tooling, such as Java, an IDE, a web server etc.</s=
pan></p>
<p dir=3D"ltr" style=3D"text-indent:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- How to write applications to a=
ccess Neo4j and present the results in a number of formats</span></p>
<p dir=3D"ltr" style=3D"text-indent:36pt;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">- I=E2=80=99m guessing we would =
have to choose one framework, such as Node.js and work with that</span></p>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap"></span><br><h4 dir=3D"ltr"><span=
style=3D"font-size:15px;font-family:Arial;color:rgb(102,102,102);backgroun=
d-color:transparent;font-style:italic;white-space:pre-wrap">Other thoughts =
and questions</span></h4>
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;font-weight:normal;white-space:pre-wrap">I see Neo4j being used in a coup=
le of scenarios in my workplace. Firstly as an ongoing storage that is nigh=
tly updated keeping it in sync with a relational database, Business Intelli=
gence like. Secondly for creation of on the fly models loaded with a sample=
of data and then used to answer business questions.</span><br>
</b></h3></span><div><br><blockquote class=3D"gmail_quote" style=3D"margin:=
0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><br></bloc=
kquote></div><span class=3D"HOEnZb"><font color=3D"#888888">
<p></p>
-- <br>
=C2=A0<br>
=C2=A0<br>
</font></span></blockquote></div><br>
--047d7bf16926aa72f004cb9d6433--