I have created a jena-fusek-1.0.0-SNAPSHOT build that can be used to connect to a VIVO site (or, essentially any site using a SDB datastore). I created a tar.gz file that can be found in my public dropbox at: https://dl.dropboxusercontent.com/u/29827026/jena-fuseki-1.0.0-vivo.tar.gz
From: Cyril HOLZER [mailto:[email protected]] Sent: Monday, September 09, 2013 10:25 AM To: [email protected] Subject: Re: fuseki, vivo, mysql. How to set this up? Thank you for your help. you can find my joseki configuration attached to this mail and my fuseki configuration file below : @prefix fuseki: <http://jena.apache.org/fuseki#<http://jena.apache.org/fuseki>> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns>> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#<http://www.w3.org/2000/01/rdf-schema>> . @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#<http://jena.hpl.hp.com/2008/tdb>> . @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#<http://jena.hpl.hp.com/2005/11/Assembler>> . @prefix sdb: <http://jena.hpl.hp.com/2007/sdb#<http://jena.hpl.hp.com/2007/sdb>> . @prefix jumble: <http://rootdev.net/vocab/jumble#<http://rootdev.net/vocab/jumble>> . [] rdf:type fuseki:Server ; ja:context [ ja:cxtName "http://jena.hpl.hp.com/SDB/symbol#unionDefaultGraph" ; ja:cxtValue "true" ] ; fuseki:services ( <#service> ) . [] ja:loadClass "com.hp.hpl.jena.sdb.SDB" . sdb:DatasetStore rdfs:subClassOf ja:RDFDataset . <#service> rdf:type fuseki:Service ; fuseki:name "VIVO" ; fuseki:serviceQuery "sparql" ; fuseki:serviceQuery "query" ; fuseki:serviceUpdate "update" ; # SPARQL query service -- /ds/update fuseki:serviceUpload "upload" ; # Non-SPARQL upload service fuseki:serviceReadGraphStore "get" ; # Graph store protocol (read only) -- fuseki:dataset <#dataset> ; . <#dataset> rdf:type ja:RDFDataset ; ja:defaultGraph <#sdb-one-graph> ; . <#sdb-one-graph> a sdb:Model ; sdb:dataset <#sdb> ; sdb:graphName <urn:x-arq:UnionGraph> ; . <#sdb> rdf:type sdb:DatasetStore ; ## Number of concurrent connections allowed to this dataset. fuseki:poolSize 64 ; sdb:store <#store> . <#store> rdf:type sdb:Store ; rdfs:label "SDB" ; sdb:layout "layout2" ; sdb:connection [ rdf:type sdb:SDBConnection ; sdb:sdbHost "localhost" ; sdb:sdbType "MySQL" ; sdb:sdbName "vitrodb" ; sdb:sdbUser "vivo" ; sdb:sdbPassword "vivo" ; sdb:driver "com.mysql.jdbc.Driver" ; ] . Cordialement, Cyril Holzer 06.81.84.93.51 P Adoptons ensemble des gestes responsables : N'imprimez ce message que si cela est indispensable " Ce courriel et les documents qui y sont attaches peuvent contenir des informations confidentielles. Si vous n'êtes pas le destinataire escompte, merci d'en informer l'expéditeur immédiatement et de détruire ce courriel ainsi que tous les documents attaches de votre système informatique. Toute divulgation, distribution ou copie du présent courriel et des documents attaches sans autorisation préalable de son émetteur est interdite." "This e-mail and any attached documents may contain confidential or proprietary information. If you are not the intended recipient, please advise the sender immediately and delete this e-mail and all attached documents from your computer system. Any unauthorized disclosure; distribution or copying hereof is prohibited." 2013/9/9 Andy Seaborne <[email protected]<mailto:[email protected]>> How do you set it for Joseki? 1/ Pick the graph specifically out of the store via: <#dataset> rdf:type ja:RDFDataset ; ja:defaultGraph <#sdb-one-graph> ; . <#sdb-one-graph> a sdb:Model ; sdb:dataset <#sdb> ; sdb:graphName <urn:x-arq:UnionGraph> . 2/ Setting the ARQ context for the whole server: [] rdf:type fuseki:Server ; ja:context [ ja:cxtName "http://jena.hpl.hp.com/SDB/symbol#unionDefaultGraph" ; ja:cxtValue "true" ] ; (sorry - I can't check this - no SDB setup to hand) Andy On 09/09/13 13:52, Cyril HOLZER wrote: Thank you Michel, but If you mean in your configuration file I don't see where you specify the graph. If you mean in the query I do not prefer specify it in this way because we have already developped an application based on Joseki and Vivo and we do not need to specify the graph. (just to set the propertie unionDefaultGraph in the configuration file) Cordialement, Cyril Holzer 06.81.84.93.51 P *Adoptons ensemble des gestes responsables :* *N'imprimez ce message que si cela est indispensable*** ** ** " Ce courriel et les documents qui y sont attaches peuvent contenir des informations confidentielles. Si vous n'êtes pas le destinataire escompte, merci d'en informer l'expéditeur immédiatement et de détruire ce courriel ainsi que tous les documents attaches de votre système informatique. Toute divulgation, distribution ou copie du présent courriel et des documents attaches sans autorisation préalable de son émetteur est interdite."**** ** ** "This e-mail and any attached documents may contain confidential or proprietary information. If you are not the intended recipient, please advise the sender immediately and delete this e-mail and all attached documents from your computer system. Any unauthorized disclosure; distribution or copying hereof is prohibited."**** ** 2013/9/9 Michel de Lange <[email protected]<mailto:[email protected]>> I am getting data now (with Fuseki 0.2.7 ), after following Andy's advice with the named graph. My mistake was that I did specify the graph, and so the query looked only at the default graph, and that is not where the data was. Cheers, Michel On 09/09/2013 21:17, Cyril HOLZER wrote: Hi John, I am interested with your build because I am trying to set up fuseki 0.2.7 and there is no data like Michel. I managed to run all with older versions (joseki and fuseki 0.2.2) but I can not do it with 0.2.7. thank you Cordialement, Cyril Holzer 06.81.84.93.51 P *Adoptons ensemble des gestes responsables :* *N'imprimez ce message que si cela est indispensable*** ** ** " Ce courriel et les documents qui y sont attaches peuvent contenir des informations confidentielles. Si vous n'êtes pas le destinataire escompte, merci d'en informer l'expéditeur immédiatement et de détruire ce courriel ainsi que tous les documents attaches de votre système informatique. Toute divulgation, distribution ou copie du présent courriel et des documents attaches sans autorisation préalable de son émetteur est interdite."**** ** ** "This e-mail and any attached documents may contain confidential or proprietary information. If you are not the intended recipient, please advise the sender immediately and delete this e-mail and all attached documents from your computer system. Any unauthorized disclosure; distribution or copying hereof is prohibited."**** ** 2013/9/7 John A. Fereira <[email protected]<mailto:[email protected]>> I don't know if this will help but I've got Fuseki + SDB +MySQL built based on the 0.2.6 code that we've been using for VIVO at Cornell (my boss was the original developer of VIVO. It has a few sample sparql queries for pulling data out of VIVO and include a startup script. It's all zipped up and can be deployed with just a small change to the configuration file I've got a ton of things on my plate right now but I want to build a version from the 1.0.0-SNAPSHOT (but thought I'd wait to see if json-ld gets in). In any case, you're welcome to my build (I've got it in a public folder in Dropbox) if you want it. -----Original Message----- From: Andy Seaborne [mailto:[email protected]<mailto:[email protected]>] Sent: Friday, September 06, 2013 5:23 PM To: [email protected]<mailto:[email protected]> Subject: Re: fuseki, vivo, mysql. How to set this up? On 06/09/13 10:41, Michel de Lange wrote: Hi Andy, Thank you very much for your help. I must confess that I barely know what I am doing, and I have been tearing my hear out, so I very much appreciate your help. I have run the query you gave me (select * WHERE { { ?a ?b ?c } UNION { GRAPH ?g { ?s ?p ?o } } } LIMIT 10) , and it returns heaps. Here is the top part: { "head": { "vars": [ "a" , "b" , "c" , "s" , "p" , "o" , "g" ] } , "results": { "bindings": [ { "s": { "type": "uri" , "value": "http://purl.org/dc/terms/**modified<http://purl.org/dc/terms/modified>" } , "p": { "type": "uri" , "value": "http://www.w3.org/1999/02/22-**rdf-syntax-ns#type<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>" } , "o": { "type": "uri" , "value": "http://www.w3.org/2002/07/**owl#AnnotationProperty<http://www.w3.org/2002/07/owl#AnnotationProperty>" } , "g": { "type": "uri" , "value": "http://vitro.mannlib.cornell.**edu/filegraph/tbox/vivo-** dcterms-1.5.owl<http://vitro.mannlib.cornell.edu/filegraph/tbox/vivo-dcterms-1.5.owl>" } } , { "s": { "type": "uri" , "value": "http://purl.org/dc/terms/**source <http://purl.org/dc/terms/source>" } , "p": { "type": "uri" , "value": "http://www.w3.org/1999/02/22-**rdf-syntax-ns#type<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>" } , "o": { "type": "uri" , "value": "http://www.w3.org/2002/07/**owl#AnnotationProperty<http://www.w3.org/2002/07/owl#AnnotationProperty>" } , "g": { "type": "uri" , "value": "http://vitro.mannlib.cornell.**edu/filegraph/tbox/vivo-** dcterms-1.5.owl<http://vitro.mannlib.cornell.edu/filegraph/tbox/vivo-dcterms-1.5.owl>" } } , { and on it goes. There are no values for a, b and c anywhere I can see, but there are things I put into the db myself, such as this line (I took LIMIT 10 out of the query): "s": { "type": "uri" , "value": "http://vivo.mydomain.edu/**individual/n6763<http://vivo.mydomain.edu/individual/n6763>" } , "p": { "type": "uri" , "value": "http://xmlns.com/foaf/0.1/**lastName<http://xmlns.com/foaf/0.1/lastName>" } , "o": { "datatype": "http://www.w3.org/2001/**XMLSchema#string<http://www.w3.org/2001/XMLSchema#string> " , "type": "typed-literal" , "value": "Tolstoy" } , "g": { "type": "uri" , "value": "http://vitro.mannlib.cornell.**edu/default/vitro-kb-2<http://vitro.mannlib.cornell.edu/default/vitro-kb-2>" } What does this imply for what I am doing? Why does this query return something, and mine does not? That means all the data is in named graphs. Maybe VIVO uses "union default graph" mode http://jena.apache.org/**documentation/sdb/**configuration.html#queries- **over-all-named-graphs<http://jena.apache.org/documentation/sdb/configuration.html#queries-over-all-named-graphs> When you say "connect to one that isn't an SDB database": What makes a database//an SDB database? SDB uses it's own schema - it isn't a general SQL to RDF mapper. Mine is a MYSQL database, filled with tables by VIVO. Is that an SDB database? It has tables, such as jena_g1t0_reif, That is a Jena RDB table. The RDB storage system is no longer supported or included in Jena. Could it be unused and left over from an earlier time? and so on, and a table called triplets, and one called quads, They are SDB tables. so that is all quite promising. I wonder if there is some part missing, where I tell the sparql endpoint just how the queries should match the tables in my database. This may help: SELECT * { GRAPH <urn:x-arq:UnionGraph> { ?s ?p ?o } and asking the VIVO people what the setup is. Andy Thank you again, Michel
