Class HDTParser
- All Implemented Interfaces:
RDFParser
Unfortunately the draft specification is not entirely clear and probably slightly out of date, since the open source reference implementation HDT-It seems to implement a slightly different version. This parser tries to be compatible with HDT-It 1.0.
The most important parts are the Dictionaries containing the actual values (S, P, O part of a triple), and the Triples containing the numeric references to construct the triples.
Since objects in one triple are often subjects in another triple, these "shared" parts are stored in a shared Dictionary, which may significantly reduce the file size.
File structure:
+---------------------+ | Global | | Header | | Dictionary (Shared) | | Dictionary (S) | | Dictionary (P) | | Dictionary (O) | | Triples | +---------------------+
- Author:
- Bart Hanssens
- See Also:
-
Field Summary
Fields inherited from class AbstractRDFParser
rdfHandler, valueFactoryModifier and TypeFieldDescriptionprotected RDFHandlerThe RDFHandler that will handle the parsed RDF.protected ValueFactoryThe ValueFactory to use for creating RDF model objects. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new HDTParser that will use aSimpleValueFactoryto create RDF model objects.HDTParser(ValueFactory valueFactory) Creates a new HDTParser that will use the supplied ValueFactory to create RDF model objects. -
Method Summary
Modifier and TypeMethodDescriptionGets the RDF format that this parser can parse.Collection<RioSetting<?>> voidparse(InputStream in, String baseURI) Parses the data from the supplied InputStream, using the supplied baseURI to resolve any relative URI references.voidNot supported, since HDT is a binary format.Methods inherited from class AbstractRDFParser
clear, clearBNodeIDMap, createBNode, createBNode, createLiteral, createLiteral, createLiteral, createNode, createNode, createStatement, createStatement, createURI, getNamespace, getParseErrorListener, getParseLocationListener, getParserConfig, getRDFHandler, initializeNamespaceTableFromConfiguration, preserveBNodeIDs, reportError, reportError, reportError, reportError, reportError, reportFatalError, reportFatalError, reportFatalError, reportFatalError, reportFatalError, reportLocation, reportWarning, reportWarning, resolveURI, set, setBaseURI, setBaseURI, setNamespace, setParseErrorListener, setParseLocationListener, setParserConfig, setPreserveBNodeIDs, setRDFHandler, setValueFactoryModifier and TypeMethodDescriptionprotected voidclear()Clears any information that has been collected while parsing.protected voidDeprecated.protected BNodeDeprecated.protected BNodecreateBNode(String nodeID) Deprecated.protected LiteralcreateLiteral(String label, String lang, CoreDatatype datatype, long lineNo, long columnNo) Creates aLiteralobject with the supplied parameters, using the lineNo and columnNo to enhance error messages or exceptions that may be generated during the creation of the literal.protected LiteralcreateLiteral(String label, String lang, IRI datatype) Creates aLiteralobject with the supplied parameters.protected LiteralcreateLiteral(String label, String lang, IRI datatype, long lineNo, long columnNo) Creates aLiteralobject with the supplied parameters, using the lineNo and columnNo to enhance error messages or exceptions that may be generated during the creation of the literal.protected Resourceprotected ResourcecreateNode(String nodeID) protected StatementcreateStatement(Resource subj, IRI pred, Value obj) Creates a newStatementobject with the supplied components.protected StatementcreateStatement(Resource subj, IRI pred, Value obj, Resource context) Creates a newStatementobject with the supplied components.protected IRICreates aIRIobject for the specified URI-string.protected StringgetNamespace(String prefix) Gets the namespace that is associated with the specified prefix or throws anRDFParseException.Retrieves the current parser configuration as a single object.protected voidbooleanprotected voidreportError(Exception e, long lineNo, long columnNo, RioSetting<Boolean> relevantSetting) Reports an error with associated line- and column number to the registered ParseErrorListener, if the given setting has been set to true.protected voidreportError(Exception e, RioSetting<Boolean> relevantSetting) Reports an error with associated line- and column number to the registered ParseErrorListener, if the given setting has been set to true.protected voidreportError(String msg, long lineNo, long columnNo, RioSetting<Boolean> relevantSetting) Reports an error with associated line- and column number to the registered ParseErrorListener, if the given setting has been set to true.protected voidreportError(String msg, Exception e, long lineNo, long columnNo, RioSetting<Boolean> relevantSetting) Reports an error with associated line- and column number to the registered ParseErrorListener, if the given setting has been set to true.protected voidreportError(String msg, RioSetting<Boolean> relevantSetting) Reports an error with associated line- and column number to the registered ParseErrorListener, if the given setting has been set to true.protected voidReports a fatal error to the registered ParseErrorListener, if any, and throws a ParseException afterwards.protected voidreportFatalError(Exception e, long lineNo, long columnNo) Reports a fatal error with associated line- and column number to the registered ParseErrorListener, if any, and throws a ParseException wrapped the supplied exception afterwards.protected voidreportFatalError(String msg) Reports a fatal error to the registered ParseErrorListener, if any, and throws a ParseException afterwards.protected voidreportFatalError(String msg, long lineNo, long columnNo) Reports a fatal error with associated line- and column number to the registered ParseErrorListener, if any, and throws a ParseException afterwards.protected voidreportFatalError(String message, Exception e, long lineNo, long columnNo) Reports a fatal error with associated line- and column number to the registered ParseErrorListener, if any, and throws a ParseException wrapped the supplied exception afterwards.protected voidreportLocation(long lineNo, long columnNo) Reports the specified line- and column number to the registeredParseLocationListener, if any.protected voidreportWarning(String msg) Reports a warning to the registered ParseErrorListener, if any.protected voidreportWarning(String msg, long lineNo, long columnNo) Reports a warning with associated line- and column number to the registered ParseErrorListener, if any.protected IRIresolveURI(String uriSpec) Resolves a URI-string against the base URI and creates aIRIobject for it.<T> RDFParserset(RioSetting<T> setting, T value) Set a setting on the parser, and return this parser object to allow chaining.protected voidsetBaseURI(String uriSpec) Parses the supplied URI-string and sets it as the base URI for resolving relative URIs.protected voidsetBaseURI(ParsedIRI baseURI) Sets the base URI for resolving relative URIs.protected voidsetNamespace(String prefix, String namespace) Associates the specified prefix to the specified namespace.Sets the ParseErrorListener that will be notified of any errors that this parser finds during parsing.Sets the ParseLocationListener that will be notified of the parser's progress during the parse process.setParserConfig(ParserConfig config) Sets all supplied parser configuration options.voidsetPreserveBNodeIDs(boolean preserveBNodeIDs) Set whether the parser should preserve bnode identifiers specified in the source (default is false).setRDFHandler(RDFHandler handler) Sets the RDFHandler that will handle the parsed RDF data.setValueFactory(ValueFactory valueFactory) Sets the ValueFactory that the parser will use to create Value objects for the parsed RDF data.
-
Constructor Details
-
HDTParser
public HDTParser()Creates a new HDTParser that will use aSimpleValueFactoryto create RDF model objects. -
HDTParser
Creates a new HDTParser that will use the supplied ValueFactory to create RDF model objects.- Parameters:
valueFactory- A ValueFactory.
-
-
Method Details
-
getRDFFormat
-
getSupportedSettings
- Specified by:
getSupportedSettingsin interfaceRDFParser- Overrides:
getSupportedSettingsin classAbstractRDFParser- Returns:
- A collection of
RioSettings that are supported by this RDFParser.
-
parse
public void parse(InputStream in, String baseURI) throws IOException, RDFParseException, RDFHandlerException Description copied from interface:RDFParserParses the data from the supplied InputStream, using the supplied baseURI to resolve any relative URI references.- Parameters:
in- The InputStream from which to read the data.baseURI- The URI associated with the data in the InputStream. May benull. Parsers for syntax formats that do not support relative URIs will ignore this argument.Note that if the data contains an embedded base URI, that embedded base URI will overrule the value supplied here (see RFC 3986 section 5.1 for details).
- Throws:
IOException- If an I/O error occurred while data was read from the InputStream.RDFParseException- If the parser has found an unrecoverable parse error.RDFHandlerException- If the configured statement handler has encountered an unrecoverable error.
-
parse
Not supported, since HDT is a binary format.- Parameters:
reader- The Reader from which to read the data.baseURI- The URI associated with the data in the InputStream. May benull. Parsers for syntax formats that do not support relative URIs will ignore this argument.Note that if the data contains an embedded base URI, that embedded base URI will overrule the value supplied here (see RFC 3986 section 5.1 for details).
- Throws:
RDFParseException- If the parser has found an unrecoverable parse error.RDFHandlerException- If the configured statement handler has encountered an unrecoverable error.
-
AbstractRDFParser.clear()instead.