【问题标题】:How to upload RDF code to fuseki server using Java?如何使用 Java 将 RDF 代码上传到 fuseki 服务器?
【发布时间】:2017-08-23 09:34:19
【问题描述】:

我写了一个将数据转换为RDF的函数,我需要把这个RDF上传到fuseki服务器。

我尝试实现here的代码如下

public class GenerateRDF {
      public void setRDF(String[] personalData ) {
        String serviceURI = "http://localhost:3030/Date";
        DatasetAccessorFactory factory = null;
        DatasetAccessor accessor;
        accessor = factory.createHTTP(serviceURI);

        String name = personalData[0];
        String nationality = personalData[1];
        String date = personalData[2];
        String address = personalData[3];
        String mobile = personalData[4];
        String email = personalData[5];
        String website = personalData[6];
        String profesional = personalData[7];
        String education = personalData[8];
        String communication = personalData[9];
        String digital = personalData[10];
        String professional = personalData[11];
        String management = personalData[12];
        String certifications = personalData[13];

        InputStream in = null;
        Model model = ModelFactory.createDefaultModel();
        Resource node = model.createResource(personURI)
             .addProperty(FOAF.name, name)
             .addProperty(FOAF.member, nationality)
             .addProperty(FOAF.birthday, date)
             .addProperty(FOAF.homepage, address)
             .addProperty(FOAF.phone, mobile)
             .addProperty(FOAF.yahooChatID, email)
             .addProperty(FOAF.weblog, website)
             .addProperty(FOAF.plan, profesional)
             .addProperty(FOAF.knows, education)
             .addProperty(FOAF.depiction, communication)
             .addProperty(FOAF.interest, digital)
             .addProperty(FOAF.publications, professional)
             .addProperty(FOAF.maker, management)
             .addProperty(FOAF.made, certifications);
        String base = "http://test-projects.com/";
        model.read(in, base, "RDF/XML");
        accessor.putModel(model);
        model.write(System.out);
    }
}

返回以下异常:

线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException 在 java.io.FilterInputStream.read(未知来源) 在 org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.readAndBuffer(未知来源) 在 org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(未知来源) 在 org.apache.xerces.impl.XMLEntityManager.startEntity(未知来源) 在 org.apache.xerces.impl.XMLEntityManager.startDocumentEntity(未知来源) 在 org.apache.xerces.impl.XMLDocumentScannerImpl.setInputSource(未知来源) 在 org.apache.xerces.parsers.DTDConfiguration.parse(未知来源) 在 org.apache.xerces.parsers.DTDConfiguration.parse(未知来源) 在 org.apache.xerces.parsers.XMLParser.parse(未知来源) 在 org.apache.xerces.parsers.AbstractSAXParser.parse(未知来源) 在 com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:151) 在 com.hp.hpl.jena.rdf.arp.ARP.load(ARP.java:119) 在 org.apache.jena.riot.lang.LangRDFXML.parse(LangRDFXML.java:142) 在 org.apache.jena.riot.RDFParserRegistry$ReaderRIOTFactoryImpl$1.read(RDFParserRegistry.java:142) 在 org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:760) 在 org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:258) 在 org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:244) 在 org.apache.jena.riot.adapters.RDFReaderRIOT.read(RDFReaderRIOT.java:69) 在 com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:274) 在 GenerateRDF.setRDF(GenerateRDF.java:59) 在 PersonalInfo$2.actionPerformed(PersonalInfo.java:251) 在 javax.swing.AbstractButton.fireActionPerformed(未知来源) 在 javax.swing.AbstractButton$Handler.actionPerformed(未知来源) 在 javax.swing.DefaultButtonModel.fireActionPerformed(未知来源) 在 javax.swing.DefaultButtonModel.setPressed(未知来源) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知来源) 在 java.awt.Component.processMouseEvent(未知来源) 在 javax.swing.JComponent.processMouseEvent(未知来源) 在 java.awt.Component.processEvent(未知来源) 在 java.awt.Container.processEvent(未知来源) 在 java.awt.Component.dispatchEventImpl(未知来源) 在 java.awt.Container.dispatchEventImpl(未知来源) 在 java.awt.Component.dispatchEvent(未知来源) 在 java.awt.LightweightDispatcher.retargetMouseEvent(未知来源) 在 java.awt.LightweightDispatcher.processMouseEvent(未知来源) 在 java.awt.LightweightDispatcher.dispatchEvent(未知来源) 在 java.awt.Container.dispatchEventImpl(未知来源) 在 java.awt.Window.dispatchEventImpl(未知来源) 在 java.awt.Component.dispatchEvent(未知来源) 在 java.awt.EventQueue.dispatchEventImpl(未知来源) 在 java.awt.EventQueue.access$500(未知来源) 在 java.awt.EventQueue$3.run(未知来源) 在 java.awt.EventQueue$3.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(未知来源) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue$4.run(未知来源) 在 java.awt.EventQueue$4.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(未知来源) 在 java.awt.EventQueue.dispatchEvent(未知来源) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.pumpEvents(未知来源) 在 java.awt.EventDispatchThread.run(未知来源)

有没有办法解决这个错误?我愿意接受解决方案...

【问题讨论】:

    标签: java rdf fuseki


    【解决方案1】:

    您可能想看看这里:https://hub.docker.com/r/stain/jena-fuseki/

    有一个关于数据加载的部分可以指导你。

    更具体地说,可以在此处找到 load.sh 和 tdbloader:https://github.com/stain/jena-docker/tree/master/jena-fuseki

    当您在标题中提到“将文件上传到 fuseki”时,我对您的问题感到有些困惑,但您的代码并未引用任何文件...

    【讨论】:

    • 你是对的,对不起!没有文件,需要上传RDF代码到Fuseki服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2014-11-16
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多