ncbo / goo

Graph Oriented Objects (GOO) for Ruby. A RDF/SPARQL based ORM.
http://ncbo.github.io/goo/
Other
15 stars 6 forks source link

Paging calls fail in AllegroGraph v7.0+ #106

Closed mdorf closed 4 years ago

mdorf commented 4 years ago

The following sequence of calls throws an exception:

paging = LinkedData::Models::Class.in(self).include(:unmapped).aggregate(:count, :children).page(page, size)
results = paging.page(1, size).all

Exception:

SPARQL::Client::MalformedQuery: MALFORMED QUERY: Variables must be simple or aggregates; ?children_agg_count_projection is being projected as both.

This error does not occur when running against AllegroGraph v6+.

mdorf commented 4 years ago

This behavior appears to affect only the calls that request aggregate values to be included (i.e. GROUP BY): .aggregate(:count, :children)

mdorf commented 4 years ago

Here is the query that fails:

SELECT DISTINCT ?id ?children_agg_count_projection ( 
    COUNT(DISTINCT ?children_agg_count) AS ?children_agg_count_projection 
) 
FROM <http://data.bioontology.org/ontologies/BROSEARCHTEST-0/submissions/1> 
WHERE { ?id a <http://www.w3.org/2002/07/owl#Class> . 
    OPTIONAL { ?children_agg_count <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?id .  } 
    FILTER(?id = <http://www.w3.org/2004/02/skos/core#OrderedCollection> || ?id = <http://www.w3.org/2004/02/skos/core#ConceptScheme> || ?id = <http://www.w3.org/2004/02/skos/core#Concept> || ?id = <http://www.w3.org/2004/02/skos/core#Collection> || ?id = <http://www.w3.org/1999/02/22-rdf-syntax-ns#List> || ?id = <http://protege.stanford.edu/plugins/owl/protege#ExternalResource> || ?id = <http://bioontology.org/ontologies/biositemap.owl#Version_Information> || ?id = <http://bioontology.org/ontologies/biositemap.owl#Resource_Description> || ?id = <http://bioontology.org/ontologies/biositemap.owl#Biositemaps_Information_Model> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Toxicology> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Research_IT> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Psychometrics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Proteomics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Preclinical> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Physiology> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Pharmacokinetics_Pharmacodynamics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Pediatrics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Pathology> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Outcomes_Research> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Nursing> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Metabolomics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Genomics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Epidemiology> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Deprecated_Area_of_Research> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Computational_Biology> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Clinical_Studies> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Biostatistics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Bioinformatics> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Behavioral_Science> || ?id = <http://bioontology.org/ontologies/ResearchArea.owl#Area_of_Research> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#physico_chemical_models> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#XML_Database> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#XML_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#X-Ray_Crystallography_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Workbench> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#White_Paper> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Website_Hosting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Website> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Web_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Web_Posting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Web_Access> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Wavelet_Transform> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Wavelet_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Volume_Model_Scene_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Visualization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Vibrotome> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Vibration_Isolation_Table> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Version_Source_Control_System> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Vector_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Unstructured_Knowledge_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Unstructured_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Two_D_Image> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Tutorials> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Tutorial> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Training_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Training_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Toxicology_Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Toolkit> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Tissue_Organ_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Time_Series_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Three_Dimensional_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Three_D_Image> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Thesis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Text_Mining> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Testing_Tools> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Temperature_Control_Unit> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Technical_Support> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Symbolic_and_Analytic_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Support> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Summarization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Structured_Knowledge_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Structured_File> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Structured_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Structure-Based_Protein_Classification> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Structural_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Stochastic_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Stimulator> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Stem_Cell_Therapy_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Statistical_Text_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Statistical_Package> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Statistical_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Statistical_Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#State_Funding_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Standard_Specification> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Standalone_Application> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Spectral_Transform> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Source_Control> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Source_Code> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_development> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Technology_Protocol> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Engineering_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Documentation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Distribution> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Development_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Development_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software_Development_Environment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Skull_Stripping> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Signaling_Network_Reconstruction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Signal_Processing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Shape_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Service_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Server> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Sequence_Visualization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Sequence_Similarity_Searching> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Sequence_Annotation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Sequence_Alignment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Sentence_Splitting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Seminar_Series> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Semi-Structured_Knowledge_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Semantic_Network> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Segmentation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Searching_Sorting_and_Indexing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Scripting_Language_and_Environment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Scalar_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Root_Finder> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Robotic_Arrayer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Resource_Integration_Component> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Research_Supplies> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Research_Animals_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Report> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Relational_Database> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Regulatory_Signaling_Network_Reconstruction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Regulatory_Policy_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Regulatory_Compliance_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Regularization_and_Smoothing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Registration> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Reagent_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Reagent_Manufacture> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Random_Number_Simulation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Radioisotopes_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Rack> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#RNA_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#RDF_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Publication> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Psychometrics_Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Provenance_and_Intellectual_Property> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Provenance> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Protocol_Development_Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Proteomics_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Protein_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Protein_Interaction_Modeling> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Protein_Expression> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Protein-Protein_Interaction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Programmatic_Access> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Processing_Pipeline> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Private_Funding_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pressure_Regulator> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Prediction_of_Side-Chain_Conformations> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pre-Processing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Power_Conditioning_Unit> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Portlet_Component> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Portal> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pipeline_Manager> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Physioloigcal_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Physiology_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Physico-Chemical_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Phlebotomy_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Phenotypic_Measurement> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Phenotype_Management> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pharmacokinetics_Pharmacodynamics_Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Personal_Communication> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#People_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pattern_and_Motif_Inference> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pattern_Recognition> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pattern_Inference_Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pathology_Laboratory_Screening> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Patent> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Pass_Through_License> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Partial_Parsing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Parsing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Paper> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#PET_Scanner> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#PDE_Solver> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#PCR_Instrument> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#PCR_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Outreach_Program> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Outlier_Detection_and_Removal> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Oscilloscope> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Oscillograph> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Optimizer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Ontology_Visualization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Ontology_Diff_and_Alignment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Ontology_Development_and_Management> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Ontology_Development> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Ontology> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Online_Support> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Online_Course> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Object_Database> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Nutrition_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Numerical_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Numerical_Methods> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Numerical_Method> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Numerical_Integrators> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Numerical_Integrator> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Numerical_Calculation_of_Electrostatic_Potential> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Nonhuman_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Non_Computational_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Next_Generation_Sequencer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#News> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Neuromuscular_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Neurological_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Network_model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Network_and_Communication> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Network_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Network_Interaction_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Network_Editor> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Network_Characterization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Natural_Language_Processing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Narrative_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Named_Entity_Recognition> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Named_Entity_Normalization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#NMR_Instrument> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#NMR_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Multibody_Dynamics> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Monte_Carlo_Simulation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Monoclonal_Antibody_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_and_Cellular_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Visualization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Trajectory_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Trajectories> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Modeling_and_Classification> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Interaction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Force_Field_Calculator> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Dynamics> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Molecular_Biology_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Modular_Component> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Modeling_and_Simulation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Model_with_Closed_Form_Solutions> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Model_Fitting_Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Microtome> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Microscopy_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Microscope> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Micromanipulator> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Microarray_Scanner> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Micro_Dissection_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Metabolomics_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Metabolism_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Meshing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Mesh_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Medical_Device> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Mechanical_Simulation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Matrix> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Material_Storage_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Material_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Material_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Material_Analysis_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Mass_Spectrometer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Mass_Spectra_Identification> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Mapper> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Manifold_Viewers> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Manifold_Viewer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Mailing_List> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#MRI_Scanner> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Linear_Algebra_Tools> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Linear_Algebra_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Light_Microscope> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#License_and_Terms_for_Use> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#License_and_Terms_for_Redistribution> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#License> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Lexical_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Language_Summarization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Laboratory_Supply_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Knowledgebase> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Knowledge_Mining_and_Capturing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Knowledge_Extraction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Knowledge_Environment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Journal_Article> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Interactive_Web-Based_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Interactive_Tools> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Interactive_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Interactive_Network_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Interaction_Network> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Interaction_Modeling> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Intellectual_Property_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Integration_and_Interoperability_Tools> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Integration_and_Interoperability_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Integration> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Integrated_Hosting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Instrument_Manufacture> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Instrument> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Inhomogeneity_Correction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Information_Retrieval> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Information_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Inference_From_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Industry_Partnership_Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Individual_Human_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Immunohistochemistry_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Immune_Monitoring_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Imaging_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Imaging> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Image_Reconstruction> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Image_Processing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Image_Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Image> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Identity_Management> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Hypothesis_Testing_Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Hyperbolic_Graph> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Human_Studies_Compliance_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Human_Embryonic_Stem_Cell_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Hosting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Homology_Modeling> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#High_Dimensional_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Hierarchical_Tree> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Heterogeneous_Funding_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Heat_Map> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Grid_Computing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graphical_Processing_Workflow_Environments> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graphical_Integration> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graphical_Composition> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graph_Viewers> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graph_Viewer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graph_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graph_Alignment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Graph_Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Grant_Preparation_Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Government_Publication> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Genomics_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Genomic_Phenotypic_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Gene_Therapy_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Gene_Expression> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Funding_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Free_Text> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Fourier_Transform> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Four_Dimensional_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Flow_Cytometry_Cell_Sorting_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Flatfile_Distribution> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Finite_Element_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Filtering> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Federal_Funding_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Feature_Request> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Feature_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Fast_Fourier_Transform> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Faraday_Cage> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Facility_Core> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Fabrication_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Exploratory_Data_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Expertise> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Experimental_Protocol> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Experimental_Measurment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Environmental_Health_and_Safety_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Electron_Microscope> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Electrode_Puller> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Electrode_Holder> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Education> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#EDA> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Dynamic_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Drug_Delivery_Device> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Documentation_Generation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Document_Structure_Parsing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Document_Retrieval> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Document_Generation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Document> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Dissemination_Vehicle> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Discrete_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Disaster_Recovery_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Deprecated_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Deprecated_Data_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Delimited_Table> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Deep_Parsing> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Database_Software> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Database_Hosting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Database> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Visualization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Transforms> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Transform> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Transfer_and_Communication> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Storage_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Storage_Repository> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Storage> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Repository> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Processing_Software> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Object> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Normalization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Mining_and_Inference> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Exploration> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Editor> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Distribution> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Computation_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Compression> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Annotation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Analysis_Software> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Data_Acquisition_Software> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cross-Sectional_Viewer> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cross-Platform_Tool> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cross-Language_Wrapping> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Course_Material> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cortical_Modeling> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Convolution> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Controllers> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Continuum_Method_Simulation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Continuous_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Continuing_Medical_Education> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Contact_Modeling> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Connectivity_Matrix> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Conflict_of_Interest_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Conference_Proceeding> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Computer-Instrumentation_Interface> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Computational_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Computational_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Computational_Hosting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Computational_Geometry> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Compiler> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Community_Structure_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Communication_and_Collaborative_Work> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Communication_Interface> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Code_Testing_Framework> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Code_Profiler> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Trial_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Research_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Charts> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Chart> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Care_Data> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Chamber> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Certificate_Program> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Centrality_Analysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Centrality_Analsysis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cell_Processing_Clean_Room_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cell_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cell_Culture_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cell_Biology_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cardiovascular_Model> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Cardiovascular_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Calorimeter> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Calendar_Schedule_and_Resource_Management> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Calculation_of_Solvent_Accessible_Area> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#CT_Scanner> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Bug_Reporting> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Book> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biosafety_Level_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biomolecular_Interaction_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biomedical_Supply_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biomaterial_Supply_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biomaterial_Manufacture> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biomaterial_Analysis_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biochemical_Supply_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Biobank_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Binary_Executable> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Bibliographic_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Behavioral_Analysis_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Backup_Archives_and_Disaster_Recovery> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Backup_Archive_Service> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Averaging_and_Aglomeration> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Averaging_and_Agglomeration> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Automated_Natural_Language_Output> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Authorization> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Authentication> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Atlas_Generation> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Atlas> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Assessment_Material_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Approximate_Graph_Alignment> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Application_Programming_Interface> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Antibody_Production> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Animal_Models_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Animal_Compliance_Resource> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Animal_Care_Facility> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Anatomic_Atlas> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Analysis_of_Gel-Electrophoresis> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Amplifier> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Algorithm> || ?id = <http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Aggregate_Human_Data> || ?id = <http://bioontology.org/ontologies/Activity.owl#Training> || ?id = <http://bioontology.org/ontologies/Activity.owl#Therapeutics> || ?id = <http://bioontology.org/ontologies/Activity.owl#Surgical_Procedure> || ?id = <http://bioontology.org/ontologies/Activity.owl#Software_Development> || ?id = <http://bioontology.org/ontologies/Activity.owl#Social_Networking> || ?id = <http://bioontology.org/ontologies/Activity.owl#Small_Molecule> || ?id = <http://bioontology.org/ontologies/Activity.owl#Resource_Inventory> || ?id = <http://bioontology.org/ontologies/Activity.owl#Research_Lab_Management> || ?id = <http://bioontology.org/ontologies/Activity.owl#Research_Funding> || ?id = <http://bioontology.org/ontologies/Activity.owl#Regulatory_Compliance> || ?id = <http://bioontology.org/ontologies/Activity.owl#Novel_Therapeutics> || ?id = <http://bioontology.org/ontologies/Activity.owl#Medical_Device_Development> || ?id = <http://bioontology.org/ontologies/Activity.owl#IRB> || ?id = <http://bioontology.org/ontologies/Activity.owl#Heath_Services> || ?id = <http://bioontology.org/ontologies/Activity.owl#Health_Services> || ?id = <http://bioontology.org/ontologies/Activity.owl#Gene_Therapy> || ?id = <http://bioontology.org/ontologies/Activity.owl#Deprecated_Activity> || ?id = <http://bioontology.org/ontologies/Activity.owl#Community_Engagement> || ?id = <http://bioontology.org/ontologies/Activity.owl#Biospecimen_Management> || ?id = <http://bioontology.org/ontologies/Activity.owl#Activity>) 
} GROUP BY ?id

Note that when running against AllegroGraph v6.4.1, the query succeeds with the following warning:

repeatedProjectedVariablesIgnored   The following variable is projected multiple times: ?children_agg_count_projection. Only the first projection will be included
Screen Shot 2020-06-03 at 9 38 59 AM Screen Shot 2020-06-03 at 9 44 34 AM
mdorf commented 4 years ago

Responses from AllergroGraph support:

Response 1:

The error message you are seeing was introduced in AllegroGraph 6.5.0. The query is invalid for two reasons, and older versions of AG simply did not check for these problems.

The first reason is that projecting a simple ?variable from a "SELECT .. GROUP BY .." query can only be done if the GROUP BY clause contains that ?variable; that is not the case in this query. See http://www.w3.org/TR/sparql11-query/#aggregateRestrictions

The second reason is that there can be no duplicate projected variables, but that is attempted here. See the last sentence in https://www.w3.org/TR/sparql11-query/#aggregateExample

Response 2:

It's not entirely clear what they are trying to do. It seems to be about counting the number of subclasses for each of the given classes. Here's a clean query for that:

SELECT ?id (COUNT(DISTINCT ?subclass) AS ?num_subclasses) FROM http://data.bioontology.org/ontologies/BROSEARCHTEST-0/submissions/1 WHERE { ?id a http://www.w3.org/2002/07/owl#Class . ?subclass http://www.w3.org/2000/01/rdf-schema#subClassOf ?id . FILTER (?id in ( http://www.w3.org/2004/02/skos/core#OrderedCollection http://www.w3.org/2004/02/skos/core#ConceptScheme ... http://bioontology.org/ontologies/Activity.owl#Activity)) } GROUP BY ?id

mdorf commented 4 years ago

Based on the suggested alternative and the examples in the W3 spec, the following revised query appears to work:

SELECT DISTINCT ?id ( 
    COUNT(DISTINCT ?children_agg_count) AS ?children_agg_count_projection
) 
FROM <http://data.bioontology.org/ontologies/BROSEARCHTEST-0/submissions/1> 
WHERE { ?id a <http://www.w3.org/2002/07/owl#Class> . 
    OPTIONAL { ?children_agg_count <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?id .  } 
    FILTER(?id = <http://www.w3.org/2004/02/skos/core#OrderedCollection> || ?id = <http://www.w3.org/2004/02/skos/core#ConceptScheme> || ...) 
} GROUP BY ?id

Implementing the fix in GOO without breaking compatibility may be a challenge.

mdorf commented 4 years ago

Implemented a fix in GOO. The fix examines the COUNT clause (if exists), finds the projections within it and removes the counterpart projections from the main SELECT clause.