Skip to content
This repository has been archived by the owner on Aug 25, 2022. It is now read-only.

Commit

Permalink
Issue #17: Refactor the rest of the code.
Browse files Browse the repository at this point in the history
  • Loading branch information
claudiu-cristea committed May 7, 2019
1 parent 6547ecf commit a1007f2
Show file tree
Hide file tree
Showing 117 changed files with 344 additions and 8,361 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/composer.lock
/vendor/
99 changes: 0 additions & 99 deletions API.md

This file was deleted.

79 changes: 7 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,9 @@
[![Build Status](https://travis-ci.org/ec-europa/rdf_entity.svg?branch=8.x-1.x)](https://travis-ci.org/ec-europa/rdf_entity)

# Getting started
A working Sparql endpoint is needed to use the rdf entity module.
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](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 Mac OS X 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/](http://localhost:8890/conductor/). Login
with dba/dba.

### On an Arch Linux based system
- Install the
[Virtuoso AUR package](https://aur.archlinux.org/packages/virtuoso/).
- `# systemctl start virtuoso`

Go to [http://localhost:8890/conductor/](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
Rdf entities 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.
Mainly, [RDF Entity](https://www.drupal.org/project/rdf_entity) provides an
entity type (`rdf_entity`) that uses the
[SPARQL](https://en.wikipedia.org/wiki/SPARQL) backend provided by [SPARQL
Entity Storage](https://www.drupal.org/project/sparql_entity_storage) module.
The entity type can be used as it is, can be extended or, simply, used as a good
use case of the [SPARQL Entity
Storage](https://www.drupal.org/project/sparql_entity_storage) module.
54 changes: 41 additions & 13 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,45 @@
{
"name": "drupal/rdf_entity",
"description": "This module allows you to leverage the semantic web by storing and retrieving content directly from an RDF data store using the SPARQL RDF query language.",
"type": "drupal-module",
"homepage": "https://drupal.org/project/rdf_entity",
"support": {
"issues": "https://drupal.org/project/issues/rdf_entity",
"source": "https://cgit.drupalcode.org/rdf_entity"
"name": "drupal/rdf_entity",
"description": "This module allows you to leverage the semantic web by storing and retrieving content directly from an RDF data store using the SPARQL RDF query language.",
"type": "drupal-module",
"homepage": "https://drupal.org/project/rdf_entity",
"support": {
"issues": "https://drupal.org/project/issues/rdf_entity",
"source": "https://cgit.drupalcode.org/rdf_entity"
},
"license": "GPL-2.0+",
"minimum-stability": "dev",
"require": {
"php": ">=7.1",
"drupal/sparql_entity_storage": "dev-master"
},
"require-dev": {
"minimaxir/big-list-of-naughty-strings": "dev-master"
},
"autoload": {
"classmap": [
"web/modules/custom/joinup_sparql/driver/joinup_sparql/Connection.php",
]
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/ec-europa/sparql_entity_storage.git"
},
"license": "GPL-2.0+",
"require": {
"php": ">=7.1",
"drupal/sparql_entity_storage": "dev-master",
"easyrdf/easyrdf": "0.10.0-alpha.1 as 0.9.2",
"ml/json-ld": "^1.0"
{
"type": "composer",
"url": "https://packages.drupal.org/8"
},
{
"type": "package",
"package": {
"name": "minimaxir/big-list-of-naughty-strings",
"version": "dev-master",
"dist": {
"url": "https://github.com/minimaxir/big-list-of-naughty-strings/archive/master.zip",
"type": "zip"
}
}
}
]
}
7 changes: 0 additions & 7 deletions config/install/rdf_entity.graph.default.yml

This file was deleted.

103 changes: 0 additions & 103 deletions config/schema/rdf_entity.schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,106 +16,3 @@ rdf_entity.rdfentity.*:
help:
type: text
label: 'Explanation or submission guidelines'

field.storage.*.*.third_party.rdf_entity:
type: mapping
mapping:
'mapping':
type: sequence
label: 'Column'
sequence:
type: mapping
mapping:
predicate:
type: string
label: 'Predicate'
format:
type: string
label: 'Value format'

field.widget.settings.auto_uri:
type: mapping
label: 'Settings regarding the uri field.'
mapping:
prefix:
type: string
label: 'Behaviour'

field.widget.settings.datetime_create_update:
type: mapping
label: 'Behaviour of the field'
mapping:
behaviour:
type: string
label: 'Behaviour'

field.formatter.third_party.joinup:
type: mapping
label: 'Theme settings for Joinup project.'
mapping:
template_suggestion:
type: string

rdf_entity.graph.*:
type: config_entity
label: 'RDF entity graph'
mapping:
id:
type: string
label: ID
weight:
type: integer
label: Weight
name:
type: label
label: Name
description:
type: text
label: Description
entity_types:
type: sequence
nullable: true
label: 'Entity types'
sequence:
type: string
label: 'Entity type'

rdf_entity.mapping.*:
type: config_entity
label: 'Stores the mapping between Drupal bundle settings and RDF representation'
mapping:
id:
type: string
label: ID
entity_type_id:
type: string
label: 'Referred entity type'
bundle:
type: string
label: 'Referred bundle'
rdf_type:
type: string
label: 'RDF type mapping'
graph:
type: sequence
sequence:
type: string
label: 'The mapping of a graph definition to a graph URI.'
base_fields_mapping:
type: sequence
label: 'The base fields mapping'
sequence:
type: sequence
label: 'Column'
sequence:
type: mapping
mapping:
predicate:
type: string
label: 'Predicate'
format:
type: string
label: 'Value format'
entity_id_plugin:
type: string
label: 'The plugin that generates the entity ID'
4 changes: 2 additions & 2 deletions modules/rdf_draft/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ version. The default graph can be viewed in the default view.
### RDF graphs storage

Graphs are handled by the `GraphHandler` service which is injected in the Query
and the RdfEntitySparqlStorage classes. There is a number of methods offered to
and the SparqlEntityStorage classes. There is a number of methods offered to
handle the graphs. There are three categories of graph variables in the
following priority sequence:
1. Target graph: This is saved in the service and is meant to be used in order
Expand Down Expand Up @@ -146,7 +146,7 @@ is deleted _only_ from the graph defined in the entity itself. To completely
delete an entity and all its versions, you can run something like

```
/** @var \Drupal\rdf_entity\Entity\RdfEntitySparqlStorage $storage */
/** @var \Drupal\sparql_entity_storage\SparqlEntityStorage $storage */
$storage = \Drupal::service('entity_type.manager')->getStorage('rdf_entity');
// Remove any solutions that were created.
foreach ($this->solutions as $solution) {
Expand Down
Loading

0 comments on commit a1007f2

Please sign in to comment.