CSV в RDF с использованием Apache Jena?

Можно ли конвертировать из командной строки csv в rdf, используя Apache Jena?

Можно ли предоставить метаданные, помогающие в конвертации?

Пример тупой попытки с riot:

./apache-jena-3.3.0/bin/riot --base='http://example.com/csvtest/' --syntax=csv --output=ttl csv_dbs_examples/csv_inputs/CDs.csv 
java.lang.NullPointerException
        at org.apache.jena.ext.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770)
        at org.apache.jena.ext.com.google.common.cache.LocalCache.get(LocalCache.java:4153)
        at org.apache.jena.ext.com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:5060)
        at org.apache.jena.atlas.lib.cache.CacheGuava.getOrFill(CacheGuava.java:58)
        at org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.resolveSilentCache(IRIResolver.java:470)
        at org.apache.jena.riot.system.IRIResolver$IRIResolverNormal.resolveSilent(IRIResolver.java:454)
        at org.apache.jena.riot.system.IRIResolver.resolve(IRIResolver.java:328)
        at org.apache.jena.riot.system.IRIResolver$IRIResolverSync.resolve(IRIResolver.java:489)
        at org.apache.jena.riot.system.IRIResolver.resolveIRI(IRIResolver.java:254)
        at org.apache.jena.riot.system.IRIResolver.resolveString(IRIResolver.java:233)
        at org.apache.jena.riot.lang.ReaderRIOTCSV.parse(ReaderRIOTCSV.java:89)
        at org.apache.jena.riot.lang.ReaderRIOTCSV.read(ReaderRIOTCSV.java:67)
        at org.apache.jena.riot.RDFParser.read(RDFParser.java:293)
        at org.apache.jena.riot.RDFParser.parseNotUri(RDFParser.java:283)
        at org.apache.jena.riot.RDFParser.parse(RDFParser.java:233)
        at riotcmd.CmdLangParse.parseRIOT(CmdLangParse.java:286)
        at riotcmd.CmdLangParse.parseFile(CmdLangParse.java:216)
        at riotcmd.CmdLangParse.exec$(CmdLangParse.java:161)
        at riotcmd.CmdLangParse.exec(CmdLangParse.java:127)
        at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
        at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
        at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
        at riotcmd.riot.main(riot.java:34)

1 ответ

Решение

Существует http://jena.apache.org/documentation/csv/ (который вызывается в вопросе), но это не CSVW (стандарт W3C). Существует несколько инструментов для конвертации CSVW - вы можете конвертировать в RDF и затем читать RDF в Jena.

Фактическая трассировка стека является ошибкой в ​​3.3.0 (Apache Jena 3.2.0 должен работать).

Обновление от @GrzegorzWierzowiecki: Подтверждено, что это похоже на ошибку в Jena 3.3.0, так как она работает с Jena 3.1.1

Другие вопросы по тегам