User Guide for Sesame

Updated for Sesame release 1.2.3

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in GNU Free Documentation License.


Table of Contents

Preface: Open, Sesame
1. Introduction: what is Sesame?
1.1. The Sesame library
1.2. The Sesame Server
1.3. Repositories and Inferencing
1.4. An Overview of the Sesame Architecture
2. Installing Sesame
2.1. Library installation
2.2. Server installation
2.2.1. Required software
2.2.2. Installation under Tomcat 4 or 5
2.2.3. Testing Your Installation
2.2.4. Installation under Tomcat 3
2.2.5. Installation under Oracle Container for Java (OC4J)
2.2.6. Installation under other servlet containers
2.3. More on the DBMS
2.3.1. Notes on PostgreSQL
2.3.2. Notes on MySQL
2.3.3. Notes on Oracle
2.4. Java servlet container
3. Server administration
3.1. Changing the system configuration
3.2. Loading a system configuration
3.3. Storing a system configuration
3.4. Setting the admin password
3.5. Adding and removing user accounts
3.6. Configuring repositories
3.6.1. Editing an existing repository configuration
3.6.2. Adding new repositories
3.6.3. Removing repositories
4. Advanced repository configuration
4.1. Basic setup
4.1.1. The repository id and title
4.1.2. The Sail stack
4.2. Native Sail Indexing
4.3. Custom inferencing
4.3.1. XML syntax
4.3.2. Example
4.3.3. Configuration
4.3.4. Notes and Hints
4.4. Change Tracking
5. The web interface
5.1. Logging in
5.2. Adding data to a repository
6. The SeRQL query language (revision 1.2)
6.1. Revisions
6.1.1. revision 1.1
6.1.2. revision 1.2
6.2. Introduction
6.3. URIs, literals and variables
6.3.1. Variables
6.3.2. URIs
6.3.3. Literals
6.3.4. Blank Nodes (R1.2)
6.4. Path expressions
6.4.1. Basic path expressions
6.4.2. Path expression short cuts
6.4.3. Optional path expressions
6.5. Select- and construct queries
6.6. Select queries
6.7. Construct queries
6.8. The WHERE clause
6.8.1. Boolean constants
6.8.2. Value (in)equality
6.8.3. Numerical comparisons
6.8.4. The LIKE operator (R1.2)
6.8.5. isResource() and isLiteral()
6.8.6. isURI() and isBNode() (R1.2)
6.8.7. AND, OR, NOT
6.8.8. Nested WHERE clauses (R1.2)
6.9. Other functions
6.9.1. label(), lang() and datatype()
6.9.2. namespace() and localName() (R1.2)
6.10. The LIMIT and OFFSET clauses
6.11. The USING NAMESPACE clause
6.12. Built-in predicates
6.13. Set combinatory operations
6.13.1. UNION (R1.2)
6.13.2. INTERSECT (R1.2)
6.13.3. MINUS (R1.2)
6.14. NULL values
6.15. Query Nesting
6.15.1. The IN operator (R1.2)
6.15.2. ANY and ALL (R1.2)
6.15.3. EXISTS (R1.2)
6.16. Example SeRQL queries
6.16.1. Query 1
6.16.2. Query 2
6.16.3. Query 3
6.17. Comments/feedback
6.18. References
6.19. SeRQL grammar
7. The Sesame API
7.1. An Overview of the Sesame Architecture
7.2. The Repository API
7.2.1. Accessing a repository
7.2.2. Querying a repository
7.2.3. Adding RDF data to a repository
7.3. The Graph API
7.3.1. Creating an empty Graph and adding statements to it
7.3.2. Adding/removing a Graph to/from a repository
7.3.3. Creating a Graph for an existing repository
7.3.4. Creating a graph using graph queries
7.3.5. Using graphs and graph queries for updates
8. Communication protocols
8.1. Communicating over HTTP
8.1.1. Logging in
8.1.2. Logging out
8.1.3. Requesting a list of available repositories
8.1.4. Evaluating a SeRQL-select, RQL or RDQL query
8.1.5. Evaluating a SeRQL-construct query
8.1.6. Extracting RDF from a repository
8.1.7. Uploading data to a repository
8.1.8. Adding data from the web to a repository
8.1.9. Clearing a repository
8.1.10. Removing statements
9. Frequently Asked Questions
9.1. General Questions
9.1.1. I've got a Sesame-related question, where can I get an answer?
9.1.2. Something goes wrong when I use Sesame, what do I do?
9.1.3. How do I report a bug?
9.1.4. Why doesn't Sesame support $FEATURE?
9.1.5. I need $FEATURE right now!
9.1.6. Can you keep me informed of any Sesame-related news?
9.1.7. Is this user guide the only documentation for Sesame?
9.2. Troubleshooting
9.2.1. I get a "HTTP error 500" message in the toolbar frame
9.2.2. I get a "HTTP error 500" message in the main frame
9.2.3. I get "error while adding new triples: Invalid byte 2 of 3-byte UTF-8 sequence"
9.2.4. I get a warning: "Unable to set namespace prefix 'foo' for namespace ..."
9.2.5. My in-memory repository is very slow and/or runs out of memory
9.2.6. On upload I get an error "java.lang.IllegalStateException: Post too large"
9.2.7. Can not evaluate directSubClassOf on a non-inferencing repository
A. GNU Free Documentation License
A.1. PREAMBLE
A.2. APPLICABILITY AND DEFINITIONS
A.3. VERBATIM COPYING
A.4. COPYING IN QUANTITY
A.5. MODIFICATIONS
A.6. COMBINING DOCUMENTS
A.7. COLLECTIONS OF DOCUMENTS
A.8. AGGREGATION WITH INDEPENDENT WORKS
A.9. TRANSLATION
A.10. TERMINATION
A.11. FUTURE REVISIONS OF THIS LICENSE
A.12. How to use this License for your documents

List of Figures

1.1. Sesame Server
1.2. The Sesame architecture
3.1. Configure Sesame!
3.2. Loading the configuration from a running server
3.3. Send a configuration to a running server
3.4. The Server tab
3.5. The "Users" configuration tab
3.6. The "Repository" tab
3.7. The "Repository details" window
3.8. The "access rights" tab
5.1. The Sesame entry page
5.2. The Sesame login page
5.3. The Sesame entry page when logged in
5.4. The repository function screen
6.1. A basic path expression
6.2. Multi-value nodes
6.3. Multi-value nodes in a longer path expression
6.4. Branches in a path expression
6.5. Branches in a longer path expression
6.6. A reification path expression
6.7. Path expression for query 1
6.8. Path expression for query 2
6.9. Path expression for query 3
7.1. The Sesame architecture

List of Tables

6.1. Default namespaces
8.1. Parameters for login
8.2. Parameters for evaluateTableQuery
8.3. Response formats for SeRQL-select, RQL and RDQL queries
8.4. Parameters for evaluateGraphQuery
8.5. RDF encodings for SeRQL-construct queries
8.6. Parameters for extractRDF
8.7. Parameters for uploadData
8.8. Parameters for uploadData
8.9. Parameters for clearRepository
8.10. Parameters for removeStatements