當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。