Skip to content

Commit 0152c03

Browse files
committed
ported code to sweetrdf/rdf-interface ^2.0
1 parent d507fe2 commit 0152c03

File tree

6 files changed

+16
-63
lines changed

6 files changed

+16
-63
lines changed

.php-cs-fixer.dist.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
->setRules([
2020
'@PSR12' => true,
2121
'phpdoc_summary' => false,
22+
'no_unused_imports' => true,
2223
])
2324
;
2425

README.md

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -44,47 +44,6 @@ echo \count($triples); // outputs: 2
4444
// $triples contains result set, which consists of arrays and scalar values
4545
```
4646

47-
### Example 2 (Consume SPARQL client result)
48-
49-
Use `sweetrdf/sparql-client` and a PSR-7-compatible library (like `guzzlehttp/guzzle`) to query a SPARQL endpoint.
50-
For now you have to "transform" SPARQL result set to a quad-list manually.
51-
Afterwards add quads to store and query it.
52-
Check test `testSparqlClientCompatibility` in [InMemoryStoreSqliteTest.php](tests/Integration/Store/InMemoryStoreSqliteTest.php) for a working example.
53-
54-
```php
55-
use GuzzleHttp\Client;
56-
use GuzzleHttp\Psr7\Request;
57-
use simpleRdf\Connection;
58-
use simpleRdf\DataFactory;
59-
60-
/*
61-
* get data from a SPARQL endpoint
62-
*/
63-
$httpClient = new Client();
64-
$dataFactory = new DataFactory();
65-
$connection = new Connection($httpClient, $dataFactory);
66-
$query = 'SELECT * WHERE {?s ?p ?o} limit 5';
67-
// set SPARQL endpoint URL
68-
$url = 'https://arche-sparql.acdh-dev.oeaw.ac.at/sparql?query=';
69-
$query = new Request('GET', $url.rawurlencode($query));
70-
$statement = $connection->query($query);
71-
72-
/*
73-
* add result to the store
74-
*/
75-
$quads = [];
76-
foreach ($statement as $entry) {
77-
// $entry is an object; s, p and o are variables from your query
78-
$quads[] = $dataFactory->quad($entry->s, $entry->p, $entry->o);
79-
}
80-
$store = InMemoryStoreSqlite::createInstance();
81-
$store->addQuads($quads);
82-
83-
// send query and check result
84-
$result = $store->query('SELECT * WHERE {?s ?p ?o.}');
85-
echo count($result['result']['rows']); // outputs 5
86-
```
87-
8847
## SPARQL support
8948

9049
Store supports a lot of SPARQL 1.0/1.1 features.

composer.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@
1515
],
1616
"require": {
1717
"php": ">=8.0",
18-
"sweetrdf/rdf-interface": "~0.8",
19-
"sweetrdf/simple-rdf": "~0.5"
18+
"sweetrdf/rdf-interface": "^2.0.0",
19+
"sweetrdf/simple-rdf": "^2.0.0"
2020
},
2121
"require-dev": {
2222
"friendsofphp/php-cs-fixer": "^3",
23-
"guzzlehttp/guzzle": "^7.2",
2423
"phpunit/phpunit": "^9.5 || ^10.0",
2524
"sweetrdf/sparql-client": "^0.1"
2625
},

src/Store/InMemoryStoreSqlite.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
namespace sweetrdf\InMemoryStoreSqlite\Store;
1515

1616
use Exception;
17-
use rdfInterface\BlankNode;
18-
use rdfInterface\DataFactory as iDataFactory;
19-
use rdfInterface\NamedNode;
20-
use rdfInterface\QuadIterator;
21-
use rdfInterface\Term as iTerm;
17+
use rdfInterface\BlankNodeInterface;
18+
use rdfInterface\DataFactoryInterface;
19+
use rdfInterface\LiteralInterface;
20+
use rdfInterface\NamedNodeInterface;
21+
use rdfInterface\QuadIteratorInterface;
2222
use simpleRdf\DataFactory;
2323
use sweetrdf\InMemoryStoreSqlite\KeyValueBag;
2424
use sweetrdf\InMemoryStoreSqlite\Log\LoggerPool;
@@ -41,7 +41,7 @@ class InMemoryStoreSqlite
4141

4242
private PDOSQLiteAdapter $db;
4343

44-
private iDataFactory $dataFactory;
44+
private DataFactoryInterface $dataFactory;
4545

4646
private LoggerPool $loggerPool;
4747

@@ -53,7 +53,7 @@ class InMemoryStoreSqlite
5353

5454
public function __construct(
5555
PDOSQLiteAdapter $db,
56-
iDataFactory $dataFactory,
56+
DataFactoryInterface $dataFactory,
5757
NamespaceHelper $namespaceHelper,
5858
LoggerPool $loggerPool,
5959
KeyValueBag $rowCache,
@@ -102,7 +102,7 @@ public function getDBVersion()
102102
return $this->db->getServerVersion();
103103
}
104104

105-
public function addQuads(iterable | QuadIterator $quads): void
105+
public function addQuads(iterable | QuadIteratorInterface $quads): void
106106
{
107107
$triples = [];
108108

@@ -118,7 +118,7 @@ public function addQuads(iterable | QuadIterator $quads): void
118118

119119
$triple = [
120120
's' => $quad->getSubject()->getValue(),
121-
's_type' => $quad->getSubject() instanceof NamedNode ? 'uri' : 'bnode',
121+
's_type' => $quad->getSubject() instanceof NamedNodeInterface ? 'uri' : 'bnode',
122122
'p' => $quad->getPredicate()->getValue(),
123123
'o' => $quad->getObject()->getValue(),
124124
'o_type' => '',
@@ -127,9 +127,9 @@ public function addQuads(iterable | QuadIterator $quads): void
127127
];
128128

129129
// o
130-
if ($quad->getObject() instanceof NamedNode) {
130+
if ($quad->getObject() instanceof NamedNodeInterface) {
131131
$triple['o_type'] = 'uri';
132-
} elseif ($quad->getObject() instanceof BlankNode) {
132+
} elseif ($quad->getObject() instanceof BlankNodeInterface) {
133133
$triple['o_type'] = 'bnode';
134134
} else {
135135
$triple['o_type'] = 'literal';
@@ -185,7 +185,7 @@ public function addRawTriples(array $triples, string $graphIri): void
185185
* @param string $q SPARQL query
186186
* @param string $format One of: raw, instances
187187
*/
188-
public function query(string $q, string $format = 'raw'): array | iTerm
188+
public function query(string $q, string $format = 'raw'): array | LiteralInterface
189189
{
190190
$errors = [];
191191

tests/Integration/Store/InMemoryStoreSqlite/SPARQL11/ComplianceTestCase.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313

1414
namespace Tests\Integration\Store\InMemoryStoreSqlite\SPARQL11;
1515

16-
use sweetrdf\InMemoryStoreSqlite\Log\Logger;
17-
use sweetrdf\InMemoryStoreSqlite\Parser\TurtleParser;
1816
use sweetrdf\InMemoryStoreSqlite\Store\InMemoryStoreSqlite;
19-
use sweetrdf\InMemoryStoreSqlite\StringReader;
2017
use Tests\TestCase;
2118

2219
/**

tests/Integration/Store/InMemoryStoreSqliteTest.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313

1414
namespace Tests\Integration\Store;
1515

16-
use GuzzleHttp\Client;
17-
use GuzzleHttp\Psr7\Request;
1816
use simpleRdf\DataFactory;
19-
use sparqlClient\Connection;
2017
use sweetrdf\InMemoryStoreSqlite\KeyValueBag;
2118
use sweetrdf\InMemoryStoreSqlite\Log\LoggerPool;
2219
use sweetrdf\InMemoryStoreSqlite\NamespaceHelper;
@@ -70,7 +67,7 @@ public function testGetDBVersion()
7067
*/
7168
public function testInsertSaftRegressionTest2()
7269
{
73-
$res = $this->subjectUnderTest->query('INSERT INTO <http://localhost/Saft/TestGraph/> {<http://foo/1> <http://foo/2> <http://foo/3> . }');
70+
$this->subjectUnderTest->query('INSERT INTO <http://localhost/Saft/TestGraph/> {<http://foo/1> <http://foo/2> <http://foo/3> . }');
7471

7572
$res1 = $this->subjectUnderTest->query('SELECT * FROM <http://localhost/Saft/TestGraph/> WHERE {?s ?p ?o.}');
7673
$this->assertEquals(1, \count($res1['result']['rows']));

0 commit comments

Comments
 (0)