Rename Provenance -> Label
's/Provenance/Label/g' 's/provenance/label/g' with human vetting.
This commit is contained in:
parent
410202f3e0
commit
274d9ef57e
20 changed files with 416 additions and 416 deletions
4
TODO.md
4
TODO.md
|
|
@ -26,7 +26,7 @@ Usually something that should be taken care of.
|
|||
### Bootstraps
|
||||
Start discussing bootstrap triples, things that make the database self-describing, if they exist (though they need not). Talk about sameAs and indexing and type systems and whatnot.
|
||||
|
||||
### Better surfacing of Provenance
|
||||
### Better surfacing of Label
|
||||
It exists, it's indexed, but it's basically useless right now
|
||||
|
||||
### Optimize HasA Iterator
|
||||
|
|
@ -39,7 +39,7 @@ A simple example is just to convert the HasA to a fixed (next them out) if the s
|
|||
A way to limit the number of subresults at a point, without even running the query. Essentially, much as GetLimit() does for the end, be able to do the same in between
|
||||
|
||||
#### "Up" and "Down" traversals
|
||||
Getting to the predicates from a node, or the nodes from a predicate, or some odd combinations thereof. Ditto for provenance.
|
||||
Getting to the predicates from a node, or the nodes from a predicate, or some odd combinations thereof. Ditto for label.
|
||||
|
||||
#### Value comparison
|
||||
Expose the value-comparison iterator in the language
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ POST Body: JSON triples
|
|||
"subject": "Subject Node",
|
||||
"predicate": "Predicate Node",
|
||||
"object": "Object node",
|
||||
"provenance": "Provenance node" // Optional
|
||||
"label": "Label node" // Optional
|
||||
}] // More than one triple allowed.
|
||||
```
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ POST Body: JSON triples
|
|||
"subject": "Subject Node",
|
||||
"predicate": "Predicate Node",
|
||||
"object": "Object node",
|
||||
"provenance": "Provenance node" // Optional
|
||||
"label": "Label node" // Optional
|
||||
}] // More than one triple allowed.
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ package iterator
|
|||
// "Value Comparison" is a unary operator -- a filter across the values in the
|
||||
// relevant subiterator.
|
||||
//
|
||||
// This is hugely useful for things like provenance, but value ranges in general
|
||||
// This is hugely useful for things like label, but value ranges in general
|
||||
// come up from time to time. At *worst* we're as big as our underlying iterator.
|
||||
// At best, we're the null iterator.
|
||||
//
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ func PositionOf(prefix []byte, d quad.Direction, qs *TripleStore) int {
|
|||
return qs.hasher.Size() + 2
|
||||
case quad.Object:
|
||||
return 2*qs.hasher.Size() + 2
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
|
@ -136,7 +136,7 @@ func PositionOf(prefix []byte, d quad.Direction, qs *TripleStore) int {
|
|||
return 2
|
||||
case quad.Object:
|
||||
return qs.hasher.Size() + 2
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
|
@ -148,7 +148,7 @@ func PositionOf(prefix []byte, d quad.Direction, qs *TripleStore) int {
|
|||
return 2*qs.hasher.Size() + 2
|
||||
case quad.Object:
|
||||
return 2
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
|
@ -160,7 +160,7 @@ func PositionOf(prefix []byte, d quad.Direction, qs *TripleStore) int {
|
|||
return qs.hasher.Size() + 2
|
||||
case quad.Object:
|
||||
return 3*qs.hasher.Size() + 2
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
return 2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ func (o ordered) Less(i, j int) bool {
|
|||
o[i].Subject == o[j].Subject &&
|
||||
o[i].Predicate == o[j].Predicate &&
|
||||
o[i].Object == o[j].Object &&
|
||||
o[i].Provenance < o[j].Provenance:
|
||||
o[i].Label < o[j].Label:
|
||||
|
||||
return true
|
||||
|
||||
|
|
@ -359,8 +359,8 @@ func TestSetIterator(t *testing.T) {
|
|||
t.Errorf("Failed to get expected results from predicate iterator, got:%v expect:%v", got, expect)
|
||||
}
|
||||
|
||||
// Provenance iterator.
|
||||
it = qs.TripleIterator(quad.Provenance, qs.ValueOf("status_graph"))
|
||||
// Label iterator.
|
||||
it = qs.TripleIterator(quad.Label, qs.ValueOf("status_graph"))
|
||||
|
||||
expect = []*quad.Quad{
|
||||
{"B", "status", "cool", "status_graph"},
|
||||
|
|
|
|||
|
|
@ -125,8 +125,8 @@ func (qs *TripleStore) createKeyFor(d [3]quad.Direction, triple *quad.Quad) []by
|
|||
func (qs *TripleStore) createProvKeyFor(d [3]quad.Direction, triple *quad.Quad) []byte {
|
||||
key := make([]byte, 0, 2+(qs.hasher.Size()*4))
|
||||
// TODO(kortschak) Remove dependence on String() method.
|
||||
key = append(key, []byte{quad.Provenance.Prefix(), d[0].Prefix()}...)
|
||||
key = append(key, qs.convertStringToByteHash(triple.Get(quad.Provenance))...)
|
||||
key = append(key, []byte{quad.Label.Prefix(), d[0].Prefix()}...)
|
||||
key = append(key, qs.convertStringToByteHash(triple.Get(quad.Label))...)
|
||||
key = append(key, qs.convertStringToByteHash(triple.Get(d[0]))...)
|
||||
key = append(key, qs.convertStringToByteHash(triple.Get(d[1]))...)
|
||||
key = append(key, qs.convertStringToByteHash(triple.Get(d[2]))...)
|
||||
|
|
@ -176,9 +176,9 @@ func (qs *TripleStore) RemoveTriple(t *quad.Quad) {
|
|||
qs.UpdateValueKeyBy(t.Get(quad.Subject), -1, batch)
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Predicate), -1, batch)
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Object), -1, batch)
|
||||
if t.Get(quad.Provenance) != "" {
|
||||
if t.Get(quad.Label) != "" {
|
||||
batch.Delete(qs.createProvKeyFor(pso, t))
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Provenance), -1, batch)
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Label), -1, batch)
|
||||
}
|
||||
err = qs.db.Write(batch, nil)
|
||||
if err != nil {
|
||||
|
|
@ -197,7 +197,7 @@ func (qs *TripleStore) buildTripleWrite(batch *leveldb.Batch, t *quad.Quad) {
|
|||
batch.Put(qs.createKeyFor(spo, t), bytes)
|
||||
batch.Put(qs.createKeyFor(osp, t), bytes)
|
||||
batch.Put(qs.createKeyFor(pos, t), bytes)
|
||||
if t.Get(quad.Provenance) != "" {
|
||||
if t.Get(quad.Label) != "" {
|
||||
batch.Put(qs.createProvKeyFor(pso, t), bytes)
|
||||
}
|
||||
}
|
||||
|
|
@ -207,8 +207,8 @@ func (qs *TripleStore) buildWrite(batch *leveldb.Batch, t *quad.Quad) {
|
|||
qs.UpdateValueKeyBy(t.Get(quad.Subject), 1, nil)
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Predicate), 1, nil)
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Object), 1, nil)
|
||||
if t.Get(quad.Provenance) != "" {
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Provenance), 1, nil)
|
||||
if t.Get(quad.Label) != "" {
|
||||
qs.UpdateValueKeyBy(t.Get(quad.Label), 1, nil)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -272,8 +272,8 @@ func (qs *TripleStore) AddTripleSet(t_s []*quad.Quad) {
|
|||
resizeMap[t.Subject]++
|
||||
resizeMap[t.Predicate]++
|
||||
resizeMap[t.Object]++
|
||||
if t.Provenance != "" {
|
||||
resizeMap[t.Provenance]++
|
||||
if t.Label != "" {
|
||||
resizeMap[t.Label]++
|
||||
}
|
||||
}
|
||||
for k, v := range resizeMap {
|
||||
|
|
@ -411,7 +411,7 @@ func (qs *TripleStore) TripleIterator(d quad.Direction, val graph.Value) graph.I
|
|||
prefix = "po"
|
||||
case quad.Object:
|
||||
prefix = "os"
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
prefix = "cp"
|
||||
default:
|
||||
panic("unreachable " + d.String())
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ type TripleDirectionIndex struct {
|
|||
subject map[int64]*llrb.LLRB
|
||||
predicate map[int64]*llrb.LLRB
|
||||
object map[int64]*llrb.LLRB
|
||||
provenance map[int64]*llrb.LLRB
|
||||
label map[int64]*llrb.LLRB
|
||||
}
|
||||
|
||||
func NewTripleDirectionIndex() *TripleDirectionIndex {
|
||||
|
|
@ -37,7 +37,7 @@ func NewTripleDirectionIndex() *TripleDirectionIndex {
|
|||
tdi.subject = make(map[int64]*llrb.LLRB)
|
||||
tdi.predicate = make(map[int64]*llrb.LLRB)
|
||||
tdi.object = make(map[int64]*llrb.LLRB)
|
||||
tdi.provenance = make(map[int64]*llrb.LLRB)
|
||||
tdi.label = make(map[int64]*llrb.LLRB)
|
||||
return &tdi
|
||||
}
|
||||
|
||||
|
|
@ -49,8 +49,8 @@ func (tdi *TripleDirectionIndex) GetForDir(d quad.Direction) map[int64]*llrb.LLR
|
|||
return tdi.object
|
||||
case quad.Predicate:
|
||||
return tdi.predicate
|
||||
case quad.Provenance:
|
||||
return tdi.provenance
|
||||
case quad.Label:
|
||||
return tdi.label
|
||||
}
|
||||
panic("illegal direction")
|
||||
}
|
||||
|
|
@ -104,9 +104,9 @@ func (ts *TripleStore) AddTripleSet(triples []*quad.Quad) {
|
|||
func (ts *TripleStore) tripleExists(t *quad.Quad) (bool, int64) {
|
||||
smallest := -1
|
||||
var smallest_tree *llrb.LLRB
|
||||
for d := quad.Subject; d <= quad.Provenance; d++ {
|
||||
for d := quad.Subject; d <= quad.Label; d++ {
|
||||
sid := t.Get(d)
|
||||
if d == quad.Provenance && sid == "" {
|
||||
if d == quad.Label && sid == "" {
|
||||
continue
|
||||
}
|
||||
id, ok := ts.idMap[sid]
|
||||
|
|
@ -148,9 +148,9 @@ func (ts *TripleStore) AddTriple(t *quad.Quad) {
|
|||
ts.size++
|
||||
ts.tripleIdCounter++
|
||||
|
||||
for d := quad.Subject; d <= quad.Provenance; d++ {
|
||||
for d := quad.Subject; d <= quad.Label; d++ {
|
||||
sid := t.Get(d)
|
||||
if d == quad.Provenance && sid == "" {
|
||||
if d == quad.Label && sid == "" {
|
||||
continue
|
||||
}
|
||||
if _, ok := ts.idMap[sid]; !ok {
|
||||
|
|
@ -160,8 +160,8 @@ func (ts *TripleStore) AddTriple(t *quad.Quad) {
|
|||
}
|
||||
}
|
||||
|
||||
for d := quad.Subject; d <= quad.Provenance; d++ {
|
||||
if d == quad.Provenance && t.Get(d) == "" {
|
||||
for d := quad.Subject; d <= quad.Label; d++ {
|
||||
if d == quad.Label && t.Get(d) == "" {
|
||||
continue
|
||||
}
|
||||
id := ts.idMap[t.Get(d)]
|
||||
|
|
@ -183,8 +183,8 @@ func (ts *TripleStore) RemoveTriple(t *quad.Quad) {
|
|||
ts.triples[tripleID] = quad.Quad{}
|
||||
ts.size--
|
||||
|
||||
for d := quad.Subject; d <= quad.Provenance; d++ {
|
||||
if d == quad.Provenance && t.Get(d) == "" {
|
||||
for d := quad.Subject; d <= quad.Label; d++ {
|
||||
if d == quad.Label && t.Get(d) == "" {
|
||||
continue
|
||||
}
|
||||
id := ts.idMap[t.Get(d)]
|
||||
|
|
@ -192,8 +192,8 @@ func (ts *TripleStore) RemoveTriple(t *quad.Quad) {
|
|||
tree.Delete(Int64(tripleID))
|
||||
}
|
||||
|
||||
for d := quad.Subject; d <= quad.Provenance; d++ {
|
||||
if d == quad.Provenance && t.Get(d) == "" {
|
||||
for d := quad.Subject; d <= quad.Label; d++ {
|
||||
if d == quad.Label && t.Get(d) == "" {
|
||||
continue
|
||||
}
|
||||
id, ok := ts.idMap[t.Get(d)]
|
||||
|
|
@ -201,8 +201,8 @@ func (ts *TripleStore) RemoveTriple(t *quad.Quad) {
|
|||
continue
|
||||
}
|
||||
stillExists := false
|
||||
for d := quad.Subject; d <= quad.Provenance; d++ {
|
||||
if d == quad.Provenance && t.Get(d) == "" {
|
||||
for d := quad.Subject; d <= quad.Label; d++ {
|
||||
if d == quad.Label && t.Get(d) == "" {
|
||||
continue
|
||||
}
|
||||
nodeTree := ts.index.GetOrCreate(d, id)
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ func makeTestStore(data []*quad.Quad) (*TripleStore, []pair) {
|
|||
ind []pair
|
||||
)
|
||||
for _, t := range data {
|
||||
for _, qp := range []string{t.Subject, t.Predicate, t.Object, t.Provenance} {
|
||||
for _, qp := range []string{t.Subject, t.Predicate, t.Object, t.Label} {
|
||||
if _, ok := seen[qp]; !ok && qp != "" {
|
||||
val++
|
||||
ind = append(ind, pair{qp, val})
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ func NewIterator(qs *TripleStore, collection string, d quad.Direction, val graph
|
|||
m.constraint = bson.M{"Predicate": m.name}
|
||||
case quad.Object:
|
||||
m.constraint = bson.M{"Object": m.name}
|
||||
case quad.Provenance:
|
||||
m.constraint = bson.M{"Provenance": m.name}
|
||||
case quad.Label:
|
||||
m.constraint = bson.M{"Label": m.name}
|
||||
}
|
||||
|
||||
m.qs = qs
|
||||
|
|
@ -143,7 +143,7 @@ func (it *Iterator) Check(v graph.Value) bool {
|
|||
offset = (it.qs.hasher.Size() * 2)
|
||||
case quad.Object:
|
||||
offset = (it.qs.hasher.Size() * 2) * 2
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
offset = (it.qs.hasher.Size() * 2) * 3
|
||||
}
|
||||
val := v.(string)[offset : it.qs.hasher.Size()*2+offset]
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ func createNewMongoGraph(addr string, options graph.Options) error {
|
|||
db.C("triples").EnsureIndex(indexOpts)
|
||||
indexOpts.Key = []string{"Obj"}
|
||||
db.C("triples").EnsureIndex(indexOpts)
|
||||
indexOpts.Key = []string{"Provenance"}
|
||||
indexOpts.Key = []string{"Label"}
|
||||
db.C("triples").EnsureIndex(indexOpts)
|
||||
return nil
|
||||
}
|
||||
|
|
@ -96,7 +96,7 @@ func (qs *TripleStore) getIdForTriple(t *quad.Quad) string {
|
|||
id := qs.ConvertStringToByteHash(t.Subject)
|
||||
id += qs.ConvertStringToByteHash(t.Predicate)
|
||||
id += qs.ConvertStringToByteHash(t.Object)
|
||||
id += qs.ConvertStringToByteHash(t.Provenance)
|
||||
id += qs.ConvertStringToByteHash(t.Label)
|
||||
return id
|
||||
}
|
||||
|
||||
|
|
@ -157,7 +157,7 @@ func (qs *TripleStore) writeTriple(t *quad.Quad) bool {
|
|||
"Subject": t.Subject,
|
||||
"Predicate": t.Predicate,
|
||||
"Object": t.Object,
|
||||
"Provenance": t.Provenance,
|
||||
"Label": t.Label,
|
||||
}
|
||||
err := qs.db.C("triples").Insert(tripledoc)
|
||||
if err != nil {
|
||||
|
|
@ -176,8 +176,8 @@ func (qs *TripleStore) AddTriple(t *quad.Quad) {
|
|||
qs.updateNodeBy(t.Subject, 1)
|
||||
qs.updateNodeBy(t.Predicate, 1)
|
||||
qs.updateNodeBy(t.Object, 1)
|
||||
if t.Provenance != "" {
|
||||
qs.updateNodeBy(t.Provenance, 1)
|
||||
if t.Label != "" {
|
||||
qs.updateNodeBy(t.Label, 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -190,8 +190,8 @@ func (qs *TripleStore) AddTripleSet(in []*quad.Quad) {
|
|||
ids[t.Subject]++
|
||||
ids[t.Object]++
|
||||
ids[t.Predicate]++
|
||||
if t.Provenance != "" {
|
||||
ids[t.Provenance]++
|
||||
if t.Label != "" {
|
||||
ids[t.Label]++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -212,8 +212,8 @@ func (qs *TripleStore) RemoveTriple(t *quad.Quad) {
|
|||
qs.updateNodeBy(t.Subject, -1)
|
||||
qs.updateNodeBy(t.Predicate, -1)
|
||||
qs.updateNodeBy(t.Object, -1)
|
||||
if t.Provenance != "" {
|
||||
qs.updateNodeBy(t.Provenance, -1)
|
||||
if t.Label != "" {
|
||||
qs.updateNodeBy(t.Label, -1)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -227,7 +227,7 @@ func (qs *TripleStore) Quad(val graph.Value) *quad.Quad {
|
|||
bsonDoc["Subject"].(string),
|
||||
bsonDoc["Predicate"].(string),
|
||||
bsonDoc["Object"].(string),
|
||||
bsonDoc["Provenance"].(string),
|
||||
bsonDoc["Label"].(string),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -292,7 +292,7 @@ func (qs *TripleStore) TripleDirection(in graph.Value, d quad.Direction) graph.V
|
|||
offset = (qs.hasher.Size() * 2)
|
||||
case quad.Object:
|
||||
offset = (qs.hasher.Size() * 2) * 2
|
||||
case quad.Provenance:
|
||||
case quad.Label:
|
||||
offset = (qs.hasher.Size() * 2) * 3
|
||||
}
|
||||
val := in.(string)[offset : qs.hasher.Size()*2+offset]
|
||||
|
|
@ -328,8 +328,8 @@ func (qs *TripleStore) BulkLoad(dec quad.Unmarshaler) error {
|
|||
emit(s_key, {"_id": s_key, "Name" : this.Subject, "Size" : 1})
|
||||
emit(p_key, {"_id": p_key, "Name" : this.Predicate, "Size" : 1})
|
||||
emit(o_key, {"_id": o_key, "Name" : this.Object, "Size" : 1})
|
||||
if (this.Provenance != "") {
|
||||
emit(c_key, {"_id": c_key, "Name" : this.Provenance, "Size" : 1})
|
||||
if (this.Label != "") {
|
||||
emit(c_key, {"_id": c_key, "Name" : this.Label, "Size" : 1})
|
||||
}
|
||||
}
|
||||
`,
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ var parseTests = []struct {
|
|||
message: "parse correct JSON",
|
||||
input: `[
|
||||
{"subject": "foo", "predicate": "bar", "object": "baz"},
|
||||
{"subject": "foo", "predicate": "bar", "object": "baz", "provenance": "graph"}
|
||||
{"subject": "foo", "predicate": "bar", "object": "baz", "label": "graph"}
|
||||
]`,
|
||||
expect: []*quad.Quad{
|
||||
{"foo", "bar", "baz", ""},
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ var testNTriples = []struct {
|
|||
Subject: "this",
|
||||
Predicate: "is",
|
||||
Object: "valid",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -54,7 +54,7 @@ var testNTriples = []struct {
|
|||
Subject: "this",
|
||||
Predicate: "is",
|
||||
Object: "valid too",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -64,7 +64,7 @@ var testNTriples = []struct {
|
|||
Subject: "he",
|
||||
Predicate: "said",
|
||||
Object: `"That's all folks"`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -74,7 +74,7 @@ var testNTriples = []struct {
|
|||
Subject: ":/guid/9202a8c04000641f80000000010c843c",
|
||||
Predicate: "name",
|
||||
Object: "George Morris",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -84,7 +84,7 @@ var testNTriples = []struct {
|
|||
Subject: "foo",
|
||||
Predicate: "is",
|
||||
Object: "\tA big tough\r\nDeal\\",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ var testNTriples = []struct {
|
|||
Subject: "this",
|
||||
Predicate: "is",
|
||||
Object: "valid",
|
||||
Provenance: "quad",
|
||||
Label: "quad",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -106,7 +106,7 @@ var testNTriples = []struct {
|
|||
Subject: "this",
|
||||
Predicate: "is",
|
||||
Object: "valid",
|
||||
Provenance: "quad thing",
|
||||
Label: "quad thing",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -116,7 +116,7 @@ var testNTriples = []struct {
|
|||
Subject: `"this`,
|
||||
Predicate: `"is`,
|
||||
Object: `"valid`,
|
||||
Provenance: `"quad thing`,
|
||||
Label: `"quad thing`,
|
||||
},
|
||||
},
|
||||
|
||||
|
|
@ -128,7 +128,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example/s",
|
||||
Predicate: "http://example/p",
|
||||
Object: "http://example/o",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -138,7 +138,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example/s",
|
||||
Predicate: "http://example/p",
|
||||
Object: "_:o",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -148,7 +148,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example/s",
|
||||
Predicate: "http://example/p",
|
||||
Object: "o",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -158,7 +158,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example/s",
|
||||
Predicate: "http://example/p",
|
||||
Object: `"o"^^<http://example/dt>`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -168,7 +168,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example/s",
|
||||
Predicate: "http://example/p",
|
||||
Object: `"o"@en`,
|
||||
Provenance: ""},
|
||||
Label: ""},
|
||||
},
|
||||
|
||||
// Tests taken from http://www.w3.org/TR/n-quads/ and http://www.w3.org/TR/n-triples/.
|
||||
|
|
@ -181,7 +181,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:100000",
|
||||
Predicate: "/film/performance/actor",
|
||||
Object: "/en/larry_fine_1902",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -193,7 +193,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:10011",
|
||||
Predicate: "/film/performance/character",
|
||||
Object: "Tomás de Torquemada",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -206,7 +206,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://one.example/subject1",
|
||||
Predicate: "http://one.example/predicate1",
|
||||
Object: "http://one.example/object1",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -217,7 +217,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject1",
|
||||
Predicate: "http://an.example/predicate1",
|
||||
Object: "object1",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -228,7 +228,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject2",
|
||||
Predicate: "http://an.example/predicate2",
|
||||
Object: "object2",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -241,7 +241,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/#spiderman",
|
||||
Predicate: "http://www.perceive.net/schemas/relationship/enemyOf",
|
||||
Object: "http://example.org/#green-goblin",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -254,7 +254,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:alice",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/knows",
|
||||
Object: "_:bob",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -265,7 +265,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:bob",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/knows",
|
||||
Object: "_:alice",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -278,7 +278,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://one.example/subject1",
|
||||
Predicate: "http://one.example/predicate1",
|
||||
Object: "http://one.example/object1",
|
||||
Provenance: "http://example.org/graph3",
|
||||
Label: "http://example.org/graph3",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -289,7 +289,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject1",
|
||||
Predicate: "http://an.example/predicate1",
|
||||
Object: "object1",
|
||||
Provenance: "http://example.org/graph1",
|
||||
Label: "http://example.org/graph1",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -300,7 +300,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject2",
|
||||
Predicate: "http://an.example/predicate2",
|
||||
Object: "object2",
|
||||
Provenance: "http://example.org/graph5",
|
||||
Label: "http://example.org/graph5",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -313,7 +313,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/#spiderman",
|
||||
Predicate: "http://www.perceive.net/schemas/relationship/enemyOf",
|
||||
Object: "http://example.org/#green-goblin",
|
||||
Provenance: "http://example.org/graphs/spiderman",
|
||||
Label: "http://example.org/graphs/spiderman",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -326,7 +326,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:alice",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/knows",
|
||||
Object: "_:bob",
|
||||
Provenance: "http://example.org/graphs/john",
|
||||
Label: "http://example.org/graphs/john",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -337,7 +337,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:bob",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/knows",
|
||||
Object: "_:alice",
|
||||
Provenance: "http://example.org/graphs/james",
|
||||
Label: "http://example.org/graphs/james",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -350,7 +350,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
|
||||
Object: "http://xmlns.com/foaf/0.1/Person",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -361,7 +361,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/knows",
|
||||
Object: "http://example.org/alice#me",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -372,7 +372,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://schema.org/birthDate",
|
||||
Object: `"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date>`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -383,7 +383,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/topic_interest",
|
||||
Object: "http://www.wikidata.org/entity/Q12418",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -394,7 +394,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://www.wikidata.org/entity/Q12418",
|
||||
Predicate: "http://purl.org/dc/terms/title",
|
||||
Object: "Mona Lisa",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -405,7 +405,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://www.wikidata.org/entity/Q12418",
|
||||
Predicate: "http://purl.org/dc/terms/creator",
|
||||
Object: "http://dbpedia.org/resource/Leonardo_da_Vinci",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -416,7 +416,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619",
|
||||
Predicate: "http://purl.org/dc/terms/subject",
|
||||
Object: "http://www.wikidata.org/entity/Q12418",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -429,7 +429,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
|
||||
Object: "http://xmlns.com/foaf/0.1/Person",
|
||||
Provenance: "http://example.org/bob",
|
||||
Label: "http://example.org/bob",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -440,7 +440,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/knows",
|
||||
Object: "http://example.org/alice#me",
|
||||
Provenance: "http://example.org/bob",
|
||||
Label: "http://example.org/bob",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -451,7 +451,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://schema.org/birthDate",
|
||||
Object: `"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date>`,
|
||||
Provenance: "http://example.org/bob",
|
||||
Label: "http://example.org/bob",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -462,7 +462,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://xmlns.com/foaf/0.1/topic_interest",
|
||||
Object: "http://www.wikidata.org/entity/Q12418",
|
||||
Provenance: "http://example.org/bob",
|
||||
Label: "http://example.org/bob",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -473,7 +473,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://www.wikidata.org/entity/Q12418",
|
||||
Predicate: "http://purl.org/dc/terms/title",
|
||||
Object: "Mona Lisa",
|
||||
Provenance: "https://www.wikidata.org/wiki/Special:EntityData/Q12418",
|
||||
Label: "https://www.wikidata.org/wiki/Special:EntityData/Q12418",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -484,7 +484,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://www.wikidata.org/entity/Q12418",
|
||||
Predicate: "http://purl.org/dc/terms/creator",
|
||||
Object: "http://dbpedia.org/resource/Leonardo_da_Vinci",
|
||||
Provenance: "https://www.wikidata.org/wiki/Special:EntityData/Q12418",
|
||||
Label: "https://www.wikidata.org/wiki/Special:EntityData/Q12418",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -495,7 +495,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619",
|
||||
Predicate: "http://purl.org/dc/terms/subject",
|
||||
Object: "http://www.wikidata.org/entity/Q12418",
|
||||
Provenance: "https://www.wikidata.org/wiki/Special:EntityData/Q12418",
|
||||
Label: "https://www.wikidata.org/wiki/Special:EntityData/Q12418",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -506,7 +506,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob",
|
||||
Predicate: "http://purl.org/dc/terms/publisher",
|
||||
Object: "http://example.org",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -517,7 +517,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob",
|
||||
Predicate: "http://purl.org/dc/terms/rights",
|
||||
Object: "http://creativecommons.org/licenses/by/3.0/",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -554,7 +554,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
|
||||
Object: "",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: quad.ErrIncomplete,
|
||||
},
|
||||
|
|
@ -565,7 +565,7 @@ var testNTriples = []struct {
|
|||
Subject: "http://example.org/bob#me",
|
||||
Predicate: "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
|
||||
Object: "",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: quad.ErrIncomplete,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1006,7 +1006,7 @@ tr37:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1023,7 +1023,7 @@ tr47:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1040,7 +1040,7 @@ tr60:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1079,7 +1079,7 @@ tr66:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1096,7 +1096,7 @@ tr61:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1160,7 +1160,7 @@ tr39:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1177,7 +1177,7 @@ tr49:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1265,7 +1265,7 @@ tr253:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1282,7 +1282,7 @@ tr263:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1299,7 +1299,7 @@ tr287:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1326,7 +1326,7 @@ tr293:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1343,7 +1343,7 @@ tr288:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1377,7 +1377,7 @@ tr255:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
@ -1394,7 +1394,7 @@ tr265:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
q.Label = unEscape(data[label:p], isQuoted, isEscaped)
|
||||
isEscaped = false
|
||||
isQuoted = false
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isEscaped)
|
||||
q.Label = unEscape(data[label:p], isEscaped)
|
||||
isEscaped = false
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:100000",
|
||||
Predicate: "</film/performance/actor>",
|
||||
Object: "</en/larry_fine_1902>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -56,7 +56,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:10011",
|
||||
Predicate: "</film/performance/character>",
|
||||
Object: `"Tomás de Torquemada"`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -69,7 +69,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://one.example/subject1>",
|
||||
Predicate: "<http://one.example/predicate1>",
|
||||
Object: "<http://one.example/object1>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -80,7 +80,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject1",
|
||||
Predicate: "<http://an.example/predicate1>",
|
||||
Object: `"object1"`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -91,7 +91,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject2",
|
||||
Predicate: "<http://an.example/predicate2>",
|
||||
Object: `"object2"`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -104,7 +104,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/#spiderman>",
|
||||
Predicate: "<http://www.perceive.net/schemas/relationship/enemyOf>",
|
||||
Object: "<http://example.org/#green-goblin>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -117,7 +117,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:alice",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/knows>",
|
||||
Object: "_:bob",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -128,7 +128,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:bob",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/knows>",
|
||||
Object: "_:alice",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -141,7 +141,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://one.example/subject1>",
|
||||
Predicate: "<http://one.example/predicate1>",
|
||||
Object: "<http://one.example/object1>",
|
||||
Provenance: "<http://example.org/graph3>",
|
||||
Label: "<http://example.org/graph3>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -152,7 +152,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject1",
|
||||
Predicate: "<http://an.example/predicate1>",
|
||||
Object: `"object1"`,
|
||||
Provenance: "<http://example.org/graph1>",
|
||||
Label: "<http://example.org/graph1>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -163,7 +163,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:subject2",
|
||||
Predicate: "<http://an.example/predicate2>",
|
||||
Object: `"object2"`,
|
||||
Provenance: "<http://example.org/graph5>",
|
||||
Label: "<http://example.org/graph5>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -176,7 +176,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/#spiderman>",
|
||||
Predicate: "<http://www.perceive.net/schemas/relationship/enemyOf>",
|
||||
Object: "<http://example.org/#green-goblin>",
|
||||
Provenance: "<http://example.org/graphs/spiderman>",
|
||||
Label: "<http://example.org/graphs/spiderman>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -189,7 +189,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:alice",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/knows>",
|
||||
Object: "_:bob",
|
||||
Provenance: "<http://example.org/graphs/john>",
|
||||
Label: "<http://example.org/graphs/john>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -200,7 +200,7 @@ var testNTriples = []struct {
|
|||
Subject: "_:bob",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/knows>",
|
||||
Object: "_:alice",
|
||||
Provenance: "<http://example.org/graphs/james>",
|
||||
Label: "<http://example.org/graphs/james>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -213,7 +213,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>",
|
||||
Object: "<http://xmlns.com/foaf/0.1/Person>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -224,7 +224,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/knows>",
|
||||
Object: "<http://example.org/alice#me>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -235,7 +235,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://schema.org/birthDate>",
|
||||
Object: `"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date>`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -246,7 +246,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/topic_interest>",
|
||||
Object: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -257,7 +257,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Predicate: "<http://purl.org/dc/terms/title>",
|
||||
Object: `"Mona Lisa"`,
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -268,7 +268,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Predicate: "<http://purl.org/dc/terms/creator>",
|
||||
Object: "<http://dbpedia.org/resource/Leonardo_da_Vinci>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -279,7 +279,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>",
|
||||
Predicate: "<http://purl.org/dc/terms/subject>",
|
||||
Object: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -292,7 +292,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>",
|
||||
Object: "<http://xmlns.com/foaf/0.1/Person>",
|
||||
Provenance: "<http://example.org/bob>",
|
||||
Label: "<http://example.org/bob>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -303,7 +303,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/knows>",
|
||||
Object: "<http://example.org/alice#me>",
|
||||
Provenance: "<http://example.org/bob>",
|
||||
Label: "<http://example.org/bob>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -314,7 +314,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://schema.org/birthDate>",
|
||||
Object: `"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date>`,
|
||||
Provenance: "<http://example.org/bob>",
|
||||
Label: "<http://example.org/bob>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -325,7 +325,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://xmlns.com/foaf/0.1/topic_interest>",
|
||||
Object: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Provenance: "<http://example.org/bob>",
|
||||
Label: "<http://example.org/bob>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -336,7 +336,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Predicate: "<http://purl.org/dc/terms/title>",
|
||||
Object: `"Mona Lisa"`,
|
||||
Provenance: "<https://www.wikidata.org/wiki/Special:EntityData/Q12418>",
|
||||
Label: "<https://www.wikidata.org/wiki/Special:EntityData/Q12418>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -347,7 +347,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Predicate: "<http://purl.org/dc/terms/creator>",
|
||||
Object: "<http://dbpedia.org/resource/Leonardo_da_Vinci>",
|
||||
Provenance: "<https://www.wikidata.org/wiki/Special:EntityData/Q12418>",
|
||||
Label: "<https://www.wikidata.org/wiki/Special:EntityData/Q12418>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -358,7 +358,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>",
|
||||
Predicate: "<http://purl.org/dc/terms/subject>",
|
||||
Object: "<http://www.wikidata.org/entity/Q12418>",
|
||||
Provenance: "<https://www.wikidata.org/wiki/Special:EntityData/Q12418>",
|
||||
Label: "<https://www.wikidata.org/wiki/Special:EntityData/Q12418>",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -369,7 +369,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob>",
|
||||
Predicate: "<http://purl.org/dc/terms/publisher>",
|
||||
Object: "<http://example.org>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -380,7 +380,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob>",
|
||||
Predicate: "<http://purl.org/dc/terms/rights>",
|
||||
Object: "<http://creativecommons.org/licenses/by/3.0/>",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: nil,
|
||||
},
|
||||
|
|
@ -405,7 +405,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>",
|
||||
Object: "",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: fmt.Errorf("%v: unexpected rune '.' at 78", quad.ErrInvalid),
|
||||
},
|
||||
|
|
@ -416,7 +416,7 @@ var testNTriples = []struct {
|
|||
Subject: "<http://example.org/bob#me>",
|
||||
Predicate: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>",
|
||||
Object: "",
|
||||
Provenance: "",
|
||||
Label: "",
|
||||
},
|
||||
err: fmt.Errorf("%v: unexpected rune '.' at 78", quad.ErrInvalid),
|
||||
},
|
||||
|
|
|
|||
|
|
@ -619,7 +619,7 @@ tr96:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isEscaped)
|
||||
q.Label = unEscape(data[label:p], isEscaped)
|
||||
isEscaped = false
|
||||
|
||||
goto st10
|
||||
|
|
@ -660,7 +660,7 @@ tr39:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isEscaped)
|
||||
q.Label = unEscape(data[label:p], isEscaped)
|
||||
isEscaped = false
|
||||
|
||||
goto st88
|
||||
|
|
@ -785,7 +785,7 @@ tr38:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isEscaped)
|
||||
q.Label = unEscape(data[label:p], isEscaped)
|
||||
isEscaped = false
|
||||
|
||||
goto st13
|
||||
|
|
@ -1202,7 +1202,7 @@ tr55:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isEscaped)
|
||||
q.Label = unEscape(data[label:p], isEscaped)
|
||||
isEscaped = false
|
||||
|
||||
goto st90
|
||||
|
|
@ -2682,7 +2682,7 @@ tr97:
|
|||
if label < 0 {
|
||||
panic("unexpected parser state: label start not set")
|
||||
}
|
||||
q.Provenance = unEscape(data[label:p], isEscaped)
|
||||
q.Label = unEscape(data[label:p], isEscaped)
|
||||
isEscaped = false
|
||||
|
||||
goto st92
|
||||
|
|
|
|||
22
quad/quad.go
22
quad/quad.go
|
|
@ -26,8 +26,8 @@ package quad
|
|||
// list of triples. The rest is just indexing for speed.
|
||||
//
|
||||
// Adding fields to the triple is not to be taken lightly. You'll see I mention
|
||||
// provenance, but don'q as yet use it in any backing store. In general, there
|
||||
// can be features that can be turned on or off for any store, but I haven'q
|
||||
// label, but don't as yet use it in any backing store. In general, there
|
||||
// can be features that can be turned on or off for any store, but I haven't
|
||||
// decided how to allow/disallow them yet. Another such example would be to add
|
||||
// a forward and reverse index field -- forward being "order the list of
|
||||
// objects pointed at by this subject with this predicate" such as first and
|
||||
|
|
@ -51,7 +51,7 @@ type Quad struct {
|
|||
Subject string `json:"subject"`
|
||||
Predicate string `json:"predicate"`
|
||||
Object string `json:"object"`
|
||||
Provenance string `json:"provenance,omitempty"`
|
||||
Label string `json:"label,omitempty"`
|
||||
}
|
||||
|
||||
// Direction specifies an edge's type.
|
||||
|
|
@ -63,7 +63,7 @@ const (
|
|||
Subject
|
||||
Predicate
|
||||
Object
|
||||
Provenance
|
||||
Label
|
||||
)
|
||||
|
||||
func (d Direction) Prefix() byte {
|
||||
|
|
@ -74,7 +74,7 @@ func (d Direction) Prefix() byte {
|
|||
return 's'
|
||||
case Predicate:
|
||||
return 'p'
|
||||
case Provenance:
|
||||
case Label:
|
||||
return 'c'
|
||||
case Object:
|
||||
return 'o'
|
||||
|
|
@ -91,8 +91,8 @@ func (d Direction) String() string {
|
|||
return "subject"
|
||||
case Predicate:
|
||||
return "predicate"
|
||||
case Provenance:
|
||||
return "provenance"
|
||||
case Label:
|
||||
return "label"
|
||||
case Object:
|
||||
return "object"
|
||||
default:
|
||||
|
|
@ -110,8 +110,8 @@ func (q *Quad) Get(d Direction) string {
|
|||
return q.Subject
|
||||
case Predicate:
|
||||
return q.Predicate
|
||||
case Provenance:
|
||||
return q.Provenance
|
||||
case Label:
|
||||
return q.Label
|
||||
case Object:
|
||||
return q.Object
|
||||
default:
|
||||
|
|
@ -139,11 +139,11 @@ func (q *Quad) IsValid() bool {
|
|||
|
||||
// Prints a triple in N-Quad format.
|
||||
func (q *Quad) NTriple() string {
|
||||
if q.Provenance == "" {
|
||||
if q.Label == "" {
|
||||
//TODO(barakmich): Proper escaping.
|
||||
return fmt.Sprintf("%s %s %s .", q.Subject, q.Predicate, q.Object)
|
||||
} else {
|
||||
return fmt.Sprintf("%s %s %s %s .", q.Subject, q.Predicate, q.Object, q.Provenance)
|
||||
return fmt.Sprintf("%s %s %s %s .", q.Subject, q.Predicate, q.Object, q.Label)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ $(function() {
|
|||
subject: $("#subject").val(),
|
||||
predicate: $("#predicate").val(),
|
||||
object: $("#object").val(),
|
||||
provenance: $("#provenance").val()
|
||||
label: $("#label").val()
|
||||
}
|
||||
if (!checkTriple(triple)) {
|
||||
return
|
||||
|
|
@ -68,7 +68,7 @@ $(function() {
|
|||
subject: $("#rsubject").val(),
|
||||
predicate: $("#rpredicate").val(),
|
||||
object: $("#robject").val(),
|
||||
provenance: $("#rprovenance").val()
|
||||
label: $("#rlabel").val()
|
||||
}
|
||||
if (!checkTriple(triple)) {
|
||||
return
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
<input id="subject" type="text" placeholder="Subject"></input>
|
||||
<input id="predicate" type="text" placeholder="Predicate"></input>
|
||||
<input id="object" type="text" placeholder="Object"></input>
|
||||
<input id="provenance" type="text" placeholder="Provenance"></input>
|
||||
<input id="label" type="text" placeholder="Label"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row button-row">
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<input id="rsubject" type="text" placeholder="Subject"></input>
|
||||
<input id="rpredicate" type="text" placeholder="Predicate"></input>
|
||||
<input id="robject" type="text" placeholder="Object"></input>
|
||||
<input id="rprovenance" type="text" placeholder="Provenance"></input>
|
||||
<input id="rlabel" type="text" placeholder="Label"></input>
|
||||
</div>
|
||||
</div><!-- /.col-xs-12 main -->
|
||||
<div class="row button-row">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue