Frequently asked questions

Q: What operating systems can we install the database management system on?

A: The database management system us currently developed and tested on Windows®, OpenBSD, Mac OS X, Ubuntu, Fedora, and Mandriva. Other POSIX-compatable operating systems will be added by popular customer request.

Q: Is the database management system difficult to install?

A: No. An cross-platform installer with a graphical user interface installs all software components with little input from the user.

Q: Is the database management system only software or does it include hardware too?

A: We only sell the datbase server software and do not bundle our software with hardware.

Q: Do you have a hosted service for your database server?

A: No. You install our databaser server software in-house on a server in your computer network and access it from there.

Q: Are the ODBC and JDBC drivers cross-platform?

A: Yes. Currently the drivers are developed and tested on Windows®, OpenBSD, Mac OS X, Ubuntu, Fedora, and Mandriva. Other POSIX-compatable operating systems will be added by customer request.

Q: What programming languages can you use with the database server?

A: Any programming language or toolkit that support ODBC or JDBC drivers, some of these are .NET, Java, Python, PHP. In addition any programming language or toolkit that can access a SPARQL Protocol HTTP endpoint. In other words, almost any professional programming language works with the database server.

Q: Does the database management system come with a management console?

A: Yes.

Q: What other software do I need?

A: The computers that run the management console requires the Java runtime software. The servers that run the database servers does not need any additional software installed.

Q: How is the database persistant?

A: The database server fully supports ACID (atomicity, consistency, isolation, durability) to guarantee that the database transactions are processed reliably.

Q: What have you done to make the database server fast?

A: All components in the database server and its drivers have been programmed from scratch so that we could optimize them in terms of their performance. We developed the database server in C++ since this programming language has the most potential for optimalization, there are also some inline assembly at key locations in the programming code. Some more components that makes our database management system very fast:

  • In-process query optimizer; determines the most efficient way to execute a query.
  • In-proces memory manager; for much faster memory allocation and deallocation than the operating system can provide.
  • In-process multithreaded HTTP server; for much faster SPARQL Protocol endpoint than through a standard out-of-process web server.
  • In-process multithreaded TCP/IP-listener with thread pooling; for efficient thread managment.
  • In-process directly coded lexical analyzer; for efficient query parsing.
  • Snapshot isolation; for fast transaction processing.
  • B+ trees; for fast indexing
  • In-process stream-oriented XML parser; for fast RDF/XML parsing.
  • A RDF data model; for no data model abstraction layers which results in faster processing of data.

Q: Why do you have a query optimizer?

A: The query optimizer is the component of a database management system that attempts to determine the most efficient way to execute a query. The optimizer considers the possible query plans for a given input query, and attempts to determine which of those plans will be the most efficient, thus making it easier to write efficient queries.

Q: How do I perform create, read, update and delete (CRUD) operations on the database server?

A: You write SPARQL and SPARUL (also called SPARQL/Update) queries. These declerative query and update languages the W3 standards and drafts, and can be thought of like "SQL" for RDF databases.

Q: In what programming language is the database server written?

A: C++

Q: How does the ODBC and JDBC drivers communicate with the database server?

A: Over TCP/IP, usually on port 1263.

Q: What international standards do you support?

A: Primeraly we fully support RDF/XML, RDFS, SPARQL, SPARQL Protocol, and the SPARQL/Update 1.1 Working draft.

Q: Do you extend SPARQL?

A: Yes. We espesially saw the need of defining custom stored procedures and extra functions.

Q: Will there be a free version?

A: Yes, but in what extent is to be announced at a later date. What we can say at this time is that the product will be free for educational purposes.

Q: Is the database server multithreaded?

A: Yes.

Q: Can we run several instances of the database server on one server?

A: Yes. Each instance will be accessible over a custom TCP/IP port. Each instance will run in its own process context.

Q: Can a database server have several databases?

A: Yes.

Q: What kind of concurrency control mechanism have you implemented?

A: Snapshot Isolation multiversion concurrency control (MVCC).

Q: What kind of indexing algorithms have you implemented.

A: Clustered B+ trees.

Q: What kind of database system data isolation level do you provide?

A: Serializable, through Snapshot Isolation.

Q: Do we need to install any middleware?

A: No. Unlike other RDF databases, our is a pure database server and does not require a middleware layer to function.

Q: What kind of data model do you use?

A: We persist all data in a RDF data model.

Q: How can you prove that you are faster than your competitors?

A: We plan to release benchmarks where we measure our database server against our competitors. We will most likely use the so-called Berlin SPARQL Benchmarks for this purpose.

Q: Can I use SQL to query the database server?

A: No, SQL is a query language for relational databases. To query our database server you use SPARQL and SPARQL/Update.

Q: What kind of data interchange formats do you support?

A: RDF/XML and N-Triples. Please also note the ODBC and JDBC drivers returns sets and bags (multisets).