Making Sense of Text and Data
Provide consistent unified access to data across different systems by using the flexible and semantically precise structure of the knowledge graph model
Interlink your organization’s data and content by using knowledge graph powered natural language processing with our Content Management solutions.
Implement a Connected Inventory of enterprise data assets, based on a knowledge graph, to get business insights about the current status and trends, risk and opportunities, based on a holistic interrelated view of all enterprise assets.
Quick and easy discovery in clinical trials, medical coding of patients’ records, advanced drug safety analytics, knowledge graph powered drug discovery, regulatory intelligence and many more
Make better sense of enterprise data and assets for competitive investment market intelligence, efficient connected inventory management, enhanced regulatory compliance and more
Connect and model industry systems and processes for deeper data-driven insights in:
Improve engagement, discoverability and personalized recommendations for Financial and Business Media, Market Intelligence and Investment Information Agencies, Science, Technology and Medicine Publishers, etc.
Unlock the potential for new intelligent public services and applications for Government, Defence Intelligence, etc.
Connect and improve the insights from your customer, product, delivery, and location data. Gain a deeper understanding of the relationships between products and your consumers’ intent.
Link diverse data, index it for semantic search and enrich it via text analysis to build big knowledge graphs.
Organize your information and documents into enterprise knowledge graphs and make your data management and analytics work in synergy.
Integrate and evaluate any text analysis service on the market against your own ground truth data in a user friendly way.
Turn strings to things with Ontotext’s free application for automating the conversion of messy string data into a knowledge graph.
GraphDB Q&As
TESTED ON: GraphDB 9.10
Query optimization can be quite problematic. Performance depends on a lot of factors and it’s difficult to give a one-size-fits-all response. We’ll try to give a few helpful pointers.
Inference vs querying. As a forward-chaining database, GraphDB materializes triples at load time. If you know you have a complex statement pattern that you will be querying often, why not precompute it with inference?
Extra indexes. Enable the context index if you are using a lot of named graphs. Add the predicate index if you have many different predicates or often use wildcated predicates.
Limiting data sizes. There is an inverse correlation between query speed and data size (including inferred triples). Querying can be compared to searching for a labeled item in a shop. It’s a lot easier to find that item if the shop size is smaller.
Limiting response set sizes. It’s easier to return 100 responses than it is to return 10,000. This is useful when doing quick exploratory queries. You can make them more representative by using the SAMPLE function.
Response batching. Return your data in batches. This is exactly what the workbench SPARQL UI does – returning the first 1,000 results, then the next and so on. This is controlled by two query parameters, limit and offset.
Binding set control. Each query has different bindings. For example: ?s ?p ?o has three unbound variables and would return the whole database. ?s ex:predicate ?o has two variables and so on. Keep the number of unbound variables as low as possible.
Redundant operations. Very often, you may have filters that never execute, or you may use the MINUS keyword instead of FILTER NOT EXISTS (the difference here is that MINUS computes all the triples, then excludes them, FILTER NOT EXISTS cuts off the moment a binding is observed). Reduce those redundant operations – and if you don’t know that they are redundant, check the explain and measurement plans, as explained below.
Explain plan and onto:measure. The explain plan shows you how the engine would evaluate your query, with an estimated number of operations (complexity) per each step. If you use the named graph FROM onto:measure, the database would actually execute the query as well, and give you timings for each separate step of the execution process.
More resources. Especially if you are being capped by RAM or CPU, or seeing a lot of slow disk reads, simply giving more processing power to the database and moving it to a quick SSD may resolve your problem. You can explore this via the JMX interface and your own OS’ monitoring tools.
Did this help you solve your issue? Your opinion is important not only to us but also to your peers.
Ontotext answers questions from our GraphDB users. You can also check out the frequently asked questions on general topics about GraphDB. Or you can get quick answers on technical questions from the community as well as Ontotext experts using the graphdb tag on stack overflow.
In this blog, we answer questions from our GraphDB users. This question is about where can one deploy GraphDB and what are some best practices
In this blog, we answer questions from our GraphDB users. This question is about the the isolation levels GraphDB supports..
In this blog, we answer questions from our GraphDB users. This question is about the most important hardware attribute for optimizing GraphDB performance.
In this blog, we answer questions from our GraphDB users. This question is about the best way to store the triples’ history in the database
In this blog, we answer questions from our GraphDB users. This question is about using nested repositories to introduce logical separation to GraphDB
In this blog, we answer questions from our GraphDB users. This question is about fine-tuning securing on a GraphDB endpoint.
In this blog, we answer questions from our GraphDB users. This question is about the different ways to deploy GraphDB.
In this blog, we answer questions from our GraphDB users. This question is about the best ways to integrate JSON data in GraphDB.
In this feature, we answer questions from our GraphDB users. This question is about how about GraphDB security workds, especially for Automated APIs
In this feature, we answer questions from our GraphDB users. This question is about if Kafka is used only for exporting or importing data or we can use for both
In this feature, we answer questions from our GraphDB users. Today’s question is about how to change the configuration of connector if you’ve made a mistake when creating it
In this feature, we answer questions from our GraphDB users. Today’s question is about whether there are administration differences to operating a cluster in GraphDB 10
In this feature, we answer questions from our GraphDB users. Today’s question is if one can scale GraphDB.
In this feature, we answer questions from our GraphDB users. Today’s question is if one can change inference at runtime.
In this feature, we answer questions from our GraphDB users. Today’s question is about how to mark statements in a query as explicit or implicit.
In this feature, we answer questions from our GraphDB users. Today’s question is if one can use the standard Onotp configurations.
In this feature, we answer questions from our GraphDB users. Today’s question us whether to use a SPARQL Repository or a HTTP Repository.
In this feature, we answer questions from our GraphDB users. Today’s question is about the Log4j vulnerability for different versions of GraphDB.
In this feature, we answer questions from our GraphDB users. Today, we answer 12 very short question from GraphDB users.
In this feature, we answer questions from our GraphDB users. Today’s question is about GraphDB logs and how to monitor for problems.
In this feature, we answer questions from our GraphDB users. Today’s question is about how users can optimize their queries.
In this feature, we answer questions from our GraphDB users. Today’s question is about the difference between SPARQL and FedX federation.
In this feature, we answer questions from our GraphDB users. Today’s question is about what the “Insufficient Free Heap memory” error means.
In this feature, we answer questions from our GraphDB users. Today’s question is about how to optimize inference.
In this feature, we answer questions from our GraphDB users. Today’s question is about whether RDF-star is the best choice for reification.
In this feature, we answer questions from our GraphDB users. Today’s question is about if GraphDB’s inference works with virtualized repositories.
In this feature, we answer questions from our GraphDB users. Today’s question is about how SHACL works on GraphDB.
In this feature, we answer questions from our GraphDB users. Today’s question is about if GraphDB supports ABAC.
In this feature, we answer questions from our GraphDB users. Today’s question is about getting errors about GraphDB being “unable to find valid certification path to requested target”.
In this feature on our blog, we answer questions from our GraphDB users. Today’s question is about GraphDB security and access control.
In this feature on our blog, we answer questions from our GraphDB users. Today’s question is about GraphDB import speed.
In this feature on our blog, we answer questions from our GraphDB users. Today’s question is about GraphDB security.
In this feature, we answer questions from our GraphDB users. Today’s question is about the number of repos in GraphDB and accessing the data.