openbudgets / rudolf

rudolf is the stepbrother of babbage for RDF datasets
1 stars 0 forks source link

Sparql Query Parsing Error in Rudolf #14

Closed schmaluk closed 7 years ago

schmaluk commented 8 years ago

I have forwarded /search/... to Rudolf in nginx, Opening this url http://eis-openbudgets.iais.fraunhofer.de/viewer/

also sends this request to the server: http://eis-openbudgets.iais.fraunhofer.de/search/package?size=10000

I get a 500 Internal server error back from the server and this is in the logs:

2016-07-07 16:35:35] production.ERROR: EasyRdfException: HTTP request for SPARQL query failed: Error 400: Parse error: PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# PREFIX qb: http://purl.org/linked-data/cube# PREFIX skos: http://www.w3.org/2004/02/skos/core# PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# PREFIX xro: http://purl.org/xro/ns# SELECT DISTINCT ?attribute ?label ?attachment ?propertyType ?shortName ?dataset ?name WHERE { ?dsd qb:component ?component . ?dataset a qb:DataSet ; qb:structure ?dsd . ?component ?componentProperty ?attribute . ?componentProperty rdfs:subPropertyOf qb:componentProperty . OPTIONAL { ?attribute rdfs:label ?label . } OPTIONAL { ?component qb:componentAttachment ?attachment . } OPTIONAL { ?attribute a ?propertyType . FILTER (?propertyType in (qb:CodedProperty, qb:MeasureProperty, qb:DimensionProperty)) } FILTER NOT EXISTS { ?component qb:componentAttachment qb:DataSet . } BIND (REPLACE(str(?attribute), '^.(#|/)', "") AS ?shortName) BIND (CONCAT(REPLACE(str(?dataset), '^._(#|/)', ""), '__', SUBSTR(MD5(STR(?dataset)),1,5)) AS ?name) } GROUP BY ?attribute ?label ?propertyType ?shortName ?attachment Non-group key variable in SELECT: ?dataset

Fuseki - version 2.4.0 (Build date: 2016-05-10T11:59:39+0000) in /var/www/rudolf/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php:290 Stack trace:

0 /var/www/rudolf/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php(120): EasyRdf_Sparql_Client->request('query', 'PREFIX rdfs: <h...')

1 /var/www/rudolf/app/Model/SearchResult.php(55): EasyRdf_Sparql_Client->query('PREFIX rdfs: <h...')

2 /var/www/rudolf/app/Model/SearchResult.php(24): App\Model\SearchResult->load()

3 /var/www/rudolf/app/Http/Controllers/SearchController.php(18): App\Model\SearchResult->__construct()

4 [internal function]: App\Http\Controllers\SearchController->index()

5 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(80): call_user_func_array(Array, Array)

6 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(146): Illuminate\Routing\Controller->callAction('index', Array)

7 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(94): Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\SearchController), Object(Illuminate\Routing\Route), 'index')

8 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

9 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

10 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

11 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

12 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(96): Illuminate\Pipeline\Pipeline->then(Object(Closure))

13 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(54): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\SearchController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'index')

14 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Route.php(174): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\Http\Contro...', 'index')

15 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Route.php(140): Illuminate\Routing\Route->runController(Object(Illuminate\Http\Request))

16 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Router.php(724): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))

17 [internal function]: Illuminate\Routing\Router->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

18 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

19 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

20 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

21 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then(Object(Closure))

22 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Router.php(699): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))

23 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))

24 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))

25 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http{closure}(Object(Illuminate\Http\Request))

26 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

27 /var/www/rudolf/vendor/barryvdh/laravel-cors/src/HandleCors.php(34): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

28 [internal function]: Barryvdh\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))

29 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(136): call_user_func_array(Array, Array)

30 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))

31 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

32 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

33 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))

34 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(136): call_user_func_array(Array, Array)

35 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline{closure}(Object(Illuminate\Http\Request))

36 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

37 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing{closure}(Object(Illuminate\Http\Request))

38 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request))

39 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))

40 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))

41 /var/www/rudolf/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))

42 {main}

larjohn commented 8 years ago

This is one more side effect of RDF stores implementing different restrictions.

94b4c6e0121aefeaa67b5f62875a79f5c979ee07 should solve this.

schmaluk commented 8 years ago

Getting now a slightly different message in the logs: [2016-07-07 17:07:12] production.ERROR: EasyRdfException: HTTP request for SPARQL query failed: Error 400: Parse error: PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# PREFIX qb: http://purl.org/linked-data/cube# PREFIX skos: http://www.w3.org/2004/02/skos/core# PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# PREFIX xro: http://purl.org/xro/ns# SELECT DISTINCT ?attribute ?label ?attachment ?propertyType ?shortName ?dataset ?name WHERE { ?dsd qb:component ?component . ?dataset a qb:DataSet ; qb:structure ?dsd . ?component ?componentProperty ?attribute . ?componentProperty rdfs:subPropertyOf qb:componentProperty . OPTIONAL { ?attribute rdfs:label ?label . } OPTIONAL { ?component qb:componentAttachment ?attachment . } OPTIONAL { ?attribute a ?propertyType . FILTER (?propertyType in (qb:CodedProperty, qb:MeasureProperty, qb:DimensionProperty)) } FILTER NOT EXISTS { ?component qb:componentAttachment qb:DataSet . } BIND (REPLACE(str(?attribute), '^.(#|/)', "") AS ?shortName) BIND (CONCAT(REPLACE(str(?dataset), '^._(#|/)', ""), '__', SUBSTR(MD5(STR(?dataset)),1,5)) AS ?name) } GROUP BY ?attribute ?label ?propertyType ?shortName ?attachment ?dataset Non-group key variable in SELECT: ?name

larjohn commented 8 years ago

I have pushed a new commit 70c883b571940b806143df1671f6d77c2183cac5

schmaluk commented 8 years ago

Thanks, seeing this logs: [2016-07-08 07:51:43] production.ERROR: ErrorException: Undefined variable: packages in /var/www/rudolf/app/Model/SearchResult.php:223 Stack trace:

0 /var/www/rudolf/app/Model/SearchResult.php(223): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined varia...', '/var/www/rudolf...', 223, Array)

1 /var/www/rudolf/app/Model/SearchResult.php(24): App\Model\SearchResult->load()

2 /var/www/rudolf/app/Http/Controllers/SearchController.php(18): App\Model\SearchResult->__construct()

3 [internal function]: App\Http\Controllers\SearchController->index()

4 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(80): call_user_func_array(Array, Array)

5 /var/www/rudolf/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(146): Illuminate\Routing\Controller->callAction('index', Array)

larjohn commented 8 years ago

Is this SPARQL endpoint public so that I can query it locally to resolve the issue?

larjohn commented 8 years ago

Must have been resolved with f812e54f51e20f56854beb3b3ec6fdf23510aae3