% ```prolog :- use_module(library(logicmoo_utils)). % facts for creating predcatres extracted_predicate(transposon, [primaryId, symbol, sequence, url, taxonId, soTermId]). extracted_predicate(transposon_publications, [primaryId, publications]). extracted_predicate(transposon_synonyms, [primaryId, symbolSynonyms]). extracted_predicate(transposon_cross_references, [primaryId, crossReferenceIds]). extracted_predicate(gene, [primaryId, gene_geneId, gene_symbol, gene_url, gene_locusTag, gene_name]). extracted_predicate(N,[gene_geneId,N]):- member(M,[symbol, url, locusTag, name, synonyms]), atom_concat('gene_',M,N). extracted_predicate(exon_locations, [primaryId, genomeLocations_assembly, genomeLocations_gca_accession, exons_INSDC_accession, exons_chromosome, exons_strand, exons_startPosition, exons_endPosition]). extracted_predicate(relatedSequences,[primaryId,relatedSequences_sequenceId, relatedSequences_relationship]). extracted_predicate(gene_synonyms, [gene_geneId, gene_synonyms]). %extracted_predicate(exon, [primaryId, geneId, 'INSDC_accession', chromosome, strand, startPosition, endPosition]). extracted_predicate(metadata, [dataProvider, schemaVersion, release, genomicCoordinateSystem, dateProduced]). %extracted_predicate(exon_locations, [ assembly, chromosome, strand, startPosition, endPosition]). extracted_predicate(N,[fbid,M]):- member(M,[transposons, common_terms, major_stages, major_tissues, name, pubs, rex_gene, stocks, expression_desc_text, images]), atom_concat('allele_',M,N). extracted_predicate(allele_image,[fbid,images,images_imageDescription, images_publicationId, images_pubFigure, images_permission]). extracted_predicate(allele_image2, [fbid,images, imageDescription, publicationId, pubFigure, permission]). extracted_predicate(allele_image3, [fbid, images_imageDescription, images_publicationId, images_pubFigure, images_permission]). wdmsg_json(G):- nop(fbug(G)). note_doing(P):- wdmsg_json(P),!,call(user:P). assert_JSON(P):- note_doing(assert_OBO(P)). :- ensure_loaded(flybase_main). :- ensure_loaded(flybase_obo). %:- listing(assert_OBO/1). :- dynamic json_kv/2. % Base case: an empty curly structure. mapcurly_or_list(_, {}):-!. mapcurly_or_list(_, []):-!. mapcurly_or_list(Pred, [H|T]) :- !, call(Pred, H), mapcurly_or_list(Pred, T). mapcurly_or_list(Pred, {H,T}):- !, call(Pred, H), mapcurly_or_list(Pred, T). mapcurly_or_list(Pred, {H}) :- !, call(Pred, H). simple_first(R,_=AA,_=BB):-!, simple_first(R,AA,BB). simple_first('<',AA,BB):- BB=json(_),AA\=json(_),!. simple_first('>',AA,BB):- AA=json(_),BB\=json(_),!. simple_first(R,AA,BB):-!, compare(R,AA,BB). prefix_key([O|_],Kee,Key):- atom(O), !, prefix_key(O,Kee,Key). prefix_key(O,Kee,Key) :- atom(O), O\==Kee, O\==data,symbolic_list_concat([O,'_',Kee],Key),!. prefix_key(_,Key,Key). :- use_module(library(http/json)). load_flybase_json(_Fn,File):- process_json_file(File). process_json_file(File):- atom_concat(File,'.metta_x',MXFile),process_json_file(File,MXFile). process_json_file(_File,MXFile):- fail, exists_file(MXFile),!,process_metta_x_file(MXFile). process_json_file(File, MXFile):- fail, exists_file(File),!, setup_call_cleanup( open(MXFile,write,Strm,[]), setup_call_cleanup( set_stream(Strm,alias(metta_x_output)), with_option(make_metta_x,'True',process_json_file_direct(File)), set_stream(current_output,alias(metta_x_output))), close(Strm)), remove_duplicates(MXFile), process_metta_x_file(MXFile). process_json_file(File, _):- process_json_file_direct(File),!. process_json_file(File, MXFile):- throw(process_json_file(File, MXFile)). process_json_file_direct(File):- setup_call_cleanup( open(File, read, Stream,[encoding(utf8)]), json_read(Stream, JSONDict), close(Stream)), process_json([],JSONDict). process_json(JsonString):- process_json([],JsonString),!. process_json(O,JsonString) :- atomic(JsonString), !, atom_json_term(JsonString, Json, []), process_json(O,Json). process_json(O,json(Values)) :- !, process_json(O,Values). process_json(O,K=json(Values)) :- !, process_json([K|O],Values). process_json(O,Values) :- is_list(Values),!,maplist(with_json1(O),Values). process_json(O,Values) :- with_json1(O,Values),!. with_json1(O,K=Values) :- K==driver,!, with_json1(O,Values). with_json1(O,K=Values) :-!, with_json1([K|O],Values). with_json1(O,Values) :- is_list(Values),!,maplist(with_json1(O),Values). with_json1(O,json([driver=json(Values0)])) :- !,with_json2(O,Values0),!. with_json1(O,json(Values0)) :- is_list(Values0),!,with_json2(O,Values0),!. with_json1(O,Val):- fbug(error(O=Val)),!. with_json2([metaData],_Values0):-!. with_json2(O,Values):- retractall(seen_arg(_,_)), with_json3(O,Values), ignore((seen_arg(_,_), fbug(Values), listing(seen_arg/2))). with_json3(O,Values0):- retractall(json_kv(_,_)), with_json4(O,Values0), retractall(json_kv(_,_)),!. with_json4(O,[json(Values)]):- !, with_json4(O,Values). with_json4(O,json(Values)):- !, with_json4(O,Values). with_json4(O,Values0):- predsort(simple_first,Values0,Values), wdmsg_json(O==Values), ignore(maplist(with_entry(O,assert),Values)). with_entry(O,AR, Key=Value):-!, with_kv([Key|O],AR,Key,Value). %with_entry(O,assert,JSON) :- !, process_json(O,JSON). with_entry(O,AR,JSON):- fbug(error_with_entry(O,AR,JSON)). uses_id_subprops(images). key_can_nv(M):- member(M,[major_stages, major_tissues, name, rex_gene, insertions,transposons, %expression_desc_text, images, pubs, stocks]). is_field(Field):- extracted_predicate(_,List), \+ \+ member(Field,List),!. with_kv_maybe_more(_O,_AR,_Key,json([])):-!. with_kv_maybe_more(O,AR,Key,Do):- with_kv(O,AR,Key,Do),!. assert_id_about(O,Key,ID,NVAboutID):- with_json4([Key|O],[Key=ID|NVAboutID]). %images= json( [ 'FBal0040476_1.jpg'= json( [ imageDescription='GAL4[Bx-MS1096].jpg', with_kv(O,AR,Key,json([ID=json(NVAboutID)|More])):- uses_id_subprops(Key), %wdmsg_json(cr1(Key)=ID), atom(ID),!, decl_type(ID,Key), with_kv(O,AR,Key,ID), assert_id_about(O,Key,ID,NVAboutID), with_kv_maybe_more(O,AR,Key,json(More)). with_kv(O,AR,Key,json([ID=Value|More])):- key_can_nv(Key), atom(Value), % prefix_key(O,ID,Field), \+ is_field(Field),!, %prefix_key(O,Value,VField), \+ is_field(VField),!, decl_type(ID,Key), with_kv(O,AR,Key,ID), %atom_concat(Key,'_name',Pred), %Pred = object_name, assert_JSON([name,ID,Value]), with_kv_maybe_more(O,AR,Key,json(More)). with_kv(O,AR,OK,Key=Values):- !, with_kv([OK|O],AR,Key,Values). with_kv(O,AR,Key,json(Values)):- !, with_kv(O,AR,Key,Values). with_kv(O,AR,Key,Value):- is_list(Value),Value\==[],!, maplist(with_kv(O,AR,Key),Value). with_kv(O,AR,Kee,Value):- prefix_key(O,Kee,Key), retractall(json_kv(Key,_)), KV = json_kv(Key,Value), decl_seen(Value,Key), Do =.. [AR,KV], call(Do), ignore((AR==assert, %wdmsg_json(cr(Key)=Value), check_ready(Key))). check_ready(Key):- forall((extracted_predicate(P,List),memberchk(Key,List)), (length(List,Len), ignore((findall(Arg,(member(K,List),json_kv(K,Arg)),ArgList), length(ArgList,Len), Fact = [P|ArgList], assert_JSON(Fact), maplist(decl_type,ArgList,List))))). % Rows 937,381,148 :- dynamic(arg_typed/2). :- dynamic(seen_arg/2). decl_type(Arg,Type):- retractall(seen_arg(Arg,_)),arg_typed(Arg,Type),wdmsg_json(arg_typed(Arg,Type)),!. decl_type(Arg,Type):- assert(arg_typed(Arg,Type)),!,assert_JSON([Type,Arg]). decl_seen(Arg,_):- seen_arg(Arg,_),!. decl_seen(Arg,_):- arg_typed(Arg,_),!. decl_seen(Arg,Type):- assert(seen_arg(Arg,Type)),!. err :- process_json(json([metaData= json( [ dataProvider='FlyBase', publications=['PMID:35266522'], schemaVersion='0.4.0',release=fb_2023_04, genomicCoordinateSystem='1-start, fully-closed', dateProduced='2023-07-25T03:20:14+00:00']), data= [ json( [ primaryId='FBtr0070001', symbol='tRNA:Pro-CGG-1-1-RA', sequence='GGCTCGTTGGTCTAGGGGTATGATTCTCGCTTCGGGTGCGAGAGGTCCCGGGTTCAAATCCCGGACGAGCCC', url='http://flybase.org/reports/FBtr0070001.html', symbolSynonyms=['CR32826-RA','tRNA:CR32826-RA'], taxonId='NCBITaxon:7227',soTermId='SO:0000253', genomeLocations= [ json( [ assembly='R6', gca_accession='GCA_000001215.4', exons= [ json( [ 'INSDC_accession'='AE014298.5', chromosome='X',strand=(+), startPosition=20025099,endPosition=20025170])]])], gene= json( [ geneId='FBgn0052826', symbol='tRNA:Pro-CGG-1-1', url='http://flybase.org/reports/FBgn0052826.html', locusTag='Dmel_CR32826', synonyms=['tRNA:P:CGG:AE002611'], name='transfer RNA:Proline-CGG 1-1']), publications=['PMID:26673694']]), json( [ primaryId='FBtr0070292', symbol='snoRNA:M-RA', sequence='AATTCAATGATTTCAACTTATTCTAATACACAC', url='http://flybase.org/reports/FBtr0070292.html', taxonId='NCBITaxon:7227',soTermId='SO:0000275', crossReferenceIds=['REFSEQ:NR_002093.1'], genomeLocations= [ json( [ assembly='R6', gca_accession='GCA_000001215.4', exons= [ json( [ 'INSDC_accession'='AE014298.5', chromosome='X',strand=(-), startPosition=1482492,endPosition=1482590])]])], gene= json( [ geneId='FBgn0044508', symbol='snoRNA:M', url='http://flybase.org/reports/FBgn0044508.html', locusTag='Dmel_CR32807', synonyms=['CR32807'],name='snoRNA:M'])]), json( [ primaryId='FBtr0308931', symbol='lncRNA:CR33218-RC', sequence='ACGAAATCAATAAACATTTGTACCTTT', url='http://flybase.org/reports/FBtr0308931.html', symbolSynonyms=['CR33218-RC'], taxonId='NCBITaxon:7227',soTermId='SO:0001877', crossReferenceIds=['REFSEQ:NR_047742.1'], genomeLocations= [ json( [ assembly='R6', gca_accession='GCA_000001215.4', exons= [ json( [ 'INSDC_accession'='AE014298.5', chromosome='X',strand=(+), startPosition=2330159,endPosition=2330355]), json( [ 'INSDC_accession'='AE014298.5', chromosome='X',strand=(+), startPosition=2330413,endPosition=2330826])]])], gene= json( [ geneId='FBgn0053218', symbol='lncRNA:CR33218', url='http://flybase.org/reports/FBgn0053218.html', locusTag='Dmel_CR33218', synonyms=['CG2854','CG33218','CR33218','CT9762'], name='long non-coding RNA:CR33218'])]), json( [ primaryId='FBtr0070634', symbol='lncRNA:roX1-RA',sequence='TTGTAGAACAATTACTATA', url='http://flybase.org/reports/FBtr0070634.html', symbolSynonyms=['roX1-RA','roX1-RA....'], taxonId='NCBITaxon:7227',soTermId='SO:0001877', crossReferenceIds=['REFSEQ:NR_002098.2'], genomeLocations= [ json( [ assembly='R6', gca_accession='GCA_000001215.4', exons= [ json( [ 'INSDC_accession'='AE014298.5', chromosome='X',strand=(-), startPosition=3858940,endPosition=3862697])]])], gene= json( [ geneId='FBgn0019661', symbol='lncRNA:roX1', url='http://flybase.org/reports/FBgn0019661.html', locusTag='Dmel_CR32777', synonyms= [ 'BcDNA:GH10432', 'CR32777','EG:EG0002.2','RoX1', 'chrX:3706836..3706970',rox1], name='long non-coding RNA on the X 1']), publications=['PMID:10445033','PMID:12446910','PMID:9038336','PMID:9038337']])] ])). err :- process_json([],' { "metaData": { "dataProvider": "FlyBase", "publications": [ "PMID:35266522" ], "schemaVersion": "0.4.0", "release": "fb_2023_04", "genomicCoordinateSystem": "1-start, fully-closed", "dateProduced": "2023-07-25T03:20:14+00:00" }, "data": [ { "primaryId": "FBtr0070001", "symbol": "tRNA:Pro-CGG-1-1-RA", "sequence": "GGCTCGTTGGTCTAGGGGTATGATTCTCGCTTCGGGTGCGAGAGGTCCCGGGTTCAAATCCCGGACGAGCCC", "url": "http://flybase.org/reports/FBtr0070001.html", "symbolSynonyms": [ "CR32826-RA", "tRNA:CR32826-RA" ], "taxonId": "NCBITaxon:7227", "soTermId": "SO:0000253", "genomeLocations": [ { "assembly": "R6", "gca_accession": "GCA_000001215.4", "exons": [ { "INSDC_accession": "AE014298.5", "chromosome": "X", "strand": "+", "startPosition": 20025099, "endPosition": 20025170 } ] } ], "gene": { "geneId": "FBgn0052826", "symbol": "tRNA:Pro-CGG-1-1", "url": "http://flybase.org/reports/FBgn0052826.html", "locusTag": "Dmel_CR32826", "synonyms": [ "tRNA:P:CGG:AE002611" ], "name": "transfer RNA:Proline-CGG 1-1" }, "publications": [ "PMID:26673694" ] }, { "primaryId": "FBtr0070292", "symbol": "snoRNA:M-RA", "sequence": "AATTCAATGATTTCAACTTATTCTAATACACAC", "url": "http://flybase.org/reports/FBtr0070292.html", "taxonId": "NCBITaxon:7227", "soTermId": "SO:0000275", "crossReferenceIds": [ "REFSEQ:NR_002093.1" ], "genomeLocations": [ { "assembly": "R6", "gca_accession": "GCA_000001215.4", "exons": [ { "INSDC_accession": "AE014298.5", "chromosome": "X", "strand": "-", "startPosition": 1482492, "endPosition": 1482590 } ] } ], "gene": { "geneId": "FBgn0044508", "symbol": "snoRNA:M", "url": "http://flybase.org/reports/FBgn0044508.html", "locusTag": "Dmel_CR32807", "synonyms": [ "CR32807" ], "name": "snoRNA:M" } }, { "primaryId": "FBtr0308931", "symbol": "lncRNA:CR33218-RC", "sequence": "ACGAAATCAATAAACATTTGTACCTTT", "url": "http://flybase.org/reports/FBtr0308931.html", "symbolSynonyms": [ "CR33218-RC" ], "taxonId": "NCBITaxon:7227", "soTermId": "SO:0001877", "crossReferenceIds": [ "REFSEQ:NR_047742.1" ], "genomeLocations": [ { "assembly": "R6", "gca_accession": "GCA_000001215.4", "exons": [ { "INSDC_accession": "AE014298.5", "chromosome": "X", "strand": "+", "startPosition": 2330159, "endPosition": 2330355 }, { "INSDC_accession": "AE014298.5", "chromosome": "X", "strand": "+", "startPosition": 2330413, "endPosition": 2330826 } ] } ], "gene": { "geneId": "FBgn0053218", "symbol": "lncRNA:CR33218", "url": "http://flybase.org/reports/FBgn0053218.html", "locusTag": "Dmel_CR33218", "synonyms": [ "CG2854", "CG33218", "CR33218", "CT9762" ], "name": "long non-coding RNA:CR33218" } }, { "primaryId": "FBtr0070634", "symbol": "lncRNA:roX1-RA", "sequence": "TTGTAGAACAATTACTATA", "url": "http://flybase.org/reports/FBtr0070634.html", "symbolSynonyms": [ "roX1-RA" ], "taxonId": "NCBITaxon:7227", "soTermId": "SO:0001877", "crossReferenceIds": [ "REFSEQ:NR_002098.2" ], "genomeLocations": [ { "assembly": "R6", "gca_accession": "GCA_000001215.4", "exons": [ { "INSDC_accession": "AE014298.5", "chromosome": "X", "strand": "-", "startPosition": 3858940, "endPosition": 3862697 } ] } ], "gene": { "geneId": "FBgn0019661", "symbol": "lncRNA:roX1", "url": "http://flybase.org/reports/FBgn0019661.html", "locusTag": "Dmel_CR32777", "synonyms": [ "BcDNA:GH10432", "CR32777", "EG:EG0002.2", "RoX1", "chrX:3706836..3706970", "rox1" ], "name": "long non-coding RNA on the X 1" }, "publications": [ "PMID:10445033", "PMID:12446910", "PMID:9038336", "PMID:9038337" ] } ] } }'). err :- process_json([],' { "metaData": { "dataProvider": "FlyBase", "title": "Frequently Used GAL4 Table", "dateProduced": "2023-07-24T23:20:12-04:00", "databaseRelease": "2023_04", "annotationRelease": "R6.53" }, "data": [ {"driver": { "name": "Scer\\GAL4dpp.blk1", "fbid": "FBal0040480", "images": { "FBal0040480_1.png": { "imageDescription": "GAL4[dpp.blk1].png", "publicationId": "FBrf0218242", "pubFigure": "Figure 5A", "permission": "" } }, "pubs": { "FBrf0074522": "Staehling-Hampton et al., 1994, Cell Growth Diffn 5(6): 585--593", "FBrf0076140": "Wilder and Perrimon, 1995, Development 121(2): 477--488", "FBrf0084454": "Treisman and Rubin, 1995, Development 121(11): 3519--3527", "FBrf0086426": "Grimm and Pflugfelder, 1996, Science 271(5255): 1601--1604", "FBrf0087557": "Lecuit et al., 1996, Nature 381(6581): 387--393", "FBrf0087626": "Nellen et al., 1996, Cell 85(3): 357--368", "FBrf0087630": "Ng et al., 1996, Nature 381(6580): 316--318", "FBrf0088035": "Burke and Basler, 1996, Development 122(7): 2261--2269", "FBrf0088295": "Kim et al., 1996, Nature 382(6587): 133--138", "FBrf0089604": "Brook and Cohen, 1996, Science 273(5280): 1373--1377", "FBrf0089753": "Morimura et al., 1996, Dev. Biol. 177(1): 136--151", "FBrf0091093": "Johnston and Schubiger, 1996, Development 122(11): 3519--3529", "FBrf0091111": "Leevers et al., 1996, EMBO J. 15(23): 6584--6594", "FBrf0091167": "Shen and Mardon, 1997, Development 124(1): 45--52", "FBrf0091298": "Gonzalez-Crespo and Morata, 1996, Development 122(12): 3921--3928", "FBrf0091412": "Theisen et al., 1996, Development 122(12): 3939--3948", "FBrf0092493": "Chanut and Heberlein, 1997, Development 124(2): 559--567", "FBrf0092641": "Neumann and Cohen, 1997, Development 124(4): 871--880", "FBrf0093060": "Aplin and Kaufman, 1997, Mech. Dev. 62(1): 51--60", "FBrf0251844": "Matsuda et al., 2021, Nat. Commun. 12(1): 6435", "FBrf0252066": "Kinsey et al., 2021, G3 (Bethesda) 11(12): jkab350", "FBrf0253453": "Lu et al., 2022, Int. J. Mol. Sci. 23(9): 4543", "FBrf0253792": "Akiyama et al., 2022, Dev. Biol. 488: 91--103", "FBrf0255082": "Inoshita et al., 2022, iScience 25(12): 105476", "FBrf0255366": "Bharti et al., 2023, Proc. Natl. Acad. Sci. U.S.A. 120(2): e2211189119", "FBrf0256654": "He et al., 2023, Development 150(11): dev201297" }, "rex_gene": { "FBgn0000490": "dpp" }, "common_terms": "A/P boundary", "major_stages": { "FBdv00005336": "larval stage" }, "major_tissues": { "FBbt00111520": "anterior-posterior compartment boundary of imaginal disc", "FBbt00001769": "eye disc morphogenetic furrow" }, "transposons": { "FBtp0000365": "P{GAL4-dpp.blk1}" }, "expression_desc_text": "Drives expression at the anterior/posterior compartment boundary of imaginal discs, and at the morphogenetic furrow of the eye disc.", "stocks": { "FBst0305049": "106380", "FBst0001553": "1553", "FBst0067066": "67066", "FBst0084296": "84296", "FBst0084316": "84316", "FBst0084337": "84337", "FBst0093385": "93385" } } }, { "driver": { "name": "Scer\\GAL4Ir25a.PA", "fbid": "FBal0249373", "images": null, "pubs": { "FBrf0212725": "Abuin et al., 2011, Neuron 69(1): 44--60", "FBrf0215822": "Silbering et al., 2011, J. Neurosci. 31(38): 13357--13375", "FBrf0221182": "Min et al., 2013, Proc. Natl. Acad. Sci. U.S.A. 110(14): E1321--E1329", "FBrf0230271": "Chen et al., 2015, Nature 527(7579): 516--520", "FBrf0232388": "Enjin et al., 2016, Curr. Biol. 26(10): 1352--1358", "FBrf0236232": "Frank et al., 2017, Curr. Biol. 27(15): 2381--2388.e4", "FBrf0236716": "Chen and Amrein, 2017, Curr. Biol. 27(18): 2741--2750.e4", "FBrf0236934": "Rist and Thum, 2017, J. Comp. Neurol. 525(18): 3865--3889", "FBrf0237619": "Lee et al., 2018, Neuron 97(1): 67--74.e4", "FBrf0237676": "Ahn et al., 2017, eLife 6: e30115", "FBrf0238151": "Steck et al., 2018, eLife 7: e31625", "FBrf0240321": "Sánchez-Alcañiz et al., 2018, Nat. Commun. 9(1): 4252", "FBrf0240352": "Sun et al., 2018, eLife 7: e39249", "FBrf0241429": "Chai et al., 2019, Nat. Commun. 10(1): 643", "FBrf0242503": "Lei et al., 2019, Front. Physiol. 10: 556", "FBrf0246007": "Alpert et al., 2020, Curr. Biol. 30(12): 2275--2288.e5", "FBrf0247159": "Weaver et al., 2020, G3 (Bethesda) 10(11): 4147--4158", "FBrf0251811": "Dhakal et al., 2021, Commun. Biol. 4(1): 1281", "FBrf0253093": "Trisal et al., 2022, J. Neurosci. 42(14): 2930--2941", "FBrf0253272": "Task et al., 2022, eLife 11: e72599", "FBrf0255204": "Omelchenko et al., 2022, Front. Mol. Neurosci. 15: 1023492", "FBrf0256676": "Shrestha et al., 2023, EMBO Rep. 24(6): e56319", "unattributed": null }, "rex_gene": { "FBgn0031634": "Ir25a" }, "common_terms": "anterior cold cell, ACc, bitter sensing GRN,", "major_stages": { "FBdv00005336": "larval stage", "FBdv00005369": "adult stage" }, "major_tissues": { "FBbt00049613": "bitter-sensing neuron", "FBbt00005923": "hygrosensory neuron", "FBbt00047485": "calcium-sensing neuron of labellar S-type taste bristle", "FBbt00048209": "bitter-sensing neuron of the leg", "FBbt00049720": "non-aristal sensory neuron VP3", "FBbt00051293": "adult thermosensory neuron", "FBbt00110990": "adult hygrosensory neuron Ir40a" }, "transposons": { "FBtp0057158": "P{Ir25a-GAL4.A}" }, "expression_desc_text": "Drives expression in a subset of bitter-sensing, hygrosensory, and cold-sensing thermosensory neurons in the labellum, legs, arista, sacculus, antenna, labrum, and larval head sensory organs", "stocks": { "FBst0041728": "41728" } } } ] }'). json1:- process_json('/opt/logicmoo_opencog/hyperon-wam/data/ftp.flybase.org/releases/FB2023_04/precomputed_files/genes/ncRNA_genes_fb_2023_04.json'). % 51,290,751 inferences, 8.285 CPU in 8.289 seconds (100% CPU, 6190948 Lips) json2:- process_json('/opt/logicmoo_opencog/hyperon-wam/data/ftp.flybase.org/releases/FB2023_04/precomputed_files/insertions/fu_gal4_table_fb_2023_04.json'). % 27,108,104 inferences, 4.454 CPU in 4.456 seconds (100% CPU, 6085908 Lips)