Dear MonetDB developers,
I have a question related to RDF.
In you PDF online, I see that it is possible to import RDF in the MonetDB system,
although there is not much further information concerning RDF input.
Could you please inform me a bit more about:
- is it possible to upload RDF data?
- is there any kind of RDF specific querying?
- is it possible to run MonetDB as a backend in a triple store like for example in Sesame?
- is there any performance measuring done for RDF querying?
It is known that column stores have a good performance (c-store benchmarks) for RDF data as well...
With kind regards,
Pieter
On Thu, Apr 17, 2008 at 5:24 PM, Marco Antonelli
<marcoantonelli(a)users.sourceforge.net> wrote:
> Update of /cvsroot/monetdb/MonetDB5/src/modules/mal
> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv26814/src/modules/mal
>
> Modified Files:
> rdf.mx
> Log Message:
> Added a T bat that stores the types of the RDF objects (IRI, integer, double, plain literal...). It still has to be sorted together with the S, P, O bats in all their possible combinations
>
> U rdf.mx
> Index: rdf.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/rdf.mx,v
> retrieving revision 1.2
> retrieving revision 1.3
> diff -u -d -r1.2 -r1.3
> --- rdf.mx 1 Apr 2008 14:48:08 -0000 1.2
> +++ rdf.mx 17 Apr 2008 15:24:15 -0000 1.3
> +static rdf_type RDFparseXsdDataType(char *uri)
> +{
> + rdf_type ret;
> + if (uri == NULL)
> + ret = PLAIN;
> + else if ( strcmp(uri, "http://www.w3.org/2001/XMLSchema#int") ||
> + strcmp(uri, "http://www.w3.org/2001/XMLSchema#integer"))
> + ret = INTEGER;
> + else if (strcmp(uri, "http://www.w3.org/2001/XMLSchema#decimal"))
> + ret = DECIMAL;
> + else if (strcmp(uri, "http://www.w3.org/2001/XMLSchema#double"))
> + ret = DOUBLE;
> + else if (strcmp(uri, "http://www.w3.org/2001/XMLSchema#boolean"))
> + ret = BOOLEAN;
> + else if (strcmp(uri, "http://www.w3.org/2001/XMLSchema#float"))
> + ret = FLOAT;
> + else if (strcmp(uri, "http://www.w3.org/2001/XMLSchema#string"))
> + ret = STRING;
> + else if (strcmp(uri, "http://www.w3.org/2001/XMLSchema#dateTime"))
> + ret = DATETIME;
> + else
> + ret = UNKNOWN;
> +
> + raptor_free_memory(uri);
> + return ret;
> +}
I am not sure if this is the correct way to identify the type, what
happens if 2001 changes to 1998 or 2003? or if they use prefix instead
of the uri? Does raptor gives you always the full uri back? it seems
way to much hard wired.
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/java…
> _______________________________________________
> Monetdb-checkins mailing list
> Monetdb-checkins(a)lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
>
Hello,
I'm building Monet on my laptop, but the clients module during configure
stops saying:
checking whether MonetDB Common version 1.22.0 or newer is installed...
no: found only version 1.20.0
configure: error: Clients requires at least version 1.22.0 of MonetDB,
but only version 1.20.0 was found.
I checked out from cvs as told here on the sourceforce page:
http://sourceforge.net/cvs/?group_id=56967
how may I fix it?
Marco
The answer is simple:
kind=165 is your new tape operator and its printing is missing in
print_statement().
Your tape is no expression with a return value but a statement with side
effects. Thus the MIL grammar in milprint.c expects the handling of
your tape in print_statement() instead of print_expression() -- see also
the grammar at the top of milprint.c (as the error message suggests :)).
Jan
On 04/17/2008 09:27 AM, Jan Flokstra wrote with possible deletions:
> Hi Jan,
>
> When I remove the if_() around my tj_docmgmt_tape() function in milgen.brg I
> get the following error message. [...]
>
> Jan.
>
> # End rule: "Rel: std_sort(Rel)"
> a0001 := a0006;
> a0004 := a0001.project (str(nil));
> a0002 := a0007;
> a0003 := a0001.project (str(nil));
> DocmgmTape (ws, a0004, a0002, a0003, a0001);
> fatal error: I encountered problems while generating MIL output.
> fatal error: This is possibly due to an illegal MIL tree, not conforming to
> the grammar in milprint.c
> fatal error: This is how far I was able to generate the script:
> notice: node: ALG_tj_docmgmt_tape
> fatal error: Illegal MIL tree. MIL printer screwed up (kind: 165).
> # halted in milprint.c (print_statement), line 596
--
Jan Rittinger
Database Systems
Technische Universität München (Germany)
http://www-db.in.tum.de/~rittinge/
Hi Jan,
your code looks quite good.
Picky as I am I however have some comments :)
Jan
On 04/10/2008 03:38 PM, Jan Flokstra wrote with possible deletions:
> [...]
> U builtins.c
> Index: builtins.c
> ===================================================================
> RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/builtins.c,v
> retrieving revision 1.84
> retrieving revision 1.85
> diff -u -d -r1.84 -r1.85
> --- builtins.c 3 Apr 2008 09:42:11 -0000 1.84
> +++ builtins.c 10 Apr 2008 13:38:38 -0000 1.85
> @@ -44,6 +44,7 @@
> #include <assert.h>
> #include <stdio.h>
>
> +#include "mem.h"
^^^^^
what do you need that for?
> +
> +/*
> + * PFTIJAH defines. I decided not make a seperate include file for
> + * pftijah so ensure that these defines are exactly the same as in
> + * ../mil/milgen.brg
> + */
that is ugly in my eyes! -- You could place your stuff in algebra.h like
e.g., the axis steps instead.
> +
> +#define MYNODEKIND aat_pnode
> +#define DOCMGMTTYPE aat_docmgmt
> +
> +#define PFT_FUN(F) (strncmp(F,"pftijah_",8)==0)
> +
> +#define PFT_QUERY_N_XX "pftijah_query_n_xx"
> +#define PFT_QUERY_N_SX "pftijah_query_n_sx"
> +#define PFT_QUERY_N_XO "pftijah_query_n_xo"
> +#define PFT_QUERY_N_SO "pftijah_query_n_so"
> +#define PFT_QUERY_I_XX "pftijah_query_i_xx"
> +#define PFT_QUERY_I_SX "pftijah_query_i_sx"
> +#define PFT_QUERY_I_XO "pftijah_query_i_xo"
> +#define PFT_QUERY_I_SO "pftijah_query_i_so"
> +
> +#define PTF_QUERY_NODES(N) (N[14]=='n')
> +#define PTF_QUERY_STARTNODES(N) (N[16]=='s')
> +#define PTF_QUERY_OPTIONS(N) (N[17]=='o')
Encoding all information in a single string is even more ugly!!!
You have a context (ctx) where you can store arbitrary information. Just
build your own struct (in algebra.h) and make it less error-prone.
> +
> +PFalg_schema_t pft_empty_schema(PFalg_simple_type_t item_t) {
> + PFalg_schema_t schema;
> + schema.count = 3;
> + // INCOMPLETE, what about freeing this space
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
we use garbage collection.
> +struct PFla_pair_t pft_query_param2(struct PFla_pair_t *p1, PFalg_simple_type_t itemType1, struct PFla_pair_t *p2, PFalg_simple_type_t itemType2) {
> [...]
> +struct PFla_pair_t pft_query_param3(struct PFla_pair_t *p1, PFalg_simple_type_t itemType1, struct PFla_pair_t *p2, PFalg_simple_type_t itemType2, struct PFla_pair_t *p3, PFalg_simple_type_t itemType3) {
textwidth > 80
--
Jan Rittinger
Database Systems
Technische Universität München (Germany)
http://www-db.in.tum.de/~rittinge/
Bellekens, P.A.E. wrote:
> The link to the PDF is:
>
> monetdb.cwi.nl/Assets/m5manual.pdf
>
> There (if you search on 'rdf') you find a picture in which RDF is mentioned as input. Although I do not exactly know what the context there is.
As you may see from the picture, the RDF box is dashed, since is still
not there...
> Cheers and good luck,
> Pieter
Thank you Pieter,
Marco
> -----Original Message-----
> From: Marco Antonelli [mailto:M.Antonelli@cwi.nl]
> Sent: woensdag 9 april 2008 15:56
> To: Bellekens, P.A.E.
> Cc: monetdb-developers(a)lists.sourceforge.net
> Subject: Re: [Monetdb-developers] RDF
>
> Hello Pieter,
>
> I'm the master thesis student who started the SPARQL front-end for
> MonerDB this January.
>
> Bellekens, P.A.E. ha scritto:
>> Dear MonetDB developers,
>>
>> I have a question related to RDF.
>> In you PDF online, I see that it is possible to import RDF in the MonetDB system,
>> although there is not much further information concerning RDF input.
>
> may you send a link to the PDF?
>
>> Could you please inform me a bit more about:
>> - is it possible to upload RDF data?
>
> Actually it is possible to import and export RDF in MonetDB, but this
> functionality will be under heavy development starting from the next week.
> If you want to get a look at the code, the import-export functions are
> defined in MonetDB5/src/modules/mal/rdf.mx.
> It is not compiled by default, to getting it compiled you have to modify
> the Makefile.ag file in the same directory, then run 'bootstrap',
> 'configure', 'make' and 'make install'.
>
>> - is there any kind of RDF specific querying?
>
> Still not, the SPARQL compiler is under development too
>
>> - is it possible to run MonetDB as a backend in a triple store like for example in Sesame?
>
> Not at the moment, but MonetDB will be a backend for Sesame in the next
> future
>
>> - is there any performance measuring done for RDF querying?
>> It is known that column stores have a good performance (c-store benchmarks) for RDF data as well...
>
> Lefteris and Romulo can answer you on these topics more in detail than me
> Anyway MonetDB/SQL performed well in querying RDF data :)
>
> Best regards,
> Marco Antonelli
>
>> With kind regards,
>> Pieter
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/java…
>> _______________________________________________
>> Monetdb-developers mailing list
>> Monetdb-developers(a)lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/monetdb-developers
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.22.11/1368 - Release Date: 9-4-2008 16:20
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.519 / Virus Database: 269.22.11/1368 - Release Date: 9-4-2008 16:20
>
I did a mistake in my scripts to start my mserver and I set my dbname
like this:
/scratch5/romulo/var/dbfarm/
When I start my mserver I get this information:
-bash-3.1$ ../server.sh optimized
# MonetDB server v5.5.0, based on kernel v1.23.0
# Serving database '/scratch5/romulo/var/dbfarm'
# Compiled for x86_64-redhat-linux-gnu/64bit with 64bit OIDs dynamically
linked
# Copyright (c) 1993-2008 CWI, all rights reserved
Until now no problem.
The problem comes when I connect a mclient:
!SABAOTHgetMyStatus: MALException:sabaoth.assert:SABAOTHgetMyStatus
couldn't find a database for /scratch5/romulo/var/dbfarm!
I decided to debug the code and there I decided to print the following
variables:
printf("%s , %s \n ", GDKgetenv("gdk_dbfarm"), GDKgetenv("gdk_dbname"));
Result:
/scratch5/romulo/var/dbfarm , /scratch5/romulo/var/dbfarm
Until now no problem, so what is the reason for the crash? Well, I
decide to check my dbfarm:
/scratch5/romulo/var/dbfarm
There I found out that the directory with name
"/scratch5/romulo/var/dbfarm"
does not exist, but instead of that sub-directories were created:
/scratch5/romulo/var/dbfarm/scratch5/romulo/var/dbfarm/
My question is:
Is the location of the database correct just because in the dbname I
defined the name like a path? Or should that name be interpreted as a
single string?
Regards,
Romulo
PS: Next time I will be more be careful with my scripts :)
I start the mserver with the following command:
./mserver5 --set embedded=yes --dbinit="include sql;" &
mclient connection is refused.
The I decided to set the mapi_port:
--set mapi_port=50000 &
Mclient connection is again refused for port 50000:
[goncalve@amelia bin]$ mclient -lsql
!ERROR mapi_reconnect: connect: Connection refused
Setup connection failed
[goncalve@amelia bin]$
and for port 33177 isn't:
[goncalve@amelia bin]$ mclient -lsql -P33177
User (goncalve):
[goncalve@amelia bin]$
As you can see the above example the user used for the connection is
goncalve and not monetdb. Why the default user is not monetdb?
And why this port?
This example (the first command to start mserver) was taken from our
web-site...
http://monetdb.cwi.nl/projects/monetdb/SQL/Documentation/Embedded-Server.ht…
Regards,
Romulo