Results
24.06.2020
dcat 8.x-1.x-dev ::
dcat_export/tests/src/Unit/DcatExportServiceTest.php
* Easy Rdf graph object.
*
* @var \EasyRdf_Graph
*/
protected $graph;
/**
* {@inheritdoc}
*/
$this->dcatExportService = $this->getDcatExportService();
$this->graph = new \EasyRdf_Graph();
}
/**
* {@inheritdoc}
*/
protected function tearDown() { 24.06.2020
dcat 8.x-1.x-dev ::
dcat_export/src/Controller/DcatExportController.php
* @return \Symfony\Component\HttpFoundation\Response * * @throws \EasyRdf_Exception * Thrown if EasyRdf fails in exporting data. * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException * Thrown if the entity type doesn't exist. * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * Thrown if the storage handler couldn't be loaded. * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * Thrown when the output format is not found.
24.06.2020
dcat 8.x-1.x-dev ::
dcat_export/src/Event/AddResourceEvent.php
use Drupal\Core\Entity\ContentEntityInterface;
use Symfony\Component\EventDispatcher\Event;
use EasyRdf_Resource;
/**
* Provides an add-resource event for event listeners.
*/
class AddResourceEvent extends Event {
/** * EasyRdf resource object. * * @var \EasyRdf_Resource */ protected $resource; /** * Entity object. *
* Constructs an add-resource event object.
*
* @param \EasyRdf_Resource $resource
* The EasyRdf resource, based on the given entity.
* @param \Drupal\Core\Entity\ContentEntityInterface $entity
* The entity that is processed into the resource.
*/
public function __construct(EasyRdf_Resource $resource, ContentEntityInterface $entity) {
$this->resource = $resource;
$this->entity = $entity;
}
/**
* Gets the resource object.
* object is a reference. There is no need to set the object after altering.
*
* @return \EasyRdf_Resource
* The EasyRdf resource, based on the entity in this event object.
*/
public function getResource() {
return $this->resource;
}
/**
*
* @return \Drupal\Core\Entity\ContentEntityInterface
* The EasyRdf resource, based on the entity in this event object.
*/
public function getEntity() {
return $this->entity;
}
} 24.06.2020
dcat 8.x-1.x-dev ::
dcat_export/src/Event/SerializeGraphEvent.php
use Symfony\Component\EventDispatcher\Event;
use EasyRdf_Graph;
/**
* Provides an serialize-graph event for event listeners.
*/
class SerializeGraphEvent extends Event {
/** * EasyRdf graph object. * * @var \EasyRdf_Graph */ protected $graph; /** * Constructs a configuration event object. *
* Constructs a configuration event object.
*
* @param \EasyRdf_Graph $graph
* The EasyRdf resource, based on the given entity.
*/
public function __construct(EasyRdf_Graph $graph) {
$this->graph = $graph;
}
/**
* Gets the graph object.
*
* after altering.
*
* @return \EasyRdf_Graph
* The EasyRdf graph.
*/
public function getGraph() {
return $this->graph;
}
} 24.06.2020
dcat 8.x-1.x-dev ::
dcat_export/src/DcatExportService.php
use Drupal\dcat_export\Event\SerializeGraphEvent; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use EasyRdf_Graph; use EasyRdf_Resource; use EasyRdf_Format; use InvalidArgumentException; /** * Class DcatExportService. * * @package Drupal\dcat_export
/** * EasyRdf graph object. * * @var \EasyRdf_Graph */ protected $graph; /** * DcatExportService constructor. *
$this->entityTypeManager = $entity_type_manager;
$this->eventDispatcher = $event_dispatcher;
$this->graph = new EasyRdf_Graph();
$this->checkConfiguration();
// Set namespaces according to the DCAT-AP standard.
\EasyRdf_Namespace::set('adms', 'http://www.w3.org/ns/adms#');
\EasyRdf_Namespace::set('dct', 'http://purl.org/dc/terms/');
\EasyRdf_Namespace::delete('dcterms');
\EasyRdf_Namespace::delete('dc');
}
/**
* Export DCAT entities as serialised data.
*
* @param string $format
* The exported dcat string.
*
* @throws \EasyRdf_Exception
* Thrown if EasyRdf fails in exporting data.
* @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
* Thrown if the entity type doesn't exist.
* @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
* Thrown if the storage handler couldn't be loaded.
*/
public function export($format) {
$format = $this->sanitizeFormat($format);
$rdf_format = EasyRdf_Format::getFormat($format);
// Allow other modules to alter the resource being added to the graph.
$event = new SerializeGraphEvent($this->graph);
$this->eventDispatcher->dispatch('dcat_export.graph.serialize', $event);
return $this->graph->serialise($rdf_format);
* Add a value to a resource, only when the value is not empty. * * @param \EasyRdf_Resource $resource * The resource to add the value to. * @param string $property * The property name. * @param mixed $values * Value as string or array. * @param string $lang
* The number of values added.
*/
public function addLiteral(EasyRdf_Resource $resource, $property, $values, $lang = NULL) {
if ($values) {
return $resource->addLiteral($property, $values, $lang);
}
return 0;
}
* Add a resource to another resource without throwing errors when empty.
*
* @param \EasyRdf_Resource $resource1
* The resource to add another resource to.
* @param string $property
* The property name.
* @param string|\EasyRdf_Resource $resource2
* The resource to be the value of the property.
*
* @return int
* The number of values added (1 or 0).
*/
public function addResourceSilently(EasyRdf_Resource $resource1, $property, $resource2) {
if ($resource2) {
return $resource1->addResource($property, $resource2);
}
return 0;
}
* Add resources to the graph and return them as objects. * * @param \EasyRdf_Graph $graph * The RDF graph. * @param \Drupal\Core\Entity\ContentEntityInterface[] $entities * The entities of the same type to transform to RDF resources. * @param string|null $type * Set type of resource. If not set, the type will be based on entity type. *
* Set type of resource. If not set, the type will be based on entity type.
*
* @return \EasyRdf_Resource[]
*
* @throws \InvalidArgumentException
* When a resource type has not supporting method.
*/
protected function addResources(EasyRdf_Graph $graph, array $entities, $type = NULL) {
$resources = [];
if (!$entities) {
return $resources;
}
* Add catalog information to the RDF graph. * * @param \EasyRdf_Graph $graph * The graph object. * * @return \EasyRdf_Resource * * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException * Thrown if the entity type doesn't exist. * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException * Thrown if the storage handler couldn't be loaded. */
* Thrown if the storage handler couldn't be loaded.
*/
protected function addCatalogResource(EasyRdf_Graph $graph) {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($this->config->get('catalog_uri'), ['dcat:Catalog']);
$this->addLiteral($resource, 'dct:title', $this->config->get('catalog_title'));
$this->addLiteral($resource, 'dct:description', $this->config->get('catalog_description'));
$this->addLiteral($resource, 'dct:issued', new \DateTime((string) $this->config->get('catalog_issued')));
$this->addLiteral($resource, 'dct:modified', new \DateTime($this->lastModified()));
$this->addResourceSilently($resource, 'foaf:homepage', $this->createCustomResource(
* Add dataset information to the RDF graph.
*
* @param \EasyRdf_Graph $graph
* The graph object.
* @param \Drupal\Core\Entity\ContentEntityInterface $dataset
* The dataset entity.
*
* @return \EasyRdf_Resource
* The created RDF resource.
*
* @throws \InvalidArgumentException
* When a resource type is not supported.
*/
protected function addDatasetResource(EasyRdf_Graph $graph, ContentEntityInterface $dataset) {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($this->getDatasetUrl($dataset), ['dcat:Dataset']);
$this->addLiteral($resource, 'dct:title', $dataset->label());
$this->addLiteral($resource, 'dct:description', $dataset->get('description')->getString());
$this->addLiteral($resource, 'dct:identifier', $dataset->uuid());
$this->addResourceSilently($resource,'dct:accrualPeriodicity', $dataset->get('accrual_periodicity')->getString());
$this->addLiteral($resource, 'dct:issued', new \DateTime($dataset->get('issued')->getString()));
* Add vcard information to the RDF graph.
*
* @param \EasyRdf_Graph $graph
* The graph object.
* @param \Drupal\Core\Entity\ContentEntityInterface $vcard
* The vcard entity.
*
* @return \EasyRdf_Resource
*/
protected function addVcardResource(EasyRdf_Graph $graph, ContentEntityInterface $vcard) {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($vcard->get('external_id')->getString(), ['vcard:Kind']);
$this->addLiteral($resource, 'vcard:hasFN', $vcard->label());
switch ($vcard->bundle()) {
case 'individual':
$this->addLiteral($resource, 'vcard:hasNickname', $vcard->get('nickname')->getString());
* Add agent information to the RDF graph.
*
* @param \EasyRdf_Graph $graph
* The graph object.
* @param \Drupal\Core\Entity\ContentEntityInterface $agent
* The agent entity.
*
* @return \EasyRdf_Resource
*/
protected function addAgentResource(EasyRdf_Graph $graph, ContentEntityInterface $agent) {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($agent->get('external_id')->getString(), ['foaf:Agent']);
$this->addLiteral($resource, 'foaf:name', $agent->label());
return $resource;
}
* Add distribution information to the RDF graph.
*
* @param \EasyRdf_Graph $graph
* The graph object.
* @param \Drupal\Core\Entity\ContentEntityInterface $distribution
* The distribution entity.
*
* @return \EasyRdf_Resource
*/
protected function addDistributionResource(EasyRdf_Graph $graph, ContentEntityInterface $distribution) {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($distribution->get('external_id')->getString(), ['dcat:Distribution']);
$this->addResourceSilently($resource, 'dcat:accessURL', $distribution->get('access_url')->getString());
$this->addResourceSilently($resource, 'dcat:downloadURL', $distribution->get('download_url')->getString());
$this->addLiteral($resource,'dct:title', $distribution->label());
$this->addLiteral($resource, 'dct:description', $distribution->get('description')->getString());
$this->addLiteral($resource, 'dcat:mediaType', $distribution->get('media_type')->getString());
* Add theme information to the RDF graph.
*
* @param \EasyRdf_Graph $graph
* The graph object.
* @param \Drupal\Core\Entity\ContentEntityInterface $theme
* The theme entity.
*
* @return \EasyRdf_Resource
*/
protected function addThemeResource(EasyRdf_Graph $graph, ContentEntityInterface $theme) {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($theme->get('external_id')->getString(), ['dcat:Theme']);
$this->addLiteral($resource, 'dct:label', $theme->label());
return $resource;
}
* Add a custom resource to the RDF graph. * * @param \EasyRdf_Graph $graph * The graph object. * @param string $type * The type of the resource. * @param string $uri * The URI of the resource. * @param array $properties
* ]
*
* @return \EasyRdf_Resource|false
* The RDF resource object or false if not able to create it.
*/
protected function createCustomResource(EasyRdf_Graph $graph, $type, $uri, array $properties = []) {
try {
/** @var \EasyRdf_Resource $resource */
$resource = $graph->resource($uri, [$type]);
// Merge in defaults.
$properties += [
'literals' => [],
'resources' => [],
/** * Set the format in right form suited for the EasyRdf library. * * @param string $format * The output format. * * @return string * The sanitized format.
24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/tests/src/Unit/Plugin/migrate/source/DcatFeedSourceTest.php
use Drupal\Tests\UnitTestCase; use Drupal\dcat_import\Plugin\migrate\source\DcatFeedSource; use EasyRdf_Resource; use EasyRdf_Literal; use EasyRdf_Literal_Integer; use EasyRdf_Literal_DateTime; use DateTime; /** * @coversDefaultClass \Drupal\dcat_import\Plugin\migrate\source\DcatFeedSource * @group dcat_import */
*/
public function providerGetSingleValue() {
$resource = new EasyRdf_Resource('http://example.com');
$literal = new EasyRdf_Literal('abcde');
$literal_integer = new EasyRdf_Literal_Integer(9);
$date = new DateTime();
$literal_date = new EasyRdf_Literal_DateTime($date);
return [
['http://example.com', $resource],
['abcde', $literal],
[9, $literal_integer],
[$date->format('c'), $literal_date], 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/tests/src/Unit/Plugin/DcatGraphTest.php
use Drupal\Tests\UnitTestCase;
use Drupal\dcat_import\Plugin\DcatGraph;
use EasyRdf_Resource;
use EasyRdf_Http_Exception;
/**
* @coversDefaultClass \Drupal\dcat_import\Plugin\DcatGraph
* @group dcat_import
*/
class DcatGraphTest extends UnitTestCase {
*/
public function providerCompareResults() {
$rescource_a = new EasyRdf_Resource('http://example.com/A');
$rescource_b = new EasyRdf_Resource('http://example.com/B');
return [
[TRUE, [$rescource_a], [$rescource_a]],
[FALSE, [$rescource_a], [$rescource_b]],
[
FALSE, [
$count++;
if ($count == 3) {
throw new EasyRdf_Http_Exception('404 Test', 404);
}
}));
$this->assertSame(4, $graph->load());
}
/**
/**
* Test load() exceptions other than EasyRdf_Http_Exception are still thrown.
*
* @expectedException \Exception
*/
public function testLoadException() {
$graph = $this->mockedGraph('load');
/**
* Test load() EasyRdf_Http_Exception 404 should throw when there is no data.
*
* @expectedException EasyRdf_Http_Exception
*/
public function testLoadException404() {
$graph = $this->mockedGraph('load');
$graph->expects($this->once())
->method('loadSingle')
->method('loadSingle')
->will($this->returnCallback(function() {
throw new EasyRdf_Http_Exception('404 Test', 404);
}));
$graph->load();
}
/**
* Test load() only EasyRdf_Http_Exception 404 should be catched.
*
* @expectedException EasyRdf_Http_Exception
*/
public function testLoadException500() {
$graph = $this->mockedGraph('load');
$graph->expects($this->once())
->method('loadSingle')
->method('loadSingle')
->will($this->returnCallback(function() {
throw new EasyRdf_Http_Exception('500 Test', 500);
}));
$graph->load();
}
} 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/AgentDcatFeedSource.php
namespace Drupal\dcat_import\Plugin\migrate\source; use EasyRdf_Resource; use EasyRdf_Graph; /** * Agent feed source. * * @MigrateSource( * id = "dcat.agent"
* {@inheritdoc}
*/
public function getDcatData(EasyRdf_Graph $graph) {
$publishers = array();
$datasets = $graph->allOfType('dcat:Dataset');
/** @var EasyRdf_Resource $dataset */
foreach ($datasets as $dataset) {
$publishers = array_merge($publishers, $dataset->allResources('dc:publisher'));
}
// Remove duplicates.
$uris = array();
// Remove duplicates.
$uris = array();
/** @var EasyRdf_Resource $publisher */
foreach ($publishers as $key => $publisher) {
$uri = $publisher->getUri();
if (isset($uris[$uri])) {
unset($publishers[$key]);
}
else {
$data = array();
/** @var EasyRdf_Resource $agent */
foreach ($this->getSourceData() as $agent) {
$data[] = array(
'uri' => $agent->getUri(),
'name' => $this->getValue($agent, 'foaf:name'),
'agent_type' => $this->getValue($agent, 'dc:type'),
); 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/ThemeGlobalDcatFeedSource.php
namespace Drupal\dcat_import\Plugin\migrate\source; use EasyRdf_Resource; use EasyRdf_Graph; /** * External theme feed source. * * @MigrateSource( * id = "dcat.global_theme"
$data = array();
/** @var EasyRdf_Resource $theme */
foreach ($this->getSourceData() as $theme) {
$data[] = array(
'uri' => $theme->getUri(),
'name' => $this->getValue($theme, 'skos:prefLabel'),
'description' => $this->getValue($theme, 'rdfs:comment'),
* Returns the mapping field values for the given $theme.
*
* @param EasyRdf_Resource $theme
* The resource to get the mapping values from.
*
* @return array|null|string
* The mapping values.
*/
public function getMappingValues(EasyRdf_Resource $theme) {
$mapping = [];
foreach (self::mappingTags() as $tag) {
$mapping = array_merge($mapping, $this->getValueArray($theme, $tag));
}
return $mapping; 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/DatasetDcatFeedSource.php
use Drupal\Component\Utility\Unicode; use Drupal\taxonomy\Plugin\views\wizard\TaxonomyTerm; use EasyRdf_Resource; use Drupal\migrate\Row; /** * DCAT Dataset feed source. * * @MigrateSource(
* {@inheritdoc}
*/
public function convertResource(EasyRdf_Resource $resource) {
return parent::convertResource($resource) + [
'title' => $this->getValue($resource, 'dc:title'),
'description' => $this->getValue($resource, 'dc:description'),
'issued' => $this->getDateValue($resource, 'dc:issued'),
'modified' => $this->getDateValue($resource, 'dc:modified'),
'landing_page' => $this->getValue($resource, 'dcat:landingPage'), 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/DistributionDcatFeedSource.php
namespace Drupal\dcat_import\Plugin\migrate\source; use EasyRdf_Resource; /** * DCAT Dataset feed source. * * @MigrateSource( * id = "dcat.distribution"
* {@inheritdoc}
*/
public function convertResource(EasyRdf_Resource $resource) {
return parent::convertResource($resource) + [
'title' => $this->getValue($resource, 'dc:title'),
'description' => $this->getValue($resource, 'dc:description'),
'issued' => $this->getDateValue($resource, 'dc:issued'),
'modified' => $this->getDateValue($resource, 'dc:modified'),
'access_url' => $this->getValue($resource, 'dcat:accessURL'), 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/TermDcatFeedSource.php
use Drupal\Component\Utility\Unicode;
use EasyRdf_Resource;
use EasyRdf_Graph;
use Drupal\migrate\Row;
/**
* DCAT Term feed source.
*/
abstract class TermDcatFeedSource extends DcatFeedSource {
* {@inheritdoc}
*/
public function getDcatData(EasyRdf_Graph $graph) {
$data = array();
$datasets = $graph->allOfType('dcat:Dataset');
/** @var EasyRdf_Resource $dataset */
foreach ($datasets as $dataset) {
$keywords = $this->getValue($dataset, $this->getTermField());
if ($keywords) {
$keywords = is_array($keywords) ? $keywords : array($keywords);
$data += array_combine($keywords, $keywords);
} 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/DcatFeedSource.php
use Drupal\migrate\Plugin\migrate\source\SourcePluginBase;
use Drupal\dcat_import\Plugin\DcatGraph;
use EasyRdf_Graph;
use EasyRdf_Resource;
/**
* DCAT feed source.
*/
abstract class DcatFeedSource extends SourcePluginBase {
/**
* Extract data from the given EasyRdf Graph.
*
* @param EasyRdf_Graph $graph
* The EasyRdf Graph to extract the data from.
*
* @return array
* The extracted data.
*/
public function getDcatData(EasyRdf_Graph $graph) {
$data = $graph->allOfType($this->getDcatType());
return $graph->getNoneBlankResources($data);
}
/**
* Data getter.
*
* @return array
* An array of EasyRdf resources that are deleted in the current graph.
*/
private function deletedResources(array $data, DcatGraph $graph) {
$deleted = [];
/** @var Sql $map */
$map = $this->migration->getIdMap();
return [];
}
/** @var EasyRdf_Resource $uri */
$uri = $resource->getUri();
unset($imported[(string) $uri]);
}
foreach ($imported as $uri => $uuid) {
$resource = $graph->resource($uri);
/**
* Convert an EasyRdf resource to an array.
*
* @param \EasyRdf_Resource $resource
* The resource to covert.
*
* @return array
* Array of values to import.
*/
public function convertResource(EasyRdf_Resource $resource) {
return [
'uri' => $resource->getUri(),
'status' => !$this->getValue($resource, 'deleted'),
];
}
/** * Return all values for a property from an EasyRdf resource. * * @param \EasyRdf_Resource $resource * The EasyRdf resource to get the property from. * @param string $property * The name of the property to get. * * @return array * The values as an array of strings. */
* The values as an array of strings.
*/
public function getValueArray(EasyRdf_Resource $resource, $property) {
$values = array();
foreach ($resource->all($property) as $value) {
if (!empty($value)) {
$values[] = $this->getSingleValue($value);
}
/**
* Convert an EasyRdf Resource or Literal to a single value.
*
* @param mixed $value
* EasyRdf_Resource or EasyRdf_Literal object.
*
* @return string|null
* A single value representing the object or Null if it is a blank resource.
*/
public function getSingleValue($value) {
$class = get_class($value);
$class = get_class($value);
switch ($class) {
case 'EasyRdf_Resource':
if ($value->isBNode()) {
return NULL;
}
return $value->getUri();
case 'EasyRdf_Literal_DateTime':
return $value->getValue()->format('c');
default:
return $value->getValue();
}
}
/** * Get the value for a property from an EasyRdf resource. * * @param \EasyRdf_Resource $resource * The EasyRdf resource to get the property from. * @param string $property * The name of the property to get. * * @return null|string|array * Null if empty, string if single value, array if multi value. */
* Null if empty, string if single value, array if multi value.
*/
public function getValue(EasyRdf_Resource $resource, $property) {
$values = $this->getValueArray($resource, $property);
return $this->unifyReturnValue($values);
}
/**
* Get a certain property from an EasyRdf resource as datetime storage string.
*
* @param \EasyRdf_Resource $resource
* The EasyRdf resource to get the property from.
* @param string $property
* The name of the property to get.
*
* @return null|string|array
* Null if empty, string if single value, array if multi value.
*/
* Null if empty, string if single value, array if multi value.
*/
public function getDateValue(EasyRdf_Resource $resource, $property) {
$values = $this->getValueArray($resource, $property);
$dates = array();
foreach ($values as $value) {
$date = $value instanceof \DateTime ? DrupalDateTime::createFromDateTime($value) : new DrupalDateTime($value);
$dates[] = $date->format(DATETIME_DATETIME_STORAGE_FORMAT);
/** * Get a certain property from an EasyRdf resource as an email string. * * Basically removes mailto: part. * * @param \EasyRdf_Resource $resource * The EasyRdf resource to get the property from. * @param string $property * The name of the property to get. * * @return null|string|array * Null if empty, string if single value, array if multi value. */
* Null if empty, string if single value, array if multi value.
*/
public function getEmailValue(EasyRdf_Resource $resource, $property) {
$values = $this->getValueArray($resource, $property);
$emails = [];
foreach ($values as $value) {
$emails[] = $this->stripMailto($value);
} 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/VcardDcatFeedSource.php
namespace Drupal\dcat_import\Plugin\migrate\source; use EasyRdf_Resource; use EasyRdf_Graph; /** * Agent feed source. * * @MigrateSource( * id = "dcat.vcard"
* {@inheritdoc}
*/
public function getDcatData(EasyRdf_Graph $graph) {
$vcards = array();
$datasets = $graph->allOfType('dcat:Dataset');
/** @var EasyRdf_Resource $dataset */
foreach ($datasets as $dataset) {
$vcards = array_merge($vcards, $dataset->allResources('dcat:contactPoint'));
}
// Remove duplicates.
$uris = array();
// Remove duplicates.
$uris = array();
/** @var EasyRdf_Resource $vcard */
foreach ($vcards as $key => $vcard) {
$uri = $vcard->getUri();
if (isset($uris[$uri])) {
unset($vcards[$key]);
}
else {
* {@inheritdoc}
*/
public function convertResource(EasyRdf_Resource $resource) {
if (isset(self::bundleMapping()[$resource->type()])) {
$bundle = self::bundleMapping()[$resource->type()];
}
else {
// Default to organization;
$bundle = 'organization'; 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/migrate/source/ThemeDcatFeedSource.php
namespace Drupal\dcat_import\Plugin\migrate\source; use EasyRdf_Resource; use EasyRdf_Graph; /** * Theme feed source. * * @MigrateSource( * id = "dcat.theme"
* {@inheritdoc}
*/
public function getDcatData(EasyRdf_Graph $graph) {
$data = array();
$datasets = $graph->allOfType('dcat:Dataset');
/** @var EasyRdf_Resource $dataset */
foreach ($datasets as $dataset) {
$themes = $this->getValue($dataset, 'dcat:theme');
if ($themes) {
$themes = is_array($themes) ? $themes : array($themes);
$data += array_combine($themes, $themes);
}
$data = array();
/** @var EasyRdf_Resource $theme */
foreach ($this->getSourceData() as $theme) {
// Until we have a better solution, we'll use the URI as name.
$data[] = array(
'uri' => $theme,
'name' => $theme,
); 24.06.2020
dcat 8.x-1.x-dev ::
dcat_import/src/Plugin/DcatGraph.php
namespace Drupal\dcat_import\Plugin; use EasyRdf_Graph; use EasyRdf_Resource; use EasyRdf_Http_Exception; /** * Class DcatGraph. * * @package Drupal\dcat_import\Plugin */
* @package Drupal\dcat_import\Plugin
*/
class DcatGraph extends EasyRdf_Graph {
/**
* Pager argument.
*
* @var string.
*/
parent::__construct($uri, $data, $format);
\EasyRdf_Namespace::set('adms', 'http://www.w3.org/ns/adms#');
}
/**
* {@inheritdoc}
*/
public static function newAndLoad($uri, $format = NULL, $pager_argument = NULL) {
*
* @param array $previous
* An array of EasyRdf_Resource objects.
* @param array $current
* An array of EasyRdf_Resource objects to compare to.
*
* @return bool
* True if results are the same.
*/
public function compareResults(array $previous, array $current) {
// To limit complexity and execution time, only compare the last result.
public function compareResults(array $previous, array $current) {
// To limit complexity and execution time, only compare the last result.
/** @var EasyRdf_Resource $previous_last */
$previous_last = end($previous);
/** @var EasyRdf_Resource $current_last */
$current_last = end($current);
return $previous_last->getUri() == $current_last->getUri();
}
/**
$resources = empty($resources) ? $this->resources() : $resources;
/** @var EasyRdf_Resource $resource */
foreach ($resources as $key => $resource) {
if ($resource->isBNode() || empty($resource->type())) {
unset($resources[$key]);
}
}
catch (EasyRdf_Http_Exception $e) {
if ($e->getCode() == 404 && !empty($current_data)) {
// When we receive a 404 after we have already received data, it is
// most likely that we just encountered the end of the DCAT feed.
break;
}
throw $e; 28.09.2020
rdfui 8.x-1.0-beta4 ::
rdf_builder/src/Form/ContentBuilderForm.php
* Easy_RDF Converter from rdfui. * * @var /Drupal/rdfui/EasyRdfConverter */ protected $converter; /** * The field type manager. *
28.09.2020
rdfui 8.x-1.0-beta4 ::
src/Form/FieldMappings.php
/** * The EasyRdfConverter. * * @var \Drupal\rdfui\EasyRdfConverter */ protected $rdfConverter; protected $displayContext = 'form'; protected $entityTypeId;
28.09.2020
rdfui 8.x-1.0-beta4 ::
src/Tests/EasyRdfConverterTest.php
* @group RDF UI
*/
class EasyRdfConverterTest extends KernelTestBase {
/**
* Modules to enable.
*
* @var array
*/ 28.09.2020
rdfui 8.x-1.0-beta4 ::
src/SchemaOrgConverter.php
* Extracts details of RDF resources from Schema.org.
*/
class SchemaOrgConverter extends EasyRdfConverter {
/**
* Cache id.
*
* @var string
*/
private $cid = 'schema.org_converter'; 