quad

package
v0.0.0-...-05f225d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 19, 2017 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package quad defines quad and triple handling.

Index

Constants

View Source
const HashSize = sha1.Size

HashSize is a size of the slice, returned by HashOf.

Variables

View Source
var (
	ErrInvalid    = errors.New("invalid N-Quad")
	ErrIncomplete = errors.New("incomplete N-Quad")
)
View Source
var DefaultBatch = 10000

Functions

func Copy

func Copy(dst Writer, src Reader) (n int, err error)

Copy will copy all quads from src to dst. It returns copied quads count and an error, if it failed.

Copy will try to cast dst to BatchWriter and will switch to CopyBatch implementation in case of success.

func CopyBatch

func CopyBatch(dst BatchWriter, src Reader, batchSize int) (cnt int, err error)

CopyBatch will copy all quads from src to dst in a batches of batchSize. It returns copied quads count and an error, if it failed.

If batchSize <= 0 default batch size will be used.

func HashOf

func HashOf(v Value) []byte

HashOf calculates a hash of value v.

func HashTo

func HashTo(v Value, p []byte)

HashTo calculates a hash of value v, storing it in a slice p.

func NativeOf

func NativeOf(v Value) interface{}

NativeOf safely call v.Native, returning nil in case of nil Value.

func RegisterFormat

func RegisterFormat(f Format)

RegisterFormat registers a new quad-file format.

func RegisterStringConversion

func RegisterStringConversion(dataType IRI, fnc StringConversion)

RegisterStringConversion will register an automatic conversion of TypedString values with provided type to a native equivalent such as Int, Time, etc.

If fnc is nil, automatic conversion from selected type will be removed.

func StringOf

func StringOf(v Value) string

StringOf safely call v.String, returning empty string in case of nil Value.

Types

type BNode

type BNode string

BNode is an RDF Blank Node (ex: _:name).

func RandomBlankNode

func RandomBlankNode() BNode

RandomBlankNode returns a randomly generated Blank Node.

func (BNode) Native

func (s BNode) Native() interface{}

func (BNode) String

func (s BNode) String() string

type BatchReader

type BatchReader interface {
	ReadQuads(buf []Quad) (int, error)
}

BatchReader is an interface for reading quads in batches.

ReadQuads reads at most len(buf) quads into buf. It returns number of quads that were read and an error. It returns an io.EOF if there is no more quads to read.

type BatchWriter

type BatchWriter interface {
	WriteQuads(buf []Quad) (int, error)
}

BatchWriter is an interface for writing quads in batches.

WriteQuads returns a number of quads that where written and an error, if any.

type Bool

type Bool bool

Bool is a native wrapper for bool type.

It uses NQuad notation similar to TypedString.

func (Bool) Native

func (s Bool) Native() interface{}

func (Bool) String

func (s Bool) String() string

func (Bool) TypedString

func (s Bool) TypedString() TypedString

type ByQuadString

type ByQuadString []Quad

func (ByQuadString) Len

func (o ByQuadString) Len() int

func (ByQuadString) Less

func (o ByQuadString) Less(i, j int) bool

func (ByQuadString) Swap

func (o ByQuadString) Swap(i, j int)

type ByValueString

type ByValueString []Value

func (ByValueString) Len

func (o ByValueString) Len() int

func (ByValueString) Less

func (o ByValueString) Less(i, j int) bool

func (ByValueString) Swap

func (o ByValueString) Swap(i, j int)

type Direction

type Direction byte

Direction specifies an edge's type.

const (
	Any Direction = iota
	Subject
	Predicate
	Object
	Label
)

List of the valid directions of a quad.

func (Direction) Prefix

func (d Direction) Prefix() byte

func (Direction) String

func (d Direction) String() string

type Equaler

type Equaler interface {
	Equal(v Value) bool
}

Equaler interface is implemented by values, that needs a special equality check.

type Float

type Float float64

Float is a native wrapper for float64 type.

It uses NQuad notation similar to TypedString.

func (Float) Native

func (s Float) Native() interface{}

func (Float) String

func (s Float) String() string

func (Float) TypedString

func (s Float) TypedString() TypedString

type Format

type Format struct {
	// Name is a short format name used as identifier for RegisterFormat.
	Name string
	// Ext is a list of file extensions, allowed for file format. Can be used to detect file format, given a path.
	Ext []string
	// Mime is a list of MIME (content) types, allowed for file format. Can be used in HTTP request/responses.
	Mime []string
	// Reader is a function for creating format reader, that reads serialized data from io.Reader.
	Reader func(io.Reader) ReadCloser
	// Writer is a function for creating format writer, that streams serialized data to io.Writer.
	Writer func(io.Writer) WriteCloser
	// Binary is set to true if format is not human-readable.
	Binary bool
}

Format is a description for quad-file formats.

func FormatByExt

func FormatByExt(name string) *Format

FormatByExt returns a registered format by its file extension. Will return nil if format is not found.

func FormatByMime

func FormatByMime(name string) *Format

FormatByMime returns a registered format by its MIME type. Will return nil if format is not found.

func FormatByName

func FormatByName(name string) *Format

FormatByName returns a registered format by its name. Will return nil if format is not found.

func Formats

func Formats() []Format

Formats returns a list of all supported quad formats.

type IRI

type IRI string

IRI is an RDF Internationalized Resource Identifier (ex: <name>).

func (IRI) Full

func (s IRI) Full() IRI

func (IRI) FullWith

func (s IRI) FullWith(n *voc.Namespaces) IRI

func (IRI) Native

func (s IRI) Native() interface{}

func (IRI) Short

func (s IRI) Short() IRI

func (IRI) ShortWith

func (s IRI) ShortWith(n *voc.Namespaces) IRI

func (IRI) String

func (s IRI) String() string

type Int

type Int int64

Int is a native wrapper for int64 type.

It uses NQuad notation similar to TypedString.

func (Int) Native

func (s Int) Native() interface{}

func (Int) String

func (s Int) String() string

func (Int) TypedString

func (s Int) TypedString() TypedString

type LangString

type LangString struct {
	Value String
	Lang  string
}

LangString is an RDF string with language (ex: "name"@lang).

func (LangString) Native

func (s LangString) Native() interface{}

func (LangString) String

func (s LangString) String() string

type Quad

type Quad struct {
	Subject   Value `json:"subject"`
	Predicate Value `json:"predicate"`
	Object    Value `json:"object"`
	Label     Value `json:"label,omitempty"`
}

Our quad struct, used throughout.

func Make

func Make(subject, predicate, object, label interface{}) (q Quad)

Make creates a quad with provided values.

func MakeIRI

func MakeIRI(subject, predicate, object, label string) (q Quad)

MakeIRI creates a quad with provided IRI values.

func MakeRaw

func MakeRaw(subject, predicate, object, label string) (q Quad)

MakeRaw creates a quad with provided raw values (nquads-escaped).

func ReadAll

func ReadAll(r Reader) (arr []Quad, err error)

ReadAll reads all quads from r until EOF. It returns a slice with all quads that were read and an error, if any.

func (Quad) Get

func (q Quad) Get(d Direction) Value

Per-field accessor for quads.

func (Quad) GetString

func (q Quad) GetString(d Direction) string

Per-field accessor for quads that returns strings instead of values.

func (Quad) IsValid

func (q Quad) IsValid() bool

func (Quad) MarshalJSON

func (q Quad) MarshalJSON() ([]byte, error)

func (Quad) NQuad

func (q Quad) NQuad() string

Prints a quad in N-Quad format.

func (*Quad) Set

func (q *Quad) Set(d Direction, v Value)

func (Quad) String

func (q Quad) String() string

Pretty-prints a quad.

func (*Quad) UnmarshalJSON

func (q *Quad) UnmarshalJSON(data []byte) error

type Quads

type Quads struct {
	// contains filtered or unexported fields
}

func NewReader

func NewReader(quads []Quad) *Quads

NewReader creates a quad reader from a quad slice.

func (*Quads) ReadQuad

func (r *Quads) ReadQuad() (Quad, error)

func (*Quads) WriteQuad

func (r *Quads) WriteQuad(q Quad) error

type Raw

type Raw string

Raw is a Turtle/NQuads-encoded value.

func (Raw) Native

func (s Raw) Native() interface{}

func (Raw) String

func (s Raw) String() string

type ReadCloser

type ReadCloser interface {
	Reader
	io.Closer
}

type ReadSkipCloser

type ReadSkipCloser interface {
	Reader
	Skipper
	io.Closer
}

type Reader

type Reader interface {
	ReadQuad() (Quad, error)
}

Reader is a minimal interface for quad readers. Used for quad deserializers and quad iterators.

ReadQuad reads next valid Quad. It returns io.EOF if no quads are left.

type Sequence

type Sequence struct {
	// contains filtered or unexported fields
}

Sequence is an object to generate a sequence of Blank Nodes.

func (*Sequence) Next

func (s *Sequence) Next() BNode

Next returns a new blank node. It's safe for concurrent use.

type Skipper

type Skipper interface {
	SkipQuad() error
}

Skipper is an interface for quad reader that can skip quads efficiently without decoding them.

It returns io.EOF if no quads are left.

type String

type String string

String is an RDF string value (ex: "name").

func (String) Native

func (s String) Native() interface{}

func (String) String

func (s String) String() string

type StringConversion

type StringConversion func(string) (Value, error)

StringConversion is a function to convert string values with a specific IRI type to their native equivalents.

type Time

type Time time.Time

Time is a native wrapper for time.Time type.

It uses NQuad notation similar to TypedString.

func (Time) Equal

func (s Time) Equal(v Value) bool

func (Time) Native

func (s Time) Native() interface{}

func (Time) String

func (s Time) String() string

func (Time) TypedString

func (s Time) TypedString() TypedString

type TypedString

type TypedString struct {
	Value String
	Type  IRI
}

TypedString is an RDF value with type (ex: "name"^^<type>).

func (TypedString) Native

func (s TypedString) Native() interface{}

func (TypedString) ParseValue

func (s TypedString) ParseValue() (Value, error)

ParseValue will try to parse underlying string value using registered functions.

It will return unchanged value if suitable function is not available.

Error will be returned if the type was recognizes, but parsing failed.

func (TypedString) String

func (s TypedString) String() string

type TypedStringer

type TypedStringer interface {
	TypedString() TypedString
}

type Value

type Value interface {
	String() string
	// Native converts Value to a closest native Go type.
	//
	// If type has no analogs in Go, Native return an object itself.
	Native() interface{}
}

Value is a type used by all quad directions.

func AsValue

func AsValue(v interface{}) (out Value, ok bool)

AsValue converts native type into closest Value representation. It returns false if type was not recognized.

func StringToValue

func StringToValue(v string) Value

StringToValue is a function to convert strings to typed quad values.

Warning: should not be used directly - will be deprecated.

type WriteCloser

type WriteCloser interface {
	Writer
	io.Closer
}

type Writer

type Writer interface {
	WriteQuad(Quad) error
}

Writer is a minimal interface for quad writers. Used for quad serializers and quad stores.

Directories

Path Synopsis
Package dot provides an encoder for DOT format (graphviz).
Package dot provides an encoder for DOT format (graphviz).
Package gml provides an encoder for Graph Modeling Format
Package gml provides an encoder for Graph Modeling Format
Package graphml provides an encoder for GraphML format
Package graphml provides an encoder for GraphML format
Package json provides an encoder/decoder for JSON quad formats
Package json provides an encoder/decoder for JSON quad formats
Package jsonld provides an encoder/decoder for JSON-LD quad format
Package jsonld provides an encoder/decoder for JSON-LD quad format
Package nquads implements parsing the RDF 1.1 N-Quads like line-based syntax for RDF datasets.
Package nquads implements parsing the RDF 1.1 N-Quads like line-based syntax for RDF datasets.
Package pquads implements Cayley-specific protobuf-based quads format.
Package pquads implements Cayley-specific protobuf-based quads format.
pio

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL