Skip to content
Snippets Groups Projects
Select Git revision
  • easy-rdf
  • 2.x default
  • try
  • 8.x-1.x
  • ISAICP-3576
  • deprecated-code
  • empty-module
  • 2.0.0-alpha19
  • 2.0.0-alpha18
  • 2.0.0-alpha17
  • 2.0.0-alpha16
  • 2.0.0-alpha15
  • 2.0.0-alpha14
  • 2.0.0-alpha13
  • 2.0.0-alpha12
  • 2.0.0-alpha11
  • 2.0.0-alpha10
  • 2.0.0-alpha9
  • 2.0.0-alpha8
  • 2.0.0-alpha7
  • 2.0.0-alpha6
  • 2.0.0-alpha5
  • 2.0.0-alpha4
  • 2.0.0-alpha3
  • 2.0.0-alpha2
  • 2.0.0-alpha1
  • 8.x-1.0-alpha10
27 results

sparql_entity_storage

  • Clone with SSH
  • Clone with HTTPS
  • Claudiu Cristea's avatar
    Claudiu Cristea authored
    2d01e364
    History

    Description

    The SPARQL Entity Storage module offers a SPARQL backend for Drupal entities. The module provides an entity storage and query. Simply enabling the module, doesn't bring any user visible new feature, the module is a prerequisite for other modules that are defining Drupal entities that requires a SPARQL triple-store backend. A very simple example of such an entity is the sparql_test entity provided in the SPARQL Test testing module, included in this package (see the SparqlTest class). A more sophisticated module that uses the SPARQL backend, and runs already in the wild, is the RDF Entity module. The entity provided there (rdf_entity) can be used as it is, can be extended or, simply, used as an example when designing a new entity type.

    Getting started

    A working SPARQL endpoint is needed. You could either use a remote SPARQL endpoint, or you could set one up locally. Virtuoso is one of the more robust triple store solutions available, but any solution would do.

    @todo Create an example module that uses http://dbpedia.org/sparql

    Setting up Virtuoso

    On a Debian based system

    apt-cache search "^virtuoso" will show you available packages.

    $ apt-get install virtuoso-opensource
    $ service virtuoso-opensource-6.1 start

    (Set the password during installation)

    On a MacOS system

    • Install Homebrew (see http://brew.sh)
    • $ brew install virtuoso
    • Start Virtuoso
      # The version might be differnet than 7.2.4.2.
      $ cd /usr/local/Cellar/virtuoso/7.2.4.2/var/lib/virtuoso/db
      $ virtuoso-t -f &
    • Administer at http://localhost:8890/conductor/. Login with dba/dba.

    On an Arch Linux based system

    Go to http://localhost:8890/conductor/ and login in with: dba - yourpass.

    • Grant 'update' rights to the SPARQL user:
    • System admin -> Users -> SPARQL (edit)
    • Account roles -> Put SPARQL_UPDATE in 'Selected'

    Connecting Drupal to the SPARQL endpoint

    The following example demonstrates the use with a local Virtuoso installation. To connect Drupal to the endpoint, the db connection should be added to the settings.php file.

    $databases['sparql_default']['sparql'] = [
      'prefix' => '',
      'host' => '127.0.0.1',
      'port' => '8890',
      'namespace' => 'Drupal\\Driver\\Database\\sparql',
      'driver' => 'sparql',
      // Optional. This is actually the endpoint path. If omitted, 'sparql' will
      // be used.
      'database' => 'data/endpoint',
      // If the connection to the endpoint should be HTTPS secured. If omitted,
      // FALSE is assumed.
      'https' => FALSE,
    ];

    Content translation

    Entities using SPARQL storage support basic content translations. This is still WIP.

    Note: If content translations are enabled, the 'langcode' property must be mapped, otherwise entity reference fields will not store information.