FAQ

General

What is OWLIM?

OWLIM is the former name of GraphDB, which originally came from the term “OWL In Memory” and was fitting for what later became OWLIM-Lite. However, OWLIM-SE used a transactional, index-based file-storage layer where “In Memory” was no longer appropriate. Nevertheless, the name stuck and it was rarely asked where it came from.

Why a solid-state drive and not a hard-disk one?

We recommend using enterprise-grade SSDs whenever possible as they provide a significantly faster database performance compared to hard-disk drives.

Unlike relational databases, a semantic database needs to compute the inferred closure for inserted and deleted statements. This involves making highly unpredictable joins using statements anywhere in its indexes. Despite utilizing paging structures as best as possible, a large number of disk seeks can be expected and SSDs perform far better than HDDs in such a task.

Is GraphDB Jena-compatible?

Yes, GraphDB is compatible with Jena 2.7.3 with a built-in adapter. For more information, see Using GraphDB with Jena.

Configuration

How do I find out the exact version number of GraphDB?

The major/minor version and patch number are part of the GraphDB distribution .zip file name. They can also be seen at the bottom of the GraphDB Workbench home page, together with the RDF4J, Connectors, and Plugin API’s versions.

A second option is to run the graphdb -v startup script command if you are running GraphDB as a standalone server (without Workbench). It will also return the build number of the distribution.

Another option is to run the following DESCRIBE query in the Workbench SPARQL editor:

DESCRIBE <http://www.ontotext.com/SYSINFO> FROM <http://www.ontotext.com/SYSINFO>

It returns pseudo-triples providing information on various GraphDB states, including the number of triples (total and explicit), storage space (used and free), commits (total and whether there are any active ones), the repository signature, and the build number of the software.

What is a repository?

A repository is essentially a single GraphDB database. Multiple repositories can be active at the same time and they are isolated from each other.

How do I create a repository?

Go to Setup ‣ Repositories, and follow the instructions.

How do I retrieve repository configurations?

To see what configuration data is stored in a GraphDB repository, go to Repositories and use the Download repository configuration as Turtle icon.

_images/Repository_configuration.png

Then open the result file named repositoryname-config.ttl, which contains this information.

What is a location?

A location is either a local (to the Workbench installation) directory where your repositories will be stored or a remote instance of GraphDB. You can have multiple attached locations but only a single location can be active at a given time.

How do I attach a location?

Go to Setup ‣ Repositories. Click Attach remote location. For a location on the same machine, provide the absolute path name to a directory, and for a remote location, provide a URL through which the server running the Workbench can see the remote GraphDB instance.

How do I create a GraphDB EE cluster without knowing JMX?

Create some master and worker repositories first (in a production cluster each master and worker should be in a separate GraphDB instance). Go to Setup ‣ Cluster management, where you will see a visual representation of repositories and each cluster. Drag and drop workers onto masters to connect them.

RDF & SPARQL

What does it mean when an IRI starts with urn:rdf4j:triple:?

When RDF-star (formerly RDF*) embedded triples are serialized in formats (both RDF and query results) that do not support RDF-star, they are serialized as special IRIs starting with urn:rdf4j:triple: followed by Base64 URL-safe encoding of the N-Triples serialization of the triple. This is controlled by a boolean writer setting, and is ON by default. The setting is ignored by writers that support RDF-star natively.

Such special IRIs are converted back to triples on parsing. This is controlled by a boolean parser setting, and is ON by default. It is respected by all parsers, including those with native RDF-star support.

See RDF-star and SPARQL-star.

Security

Does GraphDB have any security vulnerabilities?

Every software potentially exposes security vulnerabilities, mainly when it depends on several third-party libraries like Spring, Apache Tomcat, JavaScript frameworks, etc. The GraphDB team does everything possible to constantly fix and discover new vulnerabilities using OWASP dependency check, Trivy, and Snyk packages. In addition, every GraphDB release is checked for any publicly known vulnerabilities and all suspected issues with score High are investigated.

Does the Log4Shell issue (CVE-2021-44228) affect GraphDB?

No, it is not affected. All GraphDB editions and plugins between 6.x and 9.x use Logback, but not Apache Log4j 2; thus, our users are safe in terms of CVE-2021-44228 (aka Log4Shell).

Troubleshooting

Why can’t I use custom rule file (.pie) - an exception occurred?

To use custom rule files, GraphDB must be running in a JVM that has access to the Java compiler. The easiest way to do this is to use the Java runtime from a Java Development Kit (JDK).

Why can’t I open GraphDB in MacOS?

If you receive an error message saying that MacOS cannot open GraphDB since it cannot be checked for malicious software, this is because the security settings of your Mac are configured to only allow apps from the App Store.

GraphDB is a developer-signed software, so in order to install it, you need to modify these settings to allow apps from both the App Store and identified developers.

You can find detailed assistance on how to configure them in the Apple support pages.