Re: First post

2016-11-17 Thread CILz

Hello,

Thanks for all your suggestions/ideas regarding using PicoLisp DB as a 
kind of graph database. I now have to experiment...


Best,

Eric


Le 17/11/2016 à 23:17, andr...@itship.ch a écrit :

Declarations: I have now experience in actually using any graph databases.

One could simply store the pilog declarations as lists or symbols in 
the DB, as I understand it, this is what Regenaxer did in the 
mentioned case.


The other way would be to model the data as pil DB schema, as Joh-Tob 
mentioned.


In fact the relations (to be exact: the field values, which store the 
relation) in picolisp DB are also objects!


See @lib/db.l for the implementation of +Link.

I guess one could easily use pilDB as a graph database, simply by 
creating additional prefix classes to give +Link additional type 
information (type of the edge, e.g. +Be +Loves +Has +Likes), could 
also be a prefix class which stores an additional numeric cost value 
(e.g. distance, to model "travel distance/cost" to a +Link'ed object). 
+Link would be a directed connection A -> B, while modeling a 
bidirectional connection could be done by using +Joint.
Add the prefix class +Ref to the mix, then your edges are 
automatically indexed.


I would not recommend this as a project for pilDB novices, first build 
something simpler to learn how the DB works and is to be used.


Greetings, beneroth


--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-17 Thread andreas
s/Declarations/Disclaimer
s/now/no

sorry for broken English...


- Original Message -
From: andr...@itship.ch [mailto:andr...@itship.ch]
To: picolisp@software-lab.de
Sent: Thu, 17 Nov 2016 23:17:13 +0100
Subject: Re: First post

Declarations: I have now experience in actually using any graph databases.




Re: First post

2016-11-17 Thread andreas
Declarations: I have now experience in actually using any graph databases.

One could simply store the pilog declarations as lists or symbols in the DB, as 
I understand it, this is what Regenaxer did in the mentioned case.

The other way would be to model the data as pil DB schema, as Joh-Tob mentioned.

In fact the relations (to be exact: the field values, which store the relation) 
in picolisp DB are also objects!

See @lib/db.l for the implementation of +Link.

I guess one could easily use pilDB as a graph database, simply by creating 
additional prefix classes to give +Link additional type information (type of 
the edge, e.g. +Be +Loves +Has +Likes), could also be a prefix class which 
stores an additional numeric cost value (e.g. distance, to model "travel 
distance/cost" to a +Link'ed object). +Link would be a directed connection A -> 
B, while modeling a bidirectional connection could be done by using +Joint.
Add the prefix class +Ref to the mix, then your edges are automatically indexed.

I would not recommend this as a project for pilDB novices, first build 
something simpler to learn how the DB works and is to be used.

Greetings, beneroth

- Original Message -
From: Alexander Burger [mailto:a...@software-lab.de]
To: picolisp@software-lab.de
Sent: Wed, 16 Nov 2016 16:09:51 +0100
Subject: Re: First post

On Wed, Nov 16, 2016 at 03:52:02PM +0100, Joh-Tob Schäg wrote:
> Just out of curiosity:
> Is there a more elegant way to have links with properties than the way i
> mentioned?

No, looks good. The person objects are connected via +Link's or
+Joint's, and may of course have properties like a year or simply a
+Date. Also, your note about a (+List +Link) etc. is all right.

♪♫ Alex
--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-16 Thread Alexander Burger
On Wed, Nov 16, 2016 at 03:52:02PM +0100, Joh-Tob Schäg wrote:
> Just out of curiosity:
> Is there a more elegant way to have links with properties than the way i
> mentioned?

No, looks good. The person objects are connected via +Link's or
+Joint's, and may of course have properties like a year or simply a
+Date. Also, your note about a (+List +Link) etc. is all right.

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-16 Thread Joh-Tob Schäg
Dear Regenaxer,

Just out of curiosity:
Is there a more elegant way to have links with properties than the way i
mentioned?
Am 16.11.2016 15:44 schrieb "Alexander Burger" :

> Hi Joh-Tob, Eric,
>
> > i talked about storing Pilog rules in a database with Regenaxer(Alexander
> > Burger) before. He did it once.
>
> Yes, that simply stored Pilog rules (which are Lisp data) in DB objects,
> and called 'goal' and 'prove' on them.
>
> Of course, you can create DB objects with any kinds of properties and
> relations. I'm afraid this is a bit beyond the possibilities of a mail
> here ;)
>
> ♪♫ Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: First post

2016-11-16 Thread Alexander Burger
Hi Joh-Tob, Eric,

> i talked about storing Pilog rules in a database with Regenaxer(Alexander
> Burger) before. He did it once.

Yes, that simply stored Pilog rules (which are Lisp data) in DB objects,
and called 'goal' and 'prove' on them.

Of course, you can create DB objects with any kinds of properties and
relations. I'm afraid this is a bit beyond the possibilities of a mail
here ;)

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-16 Thread Joh-Tob Schäg
Am 16.11.2016 08:59 schrieb "CILz" :
>
> Hello freeemint_,
>
> Thanks for your answer. May be Alexander will be able to give us some
tips.
As we all do.
>
> Regarding my second question, I wonder if we can build Lisp statements
(not Pilog ones) and commit them to the database to translate:
> Person 'Vincent'
>
> LOVES
>
> Person 'Mia'
>
> since '2015'
>
> In other words, can we add a-kind-of 'property' to a relation?
>
> Two my knowledge so far, I know that we can define an 'object' Person
with a 'rel' name and an other rel +Link for 'LOVES' but can we add the
property 'since 2015' to that rel 'LOVES'?
Not directly to my knowledge.

Just create an element for the loves relationship which has +Link-s or rels
to both objects(persons) and store the year in it too. Each person +Link-s
to this relationship struct. Note since we have to store a +Link inside the
person object, a person can only love a single person. For that you might
want to take a look at +Bag or +List. However this construct can also
represent one-sided loves.

The idea us basicly:

[Mara Lin; LOVES] : person
  ^   I
  I   V
[p1; p2; +date] : relationship
 I   ^
V   I
[Edi Ward; LOVES] : person

>
> If so we have a property graph database!!
>
> Best,
> Eric

Best,
freeemint_
>
> Le 16/11/2016 à 08:19, Joh-Tob Schäg a écrit :
>>
>> Hi Eric,
>>
>> i talked about storing Pilog rules in a database with
Regenaxer(Alexander Burger) before. He did it once.
>>
>> I hope that helps.
>> Maybe he still has the source.
>>
>> I do not understand your second question. Can you reformulate it? Maybe
with an example?
>>
>> 2016-11-16 7:59 GMT+01:00 CILz :
>>>
>>> Hi Brad,
>>>
>>> In fact we already have "a-kind-of" graph database! Isn't Prolog all
about relation? And Pilog is Prolog on top of PicoLisp, no?
>>>
>>> When we write:
>>>
>>> (be person (Vincent))
>>>
>>> (be person (Mia))
>>>
>>> (be loves (Vincent Mia 2015))
>>>
>>> we define a relation called 'loves' between two 'persons' say 'Vincent'
and 'Mia' which started in '2015'.
>>>
>>> In cypher (Neo4's own query language) I would have written something
like this:
>>>
>>> create (n:Person {name: {Vincent}})-[:LOVES {since:
{2015}}]->(m:Person {name: {Mia}})
>>>
>>> Hence, as far as I understand PL, we are nearly there. My own open
questions are:
>>>
>>> 1) Can we commit the Pilog statements to the database?
>>>
>>> 2) Can we achieve something equivalent to the Pilog statements
above directly from Lisp side and commit them to the database?
>>>
>>> Best,
>>> Eric
>>>
>>> Le 14/11/2016 à 13:24, Brad Collins a écrit :

 A graph database written in picolisp that uses something
 like pilog would be very useful for me as well.
>>>
>>>
>>> --
>>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>
>>
>


Re: First post

2016-11-15 Thread CILz

Hello Joh-Top,

Thanks for your answer. May be Alexander will be able to give us some tips.

Regarding my second question, I wonder if we can build Lisp statements 
(not Pilog ones) and commit them to the database to translate:


Person 'Vincent'

LOVES

Person 'Mia'

since '2015'

In other words, can we add a-kind-of 'property' to a relation?

Two my knowledge so far, I know that we can define an 'object' Person 
with a 'rel' name and an other rel +Link for 'LOVES' but can we add the 
property 'since 2015' to that rel 'LOVES'?


If so we have a property graph database!!

Best,
Eric

Le 16/11/2016 à 08:19, Joh-Tob Schäg a écrit :

Hi Eric,

i talked about storing Pilog rules in a database with 
Regenaxer(Alexander Burger) before. He did it once.


I hope that helps.
Maybe he still has the source.

I do not understand your second question. Can you reformulate it? 
Maybe with an example?


2016-11-16 7:59 GMT+01:00 CILz >:


Hi Brad,

In fact we already have "a-kind-of" graph database! Isn't Prolog
all about relation? And Pilog is Prolog on top of PicoLisp, no?

When we write:

(be person (Vincent))

(be person (Mia))

(be loves (Vincent Mia 2015))

we define a relation called 'loves' between two 'persons' say
'Vincent' and 'Mia' which started in '2015'.

In cypher (Neo4's own query language) I would have written
something like this:

create (n:Person {name: {Vincent}})-[:LOVES {since:
{2015}}]->(m:Person {name: {Mia}})

Hence, as far as I understand PL, we are nearly there. My own open
questions are:

1) Can we commit the Pilog statements to the database?

2) Can we achieve something equivalent to the Pilog statements
above directly from Lisp side and commit them to the database?

Best,
Eric

Le 14/11/2016 à 13:24, Brad Collins a écrit :

A graph database written in picolisp that uses something
like pilog would be very useful for me as well.


-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de

?subject=Unsubscribe






Re: First post

2016-11-15 Thread CILz

Hi Brad,

In fact we already have "a-kind-of" graph database! Isn't Prolog all 
about relation? And Pilog is Prolog on top of PicoLisp, no?


When we write:

(be person (Vincent))

(be person (Mia))

(be loves (Vincent Mia 2015))

we define a relation called 'loves' between two 'persons' say 'Vincent' 
and 'Mia' which started in '2015'.


In cypher (Neo4's own query language) I would have written something 
like this:


create (n:Person {name: {Vincent}})-[:LOVES {since: 
{2015}}]->(m:Person {name: {Mia}})


Hence, as far as I understand PL, we are nearly there. My own open 
questions are:


1) Can we commit the Pilog statements to the database?

2) Can we achieve something equivalent to the Pilog statements 
above directly from Lisp side and commit them to the database?


Best,
Eric

Le 14/11/2016 à 13:24, Brad Collins a écrit :

A graph database written in picolisp that uses something
like pilog would be very useful for me as well.


--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-14 Thread CILz
Neo4j is the graph database behind www.gdpr-ui.eu . Neo4j is really 
powerfull and its query language cypher is damned simple to start with!


'vivace-graph' looks interesting, I will have a look at it... Thanks.

Best,

Eric


Le 14/11/2016 à 13:24, Brad Collins a écrit :

A graph database written in picolisp that uses something
like pilog would be very useful for me as well.

There is a graph database written in common lisp which looks
promising, vivace-graph
(https://github.com/kraison/vivace-graph-v3) which seems to
be trying to do something along the lines of neo4j.

Perhaps a place to start?


--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-14 Thread CILz

Dear All,

Thank you very much for your warm welcome :). It's very much appreciated.

Best,

EricC


Le 14/11/2016 à 11:15, andr...@itship.ch a écrit :

Hi Eric

Warmly welcome to our community :)

No fear, you will soon look through things.
I felt the same, but the community is very friendly and especially 
Alexander is extremely helpful.


I recommend again to join us in IRC :)


- Original Message -
From: CILz [mailto:cilz...@cilzone.fr]
To: picolisp@software-lab.de
Sent: Sat, 12 Nov 2016 15:45:03 +0100
Subject: First post

Dear list,

I take the opportunity of this first post to introduce myself as well as
the reasons for which I come here.

I am not a computer scientist nor a professional web developper but a
kind of "power user" who often gets its hands dirty to build some
applications as close as possible to what he wants... That being said, I
have mostly built some websites using off the shelf CMS ;-)

However, my last "product" is a custom web application fully written
from scratch in R to access a graph database. And this is why I am here:
I want to rebuild it in order to add some "expert system" like capacity...

So starting to digg around, I first came to Prolog a few weeks ago and I
started learning it from scratch. This very week, I discovered Picolisp.
I started exploring it, and so far, I am really impressed! It looks very
appealing: having at hand a powerful language, a built-in database
system as well as Prolog make me dream ... though I don't know if I am
skilled enough to be able to do anything useful!

Any way, I have it up an running on my linux box ... so expect me to ask
very basic questions soon :)

Best,

Eric

--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


RE: First post

2016-11-14 Thread andreas
Hi Eric

Warmly welcome to our community :)

No fear, you will soon look through things.
I felt the same, but the community is very friendly and especially Alexander is 
extremely helpful.

I recommend again to join us in IRC :)


- Original Message -
From: CILz [mailto:cilz...@cilzone.fr]
To: picolisp@software-lab.de
Sent: Sat, 12 Nov 2016 15:45:03 +0100
Subject: First post

Dear list,

I take the opportunity of this first post to introduce myself as well as
the reasons for which I come here.

I am not a computer scientist nor a professional web developper but a
kind of "power user" who often gets its hands dirty to build some
applications as close as possible to what he wants... That being said, I
have mostly built some websites using off the shelf CMS ;-)

However, my last "product" is a custom web application fully written
from scratch in R to access a graph database. And this is why I am here:
I want to rebuild it in order to add some "expert system" like capacity...

So starting to digg around, I first came to Prolog a few weeks ago and I
started learning it from scratch. This very week, I discovered Picolisp.
I started exploring it, and so far, I am really impressed! It looks very
appealing: having at hand a powerful language, a built-in database
system as well as Prolog make me dream ... though I don't know if I am
skilled enough to be able to do anything useful!

Any way, I have it up an running on my linux box ... so expect me to ask
very basic questions soon :)

Best,

Eric

--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-12 Thread Joe Bogner
Hello Eric! Thanks for the introduction. Welcome! Looking forward to
your questions!

On Sat, Nov 12, 2016 at 9:45 AM, CILz <cilz...@cilzone.fr> wrote:
> Dear list,
>
> I take the opportunity of this first post to introduce myself as well as the
> reasons for which I come here.
>
> I am not a computer scientist nor a professional web developper but a kind
> of "power user" who often gets its hands dirty to build some applications as
> close as possible to what he wants... That being said, I have mostly built
> some websites using off the shelf CMS ;-)
>
> However, my last "product" is a custom web application fully written from
> scratch in R to access a graph database. And this is why I am here: I want
> to rebuild it in order to add some "expert system" like capacity...
>
> So starting to digg around, I first came to Prolog a few weeks ago and I
> started learning it from scratch. This very week, I discovered Picolisp. I
> started exploring it, and so far, I am really impressed! It looks very
> appealing: having at hand a powerful language, a built-in database system as
> well as Prolog make me dream ... though I don't know if I am skilled enough
> to be able to do anything useful!
>
> Any way, I have it up an running on my linux box ... so expect me to ask
> very basic questions soon :)
>
> Best,
>
> Eric
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: First post

2016-11-12 Thread Alexander Burger
Hi Eric,

> Any way, I have it up an running on my linux box ... so expect me to ask
> very basic questions soon :)

Welcome! Please let us know how we can help.

As beneroth wrote in another mail today, it might be also a good idea to
visit the #picolisp IRC channel at freenode.net :)

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


First post

2016-11-12 Thread CILz

Dear list,

I take the opportunity of this first post to introduce myself as well as 
the reasons for which I come here.


I am not a computer scientist nor a professional web developper but a 
kind of "power user" who often gets its hands dirty to build some 
applications as close as possible to what he wants... That being said, I 
have mostly built some websites using off the shelf CMS ;-)


However, my last "product" is a custom web application fully written 
from scratch in R to access a graph database. And this is why I am here: 
I want to rebuild it in order to add some "expert system" like capacity...


So starting to digg around, I first came to Prolog a few weeks ago and I 
started learning it from scratch. This very week, I discovered Picolisp. 
I started exploring it, and so far, I am really impressed! It looks very 
appealing: having at hand a powerful language, a built-in database 
system as well as Prolog make me dream ... though I don't know if I am 
skilled enough to be able to do anything useful!


Any way, I have it up an running on my linux box ... so expect me to ask 
very basic questions soon :)


Best,

Eric

--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe