https://bugzilla.wikimedia.org/show_bug.cgi?id=33687
Web browser: --- Bug #: 33687 Summary: Unresolved prefixed name in SPARQL Query Product: MediaWiki extensions Version: any Platform: PC OS/Version: Linux Status: NEW Severity: blocker Priority: Unprioritized Component: Semantic MediaWiki AssignedTo: wikibugs-l@lists.wikimedia.org ReportedBy: icarnev...@imolinfo.it CC: jeroen_ded...@yahoo.com, mar...@semantic-mediawiki.org Classification: Unclassified Installed software - MediaWiki 1.18.0 (r525) - Semantic MediaWiki (Version 1.6.1) (r525) I use SMW whit Joseki as default store. The configuration in my LocalSettings.php is the following $smwgDefaultStore = 'SMWSparqlStore'; $smwgSparqlQueryEndpoint = 'http://localhost:8080/joseki/sparql'; $smwgSparqlUpdateEndpoint = 'http://localhost:8080/joseki/update/service'; $smwgSparqlDataEndpoint = ''; # optional location of SPARQL over HTTP service i have this error on browser while generating SPARQL DELETE query: Unexpected non-MediaWiki exception encountered, of type "SMWSparqlDatabaseError" exception 'SMWSparqlDatabaseError' with message 'A SPARQL query error has occurred Query: PREFIX wiki: <http://unbreakable.local/mediawiki/index.php/Special:URIResolver/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX swivt: <http://semantic-mediawiki.org/swivt/1.0#> PREFIX property: <http://unbreakable.local/mediawiki/index.php/Special:URIResolver/Property-3A> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> DELETE { ?s ?p ?o } WHERE { ?s swivt:masterPage state-instances:business_service-609 . ?s ?p ?o } Error: Query refused Endpoint: http://localhost:8080/joseki/update/service HTTP response code: 500 ' in /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php:533 Stack trace: #0 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php(446): SMWSparqlDatabase->throwSparqlErrors('http://localhos...', 'PREFIX wiki: <h...') #1 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php(317): SMWSparqlDatabase->doUpdate('PREFIX wiki: <h...') #2 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php(337): SMWSparqlDatabase->delete('?s ?p ?o', '?s swivt:master...', Array) #3 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/storage/SMW_SparqlStore.php(261): SMWSparqlDatabase->deleteContentByValue('swivt:masterPag...', 'state-instances...') #4 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/storage/SMW_SparqlStore.php(66): SMWSparqlStore->deleteSparqlData(Object(SMWExpNsResource)) #5 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/storage/SMW_Store.php(303): SMWSparqlStore->doDataUpdate(Object(SMWSemanticData)) #6 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/SMW_ParseData.php(267): SMWStore->updateData(Object(SMWSemanticData)) #7 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/jobs/SMW_UpdateJob.php(65): SMWParseData::storeData(Object(ParserOutput), Object(Title), false) #8 /Evoluzione02/mediawiki/includes/Wiki.php(411): SMWUpdateJob->run() #9 /Evoluzione02/mediawiki/includes/Wiki.php(385): MediaWiki->doJobs() #10 /Evoluzione02/mediawiki/includes/Wiki.php(627): MediaWiki->finalCleanup() #11 /Evoluzione02/mediawiki/includes/Wiki.php(533): MediaWiki->main() #12 /Evoluzione02/mediawiki/index.php(57): MediaWiki->run() #13 {main} #0 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php(446): SMWSparqlDatabase->throwSparqlErrors('http://localhos...', 'PREFIX wiki: <h...') #1 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php(317): SMWSparqlDatabase->doUpdate('PREFIX wiki: <h...') #2 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/sparql/SMW_SparqlDatabase.php(337): SMWSparqlDatabase->delete('?s ?p ?o', '?s swivt:master...', Array) #3 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/storage/SMW_SparqlStore.php(261): SMWSparqlDatabase->deleteContentByValue('swivt:masterPag...', 'state-instances...') #4 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/storage/SMW_SparqlStore.php(66): SMWSparqlStore->deleteSparqlData(Object(SMWExpNsResource)) #5 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/storage/SMW_Store.php(303): SMWSparqlStore->doDataUpdate(Object(SMWSemanticData)) #6 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/SMW_ParseData.php(267): SMWStore->updateData(Object(SMWSemanticData)) #7 /Evoluzione02/mediawiki/extensions/SemanticMediaWiki/includes/jobs/SMW_UpdateJob.php(65): SMWParseData::storeData(Object(ParserOutput), Object(Title), false) #8 /Evoluzione02/mediawiki/includes/Wiki.php(411): SMWUpdateJob->run() #9 /Evoluzione02/mediawiki/includes/Wiki.php(385): MediaWiki->doJobs() #10 /Evoluzione02/mediawiki/includes/Wiki.php(627): MediaWiki->finalCleanup() #11 /Evoluzione02/mediawiki/includes/Wiki.php(533): MediaWiki->main() #12 /Evoluzione02/mediawiki/index.php(57): MediaWiki->run() #13 {main} On Joseki log i have: PREFIX wiki: <http://unbreakable.local/mediawiki/index.php/Special:URIResolver/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX swivt: <http://semantic-mediawiki.org/swivt/1.0#> PREFIX property: <http://unbreakable.local/mediawiki/index.php/Special:URIResolver/Property-3A> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> DELETE { ?s ?p ?o } WHERE { ?s swivt:masterPage state-instances:business_service-609 . ?s ?p ?o }" WARN [http-bio-8080-exec-7] (ProcessorBase.java:153) - Internal error - unexpected exception: com.hp.hpl.jena.query.QueryParseException: Line 8, column 49: Unresolved prefixed name: state-instances:business_service-609 at com.hp.hpl.jena.sparql.lang.ParserBase.throwParseException(ParserBase.java:538) at com.hp.hpl.jena.sparql.lang.ParserBase.resolvePName(ParserBase.java:237) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.PrefixedName(ARQParser.java:4958) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.IRIref(ARQParser.java:4942) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GraphTerm(ARQParser.java:3503) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.VarOrTerm(ARQParser.java:3445) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GraphNode(ARQParser.java:3401) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Object(ARQParser.java:2793) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.ObjectList(ARQParser.java:2774) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.PropertyListNotEmptyPath(ARQParser.java:2885) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.TriplesSameSubjectPath(ARQParser.java:2849) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.TriplesBlock(ARQParser.java:2230) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GroupGraphPatternSub(ARQParser.java:2135) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GroupGraphPattern(ARQParser.java:2097) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Modify(ARQParser.java:1693) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Update1(ARQParser.java:1450) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Update(ARQParser.java:1379) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.UpdateUnit(ARQParser.java:1369) at com.hp.hpl.jena.sparql.lang.ParserARQUpdate._parse(ParserARQUpdate.java:54) at com.hp.hpl.jena.sparql.lang.ParserARQUpdate.parse(ParserARQUpdate.java:45) at org.joseki.processors.SPARQLUpdate.execOperation(SPARQLUpdate.java:78) at org.joseki.processors.ProcessorBase.exec(ProcessorBase.java:136) at org.joseki.ServiceRequest.exec(ServiceRequest.java:36) at org.joseki.Dispatcher.dispatch(Dispatcher.java:59) at org.joseki.http.Servlet.doCommon(Servlet.java:178) at org.joseki.http.ServletUpdate.doPost(ServletUpdate.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) WARN [http-bio-8080-exec-7] (Servlet.java:183) - Internal server error com.hp.hpl.jena.query.QueryParseException: Line 8, column 49: Unresolved prefixed name: state-instances:business_service-609 at com.hp.hpl.jena.sparql.lang.ParserBase.throwParseException(ParserBase.java:538) at com.hp.hpl.jena.sparql.lang.ParserBase.resolvePName(ParserBase.java:237) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.PrefixedName(ARQParser.java:4958) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.IRIref(ARQParser.java:4942) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GraphTerm(ARQParser.java:3503) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.VarOrTerm(ARQParser.java:3445) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GraphNode(ARQParser.java:3401) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Object(ARQParser.java:2793) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.ObjectList(ARQParser.java:2774) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.PropertyListNotEmptyPath(ARQParser.java:2885) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.TriplesSameSubjectPath(ARQParser.java:2849) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.TriplesBlock(ARQParser.java:2230) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GroupGraphPatternSub(ARQParser.java:2135) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.GroupGraphPattern(ARQParser.java:2097) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Modify(ARQParser.java:1693) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Update1(ARQParser.java:1450) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.Update(ARQParser.java:1379) at com.hp.hpl.jena.sparql.lang.arq.ARQParser.UpdateUnit(ARQParser.java:1369) at com.hp.hpl.jena.sparql.lang.ParserARQUpdate._parse(ParserARQUpdate.java:54) at com.hp.hpl.jena.sparql.lang.ParserARQUpdate.parse(ParserARQUpdate.java:45) at org.joseki.processors.SPARQLUpdate.execOperation(SPARQLUpdate.java:78) at org.joseki.processors.ProcessorBase.exec(ProcessorBase.java:136) at org.joseki.ServiceRequest.exec(ServiceRequest.java:36) at org.joseki.Dispatcher.dispatch(Dispatcher.java:59) at org.joseki.http.Servlet.doCommon(Servlet.java:178) at org.joseki.http.ServletUpdate.doPost(ServletUpdate.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) The problem is that in the PREFIX list i don't have the "state-instances" prefix. In SMW_SparqlDatabase.php the method public function delete( $deletePattern, $where, $extraNamespaces = array() ) "extraNamespaces" that is an array (associative) of namespaceId => namespaceUri, and it contains prefix different from wiki, swivt, rdf, owl, rdfs, property, xsd. The method SMW_SparqlStore.php:deleteSparqlData( SMWExpResource $expResource ) invoke SMW_SparqlDatabase.php:delete like smwfGetSparqlDatabase()->delete( "$resourceUri ?p ?o", "$resourceUri ?p ?o" ); and "extraNamespaces" isn't in the parameters list. Solution: 1) Fill extraNamespaces int he following way $extraNamespaces = array(); $extraNamespaces[$expResource->getNamespaceId()]=$expResource->getNamespace(); 2) Pass the filled array to SMW_SparqlDatabase.php:delete method like smwfGetSparqlDatabase()->delete( "$resourceUri ?p ?o", "$resourceUri ?p ?o", $extraNamespaces ); and the result is /** * Delete from the SPARQL database all data that is associated with the * given resource. * * @param $expResource SMWExpResource * @return boolean success */ protected function deleteSparqlData( SMWExpResource $expResource ) { $resourceUri = SMWTurtleSerializer::getTurtleNameForExpElement( $expResource ); $masterPageProperty = SMWExporter::getSpecialNsResource( 'swivt', 'masterPage' ); $masterPagePropertyUri = SMWTurtleSerializer::getTurtleNameForExpElement( $masterPageProperty ); $extraNamespaces = array(); $extraNamespaces[$expResource->getNamespaceId()]=$expResource->getNamespace(); $success = smwfGetSparqlDatabase()->deleteContentByValue( $masterPagePropertyUri, $resourceUri, $extraNamespaces ); if ( $success ) { return smwfGetSparqlDatabase()->delete( "$resourceUri ?p ?o", "$resourceUri ?p ?o", $extraNamespaces ); } else { return false; } } -- Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. You are on the CC list for the bug. _______________________________________________ Wikibugs-l mailing list Wikibugs-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikibugs-l