RDF-Endpoint-0.05/000755 000765 000024 00000000000 11760736477 014633 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/Changes000644 000765 000024 00000006644 11760736466 016136 0ustar00samofoolstaff000000 000000 ############################################################################ ## Changes for RDF-Endpoint ################################################ ############################################################################ RDF-Endpoint ============ Created: 2010-06-19 Home page: Bug tracker: Maintainer: Gregory Todd Williams 0.05 [2012-05-28] - (Update) Added use of Plack::Builder and Plack::Middleware::AccessLog in default configuration. - (Update) Added Service Description resultFormat triples for SPARQL XML and JSON Results. - (Update) Renamed Service Description sd:defaultDatasetDescription property to sd:defaultDataset. - (Update) Croak when unable to open file handles - (Update) Updated see also link to SPARQL Protocol (1.1). - (Update) Improved HTTP error status code messages. - (Addition) Use a default in-memory store if no config file is available. - (Addition) Let RDF_ENDPOINT_FILE env variable override the Config::JFDI default. - (Update) Require a recent version (0.99) of Plack::Request with support for logging. - (Update) Fixed bug in handling of update requests. - (Update) Improved conformance with SPARQL 1.1 Protocol spec. - (Update) Removed custom logging code (should be done with Plack middleware). 0.04 [2011-07-19] - (Addition) Added RDFa serialization tests (from KjetilK). - (Update) Require RDF::RDFa::Generator 0.102 (fixes RDFa service description serialization bug). - (Update) Fixed bug introduced by commit 3fb5e48 causing query results to disappear from HTML results page. - (Update) Allow the service description default graph to be a URI or a blank node (based on config value). 0.03 [2011-06-07] - (Update) Removed duplicated, hard-coded HTML to allow better customization of HTML (from nichtich). - (Update) Add merging of namespace hashes (from kjetilk). - (Update) Updated service description RDF to use sd:endpoint instead of sd:url (tracking updates in the SD spec). - (Update) style element must go in head (from kjetilk). - (Update) Actually dereference correctly endpoint_path, and make the test use root (from kjetilk). - (Update) Make endpoint path configurable (from kjetilk). - (Update) Replace new_with_string with new and change docs (from kjetilk). 0.02 [2011-04-16] - (Update) Service description is now cached in the RDF::Endpoint object. - (Update) Changes to align with SPARQL Protocol 1.1. - (Update) Moved endpoint-specific configuration variables into top-level 'endpoint' hash. - (Update) Fixed caching bug in which browsers would use cached results across endpoint instantiations. - (Addition) Added support for POSTing queries and updates directly using the appropriate media types. - (Addition) Added ETag support for query results, varying based on Accept and Accept-Encoding headers, and query string. - (Update) Updated endpoint.psgi to move config parsing and endpoint object construction outside of the request handler. - (Update) Updated RDF::Endpoint to use a persistent model object across run() calls. - (Update) Updated content negotiation quality values. - (Addition) Added CodeMirror files for syntax highlighting SPARQL query form markup. - (Update) Updated tests to test functionality directly via PSGI. 0.01 [2010-07-14] - (Addition) First release. RDF-Endpoint-0.05/Changes.ttl000644 000765 000024 00000013142 11760736372 016723 0ustar00samofoolstaff000000 000000 # -*-n3-*- @prefix dc: . @prefix dcterms: . @prefix foaf: . @prefix doap: . @prefix xsd: . @prefix asc: . @prefix my: . <> dc:title "Changes" ; dc:description "Changes for RDF::Endpoint" ; dc:subject my:project ; . dcterms:isVersionOf my:project ; doap:Version [ doap:revision "0.05" ; doap:created "2012-05-28" ; ] ; asc:changes [ asc:addition "Use a default in-memory store if no config file is available." ; asc:addition "Let RDF_ENDPOINT_FILE env variable override the Config::JFDI default." ; asc:update "Fixed bug in handling of update requests." ; asc:update "Improved conformance with SPARQL 1.1 Protocol spec." ; asc:update "Added use of Plack::Builder and Plack::Middleware::AccessLog in default configuration." ; asc:update "Improved HTTP error status code messages." ; asc:update "Added Service Description resultFormat triples for SPARQL XML and JSON Results." ; asc:update "Renamed Service Description sd:defaultDatasetDescription property to sd:defaultDataset." ; asc:update "Croak when unable to open file handles" ; asc:update "Removed custom logging code (should be done with Plack middleware)." ; asc:update "Require a recent version (0.99) of Plack::Request with support for logging." ; asc:update "Updated see also link to SPARQL Protocol (1.1)." ; ] ; . dcterms:isVersionOf my:project ; doap:Version [ doap:revision "0.04" ; doap:created "2011-07-19" ; ] ; asc:changes [ asc:addition "Added RDFa serialization tests (from KjetilK)." ; asc:update "Allow the service description default graph to be a URI or a blank node (based on config value)." ; asc:update "Require RDF::RDFa::Generator 0.102 (fixes RDFa service description serialization bug)." ; asc:update "Fixed bug introduced by commit 3fb5e48 causing query results to disappear from HTML results page." ; ] ; . dcterms:isVersionOf my:project ; doap:Version [ doap:revision "0.03" ; doap:created "2011-06-07" ; ] ; asc:changes [ asc:update "Removed duplicated, hard-coded HTML to allow better customization of HTML (from nichtich)." ; asc:update "Actually dereference correctly endpoint_path, and make the test use root (from kjetilk)." ; asc:update "Make endpoint path configurable (from kjetilk)." ; asc:update "style element must go in head (from kjetilk)." ; asc:update "Updated service description RDF to use sd:endpoint instead of sd:url (tracking updates in the SD spec)." ; asc:update "Add merging of namespace hashes (from kjetilk)." ; asc:update "Replace new_with_string with new and change docs (from kjetilk)." ; ] ; . dcterms:isVersionOf my:project ; doap:Version [ doap:revision "0.02" ; doap:created "2011-04-16" ; ] ; asc:changes [ asc:addition "Added ETag support for query results, varying based on Accept and Accept-Encoding headers, and query string." ; asc:addition "Added support for POSTing queries and updates directly using the appropriate media types." ; asc:addition "Added CodeMirror files for syntax highlighting SPARQL query form markup." ; asc:update "Changes to align with SPARQL Protocol 1.1." ; asc:update "Updated tests to test functionality directly via PSGI." ; asc:update "Updated content negotiation quality values." ; asc:update "Moved endpoint-specific configuration variables into top-level 'endpoint' hash." ; asc:update "Fixed caching bug in which browsers would use cached results across endpoint instantiations." ; asc:update "Service description is now cached in the RDF::Endpoint object." ; asc:update "Updated endpoint.psgi to move config parsing and endpoint object construction outside of the request handler." ; asc:update "Updated RDF::Endpoint to use a persistent model object across run() calls." ; ] ; . dcterms:isVersionOf my:project ; doap:Version [ doap:revision "0.01" ; doap:created "2010-07-14" ; ] ; asc:changes [ asc:addition "First release." ; ] ; . my:project a doap:Project ; doap:name "RDF-Endpoint" ; doap:shortdesc "A SPARQL Protocol Endpoint implementation"@en ; doap:programming-language "Perl" ; doap:homepage ; doap:download-page ; doap:bug-database ; doap:maintainer ; doap:developer ; doap:documenter ; doap:tester ; doap:created "2010-06-19"^^xsd:date ; doap:license ; . a foaf:Person ; foaf:name "Gregory Todd Williams" ; foaf:homepage ; foaf:page ; foaf:mbox ; ; . RDF-Endpoint-0.05/Changes.xml000644 000765 000024 00000017741 11760736466 016735 0ustar00samofoolstaff000000 000000 Changes for RDF::Endpoint Changes Gregory Todd Williams First release. 2010-07-14 0.01 Added CodeMirror files for syntax highlighting SPARQL query form markup. Added ETag support for query results, varying based on Accept and Accept-Encoding headers, and query string. Added support for POSTing queries and updates directly using the appropriate media types. Changes to align with SPARQL Protocol 1.1. Fixed caching bug in which browsers would use cached results across endpoint instantiations. Moved endpoint-specific configuration variables into top-level 'endpoint' hash. Service description is now cached in the RDF::Endpoint object. Updated RDF::Endpoint to use a persistent model object across run() calls. Updated content negotiation quality values. Updated endpoint.psgi to move config parsing and endpoint object construction outside of the request handler. Updated tests to test functionality directly via PSGI. 2011-04-16 0.02 Actually dereference correctly endpoint_path, and make the test use root (from kjetilk). Add merging of namespace hashes (from kjetilk). Make endpoint path configurable (from kjetilk). Removed duplicated, hard-coded HTML to allow better customization of HTML (from nichtich). Replace new_with_string with new and change docs (from kjetilk). Updated service description RDF to use sd:endpoint instead of sd:url (tracking updates in the SD spec). style element must go in head (from kjetilk). 2011-06-07 0.03 Added RDFa serialization tests (from KjetilK). Allow the service description default graph to be a URI or a blank node (based on config value). Fixed bug introduced by commit 3fb5e48 causing query results to disappear from HTML results page. Require RDF::RDFa::Generator 0.102 (fixes RDFa service description serialization bug). 2011-07-19 0.04 Let RDF_ENDPOINT_FILE env variable override the Config::JFDI default. Use a default in-memory store if no config file is available. Added Service Description resultFormat triples for SPARQL XML and JSON Results. Added use of Plack::Builder and Plack::Middleware::AccessLog in default configuration. Croak when unable to open file handles Fixed bug in handling of update requests. Improved HTTP error status code messages. Improved conformance with SPARQL 1.1 Protocol spec. Removed custom logging code (should be done with Plack middleware). Renamed Service Description sd:defaultDatasetDescription property to sd:defaultDataset. Require a recent version (0.99) of Plack::Request with support for logging. Updated see also link to SPARQL Protocol (1.1). 2012-05-28 0.05 2010-06-19 RDF-Endpoint Perl A SPARQL Protocol Endpoint implementation RDF-Endpoint-0.05/inc/000755 000765 000024 00000000000 11760736475 015402 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/lib/000755 000765 000024 00000000000 11760736475 015377 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/LICENSE000644 000765 000024 00000005331 11552456153 015627 0ustar00samofoolstaff000000 000000 Except as described below, all contents of this package are Copyright (c) 2010 Gregory Todd Williams. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. With the exception of the CodeMirror files enumerated below, the files in this package may also be redistributed and/or modified under the same terms as Perl itself. -------------------------------------------------------------------------------- The following license applies to the CodeMirror (Javascript and CSS) files contained in this package and retrieved from http://codemirror.net/: share/www/css/docs.css share/www/css/sparqlcolors.css share/www/js/codemirror.js share/www/js/editor.js share/www/js/highlight.js share/www/js/mirrorframe.js share/www/js/parsecss.js share/www/js/parsedummy.js share/www/js/parsehtmlmixed.js share/www/js/parsejavascript.js share/www/js/parsesparql.js share/www/js/parsexml.js share/www/js/select.js share/www/js/sparql_form.js share/www/js/stringstream.js share/www/js/tokenize.js share/www/js/tokenizejavascript.js share/www/js/undo.js share/www/js/unittests.js share/www/js/util.js Copyright (c) 2007-2010 Marijn Haverbeke This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Marijn Haverbeke marijnh@gmail.com RDF-Endpoint-0.05/Makefile.PL000644 000765 000024 00000002213 11760237267 016574 0ustar00samofoolstaff000000 000000 use strict; use warnings; use inc::Module::Install; name 'RDF-Endpoint'; all_from 'lib/RDF/Endpoint.pm'; author 'Gregory Todd Williams '; license 'zlib'; test_requires 'Test::More' => '0.61'; test_requires 'Test::WWW::Mechanize::PSGI' => 0; requires 'Carp' => 0; requires 'File::ShareDir' => 0; requires 'RDF::Trine' => 0.134; requires 'RDF::Query' => 2.905; requires 'RDF::RDFa::Generator' => 0.102; requires 'Plack::Request' => 0.99; requires 'Plack::Response' => 0; requires 'Plack::Middleware::AccessLog' => 0; requires 'Data::Dumper' => 0; requires 'Config::JFDI' => 0; requires 'HTTP::Negotiate' => 0; requires 'IO::Compress::Gzip' => 0; requires 'XML::LibXML' => 1.70; requires 'HTML::HTML5::Writer' => 0; requires 'HTML::HTML5::Parser' => 0; requires 'Hash::Merge::Simple' => 0; resources( 'homepage' => "http://search.cpan.org/dist/RDF-Endpoint/", 'repository' => "http://github.com/kasei/perlrdf/", ); write_doap_changes; write_doap_changes_xml; install_share; install_script glob('scripts/*'); sign; WriteAll; RDF-Endpoint-0.05/MANIFEST000644 000765 000024 00000002247 11760736475 015767 0ustar00samofoolstaff000000 000000 Changes Changes.ttl Changes.xml inc/Module/Install.pm inc/Module/Install/Base.pm inc/Module/Install/Can.pm inc/Module/Install/DOAPChangeSets.pm inc/Module/Install/Fetch.pm inc/Module/Install/Makefile.pm inc/Module/Install/Metadata.pm inc/Module/Install/Scripts.pm inc/Module/Install/Share.pm inc/Module/Install/Win32.pm inc/Module/Install/WriteAll.pm lib/RDF/Endpoint.pm LICENSE Makefile.PL MANIFEST This list of files META.yml rdf_endpoint.json scripts/endpoint.psgi share/index.html share/results.html share/www/favicon.ico share/www/css/docs.css share/www/css/sparqlcolors.css share/www/js/codemirror.js share/www/js/editor.js share/www/js/highlight.js share/www/js/mirrorframe.js share/www/js/parsecss.js share/www/js/parsedummy.js share/www/js/parsehtmlmixed.js share/www/js/parsejavascript.js share/www/js/parsesparql.js share/www/js/parsexml.js share/www/js/select.js share/www/js/sparql_form.js share/www/js/stringstream.js share/www/js/tokenize.js share/www/js/tokenizejavascript.js share/www/js/undo.js share/www/js/unittests.js share/www/js/util.js t/00-load.t t/pod.t t/pod_coverage.t t/psgi.t SIGNATURE Public-key signature (added by MakeMaker) RDF-Endpoint-0.05/META.yml000644 000765 000024 00000002111 11760736466 016075 0ustar00samofoolstaff000000 000000 --- abstract: 'A SPARQL Protocol Endpoint implementation' author: - 'Gregory Todd Williams ' - 'Gregory Todd Williams ' build_requires: ExtUtils::MakeMaker: 6.42 Test::More: 0.61 Test::WWW::Mechanize::PSGI: 0 configure_requires: ExtUtils::MakeMaker: 6.42 distribution_type: module generated_by: 'Module::Install version 0.99' license: zlib meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: RDF-Endpoint no_index: directory: - inc - share - t requires: Carp: 0 Config::JFDI: 0 Data::Dumper: 0 File::ShareDir: 0 HTML::HTML5::Parser: 0 HTML::HTML5::Writer: 0 HTTP::Negotiate: 0 Hash::Merge::Simple: 0 IO::Compress::Gzip: 0 Plack::Middleware::AccessLog: 0 Plack::Request: 0.99 Plack::Response: 0 RDF::Query: 2.905 RDF::RDFa::Generator: 0.102 RDF::Trine: 0.134 XML::LibXML: 1.7 perl: 5.8.0 resources: homepage: http://search.cpan.org/dist/RDF-Endpoint/ license: http://dev.perl.org/licenses/ repository: http://github.com/kasei/perlrdf/ version: 0.05 RDF-Endpoint-0.05/rdf_endpoint.json000644 000765 000024 00000001504 11760254114 020160 0ustar00samofoolstaff000000 000000 { # "store": "Memory", # "store": "Memory;file:///Users/samofool/foaf.xrdf", # "store" : "DBI;basic;DBI:SQLite:t/data/basic.db;user;pass", "store": "DBI;endpoint;DBI:SQLite:dbname=endpoint.sqlite;;", "endpoint": { "update": true, # allow SPARQL Update operations "load_data": true, # allow loading RDF data via SPARQL Protocol or FROM/FROM NAMED clauses "html": { "resource_links": true, # turn resources into links in HTML query result pages "embed_images": false, # display foaf:Images as images in HTML query result pages "image_width": 200, # with 'embed_images', scale images to this width }, "service_description": { "default": true, # generate dataset description of the default graph "named_graphs": true, # generate dataset description of the available named graphs }, } } RDF-Endpoint-0.05/scripts/000755 000765 000024 00000000000 11760736475 016320 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/share/000755 000765 000024 00000000000 11760736475 015733 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/SIGNATURE000644 000765 000024 00000007740 11760736477 016127 0ustar00samofoolstaff000000 000000 This file contains message digests of all files listed in MANIFEST, signed via the Module::Signature module, version 0.68. To verify the content in this distribution, first make sure you have Module::Signature installed, then type: % cpansign -v It will check each file's integrity, as well as the signature's validity. If "==> Signature verified OK! <==" is not displayed, the distribution may already have been compromised, and you should not run its Makefile.PL or Build.PL. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 SHA1 9ec0ded8359876adafbb027431ecbe3811587563 Changes SHA1 d044ad160395969413461b1fe34bde91268b9e9d Changes.ttl SHA1 79cfe96086a40eba7740437bb178c07ae2a7956f Changes.xml SHA1 14a506260237169ed443ed15a269369cee605be3 LICENSE SHA1 b2fac9e470966c65eba6f79c5322f6c3750f667b MANIFEST SHA1 9cc420a55ba7d337367175a027711fbd1fa1d56f META.yml SHA1 a334b310bf4954ae4d4aaf9961a64248b67b8042 Makefile.PL SHA1 53b08a2e448ac8751374a8eed725dfc09aa5fb63 inc/Module/Install.pm SHA1 150c0cf35e6b96a0d8eea62194c8abc0da182c86 inc/Module/Install/Base.pm SHA1 70c3500a28a1e5d255599ce3f44e9a7b80759109 inc/Module/Install/Can.pm SHA1 b19da2715a136aba51510f687a7b4e431e0a4bec inc/Module/Install/DOAPChangeSets.pm SHA1 5f0d6d859fb1cf84cd9bbb1e263d18f581c7e537 inc/Module/Install/Fetch.pm SHA1 75f901a4b514a772b03223e1b08e3b5cc78b1667 inc/Module/Install/Makefile.pm SHA1 29044991152cb220fcd2a5ccc3512139d2f5f577 inc/Module/Install/Metadata.pm SHA1 d5cd64445b98ff377f7bb3ad750c01b509622e28 inc/Module/Install/Scripts.pm SHA1 030a99123adabbda547150b63e00569ddf119fba inc/Module/Install/Share.pm SHA1 896bba60ebe29b3b60fce8414f923fec97bf53e1 inc/Module/Install/Win32.pm SHA1 e5c82926a05f844765964b013b31c48eefbb208c inc/Module/Install/WriteAll.pm SHA1 1568716dc0c5a92f1eba747bef5e1043c8614f6d lib/RDF/Endpoint.pm SHA1 47f5747c74628fe5e2f9f3c00ac20d96799fa63d rdf_endpoint.json SHA1 cab17f29a3f2b0d73190f04a6212e3593f7bab3f scripts/endpoint.psgi SHA1 d182c2c9bfefaf10b3f6e7056cd39c114a560d84 share/index.html SHA1 6dd0cf355b49dcb0fdfe9203c68917d5320584f8 share/results.html SHA1 c40ebad09f7e1d92ad0228a0625d730ba2f57b84 share/www/css/docs.css SHA1 398bae2ae66a19ab8976036b50a2d20041b67fe5 share/www/css/sparqlcolors.css SHA1 aa6874f2bad5f0b75b0ff52760f5e6b48ec933ae share/www/favicon.ico SHA1 13fece7654a01193013d3d96528c851bfc79a300 share/www/js/codemirror.js SHA1 d372c911fcc2bd030da800fdeedfbcd6b0100c83 share/www/js/editor.js SHA1 551ff99056361eebfba2a32ea7445502a6eb4f21 share/www/js/highlight.js SHA1 5bff996ab2564db1a998de30cb9e1ae07cbe62b5 share/www/js/mirrorframe.js SHA1 d7540f8390913afc0d58484bf5161cf9b9aad9f8 share/www/js/parsecss.js SHA1 a0028275114eaedf7ddcf57976c99c32ecb2c1d3 share/www/js/parsedummy.js SHA1 39383cdfc93568cc5673e2b71f681e2811fb5463 share/www/js/parsehtmlmixed.js SHA1 d5319247a4b26cafccfd4f26621918f0f4d22ef4 share/www/js/parsejavascript.js SHA1 c6597fb9a5c7969237f7f039f2d0bc6968ef7ce7 share/www/js/parsesparql.js SHA1 ae75f537ad61277a21a8ec423f5deffed8454e22 share/www/js/parsexml.js SHA1 85cdbc16cd1581f441480d91fa5c0a50f234ff0b share/www/js/select.js SHA1 d3261a5ddb7e5835c7abed5d5c343f0ef98637a5 share/www/js/sparql_form.js SHA1 19cc324cce7165c868a60d523b2462c648f20887 share/www/js/stringstream.js SHA1 5fdb14f3db575d0ce6a7113f96ea5a530f4f1941 share/www/js/tokenize.js SHA1 7f581a2b4647f1214d1bc3160eb4e166a1261e4f share/www/js/tokenizejavascript.js SHA1 9bba7456d4a25b23e805bc2d1d5bde61371c4e82 share/www/js/undo.js SHA1 26ff15a8f6c196e8bd9f5d7e7b628a6ee9b0dfaa share/www/js/unittests.js SHA1 201409b1d00a8df0b65b00a1b92ab62d9e0bbd7a share/www/js/util.js SHA1 ab27c130ce49175526943d0ca34d6f7a1197a630 t/00-load.t SHA1 6387af7a5fde0747be5bc9ad2ec15ca9759bd95a t/pod.t SHA1 9115f7ffe1933ad736dc292f3c89595b36ed6aa2 t/pod_coverage.t SHA1 ac64598a7c17b09028399364547a0907a3685af7 t/psgi.t -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (Darwin) Comment: GPGTools - http://gpgtools.org iEYEARECAAYFAk/DvT0ACgkQhPK6VMqoyC2gdwCgnKroyD71azSsqvSvft+Ni4/4 g40An08yt6tesuL33sanBQ+hXvMKp9De =6khr -----END PGP SIGNATURE----- RDF-Endpoint-0.05/t/000755 000765 000024 00000000000 11760736475 015074 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/t/00-load.t000755 000765 000024 00000000222 11417373145 016402 0ustar00samofoolstaff000000 000000 #!perl use Test::More tests => 1; BEGIN { use_ok( 'RDF::Endpoint' ); } diag( "Testing RDF::Endpoint $RDF::Endpoint::VERSION, Perl $], $^X" ); RDF-Endpoint-0.05/t/pod.t000644 000765 000024 00000000233 11412402225 016012 0ustar00samofoolstaff000000 000000 use strict; use warnings; use Test::More; eval "use Test::Pod 1.14"; plan skip_all => "Test::Pod 1.14 required for testing POD" if $@; all_pod_files_ok(); RDF-Endpoint-0.05/t/pod_coverage.t000644 000765 000024 00000000273 11412402225 017671 0ustar00samofoolstaff000000 000000 use strict; use warnings; use Test::More; eval "use Test::Pod::Coverage 1.04"; plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@; all_pod_coverage_ok(); RDF-Endpoint-0.05/t/psgi.t000755 000765 000024 00000010770 11760022650 016212 0ustar00samofoolstaff000000 000000 #!perl use strict; use warnings; use Test::More; use URI::QueryParam; use URI::Escape; use LWP::UserAgent; use HTTP::Request::Common; use Test::WWW::Mechanize::PSGI; use RDF::Endpoint; use RDF::Trine qw(iri); use RDF::Trine::Namespace; my $sd = RDF::Trine::Namespace->new('http://www.w3.org/ns/sparql-service-description#'); my $config = { endpoint => { endpoint_path => '/', update => 1, load_data => 1, html => { resource_links => 1, # turn resources into links in HTML query result pages embed_images => 0, # display foaf:Images as images in HTML query result pages image_width => 200, # with 'embed_images', scale images to this width }, service_description => { default => 1, # generate dataset description of the default graph named_graphs => 1, # generate dataset description of the available named graphs }, }, }; my $model = RDF::Trine::Model->new(); my $end = RDF::Endpoint->new( $model, $config ); my $mech = Test::WWW::Mechanize::PSGI->new( app => sub { my $env = shift; my $req = Plack::Request->new($env); my $resp = $end->run( $req ); return $resp->finalize; }, ); { $mech->get_ok('/'); is( $mech->ct, 'text/html', 'main page text/html' ); $mech->content_lacks('xmlns:http://www.w3.org/1999/02/22-rdf-syntax-ns#="rdf"', 'No broken NS declaration'); $mech->content_contains('xmlns:sd="http://www.w3.org/ns/sparql-service-description#"', 'Correct service description NS declaration'); } { $mech->get_ok('/', { Accept => 'application/rdf+xml' }); is( $mech->ct, 'application/rdf+xml', 'RDF/XML service description' ); my $sd_content = $mech->content; my $sdmodel = RDF::Trine::Model->new(); my $e = 'http://endpoint.local/'; RDF::Trine::Parser::RDFXML->parse_into_model( $e, $sd_content, $sdmodel ); ok( $sdmodel->size, 'parsed triples' ); my @st = $sdmodel->get_statements( iri($e), $sd->url, undef ); cmp_ok( scalar(@st), '>', 0, 'expected sd:url triple' ); } { my $query = "select * where {}"; my $uri = '/?query=' . uri_escape($query); $mech->get_ok($uri, {Accept => 'application/sparql-results+xml'}, 'got success from empty query'); is( $mech->ct, 'application/sparql-results+xml', 'SRX media type' ); my $content = $mech->content; my $i = RDF::Trine::Iterator->from_string( $content ); isa_ok( $i, 'RDF::Trine::Iterator::Bindings' ); my $iter = $i->materialize; is( $iter->length, 1, 'expected result count' ); } my $before = $model->size; { my $update = 'PREFIX : INSERT DATA { :rdf_endpoint_test :p "FoooooBAR", 1, _:a }'; my $resp = $mech->post_ok('/', { update => $update }, 'got success from insert POST' ); } my $after = $model->size; is( ($after - $before), 3, 'expected model size after INSERT' ); { my $query = 'PREFIX : SELECT ?o WHERE { :rdf_endpoint_test :p ?o }'; my $uri = '/?query=' . uri_escape($query); $mech->get_ok($uri, {Accept => 'application/sparql-results+xml'}, 'got success from query GET'); my $content = $mech->content; my $iter = RDF::Trine::Iterator->from_string( $content ); my @values; while (my $r = $iter->next) { my $o = $r->{o}; if ($o->isa('RDF::Trine::Node::Blank')) { push(@values, '_'); } else { push(@values, $o->value); } } is_deeply( [sort @values], [qw(1 FoooooBAR _)], 'expected values after INSERT' ); } { my $query = 'PREFIX : SELECT * WHERE { ?s ?p ?o }'; $mech->get_ok("/", "Returns 200"); $mech->title_like(qr/SPARQL/, "Title contains the word SPARQL"); $mech->submit_form_ok( { form_id => 'queryform', fields => { query => $query, 'media-type' => 'text/html' }, }, 'Submitting SELECT query.' ); $mech->title_like(qr/SPARQL/, "Title contains the word SPARQL"); $mech->has_tag('textarea', $query, 'Query is in a textarea in the response'); $mech->has_tag('td', 'FoooooBAR', 'Literal string is in the response'); } { my $update = 'PREFIX : DELETE { :rdf_endpoint_test :p ?o } WHERE { :rdf_endpoint_test ?p ?o }'; my $resp = $mech->post_ok('/', { update => $update }, 'got success from delete POST' ); } { my $query = 'PREFIX : SELECT ?o WHERE { :rdf_endpoint_test ?p ?o }'; my $uri = '/?query=' . uri_escape($query); $mech->get_ok($uri, {Accept => 'application/sparql-results+xml'}, 'got success from query GET'); my $content = $mech->content; my $iter = RDF::Trine::Iterator->from_string( $content ); my $count = 0; while (my $r = $iter->next) { $count++; } is( $count, 0, 'expected count after delete' ); } done_testing(); RDF-Endpoint-0.05/share/index.html000644 000765 000024 00000002660 11647605574 017733 0ustar00samofoolstaff000000 000000 SPARQL


RDF-Endpoint-0.05/share/results.html000644 000765 000024 00000001432 11712064116 020301 0ustar00samofoolstaff000000 000000 SPARQL Results

Query


RDF-Endpoint-0.05/share/www/000755 000765 000024 00000000000 11760736475 016557 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/share/www/css/000755 000765 000024 00000000000 11760736475 017347 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/share/www/favicon.ico000644 000765 000024 00000026451 11411730762 020672 0ustar00samofoolstaff000000 000000 PNG  IHDR@@iqJiCCPICC ProfilexYy8V]ܣ}yy S]U?3h}wWozGFZG`H@~D29BC҅z@`M/7yDHHAL&{L~'2~@Tx09~ AA`0!7Y r ]!2O-BaMHC#}!h37B16@pGTYþ&e`h؀+3 |@ DP =W+ |"(> 8 C0_rzF1y"GA3x#۱.=?cѷkL̜Bh9"ZD4 H*hZC0hczؼx5aW: -6-h8;@/,<>2?Gr}$xLB$xddevo9뷱lv"?47@QJ؊ J @ͬWLdo} 5 =%08H#1 C(H,2 jP] 0fX&A8C7$Cr @{!P(:ҡl(**:4 A_ aaX6`7d8΃K*ńEITPz(K JDrQ%T+5ZD@ch$h{:>G_G7{Oѓe/ ÁǨaL0N?L &S<`cX&0VkubbOc/akvñq8KK]UqOp3u<%/7ĻC{'M  A 5 K oxLRV3Z0A`G$%jo|֔Iy7)SNR ňzDWb 1XN "~#HB$m )A uHTTRT&TTG P-QSP RPNΥn~LHCA#DGCI)iyAJKO+KkIB{,N΀Λ.*]7=^ދ8})}/ A!!aaQс1q $d̔T4ʴɬÜ\yEŇ%9+kkk;645"^Evvuv/4z0 A9V9889/rvs.r1qisr5Mϭ}{G''gט7wwOϞ_-;~ /y.ensC)U/ 9 jf6N~+B)y&U $:,)=ŕ/H`$T%B%J$^H%u$c%+%'JjZvΒ%(,S*FNTlW919/g$yC#_|^*++TRT4,\BAJ}Uջ?ԔԢ>KP#gO) > FƄ& -^-V{m~mo2:::U:K2uu + uc͌_pxT,*61#ٚ国+7ro9lnj~EE%4u&.N=I>2dt(hGde[9x539)yщȔ'O^>>pj(U>b42[N?8#{&voPRfYгYZY׳iΙkJ{@B 1&5_xV݂BµKޗi\漜~yJFō%B%WWc~(u(r,gyhu=78ndV•1sUU55ŵL7͘uuf] * 5oަ57.77M4;7t޾#u.݂6ƶ{{W;;;:ܻt;u?5gݯ~_**>H!ʏU[G{Ӿg&[<}K_}yzM[۴w4r8JEk'&&'}fkja:jzk&CGrw ,/l.|T$tN3_"l=[Jתkipy` Sg/_oCɑݽ ia__#93; @SJ EA -TsY(FTÇYG)(.j|:~*F-6+#4^{~v7BWE$OIsɏ+F+S\QST0ֶ341*0Au3[Y6[mf=vsq:w{];/țG/?%063qxRzIb<`tχKJr9r88>ܚZ:ۺz⏨ ͚_ۻއ!/, QMy0-|3#1\'Rp)['ZHN{37ded=s>4/kE|BKEvە^/fYf^nrݪ"FYPF wͰ Oo6267۴fܩ;ڶ.ay{pwc=n.)x4YQ/_q&^y3]۸DSSߧ;gN}Hlw%8$jJie9+nW>RV']o2%M-V;wU{݁םp_njpБǭß=bG8{T4۾haU+a011?"XGIl3vǁB26 ^/QpP('7 ?(()'2$R*iJ /j>I6vΎ>};Fuv&#'n HӲV鱍 d||҄EDe$x$)%KMJ?i-;.`ħLP^QST޿ƒͪ#gnix(ϸƤ٦9~7m^;pq༽U{Dzwόl@oSpXHo[xt`PtR̋2qS#'Ov,4Y=j3͙Yes/T_+h}x4| I ƛ.ڵ1w={?q0|H̳w^CMLϦ|]b֫ew&d0pG*-$ ( A2L`MF_PhJ:*Buޣha): @pc1ɘ&d=-.W[ċ% YX6`I( R*Q|C"I\*=U35Q.Zr:zt"C:#cS%*}},ˬll]qspqep+s*Z%V(~J"VKZZ[FZOABRXS4<2){T/_1db佧̫,F68P:;9'Wz-&WwϼM@Z`W0z !|9Rc^3?0~ڑ̣ړN8Y6y:#cO槬+sXsgj P*)s}խ;0(ݜ}nuU{}/{TLMf.Z*\Jڭ] "U8pER\$4}Y`- (&*u 5/<L!K/5,VlpŸx|9E%JxFN$aII_TI0u 3M $m [JkLYX.A:ˡ̱y0>%(e ~  A!1a>NQ1Nq. aI))5igpSe ݊U/5 moH0X¤}E][3 0_'ѹ^ٯ>H. H ~1cw=pӤc 'ޞ<*w:(Ye=y>1_ 3/wK6KsʔʟTUb.ԯihiqk]~O}ӯSgchp#x0HSg~/Zp\ `eajbϖz[jw_NsqcC`h|%urk'O?7~j .R~&.Yۛ%?"#a,Rs/LA~GT6l! pHYs  IDATx[ tUՙ#7 $<!QD`QPSk yutI3c̚$ZZhKhK:-AQy(/ ${{{.7ls?{uWkbCK8^.i?4T O،tھs6`ZaUi}[wgoR=)۽_=rEe|۫p~ eF!3T[k{{}>v^cºRM&[DŽn||Ծܽ}rzK1\ή!h ʶɮ_~!%E#,G^[Ayur9t;zWoGj6|ď=z'~lD>XLdT}Z$A9sXa^QS3wMa@nIPiט'c|9N2 v31^0 da =tO? y#1WbYHqrLdFa@hDqCt}c ]xxs {oH8HZ44xB ʅ ؽxK\8t?b'us` \nIqD<%^i&!JFp&xM_ÿtxhSg))#%]cy?MUuQ%}륿s+ \>zPsҟvoPxT{7Q<5G F1 ʯC9 ^Qmw:#ZPVIa#ާ Iڰ5|+B(icZa@PV&!;\Uʽ* ):yݵ&X"tpRؙ(Fk~mE e=c۾"qK:d4RPY=Օ#Ym-1 cOH rne?)ѾID%\ʐts>Bx.GO@RIkwR!䧥, gSҊKi-^M䭏v$4\sv 1vRT n6bW$f>`R`\$NL TCߨ)ֆqEj) :4\=||N *= OЮ!RUJ,#ִAU&|ukoME/dj4D8(`avSUe/ -)XE>uc/싖u\o$H6w.J6`ɀ\K',Hj^_^ 'A\QLH0Q7wU]zpT! w # qIjG.ܺ(~R"ME (d N('IG{X&11pLGոn~db3hcxv]>J`'XʺʟC?Z=o81Ş`;4S{SEKFހ ‡9qf(Pw{+?RkHU%ruU#iNxK.^[ MM˶Y~1dzTO|q^b3Lk6VIW4TXHI~\Pos?yToGହ *I$r_@o5aCevs \Fc7 b*We]Ƃ 8de1&[@ '$WYd07*兦 x`]q.9=~-ceS)1 HZZ_6XD2q ԓ4i}fԮ⢼k"IES[:x)cy񇤙hFBPyqqc |#S.o# #ϛ梔>DɈz쒒x*Hc. N\*"_XGȌV >k˕B@9h'kSeSoY8QU)u/x2ii!Oc;_ 2b+8클GWԈdט&{i5N! )<$Pom5_q9FZ7v LД^=c p;a;v"K~Co0[^ WXMjӄB#k5_iFvXSP.Fiߤ]CP hpom UrdŲ&n h@t/n1'Qrdwͬ?[R{Z=τH qB| AUKjM;_ HaLT`9Lxj}HLo7!, +e6LnU YA:J9 Ht8w&p8uHytx ЙT#Fw6MZpb*dJ-|Ҩ4#"z Mm&UcQyrJl2%AS;5h\P&K޸\ ,ַl30]׽7 ]V!%x\T}\ % '{4jyG$!:w< e5Kdg_ d1~٫F6^+7s<YDҊژY%aг )CalS{JHu}Pbw ןt 0R5 ե]牁HrJHؙޓe@e[T|yEh'Ţz3EՐz6 }$(`K> >AH#9 L?GIQx=;iiec yU~T/cpmAIo=q٫Q M`g34#١3הb iJ'v\SۊKG- +-iH(tHX]@1z$=ݰqw!&IR"Duz:#2vAUiFb)Mפwڋ#z@P62s 'D| Ad2\UeQܴQPބ5O϶/rVg̫"b(=W{mU#20<3 k 13 mw ~2~b~Sk%S^mc!*֑pqdhHF')jG:E;]ARBwQdю#1B7AAu/,~@NPYR0))Bb TZTi1 #{K&CoZ},ri+VH| :Ӣ 9!МQ $ߨjUH̖Ҹ9 Ӽ'_uєÙWVJ& EչIu|c(3հS=A"}:vhKKF@9!1=JE-fsa^p@ϥ Ӂl}ەn[SvrPa2UR mR 1Bb,M7lTӒ_ Iy=+ƼL /`כ Y'yi %]KC3[!=3:}~&&(ل-GzvK<˽J[}z  `|gvįla\#6&dZAvͱW `Xy]czcF݂EE*U)j(]^8p] ^"'E-\WyƩP.{w0^-%x6"ɘ2 t[@0*j#_!o~A^TG*+xKL5FGz.b@v2cWfUgVӮHqeIu.bJ%%GdGײ0k̮n\.uT=Gc>ZҼ =+״{VۜbOIb>}o[4+,Hۆi02jk7̀3&}78bZH]K X}yKҚHsluA8;$|=ȓW ֥`Q۠5GBwHm웟OZU[ 4EX:ZővHOHwX5Xl{[1@"E9FIpzp/2/JGpVR e`ү*cӇ*" L`J Vd2R̒\̻r+~1tc dwgM>-pnnFSFM;% ۾rʁv48O@Ya $S0E幽"h&JTړTfiU[+ϨN =BZ[砙ݖ9.AY:6hN F~AJhIx } a4{둯ݳzJbT .>Sϵ(܈6q^b㿆y:2H h'*^FXyujgG'D4]^SK_]DU^F msArp[s`(`=qIENDB`RDF-Endpoint-0.05/share/www/js/000755 000765 000024 00000000000 11760736475 017173 5ustar00samofoolstaff000000 000000 RDF-Endpoint-0.05/share/www/js/codemirror.js000644 000765 000024 00000051243 11552456153 021672 0ustar00samofoolstaff000000 000000 /* CodeMirror main module (http://codemirror.net/) * * Implements the CodeMirror constructor and prototype, which take care * of initializing the editor frame, and providing the outside interface. */ // The CodeMirrorConfig object is used to specify a default // configuration. If you specify such an object before loading this // file, the values you put into it will override the defaults given // below. You can also assign to it after loading. var CodeMirrorConfig = window.CodeMirrorConfig || {}; var CodeMirror = (function(){ function setDefaults(object, defaults) { for (var option in defaults) { if (!object.hasOwnProperty(option)) object[option] = defaults[option]; } } function forEach(array, action) { for (var i = 0; i < array.length; i++) action(array[i]); } // These default options can be overridden by passing a set of // options to a specific CodeMirror constructor. See manual.html for // their meaning. setDefaults(CodeMirrorConfig, { stylesheet: [], path: "", parserfile: [], basefiles: ["util.js", "stringstream.js", "select.js", "undo.js", "editor.js", "tokenize.js"], iframeClass: null, passDelay: 200, passTime: 50, lineNumberDelay: 200, lineNumberTime: 50, continuousScanning: false, saveFunction: null, onChange: null, undoDepth: 50, undoDelay: 800, disableSpellcheck: true, textWrapping: true, readOnly: false, width: "", height: "300px", minHeight: 100, autoMatchParens: false, parserConfig: null, tabMode: "indent", // or "spaces", "default", "shift" enterMode: "indent", // or "keep", "flat" electricChars: true, reindentOnLoad: false, activeTokens: null, cursorActivity: null, lineNumbers: false, firstLineNumber: 1, indentUnit: 2, domain: null, noScriptCaching: false }); function addLineNumberDiv(container, firstNum) { var nums = document.createElement("DIV"), scroller = document.createElement("DIV"); nums.style.position = "absolute"; nums.style.height = "100%"; if (nums.style.setExpression) { try {nums.style.setExpression("height", "this.previousSibling.offsetHeight + 'px'");} catch(e) {} // Seems to throw 'Not Implemented' on some IE8 versions } nums.style.top = "0px"; nums.style.left = "0px"; nums.style.overflow = "hidden"; container.appendChild(nums); scroller.className = "CodeMirror-line-numbers"; nums.appendChild(scroller); scroller.innerHTML = "
" + firstNum + "
"; return nums; } function frameHTML(options) { if (typeof options.parserfile == "string") options.parserfile = [options.parserfile]; if (typeof options.basefiles == "string") options.basefiles = [options.basefiles]; if (typeof options.stylesheet == "string") options.stylesheet = [options.stylesheet]; var html = [""]; // Hack to work around a bunch of IE8-specific problems. html.push(""); forEach(options.stylesheet, function(file) { html.push(""); }); forEach(options.basefiles.concat(options.parserfile), function(file) { if (!/^https?:/.test(file)) file = options.path + file; html.push("