On Wed, Nov 6, 2013 at 5:23 AM, Andy Seaborne <[email protected]> wrote:
> On 06/11/13 00:31, Adeeb Noor wrote: > >> Any help with my question please. >> >> AdeeB >> >> >> On Mon, Nov 4, 2013 at 1:48 PM, Adeeb Noor <[email protected]> >> wrote: >> >> Hi Andy: >>> >>> Thanks for the response. >>> >>> My TDB is on my hard drive with 15GB size wise. >>> >> > How many triples? > *The number of triples is: 37397456* > > And how much of the DB does the SELECT query match? > > What's SELECT (count(*) AS ?c) .... > What's SELECT (count(distinct *) AS ?c) .... > *Here is the SELECT I want to apply to generate my subgraph:* CONSTRUCT { ddidd:C0004057 ?r ?disease1 . ?disease1 ?r10 ddidd:C0004057 . ?disease1 ?r1 ?omim1 . ?omim1 ?r11 ?disease1 . ?omim1 ?r2 ?w . ?w ?r12 ?omim1 . ?omim1 ?r3 ?bp . ?bp ?r13 ?omim1 . ?omim1 ?r4 ?genotypePhenotype . ?genotypePhenotype ?r14 ?omim1 . ?omim1 ?r5 ?gene. ?gene ?r15 ?omim1 . ?w ?r6 ?gene2. ?gene2 ?r16 ?w . ?omim1 ?r7 ?gene3 . ?gene3 ?r17 ?omim1. ?gene3 ?r8 ?bp2 . ?bp2 ?r18 ?gene3 . ?gene3 ?r9 ?genotypePhenotype2 . ?genotypePhenotype2 ?r19 ?gene3 . ?gene a ?gCLASS. ?gene2 a ?g2CLASS. ?gene3 a ?g3CLASS. ?genotypePhenotype a ?genotypePhenotypeCLASS . ?genotypePhenotype2 a ?genotypePhenotype2CLASS. ?w a ?wCLASS . ?omim1 a ?omimt1 . ?bp a ?bpCLASS . ?bp2 a ?bp2CLASS . ddidd:C0004057 ddids:label ?ldrug1 . ?disease1 ddids:label ?ldisease1 . ?omim1 ddids:label ?lomim1 . ?w ddids:label ?lw . ?bp ddids:label ?lbp . ?genotypePhenotype ddids:label ?lgenotypePhenotype . ?gene ddids:label ?lgene . ?gene2 ddids:label ?lgene2 . ?gene3 ddids:label ?lgene3 . ?bp2 ddids:label ?lbp2 . ?genotypePhenotype2 ddids:label ?lgenotypePhenotype2 . }WHERE{ ddidd:C0004057 ?r ?disease1 . ?disease1 ?r10 ddidd:C0004057 . ?disease1 ?r1 ?omim1 . ?omim1 ?r11 ?disease1 . ?omim1 ?r2 ?w . ?w ?r12 ?omim1 . ?omim1 ?r3 ?bp . ?bp ?r13 ?omim1 . ?omim1 ?r4 ?genotypePhenotype . ?genotypePhenotype ?r14 ?omim1 . ?omim1 ?r5 ?gene. ?gene ?r15 ?omim1 . ?w ?r6 ?gene2. ?gene2 ?r16 ?w . ?omim1 ?r7 ?gene3 . ?gene3 ?r17 ?omim1. ?gene3 ?r8 ?bp2 . ?bp2 ?r18 ?gene3 . ?gene3 ?r9 ?genotypePhenotype2 . ?genotypePhenotype2 ?r19 ?gene3 . ?gene a ?gCLASS. ?gene2 a ?g2CLASS. ?gene3 a ?g3CLASS. ?genotypePhenotype a ?genotypePhenotypeCLASS . ?genotypePhenotype2 a ?genotypePhenotype2CLASS. ?w a ?wCLASS . ?omim1 a ?omimt1 . ?bp a ?bpCLASS . ?bp2 a ?bp2CLASS . ddidd:C0004057 ddids:label ?ldrug1 . ?disease1 ddids:label ?ldisease1 . ?omim1 ddids:label ?lomim1 . ?w ddids:label ?lw . ?bp ddids:label ?lbp . ?genotypePhenotype ddids:label ?lgenotypePhenotype . ?gene ddids:label ?lgene . ?gene2 ddids:label ?lgene2 . ?gene3 ddids:label ?lgene3 . ?bp2 ddids:label ?lbp2 . ?genotypePhenotype2 ddids:label ?lgenotypePhenotype2 . FILTER ( ?r = ddids:may_treat || ?r = ddids:may_prevent ) FILTER (?omimt1 = ddids:gene || ?omimt1 = ddids:genotypePhenotype ) FILTER (?wCLASS = ddids:pathway || ?r2 = ddids:gene_is_element_in_pathway ) FILTER (?bpCLASS = ddids:biologicalProcess ) FILTER (?bp2CLASS = ddids:biologicalProcess ) FILTER (?genotypePhenotypeCLASS = ddids:genotypePhenotype ) FILTER (?genotypePhenotype2CLASS = ddids:genotypePhenotype ) FILTER (?gCLASS = ddids:gene ) FILTER (?g2CLASS = ddids:gene ) FILTER (?g3CLASS = ddids:gene ) } > > We still know little about your setup. > > > > and my PC is Mac Pro with >>> 2.4 GHZ and 4GB of memory. >>> >> > Java 32 bit or 64 bit? *java version "1.6.0_65"* *Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)* *Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)* > > > >>> I was not able to use QueryExecution.execConstructTriples as >>> it returnees an iterator and I want to save the subgraph into a new TDB . >>> >> > Why is that a problem? Add them to a TDB database. > * I will try it and let you know. * > Or even use a SPARQL Update operation. *SPARQL update if I am not wrong will not work in my case as I want to create a subgraph from the whole data and store it in a new TDB. We can use only the SPARQL update if we can add data on the original TDB; AM I right ? * > > > Here is my code below: >>> >>> FileLoader fileLoader = new FileLoader("src/DDICONSTRUCT.tql"); >>> >>> String q = fileLoader.loadAll(); >>> >>> Query query = QueryFactory.create(q) ; >>> >>> QueryExecution qexec = QueryExecutionFactory.create(query, data.tdb); >>> >>> >>> Model constructModel = qexec.execConstruct(); >>> >>> >>> The program has been running for almost a day now, let me know if there >>> is >>> something wrong or if there is an alternative to CONSTRUCT thing. >>> >>> >>> >>> On Sun, Nov 3, 2013 at 12:59 PM, Andy Seaborne <[email protected]> wrote: >>> >>> On 03/11/13 07:05, Adeeb Noor wrote: >>>> >>>> Hi Andy: >>>>> >>>>> I did figure it out, however it takes to much time (CONSTRUCT) to >>>>> finish >>>>> as >>>>> my query is complex. Is that something normal ? in fact, it is still >>>>> running >>>>> >>>>> >>>> Hard to tell - it depends on many factors such as machine setup, where >>>> the data is stored, structure and volume of your data >>>> >>>> Try >>>> >>>> QueryExecution.execConstructTriples >>>> >>>> Andy >>>> >>>> >>>> >>>> AdeeB >>>>> >>>>> >>>>> On Sat, Nov 2, 2013 at 9:56 AM, Adeeb Noor <[email protected]> >>>>> wrote: >>>>> >>>>> Hi Andy: >>>>> >>>>>> >>>>>> Thanks for the quick response. I tried CONSTRUCT and it did work out. >>>>>> But >>>>>> how can I reformat such a query to CONSTRUCT one: >>>>>> >>>>>> SELECT DISTINCT * >>>>>> >>>>>> { >>>>>> >>>>>> ?ddi ddids:has_association ?c . >>>>>> >>>>>> ?ddi ddids:has_association ?c2 . >>>>>> >>>>>> ?c ddids:chemical_or_drug_affects_gene_product ?omim . >>>>>> >>>>>> ?omim ddids:gene_product_encoded_by_gene ?g . >>>>>> >>>>>> ?g ddids:gene_plays_role_in_process ?w . >>>>>> >>>>>> ?g ddids:gene_plays_role_in_process ?bp . >>>>>> >>>>>> ?bp ddids:process_involves_gene ?g2 . >>>>>> >>>>>> ?g2 ddids:gene_plays_role_in_process ?bp2 . >>>>>> >>>>>> >>>>>> where I need each variable ( for example ?w, ?bp , etc) to be a new >>>>>> resources. >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> On Sat, Nov 2, 2013 at 6:41 AM, Andy Seaborne <[email protected]> >>>>>> wrote: >>>>>> >>>>>> You need to use a CONSTRUCT query, not a SELECT one. >>>>>> >>>>>>> >>>>>>> outputAsRDF encodes the result set (i.e. the table) as RDF - it is >>>>>>> not >>>>>>> the datamodel of the original data. >>>>>>> >>>>>>> CONSTRUCT allows you to create one RDF graph from data from another. >>>>>>> >>>>>>> See also SPARQL Update for doign that from one graph to another in >>>>>>> the >>>>>>> same database. >>>>>>> >>>>>>> Andy >>>>>>> >>>>>>> >>>>>>> On 02/11/13 05:35, Adeeb Noor wrote: >>>>>>> >>>>>>> Hi guys: >>>>>>> >>>>>>>> >>>>>>>> I would like to save my SPARQL result coming from ResultSet into new >>>>>>>> rdf. >>>>>>>> (new rdf resources) cause I want to do more work on this subgraph >>>>>>>> and >>>>>>>> it >>>>>>>> has to be in the original rdf format. >>>>>>>> >>>>>>>> I tried outputAsRDF function and it worked however the result I got >>>>>>>> the >>>>>>>> following: >>>>>>>> >>>>>>>> <rdf:Description rdf:nodeID="A5"> >>>>>>>> <rs:value rdf:resource=" >>>>>>>> https://csel.cs.colorado.edu/~noor/Drug_Disease_ontology/ >>>>>>>> DDID.owl#genotypePhenotype >>>>>>>> "/> >>>>>>>> <rs:variable>omimt</rs:variable> >>>>>>>> </rdf:Description> >>>>>>>> <rdf:Description rdf:nodeID="A6"> >>>>>>>> <rs:value rdf:resource=" >>>>>>>> https://csel.cs.colorado.edu/~noor/Drug_Disease_ontology/ >>>>>>>> DDID.rdf#C0007589 >>>>>>>> "/> >>>>>>>> <rs:variable>w</rs:variable> >>>>>>>> </rdf:Description> >>>>>>>> <rdf:Description rdf:nodeID="A7"> >>>>>>>> <rs:binding rdf:nodeID="A8"/> >>>>>>>> <rs:binding rdf:nodeID="A9"/> >>>>>>>> <rs:binding rdf:nodeID="A10"/> >>>>>>>> <rs:binding rdf:nodeID="A11"/> >>>>>>>> <rs:binding rdf:nodeID="A12"/> >>>>>>>> <rs:binding rdf:nodeID="A13"/> >>>>>>>> <rs:binding rdf:nodeID="A14"/> >>>>>>>> <rs:binding rdf:nodeID="A15"/> >>>>>>>> <rs:binding rdf:nodeID="A16"/> >>>>>>>> <rs:binding rdf:nodeID="A17"/> >>>>>>>> <rs:binding rdf:nodeID="A18"/> >>>>>>>> <rs:binding rdf:nodeID="A19"/> >>>>>>>> <rs:binding rdf:nodeID="A20"/> >>>>>>>> <rs:binding rdf:nodeID="A21"/> >>>>>>>> <rs:binding rdf:nodeID="A22"/> >>>>>>>> <rs:binding rdf:nodeID="A23"/> >>>>>>>> <rs:binding rdf:nodeID="A24"/> >>>>>>>> <rs:binding rdf:nodeID="A25"/> >>>>>>>> <rs:binding rdf:nodeID="A26"/> >>>>>>>> <rs:binding rdf:nodeID="A27"/> >>>>>>>> </rdf:Description> >>>>>>>> >>>>>>>> how I can remove this nodes things and make it something like: >>>>>>>> >>>>>>>> <rdf:Description rdf:about=" >>>>>>>> https://csel.cs.colorado.edu/~noor/Drug_Disease_ontology/ >>>>>>>> DDID.rdf#C3229174"> >>>>>>>> <j.0:label>Cytra-K Oral Product</j.0:label> >>>>>>>> <rdf:type rdf:resource=" >>>>>>>> https://csel.cs.colorado.edu/~noor/Drug_Disease_ontology/ >>>>>>>> DDID.owl#chemical >>>>>>>> "/> >>>>>>>> </rdf:Description> >>>>>>>> >>>>>>>> please help me out >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> -- >>>>>> Adeeb Noor >>>>>> Ph.D. Candidate >>>>>> Dept of Computer Science >>>>>> University of Colorado at Boulder >>>>>> Cell: 571-484-3303 >>>>>> Email: [email protected] >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>> >>> -- >>> Adeeb Noor >>> Ph.D. Candidate >>> Dept of Computer Science >>> University of Colorado at Boulder >>> Cell: 571-484-3303 >>> Email: [email protected] >>> >>> >> >> >> > -- Adeeb Noor Ph.D. Candidate Dept of Computer Science University of Colorado at Boulder Cell: 571-484-3303 Email: [email protected]
