【问题标题】:Strange behavior by querying DBpedia通过查询 DBpedia 的奇怪行为
【发布时间】:2011-11-24 08:09:46
【问题描述】:

我有一个 jena 的 java 程序,它一直运行良好。

从昨天程序执行这个查询开始

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
DESCRIBE <http://dbpedia.org/resource/Christopher_Moore_%28author%29>

在端点“http://dbpedia.org/sparql”

我收到此错误是因为(我认为)DBpedia 没有返回任何内容

FINE: Executing query:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>        
DESCRIBE <http://dbpedia.org/resource/Christopher_Moore_%28author%29>
GRAVE: ERROR [http-thread-pool-8080-(2)] (RDFDefaultErrorHandler.java:44) - Premature end of file.

AVVERTENZA: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
com.hp.hpl.jena.shared.JenaException: org.xml.sax.SAXParseException: Premature end of file.
        at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:45)
        at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:35)
        at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:225)
        at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:255)
        at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
        at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl$XMLDeclDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:142)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:158)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:145)
        at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:215)
        at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:197)
        at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execModel(QueryEngineHTTP.java:161)
        at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execDescribe(QueryEngineHTTP.java:154)
        at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execDescribe(QueryEngineHTTP.java:152)
        at it.unipr.aotlab.dbsoi.sparqlclient.SPARQLClient.executeDescribeQuery(SPARQLClient.java:96)
        at it.unipr.aotlab.dbsoi.logic.DbSoiLogic.getArtistData(DbSoiLogic.java:200)
        at it.unipr.aotlab.dbsoi.logic.DbSoiLogic.execute(DbSoiLogic.java:99)
        at org.apache.jsp.DbSoi_jsp._jspService(DbSoi_jsp.java from :65)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:406)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:662)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
        at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
        ... 52 more

我还尝试将查询放在网络浏览器中,地址为“http://dbpedia.org/sparql” 使用“http://dbpedia.org”设置默认数据集名称(Graph IRI)

但我得到了错误

错误解释 XML: nessun elemento trovato Indirizzo: http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=PREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E++++++++%0D%0ADESCRIBE+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FAlbert_Camus%3E&format=application%2Frdf%2Bxml&timeout=0&debug=on Linea numero 1,结肠 1:

有人可以帮助我吗?

【问题讨论】:

    标签: java jena dbpedia


    【解决方案1】:

    目前,在http://dbpedia.org/sparql 中使用http://dbpedia.org 数据集名称的查询对我来说工作正常。当 DBpedia SPARQL 端点的响应时间变慢或我的连接出现问题时,我会收到类似的错误。但我不确定你是否属于这种情况。

    这是 RDF/XML 中结果的 sn-p。

    <?xml version="1.0" encoding="utf-8" ?>
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
    <rdf:Description rdf:about="http://dbpedia.org/resource/Christopher_Moore_%28author%29"><dbpedia-owl:wikiPageExternalLink xmlns:dbpedia-owl="http://dbpedia.org/ontology/" rdf:resource="http://www.chrismoore.com"/></rdf:Description>
    <rdf:Description rdf:about="http://dbpedia.org/resource/Christopher_Moore_%28author%29"><dbpedia-owl:abstract xmlns:dbpedia-owl="http://dbpedia.org/ontology/" xml:lang="es">Christopher Moore es un escritor estadounidense de ficción absurda. Su padre fue policía, y su madre trabajó como vendedora de electrodomésticos en un centro comercial. Creció en Mansfield, Ohio donde empezó a escribir a la edad de 12 años, y estudió en la Ohio State University y en el Brooks Institute of Photography en Santa Barbara, California. Trabajó como vendedor de seguros, camarero, fotógrafo, periodista, obrero en la fabrica de cerámica religiosa (motivos de Navidad)y hasta de DJ. Sus novelas suelen mostrar a personajes normales que se ven envueltos en circunstancias sobrenaturales o extraordinarias. Heredando el humanismo de John Steinbeck y el sentido del absurdo de Kurt Vonnegut, Moore se ha convertido en un admirado autor de best-sellers. Según su entrevista con Writer&#39;s Digest en junio de 2007, los derechos para el cine de su primera novela, La Comedia del Diablo, fueron adquiridos por Disney, incluso antes de que el libro fuera publicado. Sin embargo, la adaptación de las novelas de Moore en películas está lejos de ser cumplida, ya que, durante el tour promocional de ¡Chúpate Esa! (2007), como respuesta a las numerosas preguntas de los fans, Moore respondió que todos sus libros han sido propuestos para hacer películas, o sus derechos comprados, pero que ninguno de ellos &quot;corre de momento el riesgo de ser transformado en película&quot;. En junio de 2006, Moore se trasladó a vivir a San Francisco, California, tras residir unos años en la isla de Kauai, Hawaii.</dbpedia-owl:abstract></rdf:Description>
    ...
    

    【讨论】:

    • 我很惊讶。该错误有时会发生有时不会!可能正如您所说,取决于 DBpedia 的负载!谢谢 Danilo Brembilla
    • 是的,DBPedia 现在似乎很不稳定,一点也不;)
    • @dbrembilla 如果这个答案对你有用(尽管“DBpedia 有时不稳定”是一个有解决方案的问题),你应该考虑接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 2010-11-26
    • 2012-09-24
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多