Make Quads

Make Quads #

Problem #

How can I create new quads in Go?

Solution #

Create Quads:

package main

import (
	"github.com/cayleygraph/quad"

	// Add some predefined vocabularies
	"github.com/cayleygraph/quad/voc/rdf"
	"github.com/tombenke/cayley-cookbook-src/kbase/voc/foaf"
)

func makeQuads() []quad.Quad {
	// Generate Blank Nodes to represent the people internally
	luke := quad.RandomBlankNode()
	leia := quad.IRI("starwars:leia_organa") //quad.RandomBlankNode()

	// Create Quads about to export
	label := "people"
	quads := []quad.Quad{}
	quads = append(quads, quad.Make(luke, quad.IRI(rdf.Type), quad.IRI(foaf.Person), label))
	quads = append(quads, quad.Make(luke, quad.IRI(foaf.GivenName), "Luke", label))
	quads = append(quads, quad.Make(luke, quad.IRI(foaf.FamilyName), "Skywalker", label))
	quads = append(quads, quad.Make(luke, quad.IRI(foaf.Age), 23, label))

	quads = append(quads, quad.Make(leia, quad.IRI(rdf.Type), quad.IRI(foaf.Person), label))
	quads = append(quads, quad.Make(leia, quad.IRI(foaf.Knows), luke, label))
	quads = append(quads, quad.Make(leia, quad.IRI(foaf.GivenName), "Leia", label))
	quads = append(quads, quad.Make(leia, quad.IRI(foaf.FamilyName), "Organa", label))

	return quads
}