当前位置: 首页>>代码示例>>Golang>>正文


Golang graph.TripleStore类代码示例

本文整理汇总了Golang中github.com/google/cayley/graph.TripleStore的典型用法代码示例。如果您正苦于以下问题:Golang TripleStore类的具体用法?Golang TripleStore怎么用?Golang TripleStore使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了TripleStore类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: Load

func Load(ts graph.TripleStore, cfg *config.Config, dec quad.Unmarshaler) error {
	bulker, canBulk := ts.(graph.BulkLoader)
	if canBulk {
		switch err := bulker.BulkLoad(dec); err {
		case nil:
			return nil
		case graph.ErrCannotBulkLoad:
			// Try individual loading.
		default:
			return err
		}
	}

	block := make([]quad.Quad, 0, cfg.LoadSize)
	for {
		t, err := dec.Unmarshal()
		if err != nil {
			if err == io.EOF {
				break
			}
			return err
		}
		block = append(block, t)
		if len(block) == cap(block) {
			ts.AddTripleSet(block)
			block = block[:0]
		}
	}
	ts.AddTripleSet(block)

	return nil
}
开发者ID:uriencedric,项目名称:cayley,代码行数:32,代码来源:db.go

示例2: checkIteratorContains

func checkIteratorContains(ts graph.TripleStore, it graph.Iterator, expected []string, t *testing.T) {
	var actual []string
	actual = nil
	for {
		val, ok := it.Next()
		if !ok {
			break
		}
		actual = append(actual, ts.GetNameFor(val))
	}
	actualSet := actual[:]
	for _, a := range expected {
		found := false
		for j, b := range actualSet {
			if a == b {
				actualSet = append(actualSet[:j], actualSet[j+1:]...)
				found = true
				break
			}
		}
		if !found {
			t.Error("Couldn't find", a, "in actual output.\nActual:", actual, "\nExpected: ", expected, "\nRemainder: ", actualSet)
			return
		}
	}
	if len(actualSet) != 0 {
		t.Error("Actual output has more than expected.\nActual:", actual, "\nExpected: ", expected, "\nRemainder: ", actualSet)
	}
}
开发者ID:netzheng,项目名称:cayley,代码行数:29,代码来源:value_comparison_iterator_test.go

示例3: NewSingleReplication

func NewSingleReplication(ts graph.TripleStore, opts graph.Options) (graph.QuadWriter, error) {
	horizon := ts.Horizon()
	rep := &Single{nextID: horizon + 1, ts: ts}
	if horizon <= 0 {
		rep.nextID = 1
	}
	return rep, nil
}
开发者ID:Joeento,项目名称:cayley,代码行数:8,代码来源:single.go

示例4: iteratedNames

func iteratedNames(qs graph.TripleStore, it graph.Iterator) []string {
	var res []string
	for graph.Next(it) {
		res = append(res, qs.NameOf(it.Result()))
	}
	sort.Strings(res)
	return res
}
开发者ID:Joeento,项目名称:cayley,代码行数:8,代码来源:leveldb_test.go

示例5: iteratedTriples

func iteratedTriples(qs graph.TripleStore, it graph.Iterator) []quad.Quad {
	var res ordered
	for graph.Next(it) {
		res = append(res, qs.Quad(it.Result()))
	}
	sort.Sort(res)
	return res
}
开发者ID:Joeento,项目名称:cayley,代码行数:8,代码来源:leveldb_test.go

示例6: extractTripleFromIterator

func extractTripleFromIterator(ts graph.TripleStore, it graph.Iterator) []string {
	var output []string
	for {
		val, ok := it.Next()
		if !ok {
			break
		}
		output = append(output, ts.GetTriple(val).ToString())
	}
	return output
}
开发者ID:java10000,项目名称:cayley,代码行数:11,代码来源:leveldb_test.go

示例7: extractValuesFromIterator

func extractValuesFromIterator(ts graph.TripleStore, it graph.Iterator) []string {
	var output []string
	for {
		val, ok := it.Next()
		if !ok {
			break
		}
		output = append(output, ts.GetNameFor(val))
	}
	return output
}
开发者ID:java10000,项目名称:cayley,代码行数:11,代码来源:leveldb_test.go

示例8: iteratedNames

func iteratedNames(qs graph.TripleStore, it graph.Iterator) []string {
	var res []string
	for {
		val, ok := graph.Next(it)
		if !ok {
			break
		}
		res = append(res, qs.NameOf(val))
	}
	sort.Strings(res)
	return res
}
开发者ID:neevor,项目名称:cayley,代码行数:12,代码来源:leveldb_test.go

示例9: iteratedTriples

func iteratedTriples(qs graph.TripleStore, it graph.Iterator) []*quad.Quad {
	var res ordered
	for {
		val, ok := graph.Next(it)
		if !ok {
			break
		}
		res = append(res, qs.Quad(val))
	}
	sort.Sort(res)
	return res
}
开发者ID:neevor,项目名称:cayley,代码行数:12,代码来源:leveldb_test.go

示例10: iteratedTriples

func iteratedTriples(ts graph.TripleStore, it graph.Iterator) []*graph.Triple {
	var res ordered
	for {
		val, ok := it.Next()
		if !ok {
			break
		}
		res = append(res, ts.Triple(val))
	}
	sort.Sort(res)
	return res
}
开发者ID:ZSIT,项目名称:cayley,代码行数:12,代码来源:leveldb_test.go

示例11: LoadTriplesInto

func LoadTriplesInto(tChan chan *graph.Triple, ts graph.TripleStore, loadSize int) {
	tripleblock := make([]*graph.Triple, loadSize)
	i := 0
	for t := range tChan {
		tripleblock[i] = t
		i++
		if i == loadSize {
			ts.AddTripleSet(tripleblock)
			i = 0
		}
	}
	ts.AddTripleSet(tripleblock[0:i])
}
开发者ID:ZSIT,项目名称:cayley,代码行数:13,代码来源:load.go

示例12: LoadTriplesFromFileInto

func LoadTriplesFromFileInto(ts graph.TripleStore, filename string, loadSize int) {
	tChan := make(chan *graph.Triple)
	go ReadTriplesFromFile(tChan, filename)
	tripleblock := make([]*graph.Triple, loadSize)
	i := 0
	for t := range tChan {
		tripleblock[i] = t
		i++
		if i == loadSize {
			ts.AddTripleSet(tripleblock)
			i = 0
		}
	}
	ts.AddTripleSet(tripleblock[0:i])
}
开发者ID:java10000,项目名称:cayley,代码行数:15,代码来源:appengine.go

示例13: Load

func Load(ts graph.TripleStore, cfg *config.Config, path string) error {
	f, err := os.Open(path)
	if err != nil {
		return fmt.Errorf("could not open file %q: %v", path, err)
	}
	defer f.Close()

	r, err := decompressor(f)
	if err != nil {
		glog.Fatalln(err)
	}

	dec := cquads.NewDecoder(r)

	bulker, canBulk := ts.(graph.BulkLoader)
	if canBulk {
		err = bulker.BulkLoad(dec)
		if err == nil {
			return nil
		}
		if err == graph.ErrCannotBulkLoad {
			err = nil
		}
	}
	if err != nil {
		return err
	}

	block := make([]*quad.Quad, 0, cfg.LoadSize)
	for {
		t, err := dec.Unmarshal()
		if err != nil {
			if err == io.EOF {
				break
			}
			return err
		}
		block = append(block, t)
		if len(block) == cap(block) {
			ts.AddTripleSet(block)
			block = block[:0]
		}
	}
	ts.AddTripleSet(block)

	return nil
}
开发者ID:neevor,项目名称:cayley,代码行数:47,代码来源:load.go

示例14: hasaWithTag

func hasaWithTag(ts graph.TripleStore, tag string, target string) *HasA {
	and := NewAnd()

	obj := ts.FixedIterator()
	obj.Add(ts.ValueOf(target))
	obj.Tagger().Add(tag)
	and.AddSubIterator(NewLinksTo(ts, obj, quad.Object))

	pred := ts.FixedIterator()
	pred.Add(ts.ValueOf("status"))
	and.AddSubIterator(NewLinksTo(ts, pred, quad.Predicate))

	return NewHasA(ts, and, quad.Subject)
}
开发者ID:Joeento,项目名称:cayley,代码行数:14,代码来源:query_shape_test.go

示例15: buildInOutIterator

func buildInOutIterator(obj *otto.Object, ts graph.TripleStore, base graph.Iterator, isReverse bool) graph.Iterator {
	argList, _ := obj.Get("_gremlin_values")
	if argList.Class() != "GoArray" {
		glog.Errorln("How is arglist not an array? Return nothing.", argList.Class())
		return graph.NewNullIterator()
	}
	argArray := argList.Object()
	lengthVal, _ := argArray.Get("length")
	length, _ := lengthVal.ToInteger()
	var predicateNodeIterator graph.Iterator
	if length == 0 {
		predicateNodeIterator = ts.GetNodesAllIterator()
	} else {
		zero, _ := argArray.Get("0")
		predicateNodeIterator = buildIteratorFromValue(zero, ts)
	}
	if length >= 2 {
		var tags []string
		one, _ := argArray.Get("1")
		if one.IsString() {
			s, _ := one.ToString()
			tags = append(tags, s)
		} else if one.Class() == "Array" {
			tags = makeListOfStringsFromArrayValue(one.Object())
		}
		for _, tag := range tags {
			predicateNodeIterator.AddTag(tag)
		}
	}

	in, out := graph.Subject, graph.Object
	if isReverse {
		in, out = out, in
	}
	lto := graph.NewLinksToIterator(ts, base, in)
	and := graph.NewAndIterator()
	and.AddSubIterator(graph.NewLinksToIterator(ts, predicateNodeIterator, graph.Predicate))
	and.AddSubIterator(lto)
	return graph.NewHasaIterator(ts, and, out)
}
开发者ID:karanja-simon,项目名称:cayley,代码行数:40,代码来源:build_iterator.go


注:本文中的github.com/google/cayley/graph.TripleStore类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。