();
- columnHeaders.addAll(result.getBindingNames());
- writer.startQueryResult(columnHeaders);
- while (result.hasNext()) {
- BindingSet b = result.next();
- writer.handleSolution(b);
- }
- writer.endQueryResult();
- resultJson = out.toString();
- resultJson = JenaResultSetFormatter.convertToSimplifiedJsonArray(resultJson).toString();
-
- } catch (IOException exc) {
- throw new JPSRuntimeException(exc);
- }
- }
- }
- LOGGER.debug(QueryPlanLog.getQueryPlan());
- MonitoringUtil.printMonitoringInformation(repository.getFederationContext());
-
- repository.shutDown();
- return resultJson;
- }
- };
-
- return impl;
- }
-
- /**
- * Executes a SPARQL 1.1 query with specified endpoints, e.g.
- *
- * PREFIX ...
- * SELECT ?exp ?yield_value ?yield_unit
- * WHERE {
- * SERVICE ?service1 {
- * ?exp ontorxn:hasYield ?yield.
- * ?yield om:hasValue ?measure.
- * ?measure om:hasNumericalValue ?yield_value; om:hasUnit ?yield_unit.
- * }
- * SERVICE ?service2 {
- * <https://www.example.com/triplestore/ontodoe/DoE_1/DoE_1> ontodoe:utilisesHistoricalData ?historical_data.
- * ?historical_data ontodoe:refersTo ?exp.
- * }
- * VALUES ?service1 { <http://172.17.0.3:8080/blazegraph/namespace/lab_1/sparql> <http://172.17.0.4:8080/blazegraph/namespace/lab_2/sparql> }
- * VALUES ?service2 { <http://172.17.0.3:8080/blazegraph/namespace/doe_chemrxn/sparql> }
- * }
- * Such a query can be executed either on RDF4J server or Blazegraph server.
- * Both cases require any dataset or namespace, resp. as a starting point for the query request.
- * This is an endpoint URL specified by fedEngineUrl, e.g.
- *
- * http://www.theworldavatar.com/blazegraph/namespace/somenamesapce/sparql
- * http://localhost:8080/rdf4j-server/repositories/somenamespace
- *
- *
- * @param fedEngineUrl endpoint URL as starting point for the request
- * @return
- */
- public static FederatedQueryInterface createForQueriesWithGivenEndpoints(String fedEngineUrl) {
- return create(fedEngineUrl, null);
- }
-
- /**
- * Executes a SPARQL 1.1 query with and without specified endpoints.
- * If data sources should be selected automatically,
- * the query must contain SERVICE clauses with service variables but without VALUES clauses.
- * As an examples, see the query in {@link #createForQueriesWithGivenEndpoints(String)} without the VALUES.
- *
- * The code selects automatically the relevant data sources for the basic triple patterns within a SERVICE clause
- * and adds a VALUES clause with corresponding endpoint URLs for each SERVICE clause.
- * Finally, it executes the completed SPARQL 1.1 query as in {@link #createForQueriesWithGivenEndpoints(String)}.
- *
- * @param fedEngineUrl endpoint URL as starting point for the request
- * @param servDescrIndexer contains the schema-level index for all federation members to allow automated data source selection
- * @param host2host if not null, host2host is used to convert host addresses;
- * conversion may necessary e.g. in a test environment with Docker containers where Blazegraph servers return endpoint URLs
- * with wrong host addresses (such as "localhost:8080")
- * @return
- */
- public static FederatedQueryInterface createWithEndpointSelection(
- String fedEngineUrl, ServiceDescriptionIndexer servDescrIndexer, Map host2host) {
-
- DataSourceSelector selector = new DataSourceSelector(servDescrIndexer, host2host);
- return create(fedEngineUrl, selector);
- }
-
- /**
- * A wrapper for four engine configurations:
- * (1) Execution on RDFJ server (not FedX):
- * (1a) SPARQL 1.1 with specified endpoints
- * (1b) SPARQL 1.1 with SERVICE clause without specified endpoints and automated data source selection
- * (2) Execution on Blazegraph server:
- * (2a) SPARQL 1.1 with specified endpoints
- * (2b) SPARQL 1.1 with SERVICE clause without specified endpoints and automated data source selection
- *
- * @param fedEngineUrl
- * @param selector
- * @return
- */
- private static FederatedQueryInterface create(String fedEngineUrl, DataSourceSelector selector) {
-
- boolean rdf4j = fedEngineUrl.contains("rdf4j");
- final RemoteStoreClient client = rdf4j? new RemoteStoreClient(fedEngineUrl) : null;
- final BlazegraphRepositoryWrapper wrapper = rdf4j? null : new BlazegraphRepositoryWrapper(fedEngineUrl);
-
- FederatedQueryInterface impl = new FederatedQueryInterface() {
-
- @Override
- public String executeFederatedQuery(String sparql) {
-
- LOGGER.debug("executeQuery=\n" + sparql);
-
- if (selector != null) {
- sparql = selector.addValuesClauses(sparql);
- LOGGER.debug("executeQuery after data source selection=\n" + sparql);
- }
-
- if (wrapper != null) {
- return wrapper.query(sparql, null);
- }
- return client.executeQuery(sparql).toString();
- }
- };
-
- return impl;
- }
-
- /**
- * Creates a schema-level indexer which allows automated data source selection
- * for federated queries without specifying endpoints.
- * All endpoint URLs are added to the set of federation members.
- * For each given service URL, all its existing datasets (endpoint URLs) are requested and added to the set of federation members.
- * The service descriptions of all federation members are collected and used for index creation.
- * Each federation member must implement the recommendation on
- * service descriptions .
- * Currently, this is the case for Blazegraph server but not for RDF4J server
- *
- * @param cached if true and the indexer was created before, the same indexer is returned;
- * otherwise an indexer is created from scratch
- * @param serviceUrls
- * @param endpointUrls
- * @return
- */
- public static ServiceDescriptionIndexer getIndexer(boolean cached, List serviceUrls, List endpointUrls) {
- if (cached && (indexer != null)) {
- return indexer;
- }
-
- // collect all endpoint Urls
- List allEndpoints = new ArrayList();
- if (serviceUrls != null) {
- for (String serviceUrl : serviceUrls) {
- BlazegraphRepositoryWrapper wrapper = new BlazegraphRepositoryWrapper(serviceUrl);
- List endpoints = wrapper.queryNamespaces(true);
- allEndpoints.addAll(endpoints);
- }
- }
- if (endpointUrls != null) {
- allEndpoints.addAll(endpointUrls);
- }
-
- if (allEndpoints.isEmpty()) {
- throw new JPSRuntimeException("At least one endpoint is required, serviceUrls=" + serviceUrls + ", endpointUrls=" + endpointUrls);
- }
-
- // read all service descriptions
- indexer = new ServiceDescriptionIndexer();
- for (String url : allEndpoints) {
- indexer.addServiceDescription(url);
- }
-
- return indexer;
- }
-}
diff --git a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/FederatedQueryInterface.java b/src/main/java/uk/ac/cam/cares/jps/base/query/fed/FederatedQueryInterface.java
deleted file mode 100644
index f9b528dfb..000000000
--- a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/FederatedQueryInterface.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import uk.ac.cam.cares.jps.base.query.JenaResultSetFormatter;
-
-/**
- * A common interface for different engines / implementations for executing federated queries.
- *
- */
-public interface FederatedQueryInterface {
-
- /**
- * Executes the SPARQL query as federated query and returns the result set as JSON array string.
- * Each element of the JSON array represents a row in the result set and consists of key-value pairs.
- * Example of a JSON element:
- *
- * {"generation":"http://www.theworldavatar.com/ontology/ontoeip/powerplants/PowerPlant.owl#NaturalGasGeneration",
- * "emission":"http://www.theworldavatar.com/kb/powerplants/Northwest_Kabul_Power_Plant_Afghanistan.owl#CO2Emission_of_Northwest_Kabul_Power_Plant_Afghanistan",
- * "emissionvalue":"http://www.theworldavatar.com/kb/powerplants/Northwest_Kabul_Power_Plant_Afghanistan.owl#v_CO2Emission_of_Northwest_Kabul_Power_Plant_Afghanistan",
- * "emissionvaluenum":"15.75"}
- *
- * The above format is a simplified version of the official W3C JSON format
- * as described in {@link https://www.w3.org/TR/rdf-sparql-json-res/}.
- * Concerning the above example in the official W3C JSON format see
- * {@link JenaResultSetFormatter#convertToJSONW3CStandard(org.apache.jena.query.ResultSet)}.
- *
- * @param sparql
- * @return query result set
- * @throws Exception
- */
- public String executeFederatedQuery(String sparql);
-}
diff --git a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/ParsedQueryTreeVisitor.java b/src/main/java/uk/ac/cam/cares/jps/base/query/fed/ParsedQueryTreeVisitor.java
deleted file mode 100644
index 1b3810c4e..000000000
--- a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/ParsedQueryTreeVisitor.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.eclipse.rdf4j.model.Value;
-import org.eclipse.rdf4j.model.impl.SimpleIRI;
-import org.eclipse.rdf4j.query.algebra.BindingSetAssignment;
-import org.eclipse.rdf4j.query.algebra.QueryModelNode;
-import org.eclipse.rdf4j.query.algebra.Service;
-import org.eclipse.rdf4j.query.algebra.StatementPattern;
-import org.eclipse.rdf4j.query.algebra.Var;
-import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor;
-
-import uk.ac.cam.cares.jps.base.query.sparql.PrefixToUrlMap;
-import uk.ac.cam.cares.jps.base.query.sparql.Prefixes;
-
-/**
- * This class visits all tree nodes of a parsed SPARQL query
- * and retrieves information about SERVICE and VALUES clauses.
- * It collects
- * (1) names and bounded values (i.e. endpoint URLs) of SERVICE variables
- * (2) IRIs of relations (used as predicates in basic triple patterns) and
- * (3) IRIs of classes (used as objects in basic triple patterns with predicate "rdf:type")
- *
- */
-public class ParsedQueryTreeVisitor extends AbstractQueryModelVisitor {
-
- static final Logger LOGGER = LogManager.getLogger(ParsedQueryTreeVisitor.class);
-
- /**
- * A helper class to store the information related to a query's SERVICE clause.
- *
- */
- public class ServiceGraphPatternSummary {
- public String serviceVarName = null;
- public String serviceVarValue = null;
- public List keys = null;
- }
-
- private static final String BLAZEGRAPH_GEO_PREFIX = PrefixToUrlMap.getPrefixUrl(Prefixes.BLAZEGRAPH_GEO);
- private List summaries = new ArrayList();
- private List allKeys = new ArrayList();
- /**
- * Relations and classes found in basic triple patterns of the currently visited SERVICE clause.
- */
- private List currentKeys = null;
- private Set bindingNames = new HashSet();
-
- public List getSummariesWithoutBindings() {
- List result = new ArrayList();
- for (ServiceGraphPatternSummary current : summaries) {
- if (!bindingNames.contains(current.serviceVarName)) {
- result.add(current);
- }
- }
-
- return result;
- }
-
- /**
- * Delegates if the node type is relevant for extracting information
- * (e.g. in case of StatementPattern node containing a basic triple pattern).
- */
- @Override
- protected void meetNode(QueryModelNode node) {
-
- LOGGER.debug("node=" + node.getSignature());
-
- if (node instanceof Service) {
- meetServiceNode((Service) node);
- } else if (node instanceof StatementPattern){
- meetStatementPatternNode((StatementPattern) node);
- } else if (node instanceof BindingSetAssignment) {
- meetBindingSetAssignmentNode((BindingSetAssignment) node);
- } else {
- super.meetNode(node);
- }
- }
-
- /**
- * Starts and stops to collect information for a SERVICE clause and its enclosed triple patterns.
- * @param node
- */
- protected void meetServiceNode(Service node) {
-
- Var serviceRef = node.getServiceRef();
- Value value = serviceRef.getValue();
- String svalue = (value == null)? null : value.toString();
- if (serviceRef.isAnonymous() && (value instanceof SimpleIRI)) {
- // i.e. the endpoint IRI for SERVICE is already given
- super.meetNode(node);
- LOGGER.debug("Service node: No keys for data source selection are collected since endpoint IRI is given!");
- return;
- } else if (svalue != null && svalue.startsWith(BLAZEGRAPH_GEO_PREFIX)) {
- // i.e. SERVICE keyword marks a SPARQL subquery
- super.meetNode(node);
- LOGGER.debug("Service node: No keys for data source selection are collected since Blazegraph's special geo service was identified!");
- return;
- }
- // else:
- // i.e. SERVICE keyword is used to mark Blazegraph's geospatial service
- // triple patterns within the SERVICE body should not be considered for data source selection
- // (the geo vocabulary is not part of the service description)
- // nothing to do, only remove the geo vocabulary from collected keys
-
-
- ServiceGraphPatternSummary summary = new ServiceGraphPatternSummary();
- summary.serviceVarName = node.getServiceRef().getName();
- if (svalue != null) {
- summary.serviceVarValue = svalue;
- }
- currentKeys = new ArrayList();
-
- super.meetNode(node);
-
- summary.keys = currentKeys;
- currentKeys = null;
-
- summaries.add(summary);
- LOGGER.debug("The following keys were collected: " + summary.keys);
- }
-
- private String addKey(Var variable) {
- Value value = variable.getValue();
- if (value != null) {
- String key = value.stringValue();
- if (key.startsWith(BLAZEGRAPH_GEO_PREFIX))
- // don't consider Blazegraph special vocabulary for each geo service
- return null;
- allKeys.add(key);
- if (currentKeys != null) {
- currentKeys.add(key);
- //LOGGER.debug("collected new key=" + key);
- return key;
- }
- }
- return null;
- }
-
- /**
- * Extracts relation and class IRIs from bounded predicates and objects of a basic triple pattern.
- *
- * @param node
- */
- protected void meetStatementPatternNode(StatementPattern node) {
- // Only add predicate and class IRIs as keys.
- // If getSubjectVar() is bounded to a value, the value is usually
- // not a class IRI and should not be added.
- // Similarly, íf getObjectVar() is bounded to a value and the predicate is not rdf:type.
- String key = addKey(node.getPredicateVar());
- if ((key != null) && (key == "http://www.w3.org/1999/02/22-rdf-syntax-ns#type")) {
- addKey(node.getObjectVar());
- }
-
- super.meetNode(node);
- }
-
- /**
- * Collects bounded values (i.e. endpoint URLs) from a VALUES clause.
- *
- * @param node
- */
- protected void meetBindingSetAssignmentNode(BindingSetAssignment node) {
- LOGGER.debug("binding names=" + node.getBindingNames());
- bindingNames.addAll(node.getBindingNames());
- super.meetNode(node);
- }
-}
diff --git a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/ServiceDescriptionIndexer.java b/src/main/java/uk/ac/cam/cares/jps/base/query/fed/ServiceDescriptionIndexer.java
deleted file mode 100644
index 2ba581987..000000000
--- a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/ServiceDescriptionIndexer.java
+++ /dev/null
@@ -1,407 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.function.Function;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.jena.ontology.OntModel;
-import org.apache.jena.query.QuerySolution;
-import org.apache.jena.query.ResultSet;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.json.JSONArray;
-import org.json.JSONObject;
-
-import uk.ac.cam.cares.jps.base.exception.JPSRuntimeException;
-import uk.ac.cam.cares.jps.base.http.Http;
-import uk.ac.cam.cares.jps.base.query.JenaHelper;
-import uk.ac.cam.cares.jps.base.query.JenaResultSetFormatter;
-
-/**
- * This class creates a schema-level index from
- * service descriptions .
- * A service description is an RDF graph containing information about a SPARQL service and its SPARQL endpoints.
- * Among other things, the RDF graph usually contains features of the SPARQL service
- * and the number of occurrences of relations and classes in triples of the datasets.
- * This class uses the IRIs of relations and classes for indexing.
- * Each relation and class IRI is mapped to a "postings" list of endpoints / datasets.
- * An endpoint / dataset is added to the "postings" list for an IRI if it contains at least
- * one triple with this IRI as predicate or object, resp.
- * The created index allows to perform conjunctive keyword-based queries.
- * Since the keywords are relation and class IRIs,
- * the query result can be used for automated endpoint selection.
- *
- */
-public class ServiceDescriptionIndexer {
-
- static final Logger LOGGER = LogManager.getLogger(ServiceDescriptionIndexer.class);
-
- /**
- * A helper class to store relevant information filtered from a service description.
- *
- */
- public class ServiceDescriptionSummary {
- public Integer id = null;
- public String path = null;
- public String endpointURL = null;
- public Long ntriples = null;
- public Long nentities = null;
- public Long nproperties = null;
- public Long nclasses = null;
-
- public ServiceDescriptionSummary(int id) {
- this.id = id;
- }
-
- @Override
- public String toString() {
- return "Summary[#t=" + ntriples + ",#e=" +nentities
- + ",#c=" + nclasses + ",#p=" + nproperties + ",url=" + endpointURL + "]";
- }
- }
-
- public class PostingsListElement implements Comparable{
- /**
- * ID of the summary of the corresponding service description
- */
- public Integer id = null;
- /**
- * The number of triples in the corresponding datasets wrt. to the index key (relation or class IRI)
- */
- public Long tripleNumber = null;
-
- public PostingsListElement(Integer id, Long number) {
- this.id = id;
- this.tripleNumber = number;
- }
-
- /**
- * Elements in the postings list are ordered by their ID.
- */
- @Override
- public int compareTo(PostingsListElement element) {
- return this.id.compareTo(element.id);
- }
- }
-
- private final static String INDEX_NAME = "SCHEMA";
- /**
- * Each summary in the list represents the relevant information of a service description
- */
- private List summaries = new ArrayList();
- private SimpleMultiIndex index = new SimpleMultiIndex();
-
- public ServiceDescriptionIndexer() {
- }
-
- private Map> getSchemaIndex() {
- return index.getIndex(INDEX_NAME);
- }
-
- /**
- * Returns all indexed relation and class IRIs
- *
- * @return
- */
- public Set getKeys() {
- return getSchemaIndex().keySet();
- }
-
- public Set getPostingsList(String key) {
- return index.getPostingsList(INDEX_NAME, key);
- }
-
- /**
- * Returns a list of summaries for all added service descriptions.
- *
- * @return
- */
- public List getSummaries() {
- return summaries;
- }
-
- /**
- * Creates a map between IRIs (classes or properties depending on the given type)
- * and the number of triples in the service description.
- *
- * @param model contains the service description as RDF graph
- * @param sparql to query the RDF graph
- * @param type either class or property
- * @return
- */
- private static Map getNumberOfTriples(OntModel model, String sparql, String type) {
- ResultSet result = JenaHelper.query(model, sparql);
- JSONObject joOrig = JenaResultSetFormatter.convertToSimplifiedList(result);
- JSONArray list = joOrig.getJSONArray("results");
-
- Iterator it = list.iterator();
- Map map = new HashMap();
- while (it.hasNext()) {
- JSONObject current = (JSONObject) it.next();
- map.put(current.getString(type), current.getLong("ntriples"));
- }
- return map;
- }
-
- /**
- * Queries the service description for the number of triples wrt. classes.
- *
- * @param model contains the service description as RDF graph
- * @return
- */
- public static Map getNumberOfClassTriples(OntModel model) {
- String sparql = "SELECT * WHERE { \r\n"
- + " ?s ?class . \r\n"
- + " ?s ?ntriples . \r\n"
- + "}";
- return getNumberOfTriples(model, sparql, "class");
- }
-
- /**
- * Queries the service description for the number of triples wrt. properties.
- *
- * @param model contains the service description as RDF graph
- * @return
- */
- public static Map getNumberOfPropertyTriples(OntModel model) {
- String sparql = "SELECT * WHERE { \r\n"
- + " ?s ?property . \r\n"
- + " ?s ?ntriples . \r\n"
- + "}";
- return getNumberOfTriples(model, sparql, "property");
- }
-
- /**
- * Adds new service descriptions for indexing.
- * Three different types are allowed:
- *
- * (1) A local file given by its path:
- * The file represents a (serialized) service description stored locally.
- * (2) A local directory given by its directory path:
- * All files in the directory and subdirectories are read recursively.
- * Each file represents a (serialized) service description store locally.
- * (3) A URL that can be requested and returns service description
- * (usually, according to the
- *
- * SPARQL protocol ).
- *
- * @param dirFileorUrl a (mixed) list of directories, files or URLs
- */
- public void addServiceDescription(String... dirFileorUrl) {
-
- for (String path : dirFileorUrl) {
- File file = new File(path);
- if (file.isDirectory()) {
- Collection files = FileUtils.listFiles(file, null, true);
- for (File f : files) {
- add(f.getAbsolutePath());
- }
- } else {
- add(path);
- }
- }
- }
-
- /**
- * Requests the service description from the given URL
- *
- * @param url
- * @return
- */
- public static String queryServiceDescription(String url) {
- String accept = "application/rdf+xml";
- HttpGet request = Http.get(url, accept);
- return Http.execute(request);
- }
-
- /**
- * Reads the file or request the URL,
- * queries relevant information from the corresponding service description,
- * and adds it to index
- *
- * @param path a file or URL
- */
- private void add(String path) {
-
- OntModel model = null;
- if (path.startsWith("http")) {
- String descr = queryServiceDescription(path);
- model = JenaHelper.createModel();
- JenaHelper.readFromString(descr, model);
- } else {
- model = JenaHelper.createModel(path);
- }
-
- ServiceDescriptionSummary summary = createSummary();
- fillSummary(summary, path, model);
-
- // add classes and their counts to index
- Map map = getNumberOfClassTriples(model);
- for (String key : map.keySet()) {
- PostingsListElement elem = new PostingsListElement(summary.id, map.get(key));
- index.add(INDEX_NAME, key, elem);
- }
-
- // add properties and their counts to index
- map = getNumberOfPropertyTriples(model);
- for (String key : map.keySet()) {
- PostingsListElement elem = new PostingsListElement(summary.id, map.get(key));
- index.add(INDEX_NAME, key, elem);
- }
-
-
- LOGGER.debug("Added service description=" + summary + " from path=" + path);
- }
-
- /**
- * Queries the service description for information that is relevant for indexing
- * and conjunctive queries and adds the information to the given summary.
- *
- * @param summary empty summary to add relevant information
- * @param path file or URL
- * @param model contains the service description as RDF graph
- */
- public void fillSummary(ServiceDescriptionSummary summary, String path, OntModel model) {
-
- summary.path = path;
-
- String sparql = "PREFIX rdf: \r\n"
- + "PREFIX sd: \r\n"
- + "PREFIX void: \r\n"
- + "SELECT * WHERE {\r\n"
- + " ?dataset rdf:type sd:Dataset .\r\n"
- + " ?dataset sd:defaultGraph ?graph .\r\n"
- + " ?graph void:triples ?ntriples .\r\n"
- + " ?graph void:entities ?nentities .\r\n"
- + " ?graph void:properties ?nproperties .\r\n"
- + " ?graph void:classes ?nclasses .\r\n"
- + "}";
-
- ResultSet result = JenaHelper.query(model, sparql);
- JSONObject jo = JenaResultSetFormatter.convertToSimplifiedList(result);
- JSONArray list = jo.getJSONArray("results");
-
- Iterator it = list.iterator();
- JSONObject current = (JSONObject) it.next();
- if (it.hasNext()) {
- throw new JPSRuntimeException("The query result set contains more than one row, service description=" + path);
- }
-
-
-
- // the following "lambda method" get returns null if the key is not found
- // in contrast to current.get which throws an exception in this case
- Function get = ( s -> {
- if (current.has(s))
- {return current.getLong(s); };
- return null;
- });
-
- summary.ntriples = get.apply("ntriples");
- summary.nentities = get.apply("nentities");
- summary.nproperties = get.apply("nproperties");
- summary.nclasses = get.apply("nclasses");
-
-
- // query endpoint URL
- sparql = "PREFIX rdf: \r\n"
- + "PREFIX sd: \r\n"
- + "PREFIX void: \r\n"
- + "SELECT * WHERE {\r\n"
- + " ?service sd:endpoint ?endpoint .\r\n"
- + "}";
-
- result = JenaHelper.query(model, sparql);
- QuerySolution s = result.nextSolution();
- String endpointURL = s.get("endpoint").asResource().getURI();
- // HACK: The Blazegraph instance for citiesKG does not provide the correct endpoint URL
- // e.g. the port in http://localhost:9999/blazegraph/namespace/singaporeEPSG24500/sparql is incorrect
- // maybe it is not configured correctly
- if (endpointURL.startsWith("http://localhost:9999")) {
- int i = endpointURL.indexOf("namespace/");
- String namespace = endpointURL.substring(i, endpointURL.length());
- summary.endpointURL = "http://www.theworldavatar.com:83/citieskg/" + namespace;
- LOGGER.info("changed endpoint URL from " + endpointURL + " to " + summary.endpointURL);
- } else {
- summary.endpointURL = endpointURL;
- }
- }
-
- /**
- * Creates a new empty summary with an increased id and adds it to the list of all summaries.
- *
- * @return empty summary
- */
- public synchronized ServiceDescriptionSummary createSummary() {
- int id = summaries.size();
- ServiceDescriptionSummary summary = new ServiceDescriptionSummary(id);
- summaries.add(summary);
- return summary;
- }
-
- /**
- * Performs a conjunctive query for the given list of keywords.
- * The keywords must be relation or class IRIs.
- * The method uses the index previously created from service descriptions
- * to find all endpoints / datasets that contain at least one relevant triple
- * for each IRI in the list of keywords.
- *
- * @param keywords a list of relation and class IRIs
- * @return list of summaries containing query relevant endpoint URLs
- */
- public List conjunctiveQuery(List keywords) {
-
- List result = new ArrayList();
-
- // for each service descriptions, calculate the number of supported given keys
- Map mapId2Count = new HashMap();
- for (String key : keywords) {
- Set set = index.getPostingsList(INDEX_NAME, key);
- if (set == null) {
- LOGGER.warn("no postings list was found for key=" + key);
- break;
- }
- for (PostingsListElement elem : set) {
- int id = elem.id;
- if (mapId2Count.containsKey(id)) {
- int count = mapId2Count.get(id) + 1;
- mapId2Count.put(id, count);
- } else {
- mapId2Count.put(id, 1);
- }
- }
- }
-
- // find all service descriptions that support all given keys
- for (Integer id : mapId2Count.keySet()) {
- int count = mapId2Count.get(id);
- if (count == keywords.size()) {
- ServiceDescriptionSummary summary = getSummaries().get(id);
- result.add(summary);
- }
- }
-
- return result;
- }
-
- /**
- * Returns the endpoints URLs corresponding to all added service descriptions.
- *
- * @return endpoint URLs
- */
- public List getEndpointUrls() {
- List urls = new ArrayList();
- for (ServiceDescriptionSummary summary : getSummaries()) {
- urls.add(summary.endpointURL);
- }
- return urls;
- }
-}
diff --git a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/SimpleMultiIndex.java b/src/main/java/uk/ac/cam/cares/jps/base/query/fed/SimpleMultiIndex.java
deleted file mode 100644
index dc088b574..000000000
--- a/src/main/java/uk/ac/cam/cares/jps/base/query/fed/SimpleMultiIndex.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
-/**
- * A very simple implementation of a multi-index with postings list.
- * An index is a map from an index key (of type K) to a set of entries (of type V).
- * The class can manage more than one index, e.g. an schema-level and an index-level index.
- * Different indexes are accessed by different index names.
- *
- * @param the type of the index, e.g. String for instance IRIs
- * @param the type of the entries in the postings list, e.g. String for endpoint URLs
- */
-public class SimpleMultiIndex {
-
- private Map>> indexNameMap = new HashMap>>();
-
- public void add(String indexName, K key, V value) {
- Map> index = indexNameMap.get(indexName);
- if (index == null) {
- index = new HashMap>();
- indexNameMap.put(indexName, index);
- }
- Set postingsList = index.get(key);
- if (postingsList == null) {
- postingsList = new TreeSet();
- index.put(key, postingsList);
- }
- postingsList.add(value);
- }
-
- public Map> getIndex(String indexName) {
- return indexNameMap.get(indexName);
- }
-
- public Set getPostingsList(String indexName, K key) {
- Map> index = getIndex(indexName);
- if (index == null) {
- return null;
- }
- return index.get(key);
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/BlazegraphRepositoryWrapperIntegrationTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/BlazegraphRepositoryWrapperIntegrationTest.java
deleted file mode 100644
index 3de43ba6d..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/BlazegraphRepositoryWrapperIntegrationTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.jena.ontology.OntModel;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.json.JSONArray;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import junit.framework.TestCase;
-import uk.ac.cam.cares.jps.base.query.JenaHelper;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-public class BlazegraphRepositoryWrapperIntegrationTest extends TestCase {
-
- static final Logger LOGGER = LogManager.getLogger(BlazegraphRepositoryWrapperIntegrationTest.class);
-
- @Test
- public void testGetParts1() {
- String serviceUrl = "http://localhost:8080/blazegraph";
- String[] parts = BlazegraphRepositoryWrapper.getParts(serviceUrl);
- assertEquals(serviceUrl, parts[0]);
- assertNull(parts[1]);
- }
-
- @Test
- public void testGetParts2() {
- String serviceUrl = "http://localhost:8080/blazegraph";
- String namespace = "anynamespace";
- String endpointUrl = serviceUrl + BlazegraphRepositoryWrapper.getPathForBlazegraph(namespace);
- String[] parts = BlazegraphRepositoryWrapper.getParts(endpointUrl);
- assertEquals(serviceUrl, parts[0]);
- assertEquals(namespace, parts[1]);
- }
-
- @Test
- public void testCreateNamespace() {
-
- String serviceUrl = TripleStoreProvider.getServiceUrl(TripleStoreProvider.ID_BLAZEGRAPH_1);
- BlazegraphRepositoryWrapper wrapper = new BlazegraphRepositoryWrapper(serviceUrl);
-
- String newnamespace = "testEmpty";
- Properties props = TripleStoreProvider.readStandardNamespacePropertiesForBlazegraph();
- wrapper.createNamespace(newnamespace, props);
-
- // assert namespace
- List namespaces = wrapper.queryNamespaces(false);
- LOGGER.debug("found namespaces after creating new name space=" + namespaces.toString());
- String message = "new namespace was not found, namespace=" + newnamespace;
- assertTrue(message, namespaces.contains(newnamespace));
-
- // assert queries are possible and empty new dataset returns empty result
- String sparql = "SELECT * WHERE { ?s ?p ?o }";
- String result = wrapper.query(sparql, newnamespace);
- JSONArray array = new JSONArray(result);
- assertEquals(0, array.length());
- }
-
- @Test
- public void testQueryServiceDescription() {
-
- String serviceUrl = TripleStoreProvider.getServiceUrl(TripleStoreProvider.ID_BLAZEGRAPH_1);
- //String serviceUrl = "http://localhost:8091/blazegraph";
- BlazegraphRepositoryWrapper wrapper = new BlazegraphRepositoryWrapper(serviceUrl);
-
- String namespace = TripleStoreProvider.NAMESPACE_WIKIDATA_SMALL;
- String endpointUrl = TripleStoreProvider.getEndpointUrl(namespace);
-
- // assert that data can be queried and the count is correct
- String sparql = "PREFIX wdt: \r\n"
- + "SELECT (COUNT(DISTINCT ?s) as ?scount) WHERE { ?s wdt:P662 ?o }";
- String result = wrapper.query(sparql, namespace);
- JSONArray array = new JSONArray(result);
- int actualCount = array.getJSONObject(0).getInt("scount");
- int expectedCount = 581;
- assertEquals(expectedCount, actualCount);
-
- // assert that the service description has the same triple number for predicate P662 as the count
- String serviceDescr = ServiceDescriptionIndexer.queryServiceDescription(endpointUrl);
- OntModel model = JenaHelper.createModel();
- JenaHelper.readFromString(serviceDescr, model);
- Map map = ServiceDescriptionIndexer.getNumberOfPropertyTriples(model);
- long actualTripleNumber = map.get("http://www.wikidata.org/prop/direct/P662");
- assertEquals(expectedCount, actualTripleNumber);
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DataSourceSelectorTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DataSourceSelectorTest.java
deleted file mode 100644
index 42b1acb18..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DataSourceSelectorTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Ignore;
-
-import uk.ac.cam.cares.jps.base.query.fed.ParsedQueryTreeVisitor.ServiceGraphPatternSummary;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-public class DataSourceSelectorTest extends QueryProvider {
-
- static final Logger LOGGER = LogManager.getLogger(DataSourceSelectorTest.class);
-
- private ServiceDescriptionIndexer getSmallTestIndexer() {
- return ServiceDescriptionIndexerTest.getSmallTestIndexer();
- }
-
- private void assertKeySuffixes(List keys, int expectedNumber, String[] expectedSuffixes) {
- assertEquals(expectedNumber, keys.size());
- int count = 0;
- for (String suffix : expectedSuffixes) {
- for (String key : keys) {
- if (key.endsWith(suffix)) {
- count++;
- break;
- }
- }
- }
- assertEquals(expectedNumber, count);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- setServiceUrlParams("http://my.local.host:8080/myblazegraph", false);
- }
-
- public void testExtractKeysForSubqueries() {
- setQueryFormatParams(false, true, false);
- Query query = getSparqlDistributedLab_1();
- String sparql = query.sparql;
- List summaries = DataSourceSelector.extractKeysForSubqueries(sparql);
-
- assertEquals(2, summaries.size());
- assertKeySuffixes(summaries.get(0).keys, 4, new String[] {"hasYield", "hasValue", "hasNumericalValue", "hasUnit" });
- assertKeySuffixes(summaries.get(1).keys, 2, new String[] {"utilisesHistoricalData", "refersTo" });
- }
-
- public void testAddValuesClause_1() {
- setQueryFormatParams(false, true, false);
- Query query = getSparqlDistributedLab_1();
- String sparql = query.sparql;
- sparql += "ORDER BY ASC(?exp)\r\n" + "LIMIT 1\r\n";
-
- String varName = "service1";
- String[] varValues = new String[] {
- "http://localhost:8080/blazegraph/namespace/lab_1/sparql",
- "http://localhost:8080/blazegraph/namespace/lab_2/sparql"
- };
- sparql = DataSourceSelector.addValuesClause(sparql, varName, Arrays.asList(varValues));
- varName = "service2";
- varValues = new String[] {"http://localhost:8080/blazegraph/namespace/doe_chemrxn/sparql"};
- sparql = DataSourceSelector.addValuesClause(sparql, varName, Arrays.asList(varValues));
-
- assertTrue(sparql.contains("VALUES ?service1 { "
- + " }"));
- assertTrue(sparql.contains("VALUES ?service2 { }"));
- }
-
- public void testAddValuesClause_2() {
- setQueryFormatParams(false, true, false);
- Query query = getSparqlDistributedLab_2();
- String sparql = query.sparql;
-
- String varName = "service1";
- String[] varValues = new String[] {
- "http://localhost:8080/blazegraph/namespace/lab_1/sparql",
- "http://localhost:8080/blazegraph/namespace/lab_2/sparql"
- };
- sparql = DataSourceSelector.addValuesClause(sparql, varName, Arrays.asList(varValues));
-
- assertTrue(sparql.contains("VALUES ?service1 { "
- + " }"));
- }
-
- public void testAddValuesClause_3() {
- setQueryFormatParams(false, true, false);
- Query query = getSparqlBiodieselCityGML();
- String sparql = query.sparql;
-
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
- DataSourceSelector selector = new DataSourceSelector(indexer);
- sparql = selector.addValuesClauses(sparql);
-
- assertTrue(sparql.contains("VALUES ?service1 { }"));
- assertTrue(sparql.contains("VALUES ?service2 { }"));
- }
-
- public void testAddValuesClausesWithGivenServiceIRIs() throws Exception {
- setQueryFormatParams(false, true, false);
- Query query = getSparqlLocalWikidataWithPubChemCID887();
- String sparql = query.sparql;
-
- sparql = sparql.replace("?serva", "");
- sparql = sparql.replace("?servb", "");
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
- DataSourceSelector selector = new DataSourceSelector(indexer);
- String newSparql = selector.addValuesClauses(sparql);
-
- // assert that no VALUES clauses have been added
- assertFalse(newSparql.contains("VALUES"));
- assertEquals(sparql, newSparql);
- }
-
- public void testAddValuesClausesWithGivenValueClauses() {
- setQueryFormatParams(false, true, true);
- Query query = getSparqlLocalWikidataWithPubChemCID887();
- String sparql = query.sparql;
-
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
- DataSourceSelector selector = new DataSourceSelector(indexer);
- String newSparql = selector.addValuesClauses(sparql);
-
- // assert that no additional VALUES clauses have been added
- assertEquals(sparql, newSparql);
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetGenerator.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetGenerator.java
deleted file mode 100644
index 424a47bab..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetGenerator.java
+++ /dev/null
@@ -1,194 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.function.Supplier;
-
-public class DatasetGenerator {
-
- public class Pair {
- public S x1;
- public T x2;
- public Pair(S x1, T x2) {
- this.x1 = x1;
- this.x2 = x2;
- }
- }
-
- private String prefixes = null;
- private List triplePatterns = new ArrayList();
- List>> generators = new ArrayList>>();
- private List> generatedValues = new ArrayList>();
- private StringBuffer b = new StringBuffer();
-
- public DatasetGenerator(String prefixes) {
- this.prefixes = prefixes;
- }
-
- public DatasetGenerator pattern(String triplePattern) {
- triplePatterns.add(triplePattern);
- return this;
- }
-
- public DatasetGenerator generator(String variableName, Supplier dataGenerator) {
- generators.add(new Pair>(variableName, dataGenerator));
- return this;
- }
-
- public DatasetGenerator generator(String variableName, Supplier dataGenerator, int maxBeforeNull) {
- if (maxBeforeNull < 0) {
- return generator(variableName, dataGenerator);
- }
- Supplier optionalSupplier = supplierOptional(dataGenerator, maxBeforeNull);
- generators.add(new Pair>(variableName, optionalSupplier));
- return this;
- }
-
- private Map generateVariableValues() {
- Map name2value = new HashMap();
- for (Pair> current : generators) {
- String name = current.x1;
- Supplier supplier = current.x2;
- Object value = supplier.get();
- String valueString = (value == null)? null : value.toString();
- name2value.put(name, valueString);
- }
- return name2value;
- }
-
- public DatasetGenerator generateVariableValues(int number) {
- for (int i=0; i generated = generateVariableValues();
- generatedValues.add(generated);
- }
- return this;
- }
-
- public List getGeneratedValues(String variableName, int maxNumber) {
- List result = new ArrayList();
- for (Map current : generatedValues) {
- String value = current.get(variableName);
- result.add(value);
- if (result.size() == maxNumber) {
- break;
- }
- }
- return result;
- }
-
- public List getOrderedVariableNames() {
-
- List varNames = new ArrayList();
- for (Pair> current : generators) {
- varNames.add(current.x1);
- }
-
- // variable names such as "?scfEnergy" "?scfEnergyABCValue" must be ordered
- // by decreasing String length such that "?scfEnergyABCValue" is replaced before "?scfEnergy";
- // otherwise we would obtain e.g. "-123.1ABCValue"
- Comparator comparator = new Comparator() {
-
- @Override
- public int compare(String o1, String o2) {
- return o2.length() - o1.length();
- }
- };
- Collections.sort(varNames, comparator);
- return varNames;
- }
-
- public String build() {
- b.append(prefixes);
- b.append("\r\n");
- b.append("\r\n");
-
- List varNames = getOrderedVariableNames();
-
- for (Map current : generatedValues) {
-
- for (String triplePattern : triplePatterns) {
- for (String variableName : varNames) {
- String value = current.get(variableName);
- if (value != null) {
- triplePattern = triplePattern.replace(variableName, value);
- }
- }
- if (triplePattern.indexOf("?") == -1) {
- // i.e. all variables are bounded
- b.append(triplePattern).append(" .\r\n");
- }
- }
- b.append("\r\n");
- }
- return b.toString();
- }
-
- public static Supplier supplierConstant(Object constant) {
- Supplier supplier = () -> constant;
- return supplier;
- }
-
- public static Supplier supplierUUID(String firstPart, String lastPart) {
- Supplier supplier = () -> firstPart + UUID.randomUUID() + lastPart;
- return supplier;
- }
-
- public static Supplier supplierList(List list) {
- Supplier supplier = new Supplier() {
-
- private int index = -1;
-
- @Override
- public Object get() {
- index++;
- return list.get(index);
- }
- };
- return supplier;
- }
-
- public static Supplier supplierJoin(List list, Supplier supplier) {
- Supplier joinSupplier = new Supplier() {
-
- private int index = -1;
-
- @Override
- public Object get() {
- index++;
- if (index < list.size()) {
- return list.get(index);
- }
- return supplier.get();
- }
- };
- return joinSupplier;
- }
-
- public static Supplier supplierInt(int min, int max) {
- int span = max - min + 1;
- Supplier supplier = () -> (int) (min + Math.floor(Math.random() * span));
- return supplier;
- }
-
- public static Supplier supplierOptional(Supplier supplier, int maxBeforeNull ) {
- Supplier optionalSupplier = new Supplier() {
-
- private int count = 0;
-
- @Override
- public Object get() {
- count++;
- if (count > maxBeforeNull) {
- return null;
- }
- return supplier.get();
- }
- };
- return optionalSupplier;
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetGeneratorTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetGeneratorTest.java
deleted file mode 100644
index 951519a43..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetGeneratorTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.function.Supplier;
-
-import org.apache.jena.ontology.OntModel;
-import org.apache.jena.query.ResultSet;
-import org.apache.jena.riot.Lang;
-import org.json.JSONArray;
-import org.junit.Ignore;
-
-import junit.framework.AssertionFailedError;
-import uk.ac.cam.cares.jps.base.query.JenaHelper;
-import uk.ac.cam.cares.jps.base.query.JenaResultSetFormatter;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-public class DatasetGeneratorTest extends QueryProvider {
-
- public void testSupplierList() {
- List list = Arrays.asList(10, 20, 30);
- Supplier supplier = DatasetGenerator.supplierList(list);
- assertEquals(10, supplier.get());
- assertEquals(20, supplier.get());
- assertEquals(30, supplier.get());
-
- try {
- supplier.get();
- throw new AssertionFailedError("should throw an ArrayIndexOutOfBoundsException");
- } catch (ArrayIndexOutOfBoundsException e) {
- }
- }
-
- public void testSupplierJoin() {
- List list1 = Arrays.asList(10, 20);
- List list2 = Arrays.asList("A", "B");
- Supplier supplier = DatasetGenerator.supplierList(list2);
- Supplier joinSupplier = DatasetGenerator.supplierJoin(list1, supplier);
- assertEquals(10, joinSupplier.get());
- assertEquals(20, joinSupplier.get());
- assertEquals("A", joinSupplier.get());
- assertEquals("B", joinSupplier.get());
- try {
- joinSupplier.get();
- throw new AssertionFailedError("should throw an ArrayIndexOutOfBoundsException");
- } catch (ArrayIndexOutOfBoundsException e) {
- }
- }
-
- public void testSupplierInt() {
- Supplier supplier = DatasetGenerator.supplierInt(-1, 2);
- Set set = new HashSet();
- for (int i=0; i<1000; i++) {
- set.add((Integer) supplier.get());
- }
- assertEquals(4, set.size());
- for (int i=-1; i<=2; i++) {
- assertTrue(set.contains(i));
- }
- }
-
- public void testSupplierOptional() {
- Supplier supplier = DatasetGenerator.supplierConstant("A");
- supplier = DatasetGenerator.supplierOptional(supplier, 2);
- assertEquals("A", supplier.get());
- assertEquals("A", supplier.get());
- assertNull(supplier.get());
- assertNull(supplier.get());
- }
-
- public void testGetOrderedVariableNames() {
-
- DatasetGenerator generator = new DatasetGenerator("").
- generator("?scfEnergy", DatasetGenerator.supplierConstant("constant1")).
- generator("?scfEnergyValue", DatasetGenerator.supplierConstant("constant2"));
-
- List varNames = generator.getOrderedVariableNames();
- assertEquals("?scfEnergyValue", varNames.get(0));
- assertEquals("?scfEnergy", varNames.get(1));
- }
-
- public void testBuild() {
- DatasetGenerator generator = new DatasetGenerator("").
- pattern("?species ontospecies:casRegistryID ?crid").
- pattern("?species ontospecies:hasStandardEnthalpyOfFormation ?enthalpy").
- pattern("?enthalpy ontospecies:value ?enthalpyOfFormationValue").
- generator("?species", DatasetGenerator.supplierConstant("SPECIES")).
- generator("?crid", DatasetGenerator.supplierConstant("CRID")).
- generator("?enthalpy", DatasetGenerator.supplierConstant("ENTHALPY")).
- generator("?enthalpyOfFormationValue", DatasetGenerator.supplierConstant("ENTHALPYVALUE"));
-
- String dataset = generator.generateVariableValues(1).build();
-
- String expected = "\r\n"
- + "\r\n"
- + "SPECIES ontospecies:casRegistryID CRID .\r\n"
- + "SPECIES ontospecies:hasStandardEnthalpyOfFormation ENTHALPY .\r\n"
- + "ENTHALPY ontospecies:value ENTHALPYVALUE .\r\n"
- + "\r\n";
-
- assertEquals(expected, dataset);
- }
-
- public void testBuildWithSupplierOptional() {
-
- DatasetGenerator generator = new DatasetGenerator("").
- pattern("?species ontospecies:casRegistryID ?crid").
- pattern("?species ontospecies:hasStandardEnthalpyOfFormation ?enthalpy").
- generator("?species", DatasetGenerator.supplierConstant("SPECIES")).
- generator("?crid", DatasetGenerator.supplierConstant("CRID"), 2). // 2 time CRID, then null
- generator("?enthalpy", DatasetGenerator.supplierConstant("ENTHALPY"));
-
- String dataset = generator.generateVariableValues(4).build();
-
- //System.out.println("XXX");
- //System.out.println(dataset);
- //System.out.println("YYY");
-
- String expected = "\r\n"
- + "\r\n"
- + "SPECIES ontospecies:casRegistryID CRID .\r\n"
- + "SPECIES ontospecies:hasStandardEnthalpyOfFormation ENTHALPY .\r\n"
- + "\r\n"
- + "SPECIES ontospecies:casRegistryID CRID .\r\n"
- + "SPECIES ontospecies:hasStandardEnthalpyOfFormation ENTHALPY .\r\n"
- + "\r\n"
- + "SPECIES ontospecies:hasStandardEnthalpyOfFormation ENTHALPY .\r\n"
- + "\r\n"
- + "SPECIES ontospecies:hasStandardEnthalpyOfFormation ENTHALPY .\r\n"
- + "\r\n";
-
- assertEquals(expected, dataset);
- }
-
- public void testGenerateOntoSpeciesOntoCompChem() {
-
- int sizeJoin = 25;
- String[] datasets = DatasetProvider.generateOntoSpeciesOntoCompChem(100, 200, sizeJoin, -1);
-
- // merge the triple of both datasets into one RDF graph
- OntModel model = JenaHelper.createModel();
- JenaHelper.readFromString(datasets[0], model, Lang.TURTLE);
- JenaHelper.readFromString(datasets[1], model, Lang.TURTLE);
-
- // assert that the non-federated query has result set of size sizeJoin
- setQueryFormatParams(false, false, false);
- Query query = getSparqlOntoSpeciesOntoCompChemLarge();
- ResultSet result = JenaHelper.query(model, query.sparql);
- String resultW3C = JenaResultSetFormatter.convertToJSONW3CStandard(result);
- JSONArray ja = JenaResultSetFormatter.convertToSimplifiedJsonArray(resultW3C);
- assertEquals(sizeJoin, ja.length());
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetProvider.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetProvider.java
deleted file mode 100644
index 733abd798..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/DatasetProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.List;
-import java.util.function.Supplier;
-
-public class DatasetProvider {
-
- public static String[] generateOntoSpeciesOntoCompChem(int sizeOntoSpecies, int sizeOntoCompChem, int sizeJoin, int numbercrid) {
-
- DatasetGenerator genSpecies = createGeneratorOntoSpecies(numbercrid);
- genSpecies.generateVariableValues(sizeOntoSpecies);
- String datasetSpecies = genSpecies.build();
-
- List joinValues = genSpecies.getGeneratedValues("?species", sizeJoin);
- DatasetGenerator genCompChem = createGeneratorOntoCompChem(joinValues);
- genCompChem.generateVariableValues(sizeOntoCompChem);
- String datasetCompChem = genCompChem.build();
-
- return new String[] { datasetSpecies, datasetCompChem };
- }
-
- public static DatasetGenerator createGeneratorOntoSpecies(int numbercrid) {
- String prefixes = "@prefix ontospecies: .\r\n"
- + "@prefix ontocompchem: .\r\n"
- + "@prefix gc: .\r\n"
- + "@prefix kbontospecies: .\r\n";
-
- DatasetGenerator generator = new DatasetGenerator(prefixes).
- pattern("?species ontospecies:casRegistryID ?crid").
- pattern("?species ontospecies:hasAtomicBond ?atomicBond").
- pattern("?species ontospecies:hasGeometry ?geometry").
- pattern("?species ontospecies:hasStandardEnthalpyOfFormation ?enthalpy").
- pattern("?enthalpy ontospecies:value ?enthalpyOfFormationValue");
-
- generator.generator("?species", DatasetGenerator.supplierUUID("kbontospecies:Species_", "")).
- generator("?crid", DatasetGenerator.supplierUUID("\"107-18-6", "\""), numbercrid).
- generator("?atomicBond", DatasetGenerator.supplierUUID("\"5 1 1 6 1 1 1 2 2 8 3 1 2 3 1 2 7 1 10 4 1 3 4 1 3 9 1", "\"")).
- generator("?geometry", DatasetGenerator.supplierUUID("\"C -0.923508 -0.555332 -1.207091 C -0.508887 -0.407765 0.049627 C 0.368786 0.714318 0.522948 O 1.573496 0.239793 1.13319 H -0.648316 0.15453 -1.982095 H -1.557937 -1.381879 -1.506737 H -0.792092 -1.134554 0.808132 H 0.589914 1.398858 -0.30644 H -0.133639 1.289675 1.305278 H 2.032282 -0.317645 0.495588", "\"")).
- generator("?enthalpy", DatasetGenerator.supplierUUID("kbontospecies:StandardEnthalpyOfFormation_", "")).
- generator("?enthalpyOfFormationValue", DatasetGenerator.supplierConstant("-123.6"));
-
- return generator;
- }
-
- public static DatasetGenerator createGeneratorOntoCompChem(List joinValuesSpecies) {
- String prefixes = "@prefix ontospecies: .\r\n"
- + "@prefix ontocompchem: .\r\n"
- + "@prefix gc: .\r\n"
- + "@prefix kbontospecies: .\r\n"
- + "@prefix kbontocompchem: .\r\n";
-
- DatasetGenerator generator = new DatasetGenerator(prefixes).
- pattern("?compchemspecies ontocompchem:hasUniqueSpecies ?species").
- pattern("?compchemspecies gc:isCalculationOn ?scfEnergy").
- pattern("?scfEnergy a ontocompchem:ScfEnergy").
- pattern("?scfEnergy gc:hasElectronicEnergy ?scfElectronicEnergy").
- pattern("?scfElectronicEnergy gc:hasValue ?scfEnergyValue").
- pattern("?compchemspecies gc:isCalculationOn ?zeroEnergy").
- pattern("?zeroEnergy a ontocompchem:ZeroPointEnergy").
- pattern("?zeroEnergy gc:hasElectronicEnergy ?zeroElectronicEnergy").
- pattern("?zeroElectronicEnergy gc:hasValue ?zeroEnergyValue");
-
-
- Supplier joinsupplier = DatasetGenerator.supplierUUID("kbontospecies:Species_", ""); ;
- if (joinValuesSpecies != null) {
- joinsupplier = DatasetGenerator.supplierJoin(joinValuesSpecies, joinsupplier);
- }
-
- generator.generator("?species", joinsupplier).
- generator("?compchemspecies", DatasetGenerator.supplierUUID("kbontocompchem:spec_", "")).
- generator("?scfEnergy", DatasetGenerator.supplierUUID("kbontocompchem:scfenergy_", "")).
- generator("?scfElectronicEnergy", DatasetGenerator.supplierUUID("kbontocompchem:electronicenergy_", "")).
- generator("?scfEnergyValue", DatasetGenerator.supplierConstant(-314.455919684)).
- generator("?zeroEnergy", DatasetGenerator.supplierUUID("kbontocompchem:zeropointenergy_", "")).
- generator("?zeroElectronicEnergy", DatasetGenerator.supplierUUID("kbontocompchem:zeroelectronicenergy_", "")).
- generator("?zeroEnergyValue", DatasetGenerator.supplierConstant(0.219432));
-
- return generator;
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryBlazegraphGivenEndpointsIntegrationTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryBlazegraphGivenEndpointsIntegrationTest.java
deleted file mode 100644
index fbec0cbf5..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryBlazegraphGivenEndpointsIntegrationTest.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.io.IOException;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Ignore;
-
-import uk.ac.cam.cares.jps.base.query.RemoteStoreClient;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-/**
- * One of multiple test configurations, see {@link QueryProvider} for details.
- */
-public class FedQueryBlazegraphGivenEndpointsIntegrationTest extends QueryProvider {
-
- private static final Logger LOGGER = LogManager.getLogger(FedQueryBlazegraphGivenEndpointsIntegrationTest.class);
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- TripleStoreProvider.getInstance();
- setQueryFormatParams(false, true, true);
- setServiceUrlParams(null, true);
- }
-
- protected void queryAndAssert(Query query) {
- queryAndAssert(query.sparql, query.result);
- }
-
- private void queryAndAssert(String sparql, String expectedResult) {
- LOGGER.debug("Federated query for Blazegraph with given service endpoints and without data selection");
- String fedEngineUrl = TripleStoreProvider.getEndpointUrl(TripleStoreProvider.NAMESPACE_BLAZEGRAPH_EMTPY);
- FederatedQueryInterface repo = FederatedQueryFactory.createForQueriesWithGivenEndpoints(fedEngineUrl);
- String actualJson = repo.executeFederatedQuery(sparql);
- assertQueryResult(expectedResult, actualJson);
- }
-
- public void testSparqlDistributedLab_1() {
- queryAndAssert(getSparqlDistributedLab_1());
- }
-
- public void testSparqlDistributedLab_2() {
- queryAndAssert(getSparqlDistributedLab_2());
- }
-
- public void testSparqlDistributedLab_3() {
- queryAndAssert(getSparqlDistributedLab_3());
- }
-
- public void testSparqlDistributedLab_3_inverted_service_order() {
- queryAndAssert(getSparqlDistributedLab_3_inverted_service_order());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemSmall() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemSmall());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemMedium() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemMedium());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemLarge() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemLarge());
- }
-
- public void xxxtestRemoteSparqlBiodieselCityGML() {
- queryAndAssert(getSparqlBiodieselCityGML());
- }
-
- public void xxxtestRemoteSparqlWikidataDBpedia() {
- queryAndAssert(getSparqlWikidataDBpedia());
- }
-
- private String createEndpoint(String containerId, String namespace) {
- TripleStoreProvider provider = TripleStoreProvider.getInstance();
- String path = BlazegraphRepositoryWrapper.getPathForBlazegraph(namespace);
- provider.createDatasetBlazegraph(containerId, namespace, path, null);
- return TripleStoreProvider.getEndpointUrl(namespace);
- }
-
- public void testSelectDistinctSolvesProblemWithDuplicatedRows() throws IOException {
-
- String prefixes = "PREFIX twa: \r\n"
- + "PREFIX ontospecies: \r\n"
- + "PREFIX ontocompchem: \r\n";
-
- // create first endpoint and insert triples
- String namespace1 = "duplicate_1";
- String url1 = createEndpoint(TripleStoreProvider.ID_BLAZEGRAPH_1, namespace1);
- String sparql = prefixes
- + "INSERT DATA {\r\n"
- + " twa:1001 ontospecies:casRegistryID 1001 .\r\n"
- + " twa:1002 ontospecies:casRegistryID 1002 .\r\n"
- + " twa:1003 ontospecies:casRegistryID 1003 .\r\n"
- + " twa:1004 ontospecies:casRegistryID 1004 .\r\n"
- + "}";
- RemoteStoreClient client = new RemoteStoreClient(url1, url1);
- client.executeUpdate(sparql);
-
- //sparql = prefixes + "SELECT * WHERE { ?s ?p ?o }";
- //JSONArray result = client.executeQuery(sparql);
- //System.out.println("RESULT 1 = \n" + result);
-
- // create second endpoint and insert triples
- String namespace2 = "duplicate_2";
- String url2 = createEndpoint(TripleStoreProvider.ID_BLAZEGRAPH_2, namespace2);
- sparql = prefixes
- + "INSERT DATA {\r\n"
- + " twa:1001_1 ontocompchem:hasUniqueSpecies twa:1001 .\r\n" // + 1
- + " twa:1001_2 ontocompchem:hasUniqueSpecies twa:1001 .\r\n" // + 3
- + " twa:1001_3 ontocompchem:hasUniqueSpecies twa:1001 .\r\n" // + 5
- //+ " twa:1001_4 ontocompchem:hasUniqueSpecies twa:1001 .\r\n" // + 7
- + " twa:1002_1 ontocompchem:hasUniqueSpecies twa:1002 .\r\n" // + 1
- + " twa:1002_2 ontocompchem:hasUniqueSpecies twa:1002 .\r\n" // + 3
- + " twa:1003_1 ontocompchem:hasUniqueSpecies twa:1003 .\r\n" // + 1 (1003_1 with existing species in duplicate_1)
- + " twa:1003_1 ontocompchem:hasUniqueSpecies twa:1043 .\r\n" // + 0 (1003_1 with non-existing species in duplicate_1)
- + " twa:1043_1 ontocompchem:hasUniqueSpecies twa:1043 .\r\n" // + 0 (another IRI with non-existing species in duplicate_1)
- + "}";
- client = new RemoteStoreClient(url2, url2);
- client.executeUpdate(sparql);
-
- // execute the federated query
- String fedQuery = prefixes
- + "SELECT *\r\n"
- + "WHERE {\r\n"
- + " SERVICE <%s> {\r\n"
- + " ?compchemspecies ontocompchem:hasUniqueSpecies ?species .\r\n"
- + " }\r\n"
- + " SERVICE <%s> {\r\n"
- + " ?species ontospecies:casRegistryID ?crid .\r\n"
- + " }\r\n"
- + "}";
- String dockerUrl1 = TripleStoreProvider.getDockerEndpointUrl(namespace1);
- String dockerUrl2 = TripleStoreProvider.getDockerEndpointUrl(namespace2);
- fedQuery = String.format(fedQuery, dockerUrl2, dockerUrl1);
-
- //
- String expected = "6";
-
- // check that there 14 rows instead
- String actual = "14"; // = 9 + 4 + 1
- queryAndAssert(fedQuery, actual);
-
- // use DISTINCT to eliminate the duplicated rows
- fedQuery = fedQuery.replace("SELECT", "SELECT DISTINCT");
- queryAndAssert(fedQuery, expected);
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryBlazegraphSourceSelectionIntegrationTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryBlazegraphSourceSelectionIntegrationTest.java
deleted file mode 100644
index 8eacbf895..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryBlazegraphSourceSelectionIntegrationTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.Map;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Ignore;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-/**
- * One of multiple test configurations, see {@link QueryProvider} for details.
- */
-public class FedQueryBlazegraphSourceSelectionIntegrationTest extends QueryProvider {
-
- private static final Logger LOGGER = LogManager.getLogger(FedQueryBlazegraphSourceSelectionIntegrationTest.class);
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- TripleStoreProvider.getInstance();
- setQueryFormatParams(false, true, false);
- setServiceUrlParams(null, true);
- }
-
- protected void queryAndAssert(Query query) {
- queryAndAssert(query.sparql, query.result);
- }
-
- private void queryAndAssert(String sparql, String expectedResult) {
- LOGGER.debug("Federated query for Blazegraph with endpoint selection");
- String fedEngineUrl = TripleStoreProvider.getEndpointUrl(TripleStoreProvider.NAMESPACE_BLAZEGRAPH_EMTPY);
- ServiceDescriptionIndexer indexer = getIndexer();
- LOGGER.debug("number of endpoints=" + indexer.getEndpointUrls().size());
- Map host2host = TripleStoreProvider.getHostConversionMap();
- FederatedQueryInterface repo = FederatedQueryFactory.createWithEndpointSelection(fedEngineUrl, indexer, host2host);
- //FederatedQueryInterface repo = FederatedQueryFactory.createForQueriesWithGivenEndpoints(fedEngineUrl);
- String actualJson = repo.executeFederatedQuery(sparql);
- assertQueryResult(expectedResult, actualJson);
- }
-
- public void testSparqlDistributedLab_1() {
- queryAndAssert(getSparqlDistributedLab_1());
- }
-
- public void testSparqlDistributedLab_2() {
- queryAndAssert(getSparqlDistributedLab_2());
- }
-
- public void testSparqlDistributedLab_3() {
- queryAndAssert(getSparqlDistributedLab_3());
- }
-
- public void testSparqlDistributedLab_3_inverted_service_order() {
- queryAndAssert(getSparqlDistributedLab_3_inverted_service_order());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemSmall() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemSmall());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemMedium() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemMedium());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemLarge() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemLarge());
- }
-
- public void xxxtestRemoteSparqlBiodieselCityGML() {
- queryAndAssert(getSparqlBiodieselCityGML());
- }
-
- public void xxxtestRemoteSparqlWikidataDBpedia() {
- queryAndAssert(getSparqlWikidataDBpedia());
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryRdf4jGivenEndpointsIntegrationTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryRdf4jGivenEndpointsIntegrationTest.java
deleted file mode 100644
index 151aeaa81..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryRdf4jGivenEndpointsIntegrationTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Ignore;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-/**
- * One of multiple test configurations, see {@link QueryProvider} for details.
- */
-public class FedQueryRdf4jGivenEndpointsIntegrationTest extends QueryProvider {
-
- private static final Logger LOGGER = LogManager.getLogger(FedQueryRdf4jGivenEndpointsIntegrationTest.class);
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- TripleStoreProvider.getInstance();
- setQueryFormatParams(false, true, true);
- setServiceUrlParams(null, true);
- }
-
- protected void queryAndAssert(Query query) {
- queryAndAssert(query.sparql, query.result);
- }
-
- private void queryAndAssert(String sparql, String expectedResult) {
- LOGGER.debug("Federated query for RDF4J with given service endpoints and without data selection");
- String fedEngineUrl = TripleStoreProvider.getEndpointUrl(TripleStoreProvider.NAMESPACE_RDF4J_EMPTY);
- FederatedQueryInterface repo = FederatedQueryFactory.createForQueriesWithGivenEndpoints(fedEngineUrl);
- String actualJson = repo.executeFederatedQuery(sparql);
- assertQueryResult(expectedResult, actualJson);
- }
-
- public void testSparqlDistributedLab_1() {
- queryAndAssert(getSparqlDistributedLab_1());
- }
-
- public void testSparqlDistributedLab_2() {
- queryAndAssert(getSparqlDistributedLab_2());
- }
-
- public void testSparqlDistributedLab_3() {
- queryAndAssert(getSparqlDistributedLab_3());
- }
-
- public void testSparqlDistributedLab_3_inverted_service_order() {
- queryAndAssert(getSparqlDistributedLab_3_inverted_service_order());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemSmall() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemSmall());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemMedium() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemMedium());
- }
-
- public void xxxtestSparqlOntoSpeciesOntoCompChemLarge() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemLarge());
- }
-
- public void xxxtestRemoteSparqlBiodieselCityGML() {
- queryAndAssert(getSparqlBiodieselCityGML());
- }
-
- public void xxxtestRemoteSparqlWikidataDBpedia() {
- queryAndAssert(getSparqlWikidataDBpedia());
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryRdf4jSourceSelectionIntegrationTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryRdf4jSourceSelectionIntegrationTest.java
deleted file mode 100644
index 1dca145fe..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedQueryRdf4jSourceSelectionIntegrationTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.http.client.methods.HttpGet;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.junit.Ignore;
-
-import uk.ac.cam.cares.jps.base.http.Http;
-import uk.ac.cam.cares.jps.base.query.JenaResultSetFormatter;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-/**
- * One of multiple test configurations, see {@link QueryProvider} for details.
- */
-public class FedQueryRdf4jSourceSelectionIntegrationTest extends QueryProvider {
-
- private static final Logger LOGGER = LogManager.getLogger(FedQueryRdf4jSourceSelectionIntegrationTest.class);
- private static FederatedQueryInterface engine = null;
- private static List endpoints = null;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- TripleStoreProvider.getInstance();
- setQueryFormatParams(false, true, false);
- setServiceUrlParams(null, true);
- if (engine == null) {
- LOGGER.info("Creating engine with endpoint selection");
- String fedEngineUrl = TripleStoreProvider.getEndpointUrl(TripleStoreProvider.NAMESPACE_RDF4J_EMPTY);
- ServiceDescriptionIndexer indexer = getIndexer();
- endpoints = indexer.getEndpointUrls();
- Map host2host = TripleStoreProvider.getHostConversionMap();
- engine = FederatedQueryFactory.createWithEndpointSelection(fedEngineUrl, indexer, host2host);
- }
- }
-
- protected void queryAndAssert(Query query) {
- queryAndAssert(query.sparql, query.result);
- }
-
- private void queryAndAssert(String sparql, String expectedResult) {
- LOGGER.debug("Federated query for RDF4J with endpoint selection");
- LOGGER.debug("number of endpoints=" + endpoints.size());
- String actualJson = engine.executeFederatedQuery(sparql);
- assertQueryResult(expectedResult, actualJson);
- }
-
- // https://rdf4j.org/documentation/reference/rest-api/#repository-list
- private List getRDF4JEndpoints(String serviceUrl) {
- List endpoints = new ArrayList();
-
- String url = serviceUrl + "/repositories";
- String accept = "application/sparql-results+json";
- HttpGet request = Http.get(url, accept);
- String result = Http.execute(request);
- JSONArray ja = JenaResultSetFormatter.convertToSimplifiedJsonArray(result);
- for (int i=0; i endpoints = getRDF4JEndpoints(serviceUrl);
- LOGGER.debug("endpoints=" + endpoints);
- boolean found = false;
- for (String endpoint : endpoints) {
- if (endpoint.endsWith(namespace)) {
- found = true;
- break;
- }
- }
- assertTrue("endpoint was not found", found);
- }
-
- public void testSparqlDistributedLab_1() {
- queryAndAssert(getSparqlDistributedLab_1());
- }
-
- public void testSparqlDistributedLab_2() {
- queryAndAssert(getSparqlDistributedLab_2());
- }
-
- public void testSparqlDistributedLab_3() {
- queryAndAssert(getSparqlDistributedLab_3());
- }
-
- public void testSparqlDistributedLab_3_inverted_service_order() {
- queryAndAssert(getSparqlDistributedLab_3_inverted_service_order());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemSmall() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemSmall());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemMedium() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemMedium());
- }
-
- public void xxxtestSparqlOntoSpeciesOntoCompChemLarge() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemLarge());
- }
-
- public void xxxtestRemoteSparqlBiodieselCityGML() {
- queryAndAssert(getSparqlBiodieselCityGML());
- }
-
- public void xxxtestRemoteSparqlWikidataDBpedia() {
- queryAndAssert(getSparqlWikidataDBpedia());
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedXIntegrationTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedXIntegrationTest.java
deleted file mode 100644
index 16385ed29..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/FedXIntegrationTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.List;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Ignore;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-// https://rdf4j.org/documentation/programming/federation/
-/**
- * One of multiple test configurations, see {@link QueryProvider} for details.
- */
-public class FedXIntegrationTest extends QueryProvider {
-
- private static final Logger LOGGER = LogManager.getLogger(FedXIntegrationTest.class);
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- TripleStoreProvider.getInstance();
- setQueryFormatParams(false, false, false);
- }
-
- protected void queryAndAssert(Query query) {
- queryAndAssert(query.sparql, query.getEndpoints(), query.result);
- }
-
- private void queryAndAssert(String sparql, List endpoints, String expectedResult) {
- endpoints = getIndexer().getEndpointUrls();
- LOGGER.debug("FedX with number of endpoints=" + endpoints.size());
- FederatedQueryInterface repo = FederatedQueryFactory.createFedX(endpoints);
- String actualJson = repo.executeFederatedQuery(sparql);
- assertQueryResult(expectedResult, actualJson);
- }
-
- public void testSparqlDistributedLab_1() {
- queryAndAssert(getSparqlDistributedLab_1());
- }
-
- public void testSparqlDistributedLab_2() {
- queryAndAssert(getSparqlDistributedLab_2());
- }
-
- public void testSparqlDistributedLab_3() {
- queryAndAssert(getSparqlDistributedLab_3());
- }
-
- public void testSparqlDistributedLab_3_inverted_service_order() {
- queryAndAssert(getSparqlDistributedLab_3_inverted_service_order());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemSmall() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemSmall());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemMedium() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemMedium());
- }
-
- public void testSparqlOntoSpeciesOntoCompChemLarge() {
- queryAndAssert(getSparqlOntoSpeciesOntoCompChemLarge());
- }
-
- public void xxxtestRemoteSparqlBiodieselCityGML() {
- queryAndAssert(getSparqlBiodieselCityGML());
- }
-
- public void xxxtestRemoteSparqlWikidataDBpedia() {
- queryAndAssert(getSparqlWikidataDBpedia());
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/QueryProvider.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/QueryProvider.java
deleted file mode 100644
index 247c0a9be..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/QueryProvider.java
+++ /dev/null
@@ -1,601 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParser;
-
-import junit.framework.TestCase;
-import uk.ac.cam.cares.jps.base.exception.JPSRuntimeException;
-import uk.ac.cam.cares.jps.base.query.sparql.PrefixToUrlMap;
-import uk.ac.cam.cares.jps.base.query.sparql.Prefixes;
-import uk.ac.cam.cares.jps.base.query.RemoteStoreClientTest;
-
-/**
- * This is the base class for multiple test configurations of integration tests for executing federated queries.
- * The current test configurations (subclasses) are:
- *
- * (1) FedX ({@link FedXIntegrationTest}): a federated query engine which is part of RDF4J.
- * It accepts SPARQL 1.0 queries without SERVICE clauses as federated queries.
- * (2) RDF4J with given endpoints ({@link FedQueryRdf4jGivenEndpointsIntegrationTest}):
- * The usual RDF4J server (which is different to FedX) can also be used as federated query engine
- * for SPARQL 1.1 queries with SERVICE clauses and specified endpoint URLs.
- * (3) Blazegraph with given endpoints ({@link FedQueryBlazegraphGivenEndpointsIntegrationTest}):
- * The usual Blazegraph server can be used for the same SPARQL 1.1 queries as in (2).
- * (4) RDF4j with unbounded SERVICE variables ({@link FedQueryRdf4jSourceSelectionIntegrationTest}):
- * Given a SPARQL 1.1. queries with SERVICE clauses but unbounded SERVICe variables,
- * relevant datasets / endpoints are selected and added as VALUES clauses. The derived query is
- * executed as in (2).
- * (5) Blazegraph with unbounded SERVICE variables ({@link FedQueryBlazegraphSourceSelectionIntegrationTest}):
- * As in (4). But the derived query is executed as in (3).
- *
- * Each test configuration uses the {@link FederatedQueryFactory} to create the corresponding engine
- * and the same method {@link FederatedQueryInterface#executeFederatedQuery(String)} to execute a federated query.
- * An federated query example is shown in {@link FederatedQueryFactory#createForQueriesWithGivenEndpoints(String)}.
- * While all test configurations use the same queries with the same basic triple patterns,
- * a query may and may not include SERVICE or VALUES clauses. For this reason, a helper class {@link Query} is defined
- * that allows to format the same query by means of three parameters,
- * see {@link Query#formatQuery(boolean, boolean, boolean)}.
- */
-public abstract class QueryProvider extends TestCase {
-
- /**
- * A helper class to format the "same" federated query in different ways
- * for different test configurations.
- *
- */
- public class Query {
-
- public class Pair {
- String paramName = null;
- List endpoints = new ArrayList();
-
- public Pair(String paramName, List endpoints) {
- this.paramName = paramName;
- this.endpoints = endpoints;
- }
- }
-
- /**
- * The plain SPARQL string containing some %s placeholder to insert SERVICE and VALUES clauses.
- */
- String sparql = null;
- List serviceList = new ArrayList();
- String result = null;
-
- public void addEndpoints(String paramName, String... endpoints) {
- serviceList.add(new Pair(paramName, Arrays.asList(endpoints)));
- }
-
- /**
- * Returns all relevant endpoint URLs.
- *
- * @return
- */
- public List getEndpoints() {
- Set endpoints = new HashSet();
- for (Pair pair : serviceList) {
- endpoints.addAll(pair.endpoints);
- }
- return new ArrayList(endpoints);
- }
-
- /**
- * Formats the "plain" SPARQL string containing some %s placeholders
- * that can be replaced by SERVICE and VALUES clauses.
- * Only the following combinations make sense:
- *
- * (1) false, false, false: returns a valid SPARQL 1.0 without SERVICE and VALUES clauses as used by FedX
- * (2) true, false, false: returns a valid and complete SPARQL 1.1 query with specified endpoint URLs
- * (3) false, true, true: returns a valid and complete SPARQL 1.1 query where SERVICE variables are
- * specified by VALUES clauses
- * (4) false, true, false: returns an invalid, incomplete SPARQL 1.1 query; used by the automated
- * data selection procedures which adds VALUES clauses to specify the SERVICE variables
- *
- * @param addServiceUrls inserts SERVICE clauses with endpoint URLs at the placeholders
- * @param addServiceParams inserts SERVICE clauses with SERVICE variables at the placeholders
- * @param addValuesClauses inserts VALUES clauses with endpoint URLS at the placeholders
- * @return
- */
- public Query formatQuery(boolean addServiceUrls, boolean addServiceParams, boolean addValuesClauses) {
-
- if (addServiceUrls && addServiceParams) {
- throw new JPSRuntimeException("either addServiceUrls or addServiceParams must be false");
- }
-
- List values = new ArrayList();
- String value = "";
- boolean serviceAdded = false;
- if (addServiceUrls || addServiceParams) {
- for (int i=0; i {\r\n";
- values.add(value);
- } else if (addServiceParams) {
- value = (i>0)? " }\r\n" : "";
- value += " SERVICE ?" + pair.paramName + " {\r\n";
- values.add(value);
- } else {
- values.add("");
- }
- }
- } else {
- for (int i=0; i ";
- }
- value += " VALUES ?" + pair.paramName + " { " + concat + "}\r\n";
- }
- }
- values.add(value);
-
- Query newquery = new Query();
- newquery.sparql = String.format(sparql, values.toArray());
- newquery.serviceList = serviceList;
- newquery.result = result;
-
-
- if (true) {
- // add DISTINCT to remove duplicated results rows (in case of Blazegraph)
- if (!newquery.sparql.contains("DISTINCT")) {
- newquery.sparql = newquery.sparql.replace("SELECT", "SELECT DISTINCT");
- }
- }
-
-
- return newquery;
- }
- }
-
- static final Logger LOGGER = LogManager.getLogger(QueryProvider.class);
-
- // the configuration parameters to format queries
- private boolean addServiceUrls = false;
- private boolean addServiceParams = false;
- private boolean addValuesClauses = false;
- // the parameters to manipulate endpoints URLs in DOCKER test environment
- private boolean useDockerServiceUrl = false;
- private String fixedServiceUrl = null;
-
- protected void setQueryFormatParams(boolean addServiceUrls, boolean addServiceParams, boolean addValuesClauses) {
- this.addServiceUrls = addServiceUrls;
- this.addServiceParams = addServiceParams;
- this.addValuesClauses = addValuesClauses;
- }
-
- protected void setServiceUrlParams(String fixedServiceUrl, boolean useDockerServiceUrl) {
- this.fixedServiceUrl = fixedServiceUrl;
- this.useDockerServiceUrl = useDockerServiceUrl;
- }
-
- protected Query format(Query query) {
- return query.formatQuery(addServiceUrls, addServiceParams, addValuesClauses);
- }
-
- /*
- private static ServiceDescriptionIndexer fullIndexer = null;
-
- public static ServiceDescriptionIndexer getFullIndexer() {
- if (fullIndexer == null) {
- LOGGER.debug("initializing full indexer");
- File dir = new File("D:/tmp/service_desciptions_test");
- String[] extensions = new String[] {"rdf"};
- Collection files = FileUtils.listFiles(dir, extensions, true);
- fullIndexer = new ServiceDescriptionIndexer();
- for (File file : files) {
- fullIndexer.addServiceDescription(file.getAbsolutePath());
- }
- LOGGER.debug("initialed full indexer, service descriptions=" + files.size());
- }
- return fullIndexer;
- }
-
- protected static ServiceDescriptionIndexer getOldIndexer(boolean useAllEndpoints) {
- if (useAllEndpoints) {
- return getFullIndexer();
- }
- return ServiceDescriptionIndexerTest.getSmallTestIndexer();
- }
- */
-
- public ServiceDescriptionIndexer getIndexer() {
- List serviceUrls = new ArrayList();
- serviceUrls.add(TripleStoreProvider.getServiceUrl(TripleStoreProvider.ID_BLAZEGRAPH_1));
- serviceUrls.add(TripleStoreProvider.getServiceUrl(TripleStoreProvider.ID_BLAZEGRAPH_2));
-
- // additional federation members for the test with remote queries
- List federationMembers = new ArrayList();
- //federationMembers.add("http://www.theworldavatar.com/blazegraph/namespace/sgbiodieselplants/sparql");
- //federationMembers.add("http://www.theworldavatar.com:83/citieskg/namespace/singaporeEPSG24500/sparql");
- //federationMembers.add("http://www.theworldavatar.com/blazegraph/namespace/ontospecies/sparql");
- //federationMembers.add("http://www.theworldavatar.com/blazegraph/namespace/ontocompchem/sparql");
-
- return FederatedQueryFactory.getIndexer(true, serviceUrls, federationMembers);
- }
-
- /**
- * Returns the complete endpoint URL for a given namespace / dataset.
- * If useDockerServiceUrl is true, the corresponding Docker container related endpoint URL is returned.
- *
- * @param namespace
- * @return
- */
- public String endpoint(String namespace) {
- if (fixedServiceUrl == null) {
- if (useDockerServiceUrl) {
- return TripleStoreProvider.getDockerEndpointUrl(namespace);
- } else {
- return TripleStoreProvider.getEndpointUrl(namespace);
- }
- }
- return fixedServiceUrl + "/namespace/" + namespace + "/sparql";
- }
-
- public void assertQueryResult(String expected, String actual) {
- LOGGER.debug("actual result=\n" + actual);
- LOGGER.debug("expected result=\n" + expected);
-
- JsonParser parser = new JsonParser();
- JsonArray actualJA = (JsonArray) parser.parse(actual);
- /*
- JsonElement actualJson = parser.parse(actual);
- JsonArray actualJA = null;
- if (actualJson.isJsonArray()) {
- actualJA = (JsonArray) actualJson;
- } else {
- actualJA = actualJson.getAsJsonObject().getAsJsonArray("results");
- }
- */
-
- // if expected is an integer only compare the result size
- try {
- int expectedSize = Integer.valueOf(expected);
- LOGGER.debug("result size expected=" + expectedSize + ", actual=" + actualJA.size());
- assertEquals(expectedSize, actualJA.size());
- return;
- } catch (NumberFormatException e) {
- }
-
- JsonArray expectedJA = (JsonArray) parser.parse(expected);
-
- LOGGER.debug("result size expected=" + expectedJA.size() + ", actual=" + actualJA.size());
- assertEquals(expectedJA.size(), actualJA.size());
-
- // although the implementation of GSON's equal method is not order-sensitive
- // the following assert method does not work correctly
- // if the same elements in the actual and expected result arrays are ordered differently
- //assertEquals(expectedJA, actualJA);
-
- for (int i=0; i\r\n"
- + "PREFIX ontorxn: \r\n"
- + "PREFIX om: \r\n"
- + "PREFIX ontovapourtec: \r\n"
- + "PREFIX ontolab: \r\n"
- + "PREFIX saref: \r\n"
- + "PREFIX ontocaperxn: \r\n"
- + "PREFIX ontospecies: "
- + "\r\n";
- }
-
- public Query getSparqlDistributedLab_1() {
- Query query = new Query();
- query.sparql = prefixes()
- + "SELECT ?exp ?yield_value ?yield_unit\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?exp ontorxn:hasYield ?yield.\r\n"
- + " ?yield om:hasValue ?measure.\r\n"
- + " ?measure om:hasNumericalValue ?yield_value; om:hasUnit ?yield_unit.\r\n"
- + "%s"
- + " ontodoe:utilisesHistoricalData ?historical_data.\r\n"
- + " ?historical_data ontodoe:refersTo ?exp.\r\n"
- + "%s"
- + "}\r\n";
- //query.addEndpoints("service1", "http://localhost:8080/blazegraph/namespace/lab_1/sparql", "http://localhost:8080/blazegraph/namespace/lab_2/sparql");
- //query.addEndpoints("service2", "http://localhost:8080/blazegraph/namespace/doe_chemrxn/sparql");
- query.addEndpoints("service1", endpoint(TripleStoreProvider.NAMESPACE_LAB_1), endpoint(TripleStoreProvider.NAMESPACE_LAB_2));
- query.addEndpoints("service2", endpoint(TripleStoreProvider.NAMESPACE_DOE_CHEMRXN));
- query.result = "[{\"yield_value\":\"47.7\",\"yield_unit\":\"http://www.ontology-of-units-of-measure.org/resource/om-2/percent\",\"exp\":\"https://www.example.com/triplestore/ontorxn/ReactionExperiment_1/RxnExp_1\"},{\"yield_value\":\"40.0\",\"yield_unit\":\"http://www.ontology-of-units-of-measure.org/resource/om-2/percent\",\"exp\":\"https://www.example.com/triplestore/ontorxn/ReactionExperiment_2/RxnExp_1\"},{\"yield_value\":\"54.1\",\"yield_unit\":\"http://www.ontology-of-units-of-measure.org/resource/om-2/percent\",\"exp\":\"https://www.example.com/triplestore/ontorxn/ReactionExperiment_3/RxnExp_1\"},{\"yield_value\":\"8.7\",\"yield_unit\":\"http://www.ontology-of-units-of-measure.org/resource/om-2/percent\",\"exp\":\"https://www.example.com/triplestore/ontorxn/ReactionExperiment_4/RxnExp_1\"},{\"yield_value\":\"47.9\",\"yield_unit\":\"http://www.ontology-of-units-of-measure.org/resource/om-2/percent\",\"exp\":\"https://www.example.com/triplestore/ontorxn/ReactionExperiment_5/RxnExp_1\"}]";
- return format(query);
- }
-
- public Query getSparqlDistributedLab_2() {
- Query query = new Query();
- query.sparql = prefixes()
- + "SELECT ?rs400 ?lab\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?rs400 a ontovapourtec:VapourtecRS400.\r\n"
- + " ?rs400 saref:hasState ontovapourtec:Idle.\r\n"
- + " ?rs400 ontolab:isContainedIn ?lab.\r\n"
- + "%s"
- + "}";
- //query.addEndpoints("service", "http://localhost:8080/blazegraph/namespace/lab_1/sparql", "http://localhost:8080/blazegraph/namespace/lab_2/sparql");
- query.addEndpoints("service", endpoint(TripleStoreProvider.NAMESPACE_LAB_1), endpoint(TripleStoreProvider.NAMESPACE_LAB_2));
- query.result = "[{\"rs400\":\"http://example.com/blazegraph/namespace/testlab/dummy_lab_1/VapourtecRS400_Dummy\",\"lab\":\"http://example.com/blazegraph/namespace/testlab/dummy_lab_1/Laboratory_Dummy\"},{\"rs400\":\"http://example.com/blazegraph/namespace/testlab/dummy_lab_2/VapourtecRS400_Dummy\",\"lab\":\"http://example.com/blazegraph/namespace/testlab/dummy_lab_2/Laboratory_Dummy\"}]";
- return format(query);
- }
-
- public Query getSparqlDistributedLab_3() {
- Query query = new Query();
- query.sparql = prefixes()
- + "SELECT ?species ?molar_weight_val ?molar_weight_unit\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ontorxn:isOccurenceOf ?rxn.\r\n"
- + "%s"
- + " ?rxn ontocaperxn:hasReactant ?reactant.\r\n"
- + " ?reactant ontospecies:hasUniqueSpecies ?species.\r\n"
- + " ?species ontospecies:hasMolecularWeight ?molar_weight.\r\n"
- + " ?molar_weight ontospecies:value ?molar_weight_val.\r\n"
- + " ?molar_weight ontospecies:units ?molar_weight_unit.\r\n"
- + "%s"
- + "}";
- //query.addEndpoints("servA", "http://localhost:8080/blazegraph/namespace/lab_1/sparql", "http://localhost:8080/blazegraph/namespace/lab_2/sparql");
- //query.addEndpoints("servB", "http://localhost:8080/blazegraph/namespace/doe_chemrxn/sparql");
- query.addEndpoints("servA", endpoint(TripleStoreProvider.NAMESPACE_LAB_1), endpoint(TripleStoreProvider.NAMESPACE_LAB_2));
- query.addEndpoints("servB", endpoint(TripleStoreProvider.NAMESPACE_DOE_CHEMRXN));
- query.result = "[{\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_353d4667-e25d-476a-bd74-5c34723c8ea3\",\"molar_weight_unit\":\"g/mol\",\"molar_weight_val\":\"58.08\"},{\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_54d8b46b-17bc-4bbd-a3cc-3b3a16d6ae4b\",\"molar_weight_unit\":\"g/mol\",\"molar_weight_val\":\"106.124\"}]";
- return format(query);
- }
-
- public Query getSparqlDistributedLab_3_inverted_service_order() {
- Query query = new Query();
- query.sparql = prefixes()
- + "SELECT ?species ?molar_weight_val ?molar_weight_unit\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?rxn ontocaperxn:hasReactant ?reactant.\r\n"
- + " ?reactant ontospecies:hasUniqueSpecies ?species.\r\n"
- + " ?species ontospecies:hasMolecularWeight ?molar_weight.\r\n"
- + " ?molar_weight ontospecies:value ?molar_weight_val.\r\n"
- + " ?molar_weight ontospecies:units ?molar_weight_unit.\r\n"
- + "%s"
- + " ontorxn:isOccurenceOf ?rxn.\r\n"
- + "%s"
- + "}";
- //query.addEndpoints("servB", "http://localhost:8080/blazegraph/namespace/doe_chemrxn/sparql");
- //query.addEndpoints("servA", "http://localhost:8080/blazegraph/namespace/lab_1/sparql", "http://localhost:8080/blazegraph/namespace/lab_2/sparql");
- query.addEndpoints("servB", endpoint(TripleStoreProvider.NAMESPACE_DOE_CHEMRXN));
- query.addEndpoints("servA", endpoint(TripleStoreProvider.NAMESPACE_LAB_1), endpoint(TripleStoreProvider.NAMESPACE_LAB_2));
- query.result = "[{\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_353d4667-e25d-476a-bd74-5c34723c8ea3\",\"molar_weight_unit\":\"g/mol\",\"molar_weight_val\":\"58.08\"},{\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_54d8b46b-17bc-4bbd-a3cc-3b3a16d6ae4b\",\"molar_weight_unit\":\"g/mol\",\"molar_weight_val\":\"106.124\"}]";
- return format(query);
- }
-
- /**
- * A federated query constructed from two separate queries in
- * {@link https://github.com/cambridge-cares/TheWorldAvatar/blob/main/JPS_BIODIESELPLANT/src/uk/ac/cam/cares/jps/bio/CrossDomainQuery.java}.
- *
- * @return
- */
- public Query getSparqlBiodieselCityGML() {
- Query query = new Query();
- query.sparql = PrefixToUrlMap.getPrefixesForSPARQL(Prefixes.OCPSYST, Prefixes.OCPPERF, Prefixes.ONTOCITYGML, Prefixes.BLAZEGRAPH_GEO)
- + "SELECT ?IRIs ?Cost\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?EquipC OCPPERF:isCostOfPlantItem ?Equip .\r\n"
- + " ?EquipC OCPSYST:hasValue ?EquipCost .\r\n"
- + " ?EquipCost OCPSYST:numericalValue ?Cost.\r\n"
- + " FILTER(?Cost > 30000)\r\n"
- + " BIND( STR(?Equip) AS ?IRIs)\r\n"
- + "%s"
- + " GRAPH {\r\n"
- + " ?s OCGML:attrName 'BioDiesel_Power_Plant_IRI' ;\r\n"
- + " OCGML:uriVal ?IRIs ;\r\n"
- + " OCGML:cityObjectId ?cityObject .\r\n"
- + " }\r\n"
- + " GRAPH {\r\n"
- + " ?cityObject OCGML:EnvelopeType ?envelopes .\r\n"
- + " SERVICE BLAZEGEO:search {\r\n"
- + " ?cityObject BLAZEGEO:predicate OCGML:EnvelopeType.\r\n"
- + " ?cityObject BLAZEGEO:searchDatatype .\r\n"
- + " ?cityObject BLAZEGEO:customFields \"X0#Y0#Z0#X1#Y1#Z1#X2#Y2#Z2#X3#Y3#Z3#X4#Y4#Z4\".\r\n"
- + " ?cityObject BLAZEGEO:customFieldsLowerBounds \"10428#26648#0#10428#26648#0#10428#26648#0#10428#26648#0#10428#26648#0\".\r\n"
- + " ?cityObject BLAZEGEO:customFieldsUpperBounds \"10880#26955#10#10880#26955#10#10880#26955#10#10880#26955#10#10880#26955#10\". \r\n"
- + " }\r\n"
- + " }\r\n"
- + "%s"
- + "}";
- query.addEndpoints("service1", "http://www.theworldavatar.com/blazegraph/namespace/sgbiodieselplants/sparql");
- query.addEndpoints("service2", "http://www.theworldavatar.com:83/citieskg/namespace/singaporeEPSG24500/sparql");
- query.result = "[{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-301.owl#E-301\",\"Cost\":\"63800.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/C-301.owl#C-301\",\"Cost\":\"900900.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-302.owl#E-302\",\"Cost\":\"76900.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-303.owl#E-303\",\"Cost\":\"64000.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-304.owl#E-304\",\"Cost\":\"73900.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-306.owl#E-306\",\"Cost\":\"171400.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-305.owl#E-305\",\"Cost\":\"72900.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/P-301.owl#P-301\",\"Cost\":\"33850.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/E-307.owl#E-307\",\"Cost\":\"102700.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/T-301.owl#T-301\",\"Cost\":\"242800.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/T-302.owl#T-302\",\"Cost\":\"178100.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/T-303.owl#T-303\",\"Cost\":\"1404900.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/R-301.owl#R-301\",\"Cost\":\"149400.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/R-302.owl#R-302\",\"Cost\":\"148300.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/R-303.owl#R-303\",\"Cost\":\"371400.0\"},{\"IRIs\":\"http://www.jparksimulator.com/kb/sgp/jurongisland/biodieselplant3/P-302.owl#P-302\",\"Cost\":\"31100.0\"}]";
- return format(query);
- }
-
- public Query getSparqlLocalWikidataWithPubChemCID887() {
- Query query = new Query();
- query.sparql = PrefixToUrlMap.getPrefixesForSPARQL(Prefixes.XSD, Prefixes.WIKIDATA, Prefixes.WIKIDATAT, Prefixes.ONTOSPECIES)
- + "SELECT ?species ?pid ?wdcompound\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?species OSPECIES:pubChemCID ?pid .\r\n"
- + " FILTER ( ?pid = \"887\" )\r\n"
- + "%s"
- + " ?wdcompound wdt:P662 ?pid .\r\n"
- + "%s"
- + "}";
- //query.addEndpoints("serva", "http://www.theworldavatar.com/blazegraph/namespace/ontospecies/sparql", "http://localhost:8080/blazegraph/namespace/doe_chemrxn/sparql");
- //query.addEndpoints("servb", "http://localhost:8080/blazegraph/namespace/wikidata_small/sparql");
- query.addEndpoints("serva", "http://www.theworldavatar.com/blazegraph/namespace/ontospecies/sparql", endpoint(TripleStoreProvider.NAMESPACE_DOE_CHEMRXN));
- query.addEndpoints("servb", endpoint(TripleStoreProvider.NAMESPACE_WIKIDATA_SMALL));
-
- query.result = "[{\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bbfd8e83-6c58-4ff3-820c-2095d2ab6998\",\"pid\":\"887\",\"wdcompound\":\"http://www.wikidata.org/entity/Q14982\"},{\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f157c9d6-8656-4e1c-be52-314888caf917\",\"pid\":\"887\",\"wdcompound\":\"http://www.wikidata.org/entity/Q14982\"}]";
- return format(query);
- }
-
- /**
- * An federated query for dbpedia and wikidata used in from {@link https://rdf4j.org/documentation/programming/federation/} .
- * @return
- */
- public Query getSparqlWikidataDBpedia() {
- Query query = new Query();
- query.sparql = PrefixToUrlMap.getPrefixesForSPARQL(Prefixes.WIKIDATA, Prefixes.WIKIDATAT)
- + "SELECT ?country ?countrySameAs ?gdp\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?country a .\r\n"
- + " ?country ?countrySameAs .\r\n"
- + "%s"
- + " ?countrySameAs wdt:P2131 ?gdp .\r\n"
- + "%s"
- + "}\r\n";
- query.addEndpoints("service1", "http://dbpedia.org/sparql");
- query.addEndpoints("service2", "https://query.wikidata.org/sparql");
- query.result = "[{\"country\":\"http://dbpedia.org/resource/Netherlands\",\"gdp\":\"830572618850\",\"countrySameAs\":\"http://www.wikidata.org/entity/Q29999\"},{\"country\":\"http://dbpedia.org/resource/Czech_Republic\",\"gdp\":\"250681000000\",\"countrySameAs\":\"http://www.wikidata.org/entity/Q213\"}]\r\n";
- return format(query);
- }
-
- private void addEndpointsForSparqlOntoSpeciesOntoCompChem(Query query) {
- //query.addEndpoints("service1", "http://www.theworldavatar.com/blazegraph/namespace/ontospecies/sparql");
- //query.addEndpoints("service2", "http://www.theworldavatar.com/blazegraph/namespace/ontocompchem/sparql");
- //query.addEndpoints("service1", "http://localhost:8080/blazegraph/namespace/ontospecies/sparql");
- //query.addEndpoints("service2", "http://localhost:8080/blazegraph/namespace/ontocompchemcloned/sparql");
- //query.addEndpoints("service2", "http://localhost:8080/blazegraph/namespace/ontocompchemhasuniqespecies/sparql");
- //query.addEndpoints("service2", "http://localhost:8080/blazegraph/namespace/ontocompchem/sparql");
- query.addEndpoints("service1", endpoint(TripleStoreProvider.NAMESPACE_ONTOSPECIES));
- query.addEndpoints("service2", endpoint(TripleStoreProvider.NAMESPACE_ONTOCOMPCHEM));
- }
-
- /**
- * A federated query as in {@link RemoteStoreClientTest#performMechanismCountQueryTest()}.
- *
- * @return
- */
- public Query getSparqlOntoSpeciesOntoCompChemLarge() {
-
- //jsonObject.put("scfEnergyValue", "-464.940687165");
- Query query = new Query();
- query.sparql = "PREFIX ontospecies: \r\n"
- + "PREFIX ontocompchem: \r\n"
- + "PREFIX gc: \r\n"
- + "SELECT ?species ?compchemspecies ?crid ?atomicBond ?geometry ?enthalpyOfFormationValue ?scfEnergyValue ?zeroEnergyValue\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?species ontospecies:casRegistryID ?crid .\r\n"
- + " ?species ontospecies:hasAtomicBond ?atomicBond .\r\n"
- + " ?species ontospecies:hasGeometry ?geometry . \r\n"
- + " ?species ontospecies:hasStandardEnthalpyOfFormation ?enthalpy .\r\n"
- + " ?enthalpy ontospecies:value ?enthalpyOfFormationValue .\r\n"
- + "%s"
- + " ?compchemspecies ontocompchem:hasUniqueSpecies ?species .\r\n"
- + " ?compchemspecies gc:isCalculationOn ?scfEnergy .\r\n"
- + " ?scfEnergy a ontocompchem:ScfEnergy . \r\n"
- + " ?scfEnergy gc:hasElectronicEnergy ?scfElectronicEnergy .\r\n"
- + " ?scfElectronicEnergy gc:hasValue ?scfEnergyValue .\r\n"
- + " ?compchemspecies gc:isCalculationOn ?zeroEnergy .\r\n"
- + " ?zeroEnergy a ontocompchem:ZeroPointEnergy .\r\n"
- + " ?zeroEnergy gc:hasElectronicEnergy ?zeroElectronicEnergy .\r\n"
- + " ?zeroElectronicEnergy gc:hasValue ?zeroEnergyValue .\r\n"
- + "%s"
- + "}";
-
- addEndpointsForSparqlOntoSpeciesOntoCompChem(query);
- //query.result = "[]";
- query.result = "25";
- return format(query);
- }
-
- /**
- * A federated query adapted from {@link RemoteStoreClientTest#performMechanismCountQueryTest()}
- * with only one basic triple pattern for datasource ontospecies.
- *
- * @return
- */
- public Query getSparqlOntoSpeciesOntoCompChemMedium() {
- Query query = new Query();
- query.sparql = "PREFIX ontospecies: \r\n"
- + "PREFIX ontocompchem: \r\n"
- + "PREFIX gc: \r\n"
- + "SELECT *\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?species ontospecies:casRegistryID ?crid .\r\n"
- + "%s"
- + " ?compchemspecies ontocompchem:hasUniqueSpecies ?species .\r\n"
- + " ?compchemspecies gc:isCalculationOn ?scfEnergy .\r\n"
- + " ?scfEnergy a ontocompchem:ScfEnergy .\r\n"
- + " ?scfEnergy gc:hasElectronicEnergy ?scfElectronicEnergy .\r\n"
- + " ?scfElectronicEnergy gc:hasValue ?scfEnergyValue .\r\n"
- + " ?compchemspecies gc:isCalculationOn ?zeroEnergy .\r\n"
- + " ?zeroEnergy a ontocompchem:ZeroPointEnergy .\r\n"
- + " ?zeroEnergy gc:hasElectronicEnergy ?zeroElectronicEnergy .\r\n"
- + " ?zeroElectronicEnergy gc:hasValue ?zeroEnergyValue .\r\n"
- + "%s"
- + "}";
- addEndpointsForSparqlOntoSpeciesOntoCompChem(query);
- // result size = 157
- //query.result = "[{\"scfEnergyValue\":\"-118.508864576\",\"crid\":\"2143-61-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_48929d84-722b-4359-939d-f51d94083138\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b53c1b3c-bf4b-41c0-ba1a-c248031ec4e5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b53c1b3c-bf4b-41c0-ba1a-c248031ec4e5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b53c1b3c-bf4b-41c0-ba1a-c248031ec4e5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b53c1b3c-bf4b-41c0-ba1a-c248031ec4e5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b53c1b3c-bf4b-41c0-ba1a-c248031ec4e5_ScfEnergy\",\"zeroEnergyValue\":\"0.08785857599998792\"},{\"scfEnergyValue\":\"-119.181082492\",\"crid\":\"74-98-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3756e7eb-8648-4dfa-ac60-2242ea26a116\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_9b3682be-ba33-4889-b6fc-788f6d6349a7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_9b3682be-ba33-4889-b6fc-788f6d6349a7\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_9b3682be-ba33-4889-b6fc-788f6d6349a7\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_9b3682be-ba33-4889-b6fc-788f6d6349a7_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_9b3682be-ba33-4889-b6fc-788f6d6349a7_ScfEnergy\",\"zeroEnergyValue\":\"0.10288649199999611\"},{\"scfEnergyValue\":\"-194.424251448\",\"crid\":\"67-63-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6979a7f1-5c89-4b4b-b6d0-7d41ec56034a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_bcf2e9db-9182-4f4d-8ba2-d2e0b5205cfa\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_bcf2e9db-9182-4f4d-8ba2-d2e0b5205cfa\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_bcf2e9db-9182-4f4d-8ba2-d2e0b5205cfa\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_bcf2e9db-9182-4f4d-8ba2-d2e0b5205cfa_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_bcf2e9db-9182-4f4d-8ba2-d2e0b5205cfa_ScfEnergy\",\"zeroEnergyValue\":\"0.10747944800002074\"},{\"scfEnergyValue\":\"-118.515432413\",\"crid\":\"2025-55-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c6384a33-227d-4eb5-bee5-d314a3b229aa\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_a9eccda6-4732-4b98-ae57-9b620edd601c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a9eccda6-4732-4b98-ae57-9b620edd601c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_a9eccda6-4732-4b98-ae57-9b620edd601c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a9eccda6-4732-4b98-ae57-9b620edd601c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a9eccda6-4732-4b98-ae57-9b620edd601c_ScfEnergy\",\"zeroEnergyValue\":\"0.08743641300000604\"},{\"scfEnergyValue\":\"-194.419220498\",\"crid\":\"71-23-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2caeb3cd-cc2d-4500-be2c-5cb5008cf144\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_38d39135-7aff-4411-8596-67edb5c08c24\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_38d39135-7aff-4411-8596-67edb5c08c24\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_38d39135-7aff-4411-8596-67edb5c08c24\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_38d39135-7aff-4411-8596-67edb5c08c24_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_38d39135-7aff-4411-8596-67edb5c08c24_ScfEnergy\",\"zeroEnergyValue\":\"0.10805649799999628\"},{\"scfEnergyValue\":\"-194.404500813\",\"crid\":\"540-67-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cc6e4765-ba77-4595-bb07-995fb420f826\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_eb528e75-5ea1-48a6-913a-a0b54cbbdb55\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_eb528e75-5ea1-48a6-913a-a0b54cbbdb55\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_eb528e75-5ea1-48a6-913a-a0b54cbbdb55\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_eb528e75-5ea1-48a6-913a-a0b54cbbdb55_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_eb528e75-5ea1-48a6-913a-a0b54cbbdb55_ScfEnergy\",\"zeroEnergyValue\":\"0.10775381299998799\"},{\"scfEnergyValue\":\"-264.805276007\",\"crid\":\"504-64-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f0959f5c-85a6-4eaa-95c6-0d5fb036410f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_4e8942de-4e89-4f24-8aff-659004fc405a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_4e8942de-4e89-4f24-8aff-659004fc405a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_4e8942de-4e89-4f24-8aff-659004fc405a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_4e8942de-4e89-4f24-8aff-659004fc405a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_4e8942de-4e89-4f24-8aff-659004fc405a_ScfEnergy\",\"zeroEnergyValue\":\"0.022071006999965448\"},{\"scfEnergyValue\":\"-190.919119796\",\"crid\":\"3031-73-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bd3e0b6d-68f8-4395-bbeb-9d66b6fb090e\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_a14c59c0-f467-497f-85cd-98f3cd19620b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a14c59c0-f467-497f-85cd-98f3cd19620b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_a14c59c0-f467-497f-85cd-98f3cd19620b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a14c59c0-f467-497f-85cd-98f3cd19620b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a14c59c0-f467-497f-85cd-98f3cd19620b_ScfEnergy\",\"zeroEnergyValue\":\"0.05437979599997789\"},{\"scfEnergyValue\":\"-113.85266021\",\"crid\":\"2597-44-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6d9422b5-8d1d-414d-9b8c-0e8e3407e700\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_c8ee81aa-c601-40a4-bae4-8f2642719bd2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c8ee81aa-c601-40a4-bae4-8f2642719bd2\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_c8ee81aa-c601-40a4-bae4-8f2642719bd2\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c8ee81aa-c601-40a4-bae4-8f2642719bd2_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c8ee81aa-c601-40a4-bae4-8f2642719bd2_ScfEnergy\",\"zeroEnergyValue\":\"0.014101209999992648\"},{\"scfEnergyValue\":\"-113.349050281\",\"crid\":\"630-08-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c510ad6b-5fe7-4de3-ae7c-29c2497d70a4\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_3723f466-4dcd-4196-ae91-2efe04d14fa4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_3723f466-4dcd-4196-ae91-2efe04d14fa4\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_3723f466-4dcd-4196-ae91-2efe04d14fa4\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_3723f466-4dcd-4196-ae91-2efe04d14fa4_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_3723f466-4dcd-4196-ae91-2efe04d14fa4_ScfEnergy\",\"zeroEnergyValue\":\"0.005038280999997369\"},{\"scfEnergyValue\":\"-0.502155930031\",\"crid\":\"12385-13-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_ea684392-7ac2-4519-8a72-ecb5ab768cf9\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_1123a1e9-22de-436b-99a1-afc32aca170e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1123a1e9-22de-436b-99a1-afc32aca170e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_1123a1e9-22de-436b-99a1-afc32aca170e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1123a1e9-22de-436b-99a1-afc32aca170e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1123a1e9-22de-436b-99a1-afc32aca170e_ScfEnergy\",\"zeroEnergyValue\":\"-6.996900003830575e-08\"},{\"scfEnergyValue\":\"-0.502155930031\",\"crid\":\"1333-74-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_ea684392-7ac2-4519-8a72-ecb5ab768cf9\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_1123a1e9-22de-436b-99a1-afc32aca170e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1123a1e9-22de-436b-99a1-afc32aca170e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_1123a1e9-22de-436b-99a1-afc32aca170e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1123a1e9-22de-436b-99a1-afc32aca170e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1123a1e9-22de-436b-99a1-afc32aca170e_ScfEnergy\",\"zeroEnergyValue\":\"-6.996900003830575e-08\"},{\"scfEnergyValue\":\"-1.1795710228\",\"crid\":\"1333-74-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_70f5eb2c-e74c-4147-8bae-41dbeff35255\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_256bdc6d-375c-44b6-820b-b0d69916829e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_256bdc6d-375c-44b6-820b-b0d69916829e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_256bdc6d-375c-44b6-820b-b0d69916829e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_256bdc6d-375c-44b6-820b-b0d69916829e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_256bdc6d-375c-44b6-820b-b0d69916829e_ScfEnergy\",\"zeroEnergyValue\":\"0.010068022800000076\"},{\"scfEnergyValue\":\"-116.695349569\",\"crid\":\"463-49-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_192e43f9-6662-42a8-b174-662a33eb1334\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_c01578c8-e9fd-418a-aef2-cc1172a79f23\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c01578c8-e9fd-418a-aef2-cc1172a79f23\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_c01578c8-e9fd-418a-aef2-cc1172a79f23\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c01578c8-e9fd-418a-aef2-cc1172a79f23_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c01578c8-e9fd-418a-aef2-cc1172a79f23_ScfEnergy\",\"zeroEnergyValue\":\"0.05485956900000133\"},{\"scfEnergyValue\":\"-116.654317975\",\"crid\":\"2781-85-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6555b1a0-6e58-40f3-83e6-659589bee021\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6fe17749-550b-4eb4-aea8-07f9ddd74960\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6fe17749-550b-4eb4-aea8-07f9ddd74960\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6fe17749-550b-4eb4-aea8-07f9ddd74960\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6fe17749-550b-4eb4-aea8-07f9ddd74960_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6fe17749-550b-4eb4-aea8-07f9ddd74960_ScfEnergy\",\"zeroEnergyValue\":\"0.055710974999996665\"},{\"scfEnergyValue\":\"-191.940581519\",\"crid\":\"5009-27-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2fb70cfe-6707-4d6c-b977-bae913c4878f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_874cfeb4-6d9e-4063-84ed-7dec4aca7867\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_874cfeb4-6d9e-4063-84ed-7dec4aca7867\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_874cfeb4-6d9e-4063-84ed-7dec4aca7867\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_874cfeb4-6d9e-4063-84ed-7dec4aca7867_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_874cfeb4-6d9e-4063-84ed-7dec4aca7867_ScfEnergy\",\"zeroEnergyValue\":\"0.0605585190000113\"},{\"scfEnergyValue\":\"-117.298251088\",\"crid\":\"1981-80-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1affa5ba-c003-49ac-8f35-8c2582945f99\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_125a3c04-4606-4e3c-a866-bd04c546f469\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_125a3c04-4606-4e3c-a866-bd04c546f469\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_125a3c04-4606-4e3c-a866-bd04c546f469\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_125a3c04-4606-4e3c-a866-bd04c546f469_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_125a3c04-4606-4e3c-a866-bd04c546f469_ScfEnergy\",\"zeroEnergyValue\":\"0.06584208799999658\"},{\"scfEnergyValue\":\"-117.248576564\",\"crid\":\"2417-82-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_69f35e93-b66b-4136-8146-ebb2d03b080b\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_30dc7a5c-0ec8-4230-8c55-6214ba427d0a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_30dc7a5c-0ec8-4230-8c55-6214ba427d0a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_30dc7a5c-0ec8-4230-8c55-6214ba427d0a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_30dc7a5c-0ec8-4230-8c55-6214ba427d0a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_30dc7a5c-0ec8-4230-8c55-6214ba427d0a_ScfEnergy\",\"zeroEnergyValue\":\"0.06635056400000394\"},{\"scfEnergyValue\":\"-117.930904744\",\"crid\":\"75-19-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8b7d26b6-1f33-4ca7-8d08-e5404fee4323\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_d3478691-877a-4919-8043-948842541d49\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d3478691-877a-4919-8043-948842541d49\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_d3478691-877a-4919-8043-948842541d49\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d3478691-877a-4919-8043-948842541d49_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d3478691-877a-4919-8043-948842541d49_ScfEnergy\",\"zeroEnergyValue\":\"0.08090474400000858\"},{\"scfEnergyValue\":\"-117.945576146\",\"crid\":\"115-07-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f8650220-7b3d-4504-a2d7-b56c604b20f8\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_fdd1ce35-ff5c-40c1-9e82-e74e1bdf692c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_fdd1ce35-ff5c-40c1-9e82-e74e1bdf692c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_fdd1ce35-ff5c-40c1-9e82-e74e1bdf692c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_fdd1ce35-ff5c-40c1-9e82-e74e1bdf692c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_fdd1ce35-ff5c-40c1-9e82-e74e1bdf692c_ScfEnergy\",\"zeroEnergyValue\":\"0.0792671459999923\"},{\"scfEnergyValue\":\"-117.826312424\",\"crid\":\"6700-78-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_050d6d0a-3c3e-4bbb-8e07-b156b3738b53\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_da858b54-3c5f-42c8-93e9-7f03bbbbd115\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da858b54-3c5f-42c8-93e9-7f03bbbbd115\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_da858b54-3c5f-42c8-93e9-7f03bbbbd115\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da858b54-3c5f-42c8-93e9-7f03bbbbd115_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da858b54-3c5f-42c8-93e9-7f03bbbbd115_ScfEnergy\",\"zeroEnergyValue\":\"0.07580642399999249\"},{\"scfEnergyValue\":\"-117.826312424\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_050d6d0a-3c3e-4bbb-8e07-b156b3738b53\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_da858b54-3c5f-42c8-93e9-7f03bbbbd115\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da858b54-3c5f-42c8-93e9-7f03bbbbd115\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_da858b54-3c5f-42c8-93e9-7f03bbbbd115\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da858b54-3c5f-42c8-93e9-7f03bbbbd115_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da858b54-3c5f-42c8-93e9-7f03bbbbd115_ScfEnergy\",\"zeroEnergyValue\":\"0.07580642399999249\"},{\"scfEnergyValue\":\"-117.83432987\",\"crid\":\"32458-33-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_733eb552-79ee-43cc-afd0-3ee4324d407f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e9c02871-716d-4153-b059-4fb7e4a5d7a0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e9c02871-716d-4153-b059-4fb7e4a5d7a0\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e9c02871-716d-4153-b059-4fb7e4a5d7a0\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e9c02871-716d-4153-b059-4fb7e4a5d7a0_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e9c02871-716d-4153-b059-4fb7e4a5d7a0_ScfEnergy\",\"zeroEnergyValue\":\"0.07271887000000277\"},{\"scfEnergyValue\":\"-117.83432987\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_733eb552-79ee-43cc-afd0-3ee4324d407f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e9c02871-716d-4153-b059-4fb7e4a5d7a0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e9c02871-716d-4153-b059-4fb7e4a5d7a0\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e9c02871-716d-4153-b059-4fb7e4a5d7a0\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e9c02871-716d-4153-b059-4fb7e4a5d7a0_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e9c02871-716d-4153-b059-4fb7e4a5d7a0_ScfEnergy\",\"zeroEnergyValue\":\"0.07271887000000277\"},{\"scfEnergyValue\":\"-55.9003796478\",\"crid\":\"13770-40-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_efd401ff-51bd-4fec-afb7-3650e92910a1\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_7c240a02-d1c5-460a-a703-e16c4e0b13aa\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7c240a02-d1c5-460a-a703-e16c4e0b13aa\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_7c240a02-d1c5-460a-a703-e16c4e0b13aa\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7c240a02-d1c5-460a-a703-e16c4e0b13aa_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7c240a02-d1c5-460a-a703-e16c4e0b13aa_ScfEnergy\",\"zeroEnergyValue\":\"0.018918647799999633\"},{\"scfEnergyValue\":\"-55.9003796478\",\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_efd401ff-51bd-4fec-afb7-3650e92910a1\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_7c240a02-d1c5-460a-a703-e16c4e0b13aa\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7c240a02-d1c5-460a-a703-e16c4e0b13aa\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_7c240a02-d1c5-460a-a703-e16c4e0b13aa\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7c240a02-d1c5-460a-a703-e16c4e0b13aa_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7c240a02-d1c5-460a-a703-e16c4e0b13aa_ScfEnergy\",\"zeroEnergyValue\":\"0.018918647799999633\"},{\"scfEnergyValue\":\"-75.7623379819\",\"crid\":\"7732-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d668de75-6ebd-4db6-9540-25d4b0f1fcb0\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_75937aef-7433-4d0a-a8e4-05b763d0c4be\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_75937aef-7433-4d0a-a8e4-05b763d0c4be\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_75937aef-7433-4d0a-a8e4-05b763d0c4be\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_75937aef-7433-4d0a-a8e4-05b763d0c4be_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_75937aef-7433-4d0a-a8e4-05b763d0c4be_ScfEnergy\",\"zeroEnergyValue\":\"0.0084469819000077\"},{\"scfEnergyValue\":\"-75.7623379819\",\"crid\":\"3352-57-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d668de75-6ebd-4db6-9540-25d4b0f1fcb0\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_75937aef-7433-4d0a-a8e4-05b763d0c4be\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_75937aef-7433-4d0a-a8e4-05b763d0c4be\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_75937aef-7433-4d0a-a8e4-05b763d0c4be\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_75937aef-7433-4d0a-a8e4-05b763d0c4be_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_75937aef-7433-4d0a-a8e4-05b763d0c4be_ScfEnergy\",\"zeroEnergyValue\":\"0.0084469819000077\"},{\"scfEnergyValue\":\"-188.641138763\",\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_testID-111-111-111\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_testID-111-111-111\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_testID-111-111-111\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_testID-111-111-111_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_testID-111-111-111_ScfEnergy\",\"zeroEnergyValue\":\"0.011717762999978731\"},{\"scfEnergyValue\":\"-37.8572670751\",\"crid\":\"7440-44-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_30b7a0f3-4e6b-4a82-93ce-e13063b9235b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_30b7a0f3-4e6b-4a82-93ce-e13063b9235b_ScfEnergy\",\"zeroEnergyValue\":\"7.509999733201767e-08\"},{\"scfEnergyValue\":\"-37.8572670751\",\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_30b7a0f3-4e6b-4a82-93ce-e13063b9235b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_30b7a0f3-4e6b-4a82-93ce-e13063b9235b_ScfEnergy\",\"zeroEnergyValue\":\"7.509999733201767e-08\"},{\"scfEnergyValue\":\"-527.553884294\",\"crid\":\"7440-37-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a359ce1b-a518-409f-a1f7-0df40f322a7d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_98a3d744-8c53-4009-9e28-66e13ff502bf\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_98a3d744-8c53-4009-9e28-66e13ff502bf\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_98a3d744-8c53-4009-9e28-66e13ff502bf\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_98a3d744-8c53-4009-9e28-66e13ff502bf_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_98a3d744-8c53-4009-9e28-66e13ff502bf_ScfEnergy\",\"zeroEnergyValue\":\"2.9399996037682286e-07\"},{\"scfEnergyValue\":\"-37.8572670751\",\"crid\":\"7440-44-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f4f60a69-bb7b-4a04-a39a-f644dc7debc2_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f4f60a69-bb7b-4a04-a39a-f644dc7debc2_ScfEnergy\",\"zeroEnergyValue\":\"7.509999733201767e-08\"},{\"scfEnergyValue\":\"-37.8572670751\",\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f4f60a69-bb7b-4a04-a39a-f644dc7debc2_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f4f60a69-bb7b-4a04-a39a-f644dc7debc2_ScfEnergy\",\"zeroEnergyValue\":\"7.509999733201767e-08\"},{\"scfEnergyValue\":\"-385.988889381\",\"crid\":\"91-20-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_4fa4fdea-ed3d-4b0a-aee5-1f4e97dd2340\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_061bcb86-0a3a-4767-82dc-ac61b0429046\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_061bcb86-0a3a-4767-82dc-ac61b0429046\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_061bcb86-0a3a-4767-82dc-ac61b0429046\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_061bcb86-0a3a-4767-82dc-ac61b0429046_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_061bcb86-0a3a-4767-82dc-ac61b0429046_ScfEnergy\",\"zeroEnergyValue\":\"0.14689438099998142\"},{\"scfEnergyValue\":\"-385.935090416\",\"crid\":\"275-51-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c7a324f0-8071-42e5-80e4-576ffc3e7569\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_7b751a96-0987-476e-945a-67543df8d66a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7b751a96-0987-476e-945a-67543df8d66a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_7b751a96-0987-476e-945a-67543df8d66a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7b751a96-0987-476e-945a-67543df8d66a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7b751a96-0987-476e-945a-67543df8d66a_ScfEnergy\",\"zeroEnergyValue\":\"0.1453694159999941\"},{\"scfEnergyValue\":\"-424.004790727\",\"crid\":\"286-85-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f9c30144-ec36-41cb-b537-7ed0bbe8e75a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_223c314c-91bb-43ca-8911-235fb764eabb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_223c314c-91bb-43ca-8911-235fb764eabb\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_223c314c-91bb-43ca-8911-235fb764eabb\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_223c314c-91bb-43ca-8911-235fb764eabb_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_223c314c-91bb-43ca-8911-235fb764eabb_ScfEnergy\",\"zeroEnergyValue\":\"0.15077272700000321\"},{\"scfEnergyValue\":\"-462.198483982\",\"crid\":\"208-96-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d26eb5b7-8dbd-4a2a-9800-c0dd86363893\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_44130cfd-7c51-4f62-80a9-57d3163b5794\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_44130cfd-7c51-4f62-80a9-57d3163b5794\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_44130cfd-7c51-4f62-80a9-57d3163b5794\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_44130cfd-7c51-4f62-80a9-57d3163b5794_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_44130cfd-7c51-4f62-80a9-57d3163b5794_ScfEnergy\",\"zeroEnergyValue\":\"0.15861898200000724\"},{\"scfEnergyValue\":\"-76.6225658293\",\"crid\":\"2122-48-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5a9700cc-3c8b-4e27-a7cc-298ca12fae40\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b8114c73-a226-4f1b-a727-8c1acda6e30f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b8114c73-a226-4f1b-a727-8c1acda6e30f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b8114c73-a226-4f1b-a727-8c1acda6e30f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b8114c73-a226-4f1b-a727-8c1acda6e30f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b8114c73-a226-4f1b-a727-8c1acda6e30f_ScfEnergy\",\"zeroEnergyValue\":\"0.016042829300005224\"},{\"scfEnergyValue\":\"-158.506434481\",\"crid\":\"75-28-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c74e26f9-75b8-4180-b793-f2cf4abaeccb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_00e5b245-1333-40c0-9723-7120d58c8547\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_00e5b245-1333-40c0-9723-7120d58c8547\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_00e5b245-1333-40c0-9723-7120d58c8547\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_00e5b245-1333-40c0-9723-7120d58c8547_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_00e5b245-1333-40c0-9723-7120d58c8547_ScfEnergy\",\"zeroEnergyValue\":\"0.13082048100000065\"},{\"scfEnergyValue\":\"-232.519344406\",\"crid\":\"56640-70-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5a165fec-28f2-4b69-8bab-75919ac50307\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_2863e336-730f-441c-bfbd-c622c48532c0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2863e336-730f-441c-bfbd-c622c48532c0\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_2863e336-730f-441c-bfbd-c622c48532c0\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2863e336-730f-441c-bfbd-c622c48532c0_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2863e336-730f-441c-bfbd-c622c48532c0_ScfEnergy\",\"zeroEnergyValue\":\"0.1116464059999771\"},{\"scfEnergyValue\":\"-157.838807669\",\"crid\":\"2348-55-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d638f1e4-bcf4-4d52-b999-dc6822fb72a1\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_21990f99-8da8-4b91-8673-e3b7a9b22dd5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_21990f99-8da8-4b91-8673-e3b7a9b22dd5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_21990f99-8da8-4b91-8673-e3b7a9b22dd5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_21990f99-8da8-4b91-8673-e3b7a9b22dd5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_21990f99-8da8-4b91-8673-e3b7a9b22dd5_ScfEnergy\",\"zeroEnergyValue\":\"0.11648366900001861\"},{\"scfEnergyValue\":\"-188.646914769\",\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_85949b34-1d08-4287-b2d2-5748933797ce\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_85949b34-1d08-4287-b2d2-5748933797ce\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_85949b34-1d08-4287-b2d2-5748933797ce\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_85949b34-1d08-4287-b2d2-5748933797ce_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_85949b34-1d08-4287-b2d2-5748933797ce_ScfEnergy\",\"zeroEnergyValue\":\"0.011685768999996071\"},{\"scfEnergyValue\":\"-151.972778174\",\"crid\":\"51095-15-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_82216f39-6a17-4951-930f-8af65cdfa307\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_8bcb2fcb-9241-4ec5-b986-f6ca00a5dccd\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_8bcb2fcb-9241-4ec5-b986-f6ca00a5dccd\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_8bcb2fcb-9241-4ec5-b986-f6ca00a5dccd\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_8bcb2fcb-9241-4ec5-b986-f6ca00a5dccd_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_8bcb2fcb-9241-4ec5-b986-f6ca00a5dccd_ScfEnergy\",\"zeroEnergyValue\":\"0.019225174000013112\"},{\"scfEnergyValue\":\"-155.98921025\",\"crid\":\"3100-04-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_89a9c49b-c64c-41a5-b741-6843f3a7e910\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6c4c7272-d1db-44c4-98fd-529cb9b9ecb1\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6c4c7272-d1db-44c4-98fd-529cb9b9ecb1\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6c4c7272-d1db-44c4-98fd-529cb9b9ecb1\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6c4c7272-d1db-44c4-98fd-529cb9b9ecb1_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6c4c7272-d1db-44c4-98fd-529cb9b9ecb1_ScfEnergy\",\"zeroEnergyValue\":\"0.08393925000001445\"},{\"scfEnergyValue\":\"-156.008295141\",\"crid\":\"6142-73-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_44698b0e-35ab-4328-8a0b-fcf32b6ff8f5\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_26d66d3e-e1c9-4fab-a679-6faa394b2e37\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_26d66d3e-e1c9-4fab-a679-6faa394b2e37\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_26d66d3e-e1c9-4fab-a679-6faa394b2e37\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_26d66d3e-e1c9-4fab-a679-6faa394b2e37_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_26d66d3e-e1c9-4fab-a679-6faa394b2e37_ScfEnergy\",\"zeroEnergyValue\":\"0.08464014099999417\"},{\"scfEnergyValue\":\"-231.299912608\",\"crid\":\"78-85-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_12238c7c-98b6-49e3-8c14-31c1edc97a9c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_7db61428-1ff9-4163-a0bb-131a37f68f01\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7db61428-1ff9-4163-a0bb-131a37f68f01\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_7db61428-1ff9-4163-a0bb-131a37f68f01\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7db61428-1ff9-4163-a0bb-131a37f68f01_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7db61428-1ff9-4163-a0bb-131a37f68f01_ScfEnergy\",\"zeroEnergyValue\":\"0.08872760799999924\"},{\"scfEnergyValue\":\"-231.307121837\",\"crid\":\"78-94-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_03abefa5-5453-4e4d-b900-bbc0def43c51\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_dc901906-20a3-45f8-878f-2b5a9be9a91a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_dc901906-20a3-45f8-878f-2b5a9be9a91a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_dc901906-20a3-45f8-878f-2b5a9be9a91a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_dc901906-20a3-45f8-878f-2b5a9be9a91a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_dc901906-20a3-45f8-878f-2b5a9be9a91a_ScfEnergy\",\"zeroEnergyValue\":\"0.08886783700000933\"},{\"scfEnergyValue\":\"-231.269401529\",\"crid\":\"109-93-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_15ffd444-51f3-4e30-9960-82fe7e258475\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e94be489-3030-48d7-999b-4e72f051c07b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e94be489-3030-48d7-999b-4e72f051c07b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e94be489-3030-48d7-999b-4e72f051c07b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e94be489-3030-48d7-999b-4e72f051c07b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e94be489-3030-48d7-999b-4e72f051c07b_ScfEnergy\",\"zeroEnergyValue\":\"0.08921552900000052\"},{\"scfEnergyValue\":\"-75.0898794536\",\"crid\":\"7732-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a8173444-de42-4489-a366-8292dd86e8fb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_ffe3d10d-cc83-48e4-b1a7-b016384ca3ec\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ffe3d10d-cc83-48e4-b1a7-b016384ca3ec\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_ffe3d10d-cc83-48e4-b1a7-b016384ca3ec\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ffe3d10d-cc83-48e4-b1a7-b016384ca3ec_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ffe3d10d-cc83-48e4-b1a7-b016384ca3ec_ScfEnergy\",\"zeroEnergyValue\":\"4.5360000910932285e-07\"},{\"scfEnergyValue\":\"-150.308955847\",\"crid\":\"7782-44-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_dc415280-b8f4-478f-8929-935ef6c1337b\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_65f52d70-f8be-4549-9555-6d9815b09e1b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_65f52d70-f8be-4549-9555-6d9815b09e1b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_65f52d70-f8be-4549-9555-6d9815b09e1b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_65f52d70-f8be-4549-9555-6d9815b09e1b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_65f52d70-f8be-4549-9555-6d9815b09e1b_ScfEnergy\",\"zeroEnergyValue\":\"0.003693846999993866\"},{\"scfEnergyValue\":\"-225.480560006\",\"crid\":\"10028-15-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_355109b1-2989-4a06-9547-21271b40e19b\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_88aa7bfb-a0e6-47f0-953c-36519b45354b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_88aa7bfb-a0e6-47f0-953c-36519b45354b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_88aa7bfb-a0e6-47f0-953c-36519b45354b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_88aa7bfb-a0e6-47f0-953c-36519b45354b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_88aa7bfb-a0e6-47f0-953c-36519b45354b_ScfEnergy\",\"zeroEnergyValue\":\"0.007233005999978559\"},{\"scfEnergyValue\":\"-92.7055207684\",\"crid\":\"2074-87-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1eceb125-0f98-4c5a-826d-70809e560035\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_58fa4851-60fe-4c02-ab66-4509811a00e5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_58fa4851-60fe-4c02-ab66-4509811a00e5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_58fa4851-60fe-4c02-ab66-4509811a00e5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_58fa4851-60fe-4c02-ab66-4509811a00e5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_58fa4851-60fe-4c02-ab66-4509811a00e5_ScfEnergy\",\"zeroEnergyValue\":\"0.004241768400007118\"},{\"scfEnergyValue\":\"-92.7055207684\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1eceb125-0f98-4c5a-826d-70809e560035\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_58fa4851-60fe-4c02-ab66-4509811a00e5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_58fa4851-60fe-4c02-ab66-4509811a00e5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_58fa4851-60fe-4c02-ab66-4509811a00e5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_58fa4851-60fe-4c02-ab66-4509811a00e5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_58fa4851-60fe-4c02-ab66-4509811a00e5_ScfEnergy\",\"zeroEnergyValue\":\"0.004241768400007118\"},{\"scfEnergyValue\":\"-113.824232741\",\"crid\":\"67-56-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f157c9d6-8656-4e1c-be52-314888caf917\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b211adff-54b4-4ac6-9c12-359ef7e8897a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b211adff-54b4-4ac6-9c12-359ef7e8897a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b211adff-54b4-4ac6-9c12-359ef7e8897a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b211adff-54b4-4ac6-9c12-359ef7e8897a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b211adff-54b4-4ac6-9c12-359ef7e8897a_ScfEnergy\",\"zeroEnergyValue\":\"0.01318074099999933\"},{\"scfEnergyValue\":\"-113.824232741\",\"crid\":\"71080-92-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f157c9d6-8656-4e1c-be52-314888caf917\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b211adff-54b4-4ac6-9c12-359ef7e8897a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b211adff-54b4-4ac6-9c12-359ef7e8897a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b211adff-54b4-4ac6-9c12-359ef7e8897a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b211adff-54b4-4ac6-9c12-359ef7e8897a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b211adff-54b4-4ac6-9c12-359ef7e8897a_ScfEnergy\",\"zeroEnergyValue\":\"0.01318074099999933\"},{\"scfEnergyValue\":\"-39.1588466725\",\"crid\":\"2465-56-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a3755d47-cd9a-4d9d-b50f-b3efd8bc70f7\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f5723bca-a907-4126-8be9-d3b0b94257a5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f5723bca-a907-4126-8be9-d3b0b94257a5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f5723bca-a907-4126-8be9-d3b0b94257a5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f5723bca-a907-4126-8be9-d3b0b94257a5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f5723bca-a907-4126-8be9-d3b0b94257a5_ScfEnergy\",\"zeroEnergyValue\":\"0.01536867249999574\"},{\"scfEnergyValue\":\"-39.1588466725\",\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a3755d47-cd9a-4d9d-b50f-b3efd8bc70f7\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f5723bca-a907-4126-8be9-d3b0b94257a5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f5723bca-a907-4126-8be9-d3b0b94257a5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f5723bca-a907-4126-8be9-d3b0b94257a5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f5723bca-a907-4126-8be9-d3b0b94257a5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f5723bca-a907-4126-8be9-d3b0b94257a5_ScfEnergy\",\"zeroEnergyValue\":\"0.01536867249999574\"},{\"scfEnergyValue\":\"-152.592559272\",\"crid\":\"32038-79-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8f579fe4-1a03-4f11-8811-d708db9638ea\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_1e88ddf9-767e-484b-a2f9-08f66d3bc409\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1e88ddf9-767e-484b-a2f9-08f66d3bc409\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_1e88ddf9-767e-484b-a2f9-08f66d3bc409\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1e88ddf9-767e-484b-a2f9-08f66d3bc409_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1e88ddf9-767e-484b-a2f9-08f66d3bc409_ScfEnergy\",\"zeroEnergyValue\":\"0.031760271999985434\"},{\"scfEnergyValue\":\"-77.9289628342\",\"crid\":\"2669-89-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8e1ad157-2911-4740-a851-cd1b4735704c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_39adf818-502a-42fd-b7d6-45b6bde44df0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_39adf818-502a-42fd-b7d6-45b6bde44df0\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_39adf818-502a-42fd-b7d6-45b6bde44df0\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_39adf818-502a-42fd-b7d6-45b6bde44df0_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_39adf818-502a-42fd-b7d6-45b6bde44df0_ScfEnergy\",\"zeroEnergyValue\":\"0.03630083419999153\"},{\"scfEnergyValue\":\"-78.6155123107\",\"crid\":\"74-85-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0021961d-cdf8-470a-b2d3-4c6faff43948\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_fc2d91db-ab3c-49e0-a43b-d49051f501b1\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_fc2d91db-ab3c-49e0-a43b-d49051f501b1\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_fc2d91db-ab3c-49e0-a43b-d49051f501b1\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_fc2d91db-ab3c-49e0-a43b-d49051f501b1_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_fc2d91db-ab3c-49e0-a43b-d49051f501b1_ScfEnergy\",\"zeroEnergyValue\":\"0.050790310699994734\"},{\"scfEnergyValue\":\"-78.4944265526\",\"crid\":\"4218-50-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f2ee9b6e-13f3-46c3-bdce-379ec972f8b7\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_cdd30304-b183-4b45-b6f5-4579246c3cae\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cdd30304-b183-4b45-b6f5-4579246c3cae\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_cdd30304-b183-4b45-b6f5-4579246c3cae\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cdd30304-b183-4b45-b6f5-4579246c3cae_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cdd30304-b183-4b45-b6f5-4579246c3cae_ScfEnergy\",\"zeroEnergyValue\":\"0.04650555260000999\"},{\"scfEnergyValue\":\"-78.4944265526\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f2ee9b6e-13f3-46c3-bdce-379ec972f8b7\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_cdd30304-b183-4b45-b6f5-4579246c3cae\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cdd30304-b183-4b45-b6f5-4579246c3cae\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_cdd30304-b183-4b45-b6f5-4579246c3cae\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cdd30304-b183-4b45-b6f5-4579246c3cae_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cdd30304-b183-4b45-b6f5-4579246c3cae_ScfEnergy\",\"zeroEnergyValue\":\"0.04650555260000999\"},{\"scfEnergyValue\":\"-153.88214794\",\"crid\":\"75-07-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7bd49e3d-fb8b-4089-a8c7-2b13178773f9\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_d02e63c8-f83c-4a74-abd4-4b414a8925db\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d02e63c8-f83c-4a74-abd4-4b414a8925db\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_d02e63c8-f83c-4a74-abd4-4b414a8925db\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d02e63c8-f83c-4a74-abd4-4b414a8925db_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d02e63c8-f83c-4a74-abd4-4b414a8925db_ScfEnergy\",\"zeroEnergyValue\":\"0.05518194000001131\"},{\"scfEnergyValue\":\"-153.836040676\",\"crid\":\"75-21-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_ac81baa1-aafd-4124-88d0-92a4df71d4b9\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_658b5cee-c4fe-476b-9a48-3abbaeee115c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_658b5cee-c4fe-476b-9a48-3abbaeee115c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_658b5cee-c4fe-476b-9a48-3abbaeee115c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_658b5cee-c4fe-476b-9a48-3abbaeee115c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_658b5cee-c4fe-476b-9a48-3abbaeee115c_ScfEnergy\",\"zeroEnergyValue\":\"0.057129676000016616\"},{\"scfEnergyValue\":\"-153.865597472\",\"crid\":\"557-75-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5b5ac265-1a38-4dbf-9207-eb6b6739dd60\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c2c4a2e9-8cb3-49f6-aa54-207501a641f9_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c2c4a2e9-8cb3-49f6-aa54-207501a641f9_ScfEnergy\",\"zeroEnergyValue\":\"0.05637147199999504\"},{\"scfEnergyValue\":\"-153.865597472\",\"crid\":\"9002-89-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5b5ac265-1a38-4dbf-9207-eb6b6739dd60\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c2c4a2e9-8cb3-49f6-aa54-207501a641f9_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_c2c4a2e9-8cb3-49f6-aa54-207501a641f9_ScfEnergy\",\"zeroEnergyValue\":\"0.05637147199999504\"},{\"scfEnergyValue\":\"-79.1850181825\",\"crid\":\"2025-56-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5c91f127-7fc7-4a32-b4bf-b34476b379de\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_af9c0fc5-b708-4989-9b89-ba4fb8618d53\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_af9c0fc5-b708-4989-9b89-ba4fb8618d53\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_af9c0fc5-b708-4989-9b89-ba4fb8618d53\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_af9c0fc5-b708-4989-9b89-ba4fb8618d53_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_af9c0fc5-b708-4989-9b89-ba4fb8618d53_ScfEnergy\",\"zeroEnergyValue\":\"0.05899518249999858\"},{\"scfEnergyValue\":\"-79.8565463069\",\"crid\":\"74-84-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b026cc7a-f7c6-4a16-97a1-a13f930d5e52\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_d8728c67-ea17-4f1d-b92d-86ac6d32acfa\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d8728c67-ea17-4f1d-b92d-86ac6d32acfa\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_d8728c67-ea17-4f1d-b92d-86ac6d32acfa\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d8728c67-ea17-4f1d-b92d-86ac6d32acfa_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d8728c67-ea17-4f1d-b92d-86ac6d32acfa_ScfEnergy\",\"zeroEnergyValue\":\"0.07432430689999592\"},{\"scfEnergyValue\":\"-231.297903717\",\"crid\":\"1191-95-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6eeda496-71c9-406d-985f-923c4c029862\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e93f7ba1-b372-48f1-b437-1bdc2f1f2362\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e93f7ba1-b372-48f1-b437-1bdc2f1f2362\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e93f7ba1-b372-48f1-b437-1bdc2f1f2362\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e93f7ba1-b372-48f1-b437-1bdc2f1f2362_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e93f7ba1-b372-48f1-b437-1bdc2f1f2362_ScfEnergy\",\"zeroEnergyValue\":\"0.09027871699998968\"},{\"scfEnergyValue\":\"-231.290766656\",\"crid\":\"1191-99-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d444b030-3656-4410-8c7b-9312dc9961cb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b27993b7-4a11-4831-99d3-67289baf2dff\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b27993b7-4a11-4831-99d3-67289baf2dff\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b27993b7-4a11-4831-99d3-67289baf2dff\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b27993b7-4a11-4831-99d3-67289baf2dff_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b27993b7-4a11-4831-99d3-67289baf2dff_ScfEnergy\",\"zeroEnergyValue\":\"0.09246265599998083\"},{\"scfEnergyValue\":\"-231.306640851\",\"crid\":\"4170-30-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b5642744-e411-4e74-8d70-08dbe1e39797\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_477567ee-57ea-48c6-9d56-4fbdbbdad0dd_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_477567ee-57ea-48c6-9d56-4fbdbbdad0dd_ScfEnergy\",\"zeroEnergyValue\":\"0.08914585099998362\"},{\"scfEnergyValue\":\"-231.306640851\",\"crid\":\"123-73-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b5642744-e411-4e74-8d70-08dbe1e39797\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_477567ee-57ea-48c6-9d56-4fbdbbdad0dd_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_477567ee-57ea-48c6-9d56-4fbdbbdad0dd_ScfEnergy\",\"zeroEnergyValue\":\"0.08914585099998362\"},{\"scfEnergyValue\":\"-462.142414214\",\"crid\":\"259-79-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b7b97c21-4214-4a9e-9c24-5a7a9d4fca32\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_724af967-8938-44e6-aee8-74ad38941514\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_724af967-8938-44e6-aee8-74ad38941514\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_724af967-8938-44e6-aee8-74ad38941514\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_724af967-8938-44e6-aee8-74ad38941514_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_724af967-8938-44e6-aee8-74ad38941514_ScfEnergy\",\"zeroEnergyValue\":\"0.15763921399997116\"},{\"scfEnergyValue\":\"-155.077036183\",\"crid\":\"115-10-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f046412c-1c10-40f4-943c-d53b24c7f318\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_cc0e30d8-ecd6-4a21-8dc6-229b99f112e8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cc0e30d8-ecd6-4a21-8dc6-229b99f112e8\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_cc0e30d8-ecd6-4a21-8dc6-229b99f112e8\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cc0e30d8-ecd6-4a21-8dc6-229b99f112e8_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cc0e30d8-ecd6-4a21-8dc6-229b99f112e8_ScfEnergy\",\"zeroEnergyValue\":\"0.079258182999979\"},{\"scfEnergyValue\":\"-157.833756685\",\"crid\":\"2492-36-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7e8d571f-1a2e-4130-a27d-7f03fe9cafba\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_095033b8-97d7-4161-b56d-f86d9bc30cee\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_095033b8-97d7-4161-b56d-f86d9bc30cee\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_095033b8-97d7-4161-b56d-f86d9bc30cee\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_095033b8-97d7-4161-b56d-f86d9bc30cee_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_095033b8-97d7-4161-b56d-f86d9bc30cee_ScfEnergy\",\"zeroEnergyValue\":\"0.11619868500000052\"},{\"scfEnergyValue\":\"-157.83432433\",\"crid\":\"4630-45-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6ff0d6ca-b9a3-4c9a-89a8-26475f8e638e\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_77314bcb-19c9-4132-af20-65f9b985de81\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_77314bcb-19c9-4132-af20-65f9b985de81\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_77314bcb-19c9-4132-af20-65f9b985de81\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_77314bcb-19c9-4132-af20-65f9b985de81_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_77314bcb-19c9-4132-af20-65f9b985de81_ScfEnergy\",\"zeroEnergyValue\":\"0.11593132999999511\"},{\"scfEnergyValue\":\"-352.66296041\",\"crid\":\"39124-79-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e179b9f4-ab21-4f46-b83a-0065ce2553b2\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_ea4fcb53-36e5-44a6-a648-14a9763c199e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ea4fcb53-36e5-44a6-a648-14a9763c199e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_ea4fcb53-36e5-44a6-a648-14a9763c199e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ea4fcb53-36e5-44a6-a648-14a9763c199e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ea4fcb53-36e5-44a6-a648-14a9763c199e_ScfEnergy\",\"zeroEnergyValue\":\"0.23236341000000493\"},{\"scfEnergyValue\":\"-352.66296041\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e179b9f4-ab21-4f46-b83a-0065ce2553b2\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_ea4fcb53-36e5-44a6-a648-14a9763c199e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ea4fcb53-36e5-44a6-a648-14a9763c199e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_ea4fcb53-36e5-44a6-a648-14a9763c199e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ea4fcb53-36e5-44a6-a648-14a9763c199e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ea4fcb53-36e5-44a6-a648-14a9763c199e_ScfEnergy\",\"zeroEnergyValue\":\"0.23236341000000493\"},{\"scfEnergyValue\":\"-353.907880732\",\"crid\":\"1678-92-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_48076567-dfe1-4d4a-93c1-20946ba68bf6\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b556764c-d007-4c7f-b485-d5a8b5bc26f8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b556764c-d007-4c7f-b485-d5a8b5bc26f8\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b556764c-d007-4c7f-b485-d5a8b5bc26f8\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b556764c-d007-4c7f-b485-d5a8b5bc26f8_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b556764c-d007-4c7f-b485-d5a8b5bc26f8_ScfEnergy\",\"zeroEnergyValue\":\"0.2538977320000413\"},{\"scfEnergyValue\":\"-353.906175867\",\"crid\":\"2040-95-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0092c497-ad02-458d-a1cb-7be57784a159\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_5c4a8f8c-6c1e-4053-a218-3434ffec625a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5c4a8f8c-6c1e-4053-a218-3434ffec625a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_5c4a8f8c-6c1e-4053-a218-3434ffec625a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5c4a8f8c-6c1e-4053-a218-3434ffec625a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5c4a8f8c-6c1e-4053-a218-3434ffec625a_ScfEnergy\",\"zeroEnergyValue\":\"0.25318486700001586\"},{\"scfEnergyValue\":\"-355.122964829\",\"crid\":\"111-84-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7cba9b1d-79c6-4df4-ae92-eaedb7476f20\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_34486bee-f786-4bd2-ba1b-f7d82cadb88a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_34486bee-f786-4bd2-ba1b-f7d82cadb88a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_34486bee-f786-4bd2-ba1b-f7d82cadb88a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_34486bee-f786-4bd2-ba1b-f7d82cadb88a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_34486bee-f786-4bd2-ba1b-f7d82cadb88a_ScfEnergy\",\"zeroEnergyValue\":\"0.2735638290000111\"},{\"scfEnergyValue\":\"-150.957985003\",\"crid\":\"3170-83-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_92e851ca-20f7-410d-b33a-82db8c36bb42\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_fffc684c-f1bc-4bd9-9958-dfd2be10e008\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_fffc684c-f1bc-4bd9-9958-dfd2be10e008\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_fffc684c-f1bc-4bd9-9958-dfd2be10e008\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_fffc684c-f1bc-4bd9-9958-dfd2be10e008_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_fffc684c-f1bc-4bd9-9958-dfd2be10e008_ScfEnergy\",\"zeroEnergyValue\":\"0.014081003000001147\"},{\"scfEnergyValue\":\"-226.133120716\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_453fe568-f93c-4229-b08b-8c05b937faa4\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_94c3a415-477e-4c43-b474-d3e6f6f9ef33\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_94c3a415-477e-4c43-b474-d3e6f6f9ef33\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_94c3a415-477e-4c43-b474-d3e6f6f9ef33\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_94c3a415-477e-4c43-b474-d3e6f6f9ef33_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_94c3a415-477e-4c43-b474-d3e6f6f9ef33_ScfEnergy\",\"zeroEnergyValue\":\"0.017307716000004802\"},{\"scfEnergyValue\":\"-54.6007233624\",\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_fbf65357-0142-4a9e-9e38-98b6f076b6fb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b2457b8e-964f-4722-9a6e-9e03eca41980\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b2457b8e-964f-4722-9a6e-9e03eca41980\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b2457b8e-964f-4722-9a6e-9e03eca41980\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b2457b8e-964f-4722-9a6e-9e03eca41980_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b2457b8e-964f-4722-9a6e-9e03eca41980_ScfEnergy\",\"zeroEnergyValue\":\"3.6239999445797366e-07\"},{\"scfEnergyValue\":\"-109.559693682\",\"crid\":\"7727-37-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_798ae810-0c06-40e2-acae-e9e227aeca43\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_555e9d05-3009-478f-905f-45bddb44d88f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_555e9d05-3009-478f-905f-45bddb44d88f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_555e9d05-3009-478f-905f-45bddb44d88f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_555e9d05-3009-478f-905f-45bddb44d88f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_555e9d05-3009-478f-905f-45bddb44d88f_ScfEnergy\",\"zeroEnergyValue\":\"0.005569682000000853\"},{\"scfEnergyValue\":\"-184.718226101\",\"crid\":\"10024-97-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_fd7a83cf-dc61-4bec-ab69-b5855f472e2f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_ed568dd0-831e-4294-88fc-519e69d757df\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ed568dd0-831e-4294-88fc-519e69d757df\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_ed568dd0-831e-4294-88fc-519e69d757df\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ed568dd0-831e-4294-88fc-519e69d757df_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_ed568dd0-831e-4294-88fc-519e69d757df_ScfEnergy\",\"zeroEnergyValue\":\"0.011007100999989916\"},{\"scfEnergyValue\":\"-129.931656575\",\"crid\":\"10102-43-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e5a47ea5-910a-4292-abd7-773793a66ca0\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b5c73ced-2117-4905-a6b2-977c9926ea8c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b5c73ced-2117-4905-a6b2-977c9926ea8c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b5c73ced-2117-4905-a6b2-977c9926ea8c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b5c73ced-2117-4905-a6b2-977c9926ea8c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b5c73ced-2117-4905-a6b2-977c9926ea8c_ScfEnergy\",\"zeroEnergyValue\":\"0.004509575000014365\"},{\"scfEnergyValue\":\"-115.374198839\",\"crid\":\"2008-19-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7ea6030-fdc6-4013-927a-5b3dcff4b85a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f001f496-1cb5-41b5-89cb-f29dfe09a4b6_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f001f496-1cb5-41b5-89cb-f29dfe09a4b6_ScfEnergy\",\"zeroEnergyValue\":\"0.024992839000006484\"},{\"scfEnergyValue\":\"-115.374198839\",\"crid\":\"67152-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7ea6030-fdc6-4013-927a-5b3dcff4b85a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f001f496-1cb5-41b5-89cb-f29dfe09a4b6_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f001f496-1cb5-41b5-89cb-f29dfe09a4b6_ScfEnergy\",\"zeroEnergyValue\":\"0.024992839000006484\"},{\"scfEnergyValue\":\"-115.374198839\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7ea6030-fdc6-4013-927a-5b3dcff4b85a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f001f496-1cb5-41b5-89cb-f29dfe09a4b6_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_f001f496-1cb5-41b5-89cb-f29dfe09a4b6_ScfEnergy\",\"zeroEnergyValue\":\"0.024992839000006484\"},{\"scfEnergyValue\":\"-115.301673852\",\"crid\":\"16165-40-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b915a6d9-6013-4cab-80a4-56f1504e98fe\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e55c113f-dec6-4da7-8020-e71df374ea67\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e55c113f-dec6-4da7-8020-e71df374ea67\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e55c113f-dec6-4da7-8020-e71df374ea67\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e55c113f-dec6-4da7-8020-e71df374ea67_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e55c113f-dec6-4da7-8020-e71df374ea67_ScfEnergy\",\"zeroEnergyValue\":\"0.02765985199999932\"},{\"scfEnergyValue\":\"-115.301673852\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b915a6d9-6013-4cab-80a4-56f1504e98fe\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e55c113f-dec6-4da7-8020-e71df374ea67\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e55c113f-dec6-4da7-8020-e71df374ea67\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e55c113f-dec6-4da7-8020-e71df374ea67\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e55c113f-dec6-4da7-8020-e71df374ea67_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e55c113f-dec6-4da7-8020-e71df374ea67_ScfEnergy\",\"zeroEnergyValue\":\"0.02765985199999932\"},{\"scfEnergyValue\":\"-115.277427774\",\"crid\":\"60731-11-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2c0cd6f1-ecaa-4c70-801d-7f43d3be89bb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_0895c702-0f6a-4b85-b384-cfbfde72fce4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_0895c702-0f6a-4b85-b384-cfbfde72fce4\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_0895c702-0f6a-4b85-b384-cfbfde72fce4\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_0895c702-0f6a-4b85-b384-cfbfde72fce4_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_0895c702-0f6a-4b85-b384-cfbfde72fce4_ScfEnergy\",\"zeroEnergyValue\":\"0.027219774000002417\"},{\"scfEnergyValue\":\"-230.028126683\",\"crid\":\"103905-52-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_772804ac-e72d-44af-b414-5c237af61445\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_1b5cb9c5-94ad-449a-972e-4074bb6a1bae\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1b5cb9c5-94ad-449a-972e-4074bb6a1bae\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_1b5cb9c5-94ad-449a-972e-4074bb6a1bae\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1b5cb9c5-94ad-449a-972e-4074bb6a1bae_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1b5cb9c5-94ad-449a-972e-4074bb6a1bae_ScfEnergy\",\"zeroEnergyValue\":\"0.06553968299999724\"},{\"scfEnergyValue\":\"-156.040812905\",\"crid\":\"106-99-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c2ebdaaf-1cd5-46ae-a2fe-f2e33cffc455\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_2b2739bc-d19d-459e-80e8-1972d6dba575\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2b2739bc-d19d-459e-80e8-1972d6dba575\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_2b2739bc-d19d-459e-80e8-1972d6dba575\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2b2739bc-d19d-459e-80e8-1972d6dba575_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2b2739bc-d19d-459e-80e8-1972d6dba575_ScfEnergy\",\"zeroEnergyValue\":\"0.0847479050000004\"},{\"scfEnergyValue\":\"-156.016893039\",\"crid\":\"107-00-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_78b569d8-2592-4ff3-a479-565d29c7536d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_d41353e1-1a7e-4bbe-a17c-b13a90df2b90\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d41353e1-1a7e-4bbe-a17c-b13a90df2b90\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_d41353e1-1a7e-4bbe-a17c-b13a90df2b90\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d41353e1-1a7e-4bbe-a17c-b13a90df2b90_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d41353e1-1a7e-4bbe-a17c-b13a90df2b90_ScfEnergy\",\"zeroEnergyValue\":\"0.0843660390000025\"},{\"scfEnergyValue\":\"-155.991132629\",\"crid\":\"157-33-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b34c3f37-ce40-421d-bc8e-d64d614e1e37\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_0c5814de-c030-4771-b7bd-8da8ba9fe9f7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_0c5814de-c030-4771-b7bd-8da8ba9fe9f7\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_0c5814de-c030-4771-b7bd-8da8ba9fe9f7\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_0c5814de-c030-4771-b7bd-8da8ba9fe9f7_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_0c5814de-c030-4771-b7bd-8da8ba9fe9f7_ScfEnergy\",\"zeroEnergyValue\":\"0.08584262899998407\"},{\"scfEnergyValue\":\"-156.026788629\",\"crid\":\"503-17-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9826b2e4-4e2f-49ae-861d-4a549316c748\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_35e6af0b-75ad-4f69-a361-9e7e1668035f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_35e6af0b-75ad-4f69-a361-9e7e1668035f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_35e6af0b-75ad-4f69-a361-9e7e1668035f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_35e6af0b-75ad-4f69-a361-9e7e1668035f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_35e6af0b-75ad-4f69-a361-9e7e1668035f_ScfEnergy\",\"zeroEnergyValue\":\"0.08379162900001802\"},{\"scfEnergyValue\":\"-156.023430037\",\"crid\":\"590-19-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e7976e7f-0170-4266-8120-fee624d1e4b3\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_76fc3d1d-5998-4611-a0d8-d645d0392400\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_76fc3d1d-5998-4611-a0d8-d645d0392400\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_76fc3d1d-5998-4611-a0d8-d645d0392400\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_76fc3d1d-5998-4611-a0d8-d645d0392400_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_76fc3d1d-5998-4611-a0d8-d645d0392400_ScfEnergy\",\"zeroEnergyValue\":\"0.08355803699998887\"},{\"scfEnergyValue\":\"-156.017231522\",\"crid\":\"822-35-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_404f4b0a-1b43-4867-b0f8-1f9f62517eba\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_9baaa72d-13e0-4f01-b200-7f734530db7f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_9baaa72d-13e0-4f01-b200-7f734530db7f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_9baaa72d-13e0-4f01-b200-7f734530db7f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_9baaa72d-13e0-4f01-b200-7f734530db7f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_9baaa72d-13e0-4f01-b200-7f734530db7f_ScfEnergy\",\"zeroEnergyValue\":\"0.08601952200001506\"},{\"scfEnergyValue\":\"-76.4584627435\",\"crid\":\"7732-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9a49de29-8090-482e-b802-edda16dc68bf\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_8102986a-3c9d-4592-90ef-bc3b80005cb9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_8102986a-3c9d-4592-90ef-bc3b80005cb9\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_8102986a-3c9d-4592-90ef-bc3b80005cb9\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_8102986a-3c9d-4592-90ef-bc3b80005cb9_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_8102986a-3c9d-4592-90ef-bc3b80005cb9_ScfEnergy\",\"zeroEnergyValue\":\"0.021281743499997674\"},{\"scfEnergyValue\":\"-151.602068646\",\"crid\":\"7722-84-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_663e4fd4-1fcd-4b07-9521-19eedf78c55d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_99765f25-77cf-4734-8a83-cc8da748fdff\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_99765f25-77cf-4734-8a83-cc8da748fdff\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_99765f25-77cf-4734-8a83-cc8da748fdff\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_99765f25-77cf-4734-8a83-cc8da748fdff_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_99765f25-77cf-4734-8a83-cc8da748fdff_ScfEnergy\",\"zeroEnergyValue\":\"0.026444645999987415\"},{\"scfEnergyValue\":\"-115.277427774\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2c0cd6f1-ecaa-4c70-801d-7f43d3be89bb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_0895c702-0f6a-4b85-b384-cfbfde72fce4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_0895c702-0f6a-4b85-b384-cfbfde72fce4\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_0895c702-0f6a-4b85-b384-cfbfde72fce4\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_0895c702-0f6a-4b85-b384-cfbfde72fce4_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_0895c702-0f6a-4b85-b384-cfbfde72fce4_ScfEnergy\",\"zeroEnergyValue\":\"0.027219774000002417\"},{\"scfEnergyValue\":\"-116.039698027\",\"crid\":\"2932-78-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_268196b3-6d26-48ed-af35-53d744e2d24e\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_2f11d04c-d26a-4076-804e-7a30b979a19b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2f11d04c-d26a-4076-804e-7a30b979a19b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_2f11d04c-d26a-4076-804e-7a30b979a19b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2f11d04c-d26a-4076-804e-7a30b979a19b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2f11d04c-d26a-4076-804e-7a30b979a19b_ScfEnergy\",\"zeroEnergyValue\":\"0.041020027000001846\"},{\"scfEnergyValue\":\"-116.039698027\",\"crid\":\"6401-87-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_268196b3-6d26-48ed-af35-53d744e2d24e\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_2f11d04c-d26a-4076-804e-7a30b979a19b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2f11d04c-d26a-4076-804e-7a30b979a19b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_2f11d04c-d26a-4076-804e-7a30b979a19b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2f11d04c-d26a-4076-804e-7a30b979a19b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_2f11d04c-d26a-4076-804e-7a30b979a19b_ScfEnergy\",\"zeroEnergyValue\":\"0.041020027000001846\"},{\"scfEnergyValue\":\"-115.986159718\",\"crid\":\"28933-84-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7a754131-2633-4c95-bc64-2cba4db37d29\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_8036c915-4fb3-42e7-a7fa-13b39514cae9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_8036c915-4fb3-42e7-a7fa-13b39514cae9\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_8036c915-4fb3-42e7-a7fa-13b39514cae9\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_8036c915-4fb3-42e7-a7fa-13b39514cae9_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_8036c915-4fb3-42e7-a7fa-13b39514cae9_ScfEnergy\",\"zeroEnergyValue\":\"0.04224171799999965\"},{\"scfEnergyValue\":\"-116.692792803\",\"crid\":\"74-99-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d5024c74-8791-485a-a907-981390ae1bc6\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_00a4f486-881b-449c-8a69-aa3f51b55814\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_00a4f486-881b-449c-8a69-aa3f51b55814\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_00a4f486-881b-449c-8a69-aa3f51b55814\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_00a4f486-881b-449c-8a69-aa3f51b55814_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_00a4f486-881b-449c-8a69-aa3f51b55814_ScfEnergy\",\"zeroEnergyValue\":\"0.05549480300000198\"},{\"scfEnergyValue\":\"-230.087850977\",\"crid\":\"110-00-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9c6589a5-bc50-4d01-80f1-80d2635f879b\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_5887435c-680d-403b-96a1-603330055273\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5887435c-680d-403b-96a1-603330055273\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_5887435c-680d-403b-96a1-603330055273\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5887435c-680d-403b-96a1-603330055273_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5887435c-680d-403b-96a1-603330055273_ScfEnergy\",\"zeroEnergyValue\":\"0.06969197699999086\"},{\"scfEnergyValue\":\"-231.287841033\",\"crid\":\"59120-04-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9f218b08-05c6-488f-ae8c-0aad7da57508\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_1c525427-9383-4ece-9931-91a8876c1878\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1c525427-9383-4ece-9931-91a8876c1878\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_1c525427-9383-4ece-9931-91a8876c1878\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1c525427-9383-4ece-9931-91a8876c1878_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1c525427-9383-4ece-9931-91a8876c1878_ScfEnergy\",\"zeroEnergyValue\":\"0.08937803300000269\"},{\"scfEnergyValue\":\"-231.287764841\",\"crid\":\"70411-98-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e10df2bb-9798-4c72-828b-1cfd6b967a0a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6197ae41-ba7b-4b7b-a3d9-0a04feb3f8ee\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6197ae41-ba7b-4b7b-a3d9-0a04feb3f8ee\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6197ae41-ba7b-4b7b-a3d9-0a04feb3f8ee\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6197ae41-ba7b-4b7b-a3d9-0a04feb3f8ee_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6197ae41-ba7b-4b7b-a3d9-0a04feb3f8ee_ScfEnergy\",\"zeroEnergyValue\":\"0.08950884100002554\"},{\"scfEnergyValue\":\"-157.269659353\",\"crid\":\"106-98-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_799e5430-f3ae-43c0-a02e-f1f9a7164143\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_183cafee-fac9-4d13-b26c-e460a21822d9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_183cafee-fac9-4d13-b26c-e460a21822d9\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_183cafee-fac9-4d13-b26c-e460a21822d9\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_183cafee-fac9-4d13-b26c-e460a21822d9_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_183cafee-fac9-4d13-b26c-e460a21822d9_ScfEnergy\",\"zeroEnergyValue\":\"0.10789935300002185\"},{\"scfEnergyValue\":\"-157.272560113\",\"crid\":\"107-01-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cde61822-fbcd-4ee3-b56d-b8f277b00000\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_da5c0aad-293b-4e92-b478-b1ba58a2561b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da5c0aad-293b-4e92-b478-b1ba58a2561b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_da5c0aad-293b-4e92-b478-b1ba58a2561b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da5c0aad-293b-4e92-b478-b1ba58a2561b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da5c0aad-293b-4e92-b478-b1ba58a2561b_ScfEnergy\",\"zeroEnergyValue\":\"0.10745111299999621\"},{\"scfEnergyValue\":\"-157.272560113\",\"crid\":\"590-18-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cde61822-fbcd-4ee3-b56d-b8f277b00000\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_da5c0aad-293b-4e92-b478-b1ba58a2561b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da5c0aad-293b-4e92-b478-b1ba58a2561b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_da5c0aad-293b-4e92-b478-b1ba58a2561b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da5c0aad-293b-4e92-b478-b1ba58a2561b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_da5c0aad-293b-4e92-b478-b1ba58a2561b_ScfEnergy\",\"zeroEnergyValue\":\"0.10745111299999621\"},{\"scfEnergyValue\":\"-157.257151838\",\"crid\":\"287-23-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5719aa5a-b2a7-4c99-b276-2201cf5c92d8\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_86b57472-ca82-4e2c-9234-2d12b2ba75ca\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_86b57472-ca82-4e2c-9234-2d12b2ba75ca\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_86b57472-ca82-4e2c-9234-2d12b2ba75ca\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_86b57472-ca82-4e2c-9234-2d12b2ba75ca_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_86b57472-ca82-4e2c-9234-2d12b2ba75ca_ScfEnergy\",\"zeroEnergyValue\":\"0.11020083799999725\"},{\"scfEnergyValue\":\"-157.272560115\",\"crid\":\"590-18-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0ca50a74-c772-46d5-95d7-aece9e96d1e7\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_41301e6e-c647-4fd5-b117-fb21af4695d4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_41301e6e-c647-4fd5-b117-fb21af4695d4\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_41301e6e-c647-4fd5-b117-fb21af4695d4\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_41301e6e-c647-4fd5-b117-fb21af4695d4_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_41301e6e-c647-4fd5-b117-fb21af4695d4_ScfEnergy\",\"zeroEnergyValue\":\"0.10745111500000348\"},{\"scfEnergyValue\":\"-157.257937672\",\"crid\":\"594-11-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0fab244a-e9bb-4143-bb39-76198ecf750d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_17856d2b-91bf-48a0-afb0-b90994d5b508\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_17856d2b-91bf-48a0-afb0-b90994d5b508\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_17856d2b-91bf-48a0-afb0-b90994d5b508\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_17856d2b-91bf-48a0-afb0-b90994d5b508_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_17856d2b-91bf-48a0-afb0-b90994d5b508_ScfEnergy\",\"zeroEnergyValue\":\"0.10887867200000301\"},{\"scfEnergyValue\":\"-205.140697005\",\"crid\":\"10102-44-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8aeb1e24-a6b7-4754-8a3c-9090029dcee6\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_5dbd02b5-345a-4cb8-82d5-7bfbcfd4efa8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5dbd02b5-345a-4cb8-82d5-7bfbcfd4efa8\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_5dbd02b5-345a-4cb8-82d5-7bfbcfd4efa8\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5dbd02b5-345a-4cb8-82d5-7bfbcfd4efa8_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5dbd02b5-345a-4cb8-82d5-7bfbcfd4efa8_ScfEnergy\",\"zeroEnergyValue\":\"0.008787004999987857\"},{\"scfEnergyValue\":\"-117.823972054\",\"crid\":\"40852-89-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e9532098-f9b4-494b-bf38-da79382e2cce\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_19c1e44a-df2d-4199-a986-de7f0238aaa8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_19c1e44a-df2d-4199-a986-de7f0238aaa8\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_19c1e44a-df2d-4199-a986-de7f0238aaa8\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_19c1e44a-df2d-4199-a986-de7f0238aaa8_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_19c1e44a-df2d-4199-a986-de7f0238aaa8_ScfEnergy\",\"zeroEnergyValue\":\"0.0739050539999937\"},{\"scfEnergyValue\":\"-117.823972054\",\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e9532098-f9b4-494b-bf38-da79382e2cce\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_19c1e44a-df2d-4199-a986-de7f0238aaa8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_19c1e44a-df2d-4199-a986-de7f0238aaa8\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_19c1e44a-df2d-4199-a986-de7f0238aaa8\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_19c1e44a-df2d-4199-a986-de7f0238aaa8_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_19c1e44a-df2d-4199-a986-de7f0238aaa8_ScfEnergy\",\"zeroEnergyValue\":\"0.0739050539999937\"},{\"scfEnergyValue\":\"-193.218176383\",\"crid\":\"67-64-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_353d4667-e25d-476a-bd74-5c34723c8ea3\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b2bbcf6b-3287-46cc-a461-ab489037d289\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b2bbcf6b-3287-46cc-a461-ab489037d289\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b2bbcf6b-3287-46cc-a461-ab489037d289\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b2bbcf6b-3287-46cc-a461-ab489037d289_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b2bbcf6b-3287-46cc-a461-ab489037d289_ScfEnergy\",\"zeroEnergyValue\":\"0.08303338300001428\"},{\"scfEnergyValue\":\"-193.168385988\",\"crid\":\"75-56-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_81bbd0e3-2f04-4be6-881f-90471ddf7054\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6dcabf7e-fec4-481e-8066-4c598980d757\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6dcabf7e-fec4-481e-8066-4c598980d757\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6dcabf7e-fec4-481e-8066-4c598980d757\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6dcabf7e-fec4-481e-8066-4c598980d757_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6dcabf7e-fec4-481e-8066-4c598980d757_ScfEnergy\",\"zeroEnergyValue\":\"0.08506298800000422\"},{\"scfEnergyValue\":\"-193.168385988\",\"crid\":\"15448-47-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_81bbd0e3-2f04-4be6-881f-90471ddf7054\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6dcabf7e-fec4-481e-8066-4c598980d757\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6dcabf7e-fec4-481e-8066-4c598980d757\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6dcabf7e-fec4-481e-8066-4c598980d757\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6dcabf7e-fec4-481e-8066-4c598980d757_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6dcabf7e-fec4-481e-8066-4c598980d757_ScfEnergy\",\"zeroEnergyValue\":\"0.08506298800000422\"},{\"scfEnergyValue\":\"-193.182998123\",\"crid\":\"107-18-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d9f56185-3445-492b-9665-70edcf7541f1\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_218af3e1-6c1d-431c-a6fa-d6f1f86f85d2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_218af3e1-6c1d-431c-a6fa-d6f1f86f85d2\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_218af3e1-6c1d-431c-a6fa-d6f1f86f85d2\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_218af3e1-6c1d-431c-a6fa-d6f1f86f85d2_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_218af3e1-6c1d-431c-a6fa-d6f1f86f85d2_ScfEnergy\",\"zeroEnergyValue\":\"0.08491412300000434\"},{\"scfEnergyValue\":\"-193.205971199\",\"crid\":\"123-38-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9c351a4b-a9c9-42a5-aed2-c799c2f2ed20\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_5ea0bd40-ed69-4f0c-964f-03689c597b4f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5ea0bd40-ed69-4f0c-964f-03689c597b4f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_5ea0bd40-ed69-4f0c-964f-03689c597b4f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5ea0bd40-ed69-4f0c-964f-03689c597b4f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_5ea0bd40-ed69-4f0c-964f-03689c597b4f_ScfEnergy\",\"zeroEnergyValue\":\"0.08397319900001321\"},{\"scfEnergyValue\":\"-193.164242124\",\"crid\":\"503-30-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c23597ce-5d31-425c-a4ae-ca1c8ba0e02f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_66ce90c0-0ee6-4580-b271-20e97cfc584b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_66ce90c0-0ee6-4580-b271-20e97cfc584b\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_66ce90c0-0ee6-4580-b271-20e97cfc584b\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_66ce90c0-0ee6-4580-b271-20e97cfc584b_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_66ce90c0-0ee6-4580-b271-20e97cfc584b_ScfEnergy\",\"zeroEnergyValue\":\"0.08658512400000973\"},{\"scfEnergyValue\":\"-193.198596818\",\"crid\":\"29456-04-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_91313c2a-8fef-48ef-a6d5-7ef0396ebbea\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_a42465aa-256f-4468-ad40-227db2ea0104\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a42465aa-256f-4468-ad40-227db2ea0104\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_a42465aa-256f-4468-ad40-227db2ea0104\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a42465aa-256f-4468-ad40-227db2ea0104_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a42465aa-256f-4468-ad40-227db2ea0104_ScfEnergy\",\"zeroEnergyValue\":\"0.08426281799998492\"},{\"scfEnergyValue\":\"-193.192420942\",\"crid\":\"57642-95-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_71a329c2-eebd-4af0-b588-0e1ea5ba3b1b\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_21d82a0d-be24-44b1-ba88-d0bc06fdc21f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_21d82a0d-be24-44b1-ba88-d0bc06fdc21f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_21d82a0d-be24-44b1-ba88-d0bc06fdc21f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_21d82a0d-be24-44b1-ba88-d0bc06fdc21f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_21d82a0d-be24-44b1-ba88-d0bc06fdc21f_ScfEnergy\",\"zeroEnergyValue\":\"0.08449294200002555\"},{\"scfEnergyValue\":\"-158.504162226\",\"crid\":\"106-97-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0fd442ee-472d-43ed-afc2-e45febe6dfbf\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_73310fe7-1fd8-4003-8ff3-376f029ed74c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_73310fe7-1fd8-4003-8ff3-376f029ed74c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_73310fe7-1fd8-4003-8ff3-376f029ed74c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_73310fe7-1fd8-4003-8ff3-376f029ed74c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_73310fe7-1fd8-4003-8ff3-376f029ed74c_ScfEnergy\",\"zeroEnergyValue\":\"0.13145322600001919\"},{\"scfEnergyValue\":\"-153.530975838\",\"crid\":\"460-12-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bc505883-de11-4f57-ad91-8762cfe68687\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_7654adcd-12b0-4f67-a19f-ed8464275aaf\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7654adcd-12b0-4f67-a19f-ed8464275aaf\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_7654adcd-12b0-4f67-a19f-ed8464275aaf\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7654adcd-12b0-4f67-a19f-ed8464275aaf_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_7654adcd-12b0-4f67-a19f-ed8464275aaf_ScfEnergy\",\"zeroEnergyValue\":\"0.0376018380000005\"},{\"scfEnergyValue\":\"-154.783330641\",\"crid\":\"689-97-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e0ddbbd5-c735-4f72-b939-1a5f1bf25e41\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_d480627d-bd9c-423d-9b39-076755148c15\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d480627d-bd9c-423d-9b39-076755148c15\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_d480627d-bd9c-423d-9b39-076755148c15\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d480627d-bd9c-423d-9b39-076755148c15_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_d480627d-bd9c-423d-9b39-076755148c15_ScfEnergy\",\"zeroEnergyValue\":\"0.060913640999984864\"},{\"scfEnergyValue\":\"-154.721160471\",\"crid\":\"1120-53-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a475f430-65f1-4b30-96a7-4ad855fb7d7d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6b217b4d-a40e-4be5-815e-1f844ba9a37e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6b217b4d-a40e-4be5-815e-1f844ba9a37e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6b217b4d-a40e-4be5-815e-1f844ba9a37e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6b217b4d-a40e-4be5-815e-1f844ba9a37e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6b217b4d-a40e-4be5-815e-1f844ba9a37e_ScfEnergy\",\"zeroEnergyValue\":\"0.060891470999990815\"},{\"scfEnergyValue\":\"-154.777635102\",\"crid\":\"2873-50-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c7bc0de0-6b09-45cf-9bb4-3c8eadfd9f47\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_066cc755-4eb0-4354-a818-a865ba058c9e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_066cc755-4eb0-4354-a818-a865ba058c9e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_066cc755-4eb0-4354-a818-a865ba058c9e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_066cc755-4eb0-4354-a818-a865ba058c9e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_066cc755-4eb0-4354-a818-a865ba058c9e_ScfEnergy\",\"zeroEnergyValue\":\"0.05986310200000844\"},{\"scfEnergyValue\":\"-155.094962914\",\"crid\":\"64-17-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_63fefc5a-d49d-4841-a946-2cdb5f356983\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_1af78f6e-8ceb-4c46-9f81-0e3a0109536f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1af78f6e-8ceb-4c46-9f81-0e3a0109536f\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_1af78f6e-8ceb-4c46-9f81-0e3a0109536f\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1af78f6e-8ceb-4c46-9f81-0e3a0109536f_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_1af78f6e-8ceb-4c46-9f81-0e3a0109536f_ScfEnergy\",\"zeroEnergyValue\":\"0.07970191399999749\"},{\"scfEnergyValue\":\"-157.274513893\",\"crid\":\"624-64-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7231649-db01-467c-9355-44813832d221\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b03a9436-0551-42a6-8be3-ea274a29ced3\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b03a9436-0551-42a6-8be3-ea274a29ced3\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b03a9436-0551-42a6-8be3-ea274a29ced3\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b03a9436-0551-42a6-8be3-ea274a29ced3_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b03a9436-0551-42a6-8be3-ea274a29ced3_ScfEnergy\",\"zeroEnergyValue\":\"0.1072858930000109\"},{\"scfEnergyValue\":\"-232.53181518\",\"crid\":\"78-84-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_10f8db59-4d8e-4a43-89eb-5b1d9c7e9821\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_89d03546-1671-4920-9a36-56106c579876\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_89d03546-1671-4920-9a36-56106c579876\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_89d03546-1671-4920-9a36-56106c579876\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_89d03546-1671-4920-9a36-56106c579876_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_89d03546-1671-4920-9a36-56106c579876_ScfEnergy\",\"zeroEnergyValue\":\"0.11194018000000483\"},{\"scfEnergyValue\":\"-232.542954378\",\"crid\":\"78-93-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8e464df3-ba41-4b9a-aa72-466d54c6e2fd\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_55c3c9db-b24c-4785-bc13-2a2bdc1fd389\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_55c3c9db-b24c-4785-bc13-2a2bdc1fd389\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_55c3c9db-b24c-4785-bc13-2a2bdc1fd389\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_55c3c9db-b24c-4785-bc13-2a2bdc1fd389_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_55c3c9db-b24c-4785-bc13-2a2bdc1fd389_ScfEnergy\",\"zeroEnergyValue\":\"0.11168237799998337\"},{\"scfEnergyValue\":\"-232.503572449\",\"crid\":\"109-92-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a0324a14-466c-4efd-9212-1f26c984db8d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_dea66509-5134-47b0-b37b-cf488864e8c4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_dea66509-5134-47b0-b37b-cf488864e8c4\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_dea66509-5134-47b0-b37b-cf488864e8c4\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_dea66509-5134-47b0-b37b-cf488864e8c4_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_dea66509-5134-47b0-b37b-cf488864e8c4_ScfEnergy\",\"zeroEnergyValue\":\"0.11215044899998361\"},{\"scfEnergyValue\":\"-232.51868947\",\"crid\":\"109-99-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_793ebc48-c552-4a74-85a8-90e0b9bc8e1d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_cf0fc840-df00-4d37-9a79-26a9e0116100\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cf0fc840-df00-4d37-9a79-26a9e0116100\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_cf0fc840-df00-4d37-9a79-26a9e0116100\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cf0fc840-df00-4d37-9a79-26a9e0116100_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_cf0fc840-df00-4d37-9a79-26a9e0116100_ScfEnergy\",\"zeroEnergyValue\":\"0.11619647000000555\"},{\"scfEnergyValue\":\"-232.501234649\",\"crid\":\"116-11-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_00e0e336-4c75-4d5c-9242-29b4c9aacbff\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_b539ab22-e47e-4839-ac10-f7125f6b4f53\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b539ab22-e47e-4839-ac10-f7125f6b4f53\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_b539ab22-e47e-4839-ac10-f7125f6b4f53\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b539ab22-e47e-4839-ac10-f7125f6b4f53_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_b539ab22-e47e-4839-ac10-f7125f6b4f53_ScfEnergy\",\"zeroEnergyValue\":\"0.11215664899998501\"},{\"scfEnergyValue\":\"-232.530442358\",\"crid\":\"123-72-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_51949c88-4c82-40d9-af73-b47f59fac77a\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6eb657ab-5708-473c-acd6-f24b6cdda92c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6eb657ab-5708-473c-acd6-f24b6cdda92c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6eb657ab-5708-473c-acd6-f24b6cdda92c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6eb657ab-5708-473c-acd6-f24b6cdda92c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6eb657ab-5708-473c-acd6-f24b6cdda92c_ScfEnergy\",\"zeroEnergyValue\":\"0.11247835799997574\"},{\"scfEnergyValue\":\"-232.502501751\",\"crid\":\"2919-23-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8b4e661c-11cb-4296-b3d1-4cbca0a0237c\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_490711ec-3846-4239-9d14-bca148887bbf\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_490711ec-3846-4239-9d14-bca148887bbf\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_490711ec-3846-4239-9d14-bca148887bbf\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_490711ec-3846-4239-9d14-bca148887bbf_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_490711ec-3846-4239-9d14-bca148887bbf_ScfEnergy\",\"zeroEnergyValue\":\"0.11461575100000232\"},{\"scfEnergyValue\":\"-77.3566457906\",\"crid\":\"74-86-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2e8f9829-37ca-46ad-91bc-010f37835b4f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_92039ac2-80a0-45d3-83ab-3460cf8c371a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_92039ac2-80a0-45d3-83ab-3460cf8c371a\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_92039ac2-80a0-45d3-83ab-3460cf8c371a\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_92039ac2-80a0-45d3-83ab-3460cf8c371a_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_92039ac2-80a0-45d3-83ab-3460cf8c371a_ScfEnergy\",\"zeroEnergyValue\":\"0.027028790599999297\"},{\"scfEnergyValue\":\"-77.2878346262\",\"crid\":\"2143-69-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8710f12f-3edc-4172-98f5-b4465c9b8dd0\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_80aa04c3-374c-4f1f-a83d-aec6d98d4bc5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_80aa04c3-374c-4f1f-a83d-aec6d98d4bc5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_80aa04c3-374c-4f1f-a83d-aec6d98d4bc5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_80aa04c3-374c-4f1f-a83d-aec6d98d4bc5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_80aa04c3-374c-4f1f-a83d-aec6d98d4bc5_ScfEnergy\",\"zeroEnergyValue\":\"0.023538626199993473\"},{\"scfEnergyValue\":\"-152.651574382\",\"crid\":\"463-51-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3769c137-40fa-40fa-a2b9-f321da3dc0c0\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_84bb3d78-ac42-4dc0-ac04-b1fdcd88f809\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_84bb3d78-ac42-4dc0-ac04-b1fdcd88f809\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_84bb3d78-ac42-4dc0-ac04-b1fdcd88f809\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_84bb3d78-ac42-4dc0-ac04-b1fdcd88f809_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_84bb3d78-ac42-4dc0-ac04-b1fdcd88f809_ScfEnergy\",\"zeroEnergyValue\":\"0.03151138200001924\"},{\"scfEnergyValue\":\"-38.4940050197\",\"crid\":\"3315-37-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_afe27844-7010-49fa-9674-73be295bf11d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_a0fd97ff-7768-4eb5-9792-c2cf11be228e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a0fd97ff-7768-4eb5-9792-c2cf11be228e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_a0fd97ff-7768-4eb5-9792-c2cf11be228e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a0fd97ff-7768-4eb5-9792-c2cf11be228e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a0fd97ff-7768-4eb5-9792-c2cf11be228e_ScfEnergy\",\"zeroEnergyValue\":\"0.006429019700000538\"},{\"scfEnergyValue\":\"-38.4940050197\",\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_afe27844-7010-49fa-9674-73be295bf11d\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_a0fd97ff-7768-4eb5-9792-c2cf11be228e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a0fd97ff-7768-4eb5-9792-c2cf11be228e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_a0fd97ff-7768-4eb5-9792-c2cf11be228e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a0fd97ff-7768-4eb5-9792-c2cf11be228e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_a0fd97ff-7768-4eb5-9792-c2cf11be228e_ScfEnergy\",\"zeroEnergyValue\":\"0.006429019700000538\"},{\"scfEnergyValue\":\"-114.541755866\",\"crid\":\"50-00-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cba9378c-b272-45b1-a614-52c80d11ba0f\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_992f0128-1408-4299-843c-fc47dbee467c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_992f0128-1408-4299-843c-fc47dbee467c\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_992f0128-1408-4299-843c-fc47dbee467c\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_992f0128-1408-4299-843c-fc47dbee467c_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_992f0128-1408-4299-843c-fc47dbee467c_ScfEnergy\",\"zeroEnergyValue\":\"0.026495866000004753\"},{\"scfEnergyValue\":\"-39.8551669672\",\"crid\":\"2229-07-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_008ee48a-78a8-4d7b-84e9-897d691cde24\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5_ScfEnergy\",\"zeroEnergyValue\":\"0.029643967200001953\"},{\"scfEnergyValue\":\"-39.8551669672\",\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_008ee48a-78a8-4d7b-84e9-897d691cde24\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5_ScfEnergy\",\"zeroEnergyValue\":\"0.029643967200001953\"},{\"scfEnergyValue\":\"-115.092213368\",\"crid\":\"2143-68-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7194422-7fc7-4c05-ab1a-e64a12df4cde\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6c23df9b-59c4-441c-a80f-7ca198b98262\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6c23df9b-59c4-441c-a80f-7ca198b98262\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6c23df9b-59c4-441c-a80f-7ca198b98262\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6c23df9b-59c4-441c-a80f-7ca198b98262_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6c23df9b-59c4-441c-a80f-7ca198b98262_ScfEnergy\",\"zeroEnergyValue\":\"0.03611636800000895\"},{\"scfEnergyValue\":\"-115.102155362\",\"crid\":\"2597-43-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0ab3dbfa-d3ce-4c7c-be5b-660e3601b6e2\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_6c93883c-31c7-46f0-a86c-c71ad373d4da\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6c93883c-31c7-46f0-a86c-c71ad373d4da\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_6c93883c-31c7-46f0-a86c-c71ad373d4da\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6c93883c-31c7-46f0-a86c-c71ad373d4da_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_6c93883c-31c7-46f0-a86c-c71ad373d4da_ScfEnergy\",\"zeroEnergyValue\":\"0.03603036200000531\"},{\"scfEnergyValue\":\"-40.5339279838\",\"crid\":\"74-82-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1e7d8a91-2ea9-4c75-b9ed-8396f13573bb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e17a0cec-0662-4d21-ac38-19873ee1aef2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e17a0cec-0662-4d21-ac38-19873ee1aef2\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e17a0cec-0662-4d21-ac38-19873ee1aef2\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e17a0cec-0662-4d21-ac38-19873ee1aef2_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e17a0cec-0662-4d21-ac38-19873ee1aef2_ScfEnergy\",\"zeroEnergyValue\":\"0.044533983800000954\"},{\"scfEnergyValue\":\"-40.5339279838\",\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1e7d8a91-2ea9-4c75-b9ed-8396f13573bb\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e17a0cec-0662-4d21-ac38-19873ee1aef2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e17a0cec-0662-4d21-ac38-19873ee1aef2\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e17a0cec-0662-4d21-ac38-19873ee1aef2\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e17a0cec-0662-4d21-ac38-19873ee1aef2_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e17a0cec-0662-4d21-ac38-19873ee1aef2_ScfEnergy\",\"zeroEnergyValue\":\"0.044533983800000954\"},{\"scfEnergyValue\":\"-115.764943665\",\"crid\":\"67-56-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bbfd8e83-6c58-4ff3-820c-2095d2ab6998\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_e660c08e-d5c1-44f1-a863-eeed09f6bb2e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e660c08e-d5c1-44f1-a863-eeed09f6bb2e\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_e660c08e-d5c1-44f1-a863-eeed09f6bb2e\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e660c08e-d5c1-44f1-a863-eeed09f6bb2e_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_e660c08e-d5c1-44f1-a863-eeed09f6bb2e_ScfEnergy\",\"zeroEnergyValue\":\"0.05105366499999775\"},{\"scfEnergyValue\":\"-56.5826355219\",\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e3b2d2f7-c248-46b3-bbbe-07ce1dd908d4\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_84014e03-89b4-4fb7-b1cf-b7d1874efcd5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_84014e03-89b4-4fb7-b1cf-b7d1874efcd5\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_84014e03-89b4-4fb7-b1cf-b7d1874efcd5\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_84014e03-89b4-4fb7-b1cf-b7d1874efcd5_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_84014e03-89b4-4fb7-b1cf-b7d1874efcd5_ScfEnergy\",\"zeroEnergyValue\":\"0.03423952190000534\"},{\"scfEnergyValue\":\"-55.2410487251\",\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2ed8ca6a-2ae6-4ff0-a5e0-f42c7d2515e6\",\"zeroEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ZeroPointEnergy_bceae5c9-5367-4702-b7ff-98e065bea3d6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_bceae5c9-5367-4702-b7ff-98e065bea3d6\",\"scfEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/ScfEnergy_bceae5c9-5367-4702-b7ff-98e065bea3d6\",\"zeroElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_bceae5c9-5367-4702-b7ff-98e065bea3d6_ZeroPointEnergy\",\"scfElectronicEnergy\":\"http://www.theworldavatar.com/kb/ontocompchem/FloatValue_bceae5c9-5367-4702-b7ff-98e065bea3d6_ScfEnergy\",\"zeroEnergyValue\":\"0.00741472509999852\"}]";
- query.result = "25";
- return format(query);
- }
-
- /**
- * A federated query adapted from {@link RemoteStoreClientTest#performMechanismCountQueryTest()}
- * with only one basic triple patterns for datasources ontospecies and ontocompchem.
- *
- * @return
- */
- public Query getSparqlOntoSpeciesOntoCompChemSmall() {
- Query query = new Query();
- query.sparql = "PREFIX ontospecies: \r\n"
- + "PREFIX ontocompchem: \r\n"
- + "PREFIX gc: \r\n"
- + "SELECT ?species ?crid ?compchemspecies\r\n"
- + "WHERE {\r\n"
- + "%s"
- + " ?species ontospecies:casRegistryID ?crid .\r\n"
- + "%s"
- + " ?compchemspecies ontocompchem:hasUniqueSpecies ?species .\r\n"
- + "%s"
- + "}";
- addEndpointsForSparqlOntoSpeciesOntoCompChem(query);
- // result size = 165
- //query.result = "[{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e9532098-f9b4-494b-bf38-da79382e2cce\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_19c1e44a-df2d-4199-a986-de7f0238aaa8\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f2ee9b6e-13f3-46c3-bdce-379ec972f8b7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cdd30304-b183-4b45-b6f5-4579246c3cae\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7ea6030-fdc6-4013-927a-5b3dcff4b85a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\"},{\"crid\":\"2597-43-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0ab3dbfa-d3ce-4c7c-be5b-660e3601b6e2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6c93883c-31c7-46f0-a86c-c71ad373d4da\"},{\"crid\":\"2932-78-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_268196b3-6d26-48ed-af35-53d744e2d24e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2f11d04c-d26a-4076-804e-7a30b979a19b\"},{\"crid\":\"287-23-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5719aa5a-b2a7-4c99-b276-2201cf5c92d8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_86b57472-ca82-4e2c-9234-2d12b2ba75ca\"},{\"crid\":\"2781-85-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6555b1a0-6e58-40f3-83e6-659589bee021\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6fe17749-550b-4eb4-aea8-07f9ddd74960\"},{\"crid\":\"2417-82-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_69f35e93-b66b-4136-8146-ebb2d03b080b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_30dc7a5c-0ec8-4230-8c55-6214ba427d0a\"},{\"crid\":\"2597-44-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6d9422b5-8d1d-414d-9b8c-0e8e3407e700\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c8ee81aa-c601-40a4-bae4-8f2642719bd2\"},{\"crid\":\"28933-84-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7a754131-2633-4c95-bc64-2cba4db37d29\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_8036c915-4fb3-42e7-a7fa-13b39514cae9\"},{\"crid\":\"2492-36-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7e8d571f-1a2e-4130-a27d-7f03fe9cafba\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_095033b8-97d7-4161-b56d-f86d9bc30cee\"},{\"crid\":\"2919-23-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8b4e661c-11cb-4296-b3d1-4cbca0a0237c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_490711ec-3846-4239-9d14-bca148887bbf\"},{\"crid\":\"2669-89-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8e1ad157-2911-4740-a851-cd1b4735704c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_39adf818-502a-42fd-b7d6-45b6bde44df0\"},{\"crid\":\"2465-56-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a3755d47-cd9a-4d9d-b50f-b3efd8bc70f7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f5723bca-a907-4126-8be9-d3b0b94257a5\"},{\"crid\":\"2873-50-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c7bc0de0-6b09-45cf-9bb4-3c8eadfd9f47\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_066cc755-4eb0-4354-a818-a865ba058c9e\"},{\"crid\":\"2348-55-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d638f1e4-bcf4-4d52-b999-dc6822fb72a1\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_21990f99-8da8-4b91-8673-e3b7a9b22dd5\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_050d6d0a-3c3e-4bbb-8e07-b156b3738b53\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da858b54-3c5f-42c8-93e9-7f03bbbbd115\"},{\"crid\":\"10028-15-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_355109b1-2989-4a06-9547-21271b40e19b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_88aa7bfb-a0e6-47f0-953c-36519b45354b\"},{\"crid\":\"10102-43-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e5a47ea5-910a-4292-abd7-773793a66ca0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b5c73ced-2117-4905-a6b2-977c9926ea8c\"},{\"crid\":\"10024-97-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_fd7a83cf-dc61-4bec-ab69-b5855f472e2f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ed568dd0-831e-4294-88fc-519e69d757df\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_733eb552-79ee-43cc-afd0-3ee4324d407f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e9c02871-716d-4153-b059-4fb7e4a5d7a0\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b915a6d9-6013-4cab-80a4-56f1504e98fe\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e55c113f-dec6-4da7-8020-e71df374ea67\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e179b9f4-ab21-4f46-b83a-0065ce2553b2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ea4fcb53-36e5-44a6-a648-14a9763c199e\"},{\"crid\":\"78-94-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_03abefa5-5453-4e4d-b900-bbc0def43c51\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_dc901906-20a3-45f8-878f-2b5a9be9a91a\"},{\"crid\":\"78-84-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_10f8db59-4d8e-4a43-89eb-5b1d9c7e9821\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_89d03546-1671-4920-9a36-56106c579876\"},{\"crid\":\"78-85-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_12238c7c-98b6-49e3-8c14-31c1edc97a9c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7db61428-1ff9-4163-a0bb-131a37f68f01\"},{\"crid\":\"7722-84-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_663e4fd4-1fcd-4b07-9521-19eedf78c55d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_99765f25-77cf-4734-8a83-cc8da748fdff\"},{\"crid\":\"7727-37-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_798ae810-0c06-40e2-acae-e9e227aeca43\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_555e9d05-3009-478f-905f-45bddb44d88f\"},{\"crid\":\"78-93-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8e464df3-ba41-4b9a-aa72-466d54c6e2fd\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_55c3c9db-b24c-4785-bc13-2a2bdc1fd389\"},{\"crid\":\"7732-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9a49de29-8090-482e-b802-edda16dc68bf\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_8102986a-3c9d-4592-90ef-bc3b80005cb9\"},{\"crid\":\"7732-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a8173444-de42-4489-a366-8292dd86e8fb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ffe3d10d-cc83-48e4-b1a7-b016384ca3ec\"},{\"crid\":\"7732-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d668de75-6ebd-4db6-9540-25d4b0f1fcb0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_75937aef-7433-4d0a-a8e4-05b763d0c4be\"},{\"crid\":\"7782-44-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_dc415280-b8f4-478f-8929-935ef6c1337b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_65f52d70-f8be-4549-9555-6d9815b09e1b\"},{\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e3b2d2f7-c248-46b3-bbbe-07ce1dd908d4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_84014e03-89b4-4fb7-b1cf-b7d1874efcd5\"},{\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_efd401ff-51bd-4fec-afb7-3650e92910a1\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7c240a02-d1c5-460a-a703-e16c4e0b13aa\"},{\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_fbf65357-0142-4a9e-9e38-98b6f076b6fb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b2457b8e-964f-4722-9a6e-9e03eca41980\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1eceb125-0f98-4c5a-826d-70809e560035\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_58fa4851-60fe-4c02-ab66-4509811a00e5\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2c0cd6f1-ecaa-4c70-801d-7f43d3be89bb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_0895c702-0f6a-4b85-b384-cfbfde72fce4\"},{\"crid\":\"[]\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_453fe568-f93c-4229-b08b-8c05b937faa4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_94c3a415-477e-4c43-b474-d3e6f6f9ef33\"},{\"crid\":\"2229-07-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_008ee48a-78a8-4d7b-84e9-897d691cde24\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\"},{\"crid\":\"2040-95-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0092c497-ad02-458d-a1cb-7be57784a159\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5c4a8f8c-6c1e-4053-a218-3434ffec625a\"},{\"crid\":\"1981-80-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1affa5ba-c003-49ac-8f35-8c2582945f99\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_125a3c04-4606-4e3c-a866-bd04c546f469\"},{\"crid\":\"2074-87-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1eceb125-0f98-4c5a-826d-70809e560035\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_58fa4851-60fe-4c02-ab66-4509811a00e5\"},{\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\"},{\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\"},{\"crid\":\"1678-92-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_48076567-dfe1-4d4a-93c1-20946ba68bf6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b556764c-d007-4c7f-b485-d5a8b5bc26f8\"},{\"crid\":\"2143-61-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_48929d84-722b-4359-939d-f51d94083138\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b53c1b3c-bf4b-41c0-ba1a-c248031ec4e5\"},{\"crid\":\"2025-56-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5c91f127-7fc7-4a32-b4bf-b34476b379de\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_af9c0fc5-b708-4989-9b89-ba4fb8618d53\"},{\"crid\":\"15448-47-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_81bbd0e3-2f04-4be6-881f-90471ddf7054\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6dcabf7e-fec4-481e-8066-4c598980d757\"},{\"crid\":\"2143-69-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8710f12f-3edc-4172-98f5-b4465c9b8dd0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_80aa04c3-374c-4f1f-a83d-aec6d98d4bc5\"},{\"crid\":\"157-33-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b34c3f37-ce40-421d-bc8e-d64d614e1e37\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_0c5814de-c030-4771-b7bd-8da8ba9fe9f7\"},{\"crid\":\"16165-40-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b915a6d9-6013-4cab-80a4-56f1504e98fe\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e55c113f-dec6-4da7-8020-e71df374ea67\"},{\"crid\":\"2025-55-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c6384a33-227d-4eb5-bee5-d314a3b229aa\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a9eccda6-4732-4b98-ae57-9b620edd601c\"},{\"crid\":\"2143-68-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7194422-7fc7-4c05-ab1a-e64a12df4cde\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6c23df9b-59c4-441c-a80f-7ca198b98262\"},{\"crid\":\"2008-19-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7ea6030-fdc6-4013-927a-5b3dcff4b85a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\"},{\"crid\":\"463-49-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_192e43f9-6662-42a8-b174-662a33eb1334\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c01578c8-e9fd-418a-aef2-cc1172a79f23\"},{\"crid\":\"463-51-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3769c137-40fa-40fa-a2b9-f321da3dc0c0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_84bb3d78-ac42-4dc0-ac04-b1fdcd88f809\"},{\"crid\":\"32458-33-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_733eb552-79ee-43cc-afd0-3ee4324d407f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e9c02871-716d-4153-b059-4fb7e4a5d7a0\"},{\"crid\":\"3100-04-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_89a9c49b-c64c-41a5-b741-6843f3a7e910\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6c4c7272-d1db-44c4-98fd-529cb9b9ecb1\"},{\"crid\":\"32038-79-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8f579fe4-1a03-4f11-8811-d708db9638ea\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1e88ddf9-767e-484b-a2f9-08f66d3bc409\"},{\"crid\":\"29456-04-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_91313c2a-8fef-48ef-a6d5-7ef0396ebbea\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a42465aa-256f-4468-ad40-227db2ea0104\"},{\"crid\":\"3170-83-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_92e851ca-20f7-410d-b33a-82db8c36bb42\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_fffc684c-f1bc-4bd9-9958-dfd2be10e008\"},{\"crid\":\"3315-37-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_afe27844-7010-49fa-9674-73be295bf11d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a0fd97ff-7768-4eb5-9792-c2cf11be228e\"},{\"crid\":\"4170-30-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b5642744-e411-4e74-8d70-08dbe1e39797\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\"},{\"crid\":\"460-12-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bc505883-de11-4f57-ad91-8762cfe68687\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7654adcd-12b0-4f67-a19f-ed8464275aaf\"},{\"crid\":\"3031-73-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bd3e0b6d-68f8-4395-bbeb-9d66b6fb090e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a14c59c0-f467-497f-85cd-98f3cd19620b\"},{\"crid\":\"3352-57-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d668de75-6ebd-4db6-9540-25d4b0f1fcb0\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_75937aef-7433-4d0a-a8e4-05b763d0c4be\"},{\"crid\":\"39124-79-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e179b9f4-ab21-4f46-b83a-0065ce2553b2\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ea4fcb53-36e5-44a6-a648-14a9763c199e\"},{\"crid\":\"40852-89-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e9532098-f9b4-494b-bf38-da79382e2cce\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_19c1e44a-df2d-4199-a986-de7f0238aaa8\"},{\"crid\":\"4218-50-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f2ee9b6e-13f3-46c3-bdce-379ec972f8b7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cdd30304-b183-4b45-b6f5-4579246c3cae\"},{\"crid\":\"106-97-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0fd442ee-472d-43ed-afc2-e45febe6dfbf\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_73310fe7-1fd8-4003-8ff3-376f029ed74c\"},{\"crid\":\"109-93-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_15ffd444-51f3-4e30-9960-82fe7e258475\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e94be489-3030-48d7-999b-4e72f051c07b\"},{\"crid\":\"103905-52-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_772804ac-e72d-44af-b414-5c237af61445\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1b5cb9c5-94ad-449a-972e-4074bb6a1bae\"},{\"crid\":\"107-00-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_78b569d8-2592-4ff3-a479-565d29c7536d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d41353e1-1a7e-4bbe-a17c-b13a90df2b90\"},{\"crid\":\"109-99-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_793ebc48-c552-4a74-85a8-90e0b9bc8e1d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cf0fc840-df00-4d37-9a79-26a9e0116100\"},{\"crid\":\"106-98-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_799e5430-f3ae-43c0-a02e-f1f9a7164143\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_183cafee-fac9-4d13-b26c-e460a21822d9\"},{\"crid\":\"111-84-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7cba9b1d-79c6-4df4-ae92-eaedb7476f20\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_34486bee-f786-4bd2-ba1b-f7d82cadb88a\"},{\"crid\":\"10102-44-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8aeb1e24-a6b7-4754-8a3c-9090029dcee6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5dbd02b5-345a-4cb8-82d5-7bfbcfd4efa8\"},{\"crid\":\"110-00-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9c6589a5-bc50-4d01-80f1-80d2635f879b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5887435c-680d-403b-96a1-603330055273\"},{\"crid\":\"109-92-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a0324a14-466c-4efd-9212-1f26c984db8d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_dea66509-5134-47b0-b37b-cf488864e8c4\"},{\"crid\":\"1120-53-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a475f430-65f1-4b30-96a7-4ad855fb7d7d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6b217b4d-a40e-4be5-815e-1f844ba9a37e\"},{\"crid\":\"106-99-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c2ebdaaf-1cd5-46ae-a2fe-f2e33cffc455\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2b2739bc-d19d-459e-80e8-1972d6dba575\"},{\"crid\":\"107-01-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cde61822-fbcd-4ee3-b56d-b8f277b00000\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da5c0aad-293b-4e92-b478-b1ba58a2561b\"},{\"crid\":\"107-18-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d9f56185-3445-492b-9665-70edcf7541f1\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_218af3e1-6c1d-431c-a6fa-d6f1f86f85d2\"},{\"crid\":\"115-07-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f8650220-7b3d-4504-a2d7-b56c604b20f8\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_fdd1ce35-ff5c-40c1-9e82-e74e1bdf692c\"},{\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_008ee48a-78a8-4d7b-84e9-897d691cde24\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_af0747d5-2d94-4b80-a13a-dc99a3f4f9f5\"},{\"crid\":\"116-11-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_00e0e336-4c75-4d5c-9242-29b4c9aacbff\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b539ab22-e47e-4839-ac10-f7125f6b4f53\"},{\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1e7d8a91-2ea9-4c75-b9ed-8396f13573bb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e17a0cec-0662-4d21-ac38-19873ee1aef2\"},{\"crid\":\"123-72-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_51949c88-4c82-40d9-af73-b47f59fac77a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6eb657ab-5708-473c-acd6-f24b6cdda92c\"},{\"crid\":\"1191-95-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6eeda496-71c9-406d-985f-923c4c029862\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e93f7ba1-b372-48f1-b437-1bdc2f1f2362\"},{\"crid\":\"1333-74-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_70f5eb2c-e74c-4147-8bae-41dbeff35255\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_256bdc6d-375c-44b6-820b-b0d69916829e\"},{\"crid\":\"123-38-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9c351a4b-a9c9-42a5-aed2-c799c2f2ed20\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_5ea0bd40-ed69-4f0c-964f-03689c597b4f\"},{\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a3755d47-cd9a-4d9d-b50f-b3efd8bc70f7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f5723bca-a907-4126-8be9-d3b0b94257a5\"},{\"crid\":\"14493-06-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_afe27844-7010-49fa-9674-73be295bf11d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_a0fd97ff-7768-4eb5-9792-c2cf11be228e\"},{\"crid\":\"123-73-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b5642744-e411-4e74-8d70-08dbe1e39797\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_477567ee-57ea-48c6-9d56-4fbdbbdad0dd\"},{\"crid\":\"1191-99-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d444b030-3656-4410-8c7b-9312dc9961cb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b27993b7-4a11-4831-99d3-67289baf2dff\"},{\"crid\":\"12385-13-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_ea684392-7ac2-4519-8a72-ecb5ab768cf9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1123a1e9-22de-436b-99a1-afc32aca170e\"},{\"crid\":\"1333-74-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_ea684392-7ac2-4519-8a72-ecb5ab768cf9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1123a1e9-22de-436b-99a1-afc32aca170e\"},{\"crid\":\"13770-40-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_efd401ff-51bd-4fec-afb7-3650e92910a1\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7c240a02-d1c5-460a-a703-e16c4e0b13aa\"},{\"crid\":\"115-10-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f046412c-1c10-40f4-943c-d53b24c7f318\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_cc0e30d8-ecd6-4a21-8dc6-229b99f112e8\"},{\"crid\":\"74-85-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0021961d-cdf8-470a-b2d3-4c6faff43948\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_fc2d91db-ab3c-49e0-a43b-d49051f501b1\"},{\"crid\":\"74-82-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_1e7d8a91-2ea9-4c75-b9ed-8396f13573bb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e17a0cec-0662-4d21-ac38-19873ee1aef2\"},{\"crid\":\"71-23-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2caeb3cd-cc2d-4500-be2c-5cb5008cf144\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_38d39135-7aff-4411-8596-67edb5c08c24\"},{\"crid\":\"74-86-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2e8f9829-37ca-46ad-91bc-010f37835b4f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_92039ac2-80a0-45d3-83ab-3460cf8c371a\"},{\"crid\":\"7664-41-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2ed8ca6a-2ae6-4ff0-a5e0-f42c7d2515e6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_bceae5c9-5367-4702-b7ff-98e065bea3d6\"},{\"crid\":\"74-98-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3756e7eb-8648-4dfa-ac60-2242ea26a116\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_9b3682be-ba33-4889-b6fc-788f6d6349a7\"},{\"crid\":\"75-07-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_7bd49e3d-fb8b-4089-a8c7-2b13178773f9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d02e63c8-f83c-4a74-abd4-4b414a8925db\"},{\"crid\":\"75-56-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_81bbd0e3-2f04-4be6-881f-90471ddf7054\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6dcabf7e-fec4-481e-8066-4c598980d757\"},{\"crid\":\"75-19-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_8b7d26b6-1f33-4ca7-8d08-e5404fee4323\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d3478691-877a-4919-8043-948842541d49\"},{\"crid\":\"75-21-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_ac81baa1-aafd-4124-88d0-92a4df71d4b9\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_658b5cee-c4fe-476b-9a48-3abbaeee115c\"},{\"crid\":\"74-84-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b026cc7a-f7c6-4a16-97a1-a13f930d5e52\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d8728c67-ea17-4f1d-b92d-86ac6d32acfa\"},{\"crid\":\"75-28-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c74e26f9-75b8-4180-b793-f2cf4abaeccb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_00e5b245-1333-40c0-9723-7120d58c8547\"},{\"crid\":\"74-99-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d5024c74-8791-485a-a907-981390ae1bc6\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_00a4f486-881b-449c-8a69-aa3f51b55814\"},{\"crid\":\"70411-98-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e10df2bb-9798-4c72-828b-1cfd6b967a0a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_6197ae41-ba7b-4b7b-a3d9-0a04feb3f8ee\"},{\"crid\":\"71080-92-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f157c9d6-8656-4e1c-be52-314888caf917\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b211adff-54b4-4ac6-9c12-359ef7e8897a\"},{\"crid\":\"6700-78-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_050d6d0a-3c3e-4bbb-8e07-b156b3738b53\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da858b54-3c5f-42c8-93e9-7f03bbbbd115\"},{\"crid\":\"594-11-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0fab244a-e9bb-4143-bb39-76198ecf750d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_17856d2b-91bf-48a0-afb0-b90994d5b508\"},{\"crid\":\"6401-87-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_268196b3-6d26-48ed-af35-53d744e2d24e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2f11d04c-d26a-4076-804e-7a30b979a19b\"},{\"crid\":\"60731-11-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2c0cd6f1-ecaa-4c70-801d-7f43d3be89bb\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_0895c702-0f6a-4b85-b384-cfbfde72fce4\"},{\"crid\":\"67-64-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_353d4667-e25d-476a-bd74-5c34723c8ea3\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b2bbcf6b-3287-46cc-a461-ab489037d289\"},{\"crid\":\"6142-73-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_44698b0e-35ab-4328-8a0b-fcf32b6ff8f5\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_26d66d3e-e1c9-4fab-a679-6faa394b2e37\"},{\"crid\":\"64-17-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_63fefc5a-d49d-4841-a946-2cdb5f356983\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1af78f6e-8ceb-4c46-9f81-0e3a0109536f\"},{\"crid\":\"67-63-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6979a7f1-5c89-4b4b-b6d0-7d41ec56034a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_bcf2e9db-9182-4f4d-8ba2-d2e0b5205cfa\"},{\"crid\":\"67-56-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_bbfd8e83-6c58-4ff3-820c-2095d2ab6998\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_e660c08e-d5c1-44f1-a863-eeed09f6bb2e\"},{\"crid\":\"630-08-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c510ad6b-5fe7-4de3-ae7c-29c2497d70a4\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_3723f466-4dcd-4196-ae91-2efe04d14fa4\"},{\"crid\":\"689-97-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e0ddbbd5-c735-4f72-b939-1a5f1bf25e41\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d480627d-bd9c-423d-9b39-076755148c15\"},{\"crid\":\"67-56-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f157c9d6-8656-4e1c-be52-314888caf917\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b211adff-54b4-4ac6-9c12-359ef7e8897a\"},{\"crid\":\"624-64-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7231649-db01-467c-9355-44813832d221\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b03a9436-0551-42a6-8be3-ea274a29ced3\"},{\"crid\":\"67152-18-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f7ea6030-fdc6-4013-927a-5b3dcff4b85a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f001f496-1cb5-41b5-89cb-f29dfe09a4b6\"},{\"crid\":\"590-18-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_0ca50a74-c772-46d5-95d7-aece9e96d1e7\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_41301e6e-c647-4fd5-b117-fb21af4695d4\"},{\"crid\":\"5009-27-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_2fb70cfe-6707-4d6c-b977-bae913c4878f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_874cfeb4-6d9e-4063-84ed-7dec4aca7867\"},{\"crid\":\"56640-70-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5a165fec-28f2-4b69-8bab-75919ac50307\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2863e336-730f-441c-bfbd-c622c48532c0\"},{\"crid\":\"557-75-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5b5ac265-1a38-4dbf-9207-eb6b6739dd60\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\"},{\"crid\":\"4630-45-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_6ff0d6ca-b9a3-4c9a-89a8-26475f8e638e\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_77314bcb-19c9-4132-af20-65f9b985de81\"},{\"crid\":\"57642-95-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_71a329c2-eebd-4af0-b588-0e1ea5ba3b1b\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_21d82a0d-be24-44b1-ba88-d0bc06fdc21f\"},{\"crid\":\"51095-15-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_82216f39-6a17-4951-930f-8af65cdfa307\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_8bcb2fcb-9241-4ec5-b986-f6ca00a5dccd\"},{\"crid\":\"503-17-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9826b2e4-4e2f-49ae-861d-4a549316c748\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_35e6af0b-75ad-4f69-a361-9e7e1668035f\"},{\"crid\":\"59120-04-6\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_9f218b08-05c6-488f-ae8c-0aad7da57508\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_1c525427-9383-4ece-9931-91a8876c1878\"},{\"crid\":\"503-30-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c23597ce-5d31-425c-a4ae-ca1c8ba0e02f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_66ce90c0-0ee6-4580-b271-20e97cfc584b\"},{\"crid\":\"50-00-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cba9378c-b272-45b1-a614-52c80d11ba0f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_992f0128-1408-4299-843c-fc47dbee467c\"},{\"crid\":\"540-67-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cc6e4765-ba77-4595-bb07-995fb420f826\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_eb528e75-5ea1-48a6-913a-a0b54cbbdb55\"},{\"crid\":\"590-18-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_cde61822-fbcd-4ee3-b56d-b8f277b00000\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_da5c0aad-293b-4e92-b478-b1ba58a2561b\"},{\"crid\":\"590-19-2\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_e7976e7f-0170-4266-8120-fee624d1e4b3\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_76fc3d1d-5998-4611-a0d8-d645d0392400\"},{\"crid\":\"504-64-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f0959f5c-85a6-4eaa-95c6-0d5fb036410f\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_4e8942de-4e89-4f24-8aff-659004fc405a\"},{\"crid\":\"822-35-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_404f4b0a-1b43-4867-b0f8-1f9f62517eba\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_9baaa72d-13e0-4f01-b200-7f734530db7f\"},{\"crid\":\"9002-89-5\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5b5ac265-1a38-4dbf-9207-eb6b6739dd60\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_c2c4a2e9-8cb3-49f6-aa54-207501a641f9\"},{\"crid\":\"208-96-8\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_d26eb5b7-8dbd-4a2a-9800-c0dd86363893\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_44130cfd-7c51-4f62-80a9-57d3163b5794\"},{\"crid\":\"259-79-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_b7b97c21-4214-4a9e-9c24-5a7a9d4fca32\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_724af967-8938-44e6-aee8-74ad38941514\"},{\"crid\":\"275-51-4\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_c7a324f0-8071-42e5-80e4-576ffc3e7569\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_7b751a96-0987-476e-945a-67543df8d66a\"},{\"crid\":\"286-85-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_f9c30144-ec36-41cb-b537-7ed0bbe8e75a\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_223c314c-91bb-43ca-8911-235fb764eabb\"},{\"crid\":\"7440-44-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_30b7a0f3-4e6b-4a82-93ce-e13063b9235b\"},{\"crid\":\"7440-44-0\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_3230df3d-2767-452d-ba73-e34a67ad285c\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_f4f60a69-bb7b-4a04-a39a-f644dc7debc2\"},{\"crid\":\"7440-37-1\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_a359ce1b-a518-409f-a1f7-0df40f322a7d\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_98a3d744-8c53-4009-9e28-66e13ff502bf\"},{\"crid\":\"91-20-3\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_4fa4fdea-ed3d-4b0a-aee5-1f4e97dd2340\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_061bcb86-0a3a-4767-82dc-ac61b0429046\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_03edeef3-48c9-4e93-ac19-f4fa12a93b55\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_26994290-25ff-49dc-8070-0452e2e1bca0\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_2c8df7cd-a356-4303-8372-d498c7ea55d6\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_391bfe2f-0d33-4363-a63c-b31dc4cb2960\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_85949b34-1d08-4287-b2d2-5748933797ce\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_92a6b64b-f15b-44fb-927d-c9d5cdea3004\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b0f68534-8390-495d-9fcc-6e68775f6e64\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_d9cdf296-e241-4fa3-bc49-4e6bd9eb0925\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_ebb6698e-3b15-467e-bda8-7694f077f356\"},{\"crid\":\"124-38-9\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_65df9dc0-536f-4921-9c65-ced141fcf557\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_testID-111-111-111\"},{\"crid\":\"2122-48-7\",\"species\":\"http://www.theworldavatar.com/kb/ontospecies/Species_5a9700cc-3c8b-4e27-a7cc-298ca12fae40\",\"compchemspecies\":\"http://www.theworldavatar.com/kb/ontocompchem/G09_b8114c73-a226-4f1b-a727-8c1acda6e30f\"}]\r\n";
- query.result = "25";
- return format(query);
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/ServiceDescriptionIndexerTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/ServiceDescriptionIndexerTest.java
deleted file mode 100644
index cbce74793..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/ServiceDescriptionIndexerTest.java
+++ /dev/null
@@ -1,254 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.jena.ontology.OntModel;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.junit.Ignore;
-
-import junit.framework.TestCase;
-import uk.ac.cam.cares.jps.base.query.JenaHelper;
-import uk.ac.cam.cares.jps.base.query.fed.ServiceDescriptionIndexer.PostingsListElement;
-import uk.ac.cam.cares.jps.base.query.fed.ServiceDescriptionIndexer.ServiceDescriptionSummary;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-public class ServiceDescriptionIndexerTest extends TestCase {
-
- static final Logger LOGGER = LogManager.getLogger(ServiceDescriptionIndexerTest.class);
-
- private static ServiceDescriptionIndexer smallTestIndexer = null;
-
- private static String[] filenames = new String[] {
- "service_descr_local_ontospecies.rdf", //"service_descr_claudius_ontospecies.rdf",
- "service_descr_claudius_ontokin.rdf",
- "service_descr_citieskg_singaporeEPSG24500.rdf",
- "service_descr_claudius_sgbiodieselplants.rdf",
- "service_descr_local_doe_chemrxn.rdf",
- "service_descr_local_lab_1.rdf",
- "service_descr_local_lab_2.rdf",
- "service_descr_local_ontocompchemcloned.rdf", //"service_descr_claudius_ontocompchem.rdf"
- "service_descr_wikidata_small.rdf"
- };
-
- static String getServiceDescrPath(int index) {
- return "./src/test/resources/FedQuery/ServiceDescriptions/" + filenames[index];
- }
-
- public static ServiceDescriptionIndexer getSmallTestIndexer() {
- if (smallTestIndexer == null) {
- LOGGER.debug("initializing full indexer");
- smallTestIndexer = new ServiceDescriptionIndexer();
- for (int i=0; i map = indexer.getNumberOfClassTriples(model);
- assertEquals(14, map.keySet().size());
- long number = map.get("http://www.theworldavatar.com/ontology/ontospecies/OntoSpecies.owl#MolecularWeight");
- assertEquals(5641, number);
- }
-
- public void testGetNumberOfPropertyTriples() {
- ServiceDescriptionIndexer indexer = new ServiceDescriptionIndexer();
- String path = getServiceDescrPath(0);
- OntModel model = JenaHelper.createModel(path);
- Map map = indexer.getNumberOfPropertyTriples(model);
- assertEquals(34, map.keySet().size());
- long number = map.get("http://www.theworldavatar.com/ontology/ontospecies/OntoSpecies.owl#casRegistryID");
- assertEquals(9690, number);
- }
-
- public void testAddOneServiceDescription() {
- ServiceDescriptionIndexer indexer = new ServiceDescriptionIndexer();
- String path = getServiceDescrPath(0);
- indexer.addServiceDescription(path);
-
- List summaries = indexer.getSummaries();
- assertEquals(1, summaries.size());
- assertEquals(path, summaries.get(0).path);
-
- Set keys = indexer.getKeys();
- assertEquals(48, keys.size());
-
- for (String key : keys) {
- Set postingsList = indexer.getPostingsList(key);
- assertEquals(1, postingsList.size());
- }
- }
-
- public void testAddTwoServiceDescriptions() {
- ServiceDescriptionIndexer indexer = new ServiceDescriptionIndexer();
- // add first description
- String path1 = getServiceDescrPath(1);
- indexer.addServiceDescription(path1);
-
- Set keys = indexer.getKeys();
- assertEquals(183, keys.size());
-
- // add second description
- String path2 = getServiceDescrPath(0);
- indexer.addServiceDescription(path2);
-
- keys = indexer.getKeys();
- // 15 common keys in OntoKin and OntoSpecies datasets
- // 216 = 183 + 48 - 15
- assertEquals(216 , keys.size());
-
- List summaries = indexer.getSummaries();
- assertEquals(2, summaries.size());
- assertEquals(path1, summaries.get(0).path);
- assertEquals(path2, summaries.get(1).path);
-
- // assert 15 common keys
- List commonKeys = new ArrayList();
- for (String key : keys) {
- Set postingsList = indexer.getPostingsList(key);
- if (postingsList.size() == 2) {
- commonKeys.add(key);
- }
- }
- assertEquals(15, commonKeys.size());
- LOGGER.debug("common keys (relations, types) between ontospecies and ontokin= " + commonKeys);
- assertTrue(commonKeys.contains("http://www.theworldavatar.com/ontology/ontokin/OntoKin.owl#GasPhase"));
- }
-
- public void testFillSummary() {
- ServiceDescriptionIndexer indexer = new ServiceDescriptionIndexer();
- ServiceDescriptionIndexer.ServiceDescriptionSummary summary = indexer.createSummary();
- String path = getServiceDescrPath(0);
- OntModel model = JenaHelper.createModel(path);
- indexer.fillSummary(summary, path, model);
- assertEquals(491495l, (long) summary.ntriples);
- assertEquals(134368l, (long) summary.nentities);
- assertEquals(34l, (long) summary.nproperties);
- assertEquals(14l, (long) summary.nclasses);
- assertEquals("http://localhost:8080/blazegraph/namespace/ontospecies/sparql", summary.endpointURL);
- }
-
- public void testConjunctiveQuery_1_FourKeysOntoSpeciesOntoKin() {
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
-
- // both service descriptions contain "GasPhase"
- String[] keys = new String[] {
- "http://www.theworldavatar.com/ontology/ontokin/OntoKin.owl#GasPhase"
- };
- List list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(2, list.size());
-
- // only the first service description contains "hasPhase"
- keys = new String[] {
- "http://www.theworldavatar.com/ontology/ontospecies/OntoSpecies.owl#hasPhase"
- };
- list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(1, list.size());
-
- // only the first service description contains the following four keys
- keys = new String[] {
- "http://www.theworldavatar.com/ontology/ontokin/OntoKin.owl#GasPhase",
- "http://www.theworldavatar.com/ontology/ontospecies/OntoSpecies.owl#hasPhase",
- "http://www.theworldavatar.com/ontology/ontokin/OntoKin.owl#Element",
- "http://www.w3.org/2000/01/rdf-schema#label"
- };
- list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(1, list.size());
- assertEquals(getServiceDescrPath(0), list.get(0).path);
- }
-
- public void testConjunctiveQuery_2_BiodieselCitiesKG() {
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
-
- // keys for the first subquery concerning Biodiesel plant in Singapore
- String[] keys = new String[] {
- "http://www.theworldavatar.com/ontology/ontocape/chemical_process_system/CPS_performance/economic_performance.owl#isCostOfPlantItem",
- "http://www.theworldavatar.com/ontology/ontocape/upper_level/system.owl#hasValue",
- "http://www.theworldavatar.com/ontology/ontocape/upper_level/system.owl#numericalValue"
- };
- List list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(1, list.size());
- assertEquals(getServiceDescrPath(3), list.get(0).path);
- }
-
- public void testConjunctiveQuery_3_BiodieselCitiesKG() {
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
-
- // keys for the second subquery concerning Biodiesel plant in Singapore
- String[] keys = new String[] {
- "http://www.theworldavatar.com/ontology/ontocitygml/citieskg/OntoCityGML.owl#attrName",
- "http://www.theworldavatar.com/ontology/ontocitygml/citieskg/OntoCityGML.owl#uriVal",
- "http://www.theworldavatar.com/ontology/ontocitygml/citieskg/OntoCityGML.owl#cityObjectId",
- "http://www.theworldavatar.com/ontology/ontocitygml/citieskg/OntoCityGML.owl#EnvelopeType",
- // the following predicates are Bigdata specific and used for its geo:search service
- // they don't appear explicitely as part of triples of any dataset
- // and their triple counts are thus zero
- //"http://www.bigdata.com/rdf/geospatial#predicate",
- //"http://www.bigdata.com/rdf/geospatial#searchDatatype",
- //"http://www.bigdata.com/rdf/geospatial#customFields",
- //"http://www.bigdata.com/rdf/geospatial#customFieldsLowerBounds",
- //"http://www.bigdata.com/rdf/geospatial#customFieldsUpperBounds"
- };
- List list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(1, list.size());
- assertEquals(getServiceDescrPath(2), list.get(0).path);
- }
-
- public void testConjunctiveQuery_4_Automated_Lab() {
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
-
- // keys for the first subquery concerning labs
- String[] keys = new String[] {
- "https://github.com/cambridge-cares/TheWorldAvatar/blob/develop/JPS_Ontology/ontology/ontorxn/OntoRxn.owl#hasYield",
- "http://www.ontology-of-units-of-measure.org/resource/om-2/hasValue",
- "http://www.ontology-of-units-of-measure.org/resource/om-2/hasNumericalValue",
- "http://www.ontology-of-units-of-measure.org/resource/om-2/hasUnit"
- };
- List list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(2, list.size());
- String firstPath = list.get(0).path;
- String secondPath = list.get(1).path;
- if (firstPath.contains("lab_1")) {
- assertEquals(getServiceDescrPath(5), firstPath);
- assertEquals(getServiceDescrPath(6), secondPath);
- } else {
- assertEquals(getServiceDescrPath(6), firstPath);
- assertEquals(getServiceDescrPath(5), secondPath);
- }
- }
-
- public void testConjunctiveQuery_5_Automated_Lab() {
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
-
- // keys for the second subquery concerning DoE
- String[] keys = new String[] {
- "https://github.com/cambridge-cares/TheWorldAvatar/blob/develop/JPS_Ontology/ontology/ontodoe/OntoDoE.owl#utilisesHistoricalData",
- "https://github.com/cambridge-cares/TheWorldAvatar/blob/develop/JPS_Ontology/ontology/ontodoe/OntoDoE.owl#refersTo"
- };
- List list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(1, list.size());
- assertEquals(getServiceDescrPath(4), list.get(0).path);
- }
-
- public void testOntoCompChemHasUniqueSpecies () {
- ServiceDescriptionIndexer indexer = getSmallTestIndexer();
-
- // keys for the second subquery concerning DoE
- String[] keys = new String[] {
- "http://www.theworldavatar.com/ontology/ontocompchem/ontocompchem.owl#hasUniqueSpecies"
- };
- List list = indexer.conjunctiveQuery(Arrays.asList(keys));
- assertEquals(1, list.size());
- assertEquals(getServiceDescrPath(7), list.get(0).path);
-
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/SimpleMultiIndexTest.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/SimpleMultiIndexTest.java
deleted file mode 100644
index ee61ce11a..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/SimpleMultiIndexTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import static org.junit.jupiter.api.Assertions.assertIterableEquals;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.junit.Ignore;
-
-import junit.framework.TestCase;
-
-@Ignore("The code this tests is not used and takes a long time to run.")
-public class SimpleMultiIndexTest extends TestCase {
-
- public void testOneIndexWithThreePostingLists() {
- SimpleMultiIndex index = new SimpleMultiIndex();
- index.add("properties", "rdfs:label", 12);
- index.add("properties", "rdfs:label", 5);
- index.add("properties", "foaf:friend", 50);
- index.add("properties", "skos:broader", 500);
- index.add("properties", "rdfs:label", 4);
- index.add("properties", "foaf:friend", 40);
- index.add("properties", "skos:broader", 400);
- index.add("properties", "rdfs:label", 9);
-
- Map> propIndex = index.getIndex("properties");
- assertEquals(3, propIndex.keySet().size());
- Set postingsList = index.getPostingsList("properties", "rdfs:label");
- assertEquals(4, postingsList.size());
- // check that the postings list is sorted by id
- List expected = Arrays.asList( new Integer[] {4, 5, 9, 12});
- assertIterableEquals(expected, postingsList);
- }
-}
diff --git a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/TripleStoreProvider.java b/src/test/java/uk/ac/cam/cares/jps/base/query/fed/TripleStoreProvider.java
deleted file mode 100644
index e292bc3a4..000000000
--- a/src/test/java/uk/ac/cam/cares/jps/base/query/fed/TripleStoreProvider.java
+++ /dev/null
@@ -1,491 +0,0 @@
-package uk.ac.cam.cares.jps.base.query.fed;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.testcontainers.containers.ContainerLaunchException;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.images.builder.ImageFromDockerfile;
-import org.testcontainers.utility.DockerImageName;
-
-import com.github.dockerjava.api.command.InspectContainerResponse;
-
-import uk.ac.cam.cares.jps.base.config.AgentLocator;
-import uk.ac.cam.cares.jps.base.exception.JPSRuntimeException;
-import uk.ac.cam.cares.jps.base.http.Http;
-import uk.ac.cam.cares.jps.base.query.RemoteStoreClient;
-import uk.ac.cam.cares.jps.base.util.FileUtil;
-
-/**
- * This class creates multiple Docker test containers on-the-fly.
- * Each container hosts a triple store including SPARQL endpoints and RDF data.
- * The created test environment can be used for integration tests for federated queries.
- * It allows to test various engines and configurations for executing federated SPARQL queries.
- *
- * The class uses the org.testcontainers framework which allows to create containers easily.
- * The framework also provides
- *
- * communication between containers .
- * However, it is not straight-forward to resolve a SPARQL endpoint URL
- * which may appear in a SPARQL 1.1 SERVICE clause or in a SPARQL service description.
- * This may lead to HTTP 4xx errors if a request for a SPARQL endpoint is send
- * from one container to another. The class solves this problem by converting localhost
- * IP addresses into Docker IP addresses.
- * For instance, the endpoint URL for Blazegraph has usually the following form:
- *
- * http://localhost:8080/blazegraph/namespace/lab_1/sparql
- *
- * where http://localhost:8080/blazegraph is the service URL and lab_1 is the namespace (dataset). The conversion would
- * replace localhost:8080 in the endpoint URL e.g. by 172.17.0.3:8080 which can be used internally for requests.
- *
- * The test environment can be extended by further containers (triple stores) and datasets by
- * extending the method {@link #init}. The test environment is created as singleton and the initialization is
- * started as soon as {@link #getInstance()} is called.
- */
-public class TripleStoreProvider {
-
- /**
- * A helper class that contains a created container and the SPARQL service URL.
- *
- */
- private class ContainerInfo {
-
- GenericContainer> container = null;
- String serviceUrl = null;
-
- public ContainerInfo(GenericContainer> container, String serviceUrl) {
- this.container = container;
- this.serviceUrl = serviceUrl;
- }
- }
-
- /**
- * A helper class that allows to construct the complete endpoint URL, e.g.
- *
- * http://localhost:54168/rdf4j-server/repositories/rdf4j_empty
- *
- * In this example, http://localhost:54168/rdf4j-server is the service URL
- * and /repositories/rdf4j_empty is the path.
- */
- private class EndpointInfo {
-
- String containerId = null;
- String path = null;
-
- public EndpointInfo(String containerId, String path) {
- this.containerId = containerId;
- this.path = path;
- }
- }
-
- static final Logger LOGGER = LogManager.getLogger(TripleStoreProvider.class);
- public final static String DIR_TEST_RESOURCES = "./src/test/resources";
-
- // container IDs
- public final static String ID_BLAZEGRAPH_1 = "blazegraph_1";
- public final static String ID_BLAZEGRAPH_2 = "blazegraph_2";
- public final static String ID_RDF4J_1 = "rdf4j_1";
-
- // namespaces (i.e. datasets, repos, etc.)
- public final static String NAMESPACE_LAB_1 = "lab_1";
- public final static String NAMESPACE_LAB_2 = "lab_2";
- public final static String NAMESPACE_DOE_CHEMRXN = "doe_chemrxn";
- public final static String NAMESPACE_WIKIDATA_SMALL = "wikidata_small";
- public final static String NAMESPACE_BLAZEGRAPH_EMTPY = "blazegraph_empty";
- public final static String NAMESPACE_ONTOSPECIES = "ontospecies";
- public final static String NAMESPACE_ONTOCOMPCHEM = "ontocompchem";
- public static final String NAMESPACE_RDF4J_EMPTY = "rdf4j_empty";
-
- private static TripleStoreProvider instance = null;
- /**
- * maps a container id to a container info object containing the created test container and the service URL
- */
- private Map id2container = new HashMap();
- /**
- * maps the namespace to an endpoint info object that allows to identify the triple store (container) and
- * to construct the full endpoint URL
- */
- private Map namespace2endpoint = new HashMap();
- /**
- * host2host is used to convert host addresses;
- * conversion may necessary e.g. in a test environment with Docker containers where Blazegraph servers return endpoint URLs
- * with wrong host addresses (such as "localhost:8080")
- */
- private Map host2host = new HashMap();
-
- private TripleStoreProvider() {
- }
-
- public synchronized static TripleStoreProvider getInstance() {
- if (instance == null) {
- instance = new TripleStoreProvider();
- instance.init();
- }
- return instance;
- }
-
- /**
- * Creates a container for a given image. If the image is not found in the local repository,
- * it is downloaded once.
- *
- * @param imageName
- * @return
- */
- private GenericContainer> createContainerByImage(String imageName) {
- return new GenericContainer<>(DockerImageName.parse(imageName));
- }
-
- /**
- * Builds an image with a Blazegraph server by using the same commands as in the
- * corresponding CMCL Docker file and returns a container for this image.
- *
- * @param imageName if null image will be deleted after test; if not null the image can be reused when restarting the test
- * @return
- */
- private GenericContainer> createBlazegraphContainerByBuilder(String imageName) {
- ImageFromDockerfile dockerfile = null;
- if (imageName == null) {
- dockerfile = new ImageFromDockerfile();
- } else {
- // the image is not deleted after test; this speeds up the setup when the test is restarted
- dockerfile = new ImageFromDockerfile(imageName, false);
- }
-
- dockerfile = dockerfile
- .withDockerfileFromBuilder(builder -> builder
- .from("tomcat:9.0-jre11-openjdk-slim-buster")
- .add("https://github.com/blazegraph/database/releases/download/BLAZEGRAPH_2_1_6_RC/blazegraph.war", "/usr/local/tomcat/webapps/blazegraph.war")
- .workDir("/data")
- .build());
-
- return new GenericContainer<>(dockerfile);
- }
-
- /**
- * Creates a container with a Blazegraph server.
- *
- * @param port exposed container port
- * @return
- */
- private GenericContainer> createBlazegraphTripleStore(int port) {
- String imageName = "ghcr.io/cambridge-cares/blazegraph:1.2.0";
- GenericContainer> tripleStore = null;
- try {
- tripleStore = createContainerByImage(imageName).withExposedPorts(port);
- tripleStore.start();
- LOGGER.debug("Docker image was started, name=" + imageName + ", port=" + port);
- } catch (ContainerLaunchException exc) {
- LOGGER.debug("Docker image was not found, name=" + imageName + ", port=" + port);
- tripleStore = createBlazegraphContainerByBuilder(imageName).withExposedPorts(port);
- tripleStore.start();
- LOGGER.debug("Docker image was created and started, name=" + imageName + ", port=" + port);
- }
- return tripleStore;
- }
-
- /**
- * Creates a container with an RDF4j server and workbench.
- *
- * @param port exposed container port
- * @return
- */
- private GenericContainer> createRDF4JServer(int port) {
- String imageName = "eclipse/rdf4j-workbench:3.7.7";
- GenericContainer> tripleStore = createContainerByImage(imageName).withExposedPorts(port);
- tripleStore.start();
- LOGGER.debug("Docker image was started, name=" + imageName + ", port=" + port);
- return tripleStore;
- }
-
- private String getLocalhost(GenericContainer> container) {
- return container.getHost() + ":" + container.getFirstMappedPort();
- }
-
- /**
- * Returns the "IP:port" where IP it the IP address internally used for the container
- * in the default Docker network.
- *
- * @param container
- * @param port
- * @return
- */
- private String getDockerIp(GenericContainer> container, int port) {
- InspectContainerResponse info = container.getContainerInfo();
- String ipAddress = info.getNetworkSettings().getIpAddress();
- return ipAddress + ":" + port;
- }
-
- /**
- * Returns the service URL for a given dataset (namespace)
- *
- * @param namespace
- * @return
- */
- private static String getServiceUrlByNamespace(String namespace) {
- String id = getInstance().namespace2endpoint.get(namespace).containerId;
- return getInstance().id2container.get(id).serviceUrl;
- }
-
- public static String getServiceUrl(String containerId) {
- return getInstance().id2container.get(containerId).serviceUrl;
- }
-
- public static String getEndpointUrl(String serviceUrl, String namespace) {
- String path = getInstance().namespace2endpoint.get(namespace).path;
- return serviceUrl + path;
- }
-
- public static String getEndpointUrl(String namespace) {
- String serviceUrl = getServiceUrlByNamespace(namespace);
- return getEndpointUrl(serviceUrl, namespace);
- }
-
- /**
- * Returns the full endpoint URL for a given namespace where the IP address
- * is replaced by the IP address internally used by Docker.
- *
- * @param namespace
- * @return
- */
- public static String getDockerEndpointUrl(String namespace) {
- String serviceUrl = getServiceUrlByNamespace(namespace);
- Map host2host = getInstance().host2host;
- for (String host : host2host.keySet()) {
- if (serviceUrl.contains(host)) {
- String newhost = host2host.get(host);
- serviceUrl = serviceUrl.replace(host, newhost);
- break;
- }
- }
- return getEndpointUrl(serviceUrl, namespace);
- }
-
- public static Map getHostConversionMap() {
- return getInstance().host2host;
- }
-
- /**
- * Reads the default properties required for creating a new dataset on Blazegraph.
- *
- * @return default properties
- */
- public static Properties readStandardNamespacePropertiesForBlazegraph() {
- try (InputStream input = new FileInputStream("./src/test/resources/FedQuery/RWStore.properties")) {
- Properties props = new Properties();
- props.load(input);
- return props;
- } catch (IOException e) {
- throw new JPSRuntimeException(e.getMessage(), e);
- }
- }
-
- /**
- * Uploads the triples from a collection of files to the specified endpoint.
- *
- * @param endpointUrl
- * @param files
- * @return
- */
- public static int uploadFiles(String endpointUrl, Collection files) {
- RemoteStoreClient storeClient = new RemoteStoreClient(endpointUrl, endpointUrl);
- //int count = 0;
- //LOGGER.debug("uploading files to endpointURL=" + endpointUrl + ", number of files=" + files.size());
- for (File file : files) {
- //count += 1;
- //LOGGER.debug("uploading file (" + count + "/" + files.size() + ")=" + file.getName());
- storeClient.uploadFile(file);
- }
- LOGGER.debug("finished uploading files to endpointUrl=" + endpointUrl, ", number of files=" + files.size());
- return files.size();
- }
-
- /**
- * If a directory is given, all contained files are added to the returned collection.
- *
- * @param dataDirOrFiles a mixed list of file and directory paths
- * @return
- */
- public static Collection getFiles(String... dataDirOrFiles) {
- Collection