ClioPatria source-code roadmap
This interface runs PlDoc, the SWI-Prolog literate-programming interface on top of ClioPatria. You can use the top-left menu to browse files in a given directory and the top-right menu to search for predicates.
The main directories in ClioPatria are listed below. Note that you can get an overview of the Prolog files in them by selecting a directory from the top-left menu.
- api
- Provides HTTP handlers that return JSON or XML that is typically not for human consumption.
- applications
- Provides HTTP handlers for (typically) HTML pages for human consumption.
- user
- User-handling code: manage users, OpenID services, preferences, etc.
- client
- Provides (Sesame compatible) client code. This is not part of ClioPatria, but is often used in similar contexts. Note that a SPARQL client is part of the SWI-Prolog semweb package.
- components
- DCG-rules that produce HTML. These are reusable components to build applications.
- config-enabled
-
This directory holds (small) files that configure the server.
Example and template files are in config-available. See
config-
enabled/README.txt
and config-available/README.txt
. - entailment
- Entailment modules provide an alternative definition of rdf/3 that included triples entailed by reasoning. The various entailment modules provide a different amount of reasoning.
- lib
-
Reusable code which we envision might become part of the SWI-Prolog
libraries. This directory is made available through the alias
library
and files in it can thus be loaded using e.g.,:- use_module(library(semweb/rdf_abstract)).
- ontologies
- Some core-ontologies that are used in nearly many domains where ClioPatria is being deployed. Note that you can load these ontologies using the menu-item File/Load base ontology.
- rdfql
- Implementation for RDF query languages: SPARQL and SeRQL. The provided functionality is typically only used through the HTTP-API.
- skin
-
Defined skins. Notable
skins/cliopatria.pl
defines the (hookable) overall ClioPatria page-layout. - test
- Test-framework, notably to verify SPARQL compliance.
- web
- Web-pages used by the server: CSS, Icons, JavaScript and YUI files.
Source files in the top-directory
- cliopatria.pl
- Loads the required components of the system. This notably excludes development features. See run.pl.
- hooks.pl
- Provides declarations for hooks into ClioPatria. Hooks are multifile predicates that can be defined to change the behaviour of some part of ClioPatria.
- parms.pl
- Central definition of file-paths, web-paths and settings. Should normally not be changed. Application-specific settings go into settings.db.
- run.pl[.in]
- Demo startup-file. Copy and edit to build your application.
- setup.pl / configure
- Localization script to create <file> from <file>.in. Used to create run.pl from run.pl.in. Can be used to localise your new application startup.
Other toplevel files
The files below are located in the directory from which ClioPatria is started. They are initially absent and may be deleted to restore the initial state.
- users.db
- The user-database. It is formatted in Prolog. Passwords are hashed using crypt/2. The default is to use (portable) Unix MD5-hashes. Administration is done through the web-interface.
- settings.db
- Contains settings that do not have their default value. The settings can be changed through the web-interface when logged-in with administrative privileges. The file run.pl[.in] shows how application defaults can be changed.
- RDF-store
- Directory that holds the persistent RDF store.