123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- term = require "lsup.term"
- triple = require "lsup.triple"
- graph = require "lsup.graph"
- store = require "lsup.store"
- namespace = require "lsup.namespace"
- ---[[
- t1 = term.new_bnode()
- t2 = term.new_iriref("urn:p:11")
- t3 = term.new_lit("123", "xsd:int")
- t4 = term.new_lit("Hola", nil, "es_ES")
- t5 = term.new_lit("مرحبا", nil, "ar_AR")
- trp1 = triple.new (
- term.new_iriref("urn:s:1"),
- term.new_iriref("urn:p:1"),
- term.new_lit("hello", nil, "en_US"))
- triples = {
- trp1,
- triple.new (t1, t2, t3),
- triple.new (t1, t2, t4),
- triple.new (t1, t2, t5),
- }
- mdb_store = store.new(store.MDB, "file:///tmp/lsup_lua.db", true)
- print(("MDB store: %s"):format(mdb_store))
- gr1 = graph.new(mdb_store)
- ct = gr1:add(triples)
- print("Triples added: " .. ct)
- ---[[
- gr2 = graph.new(mdb_store) -- LMDB-backed
- gr3 = graph.new() -- hashmap-backed
- gr1:copy(gr2)
- gr1:copy(gr3)
- assert(gr1 == gr2)
- assert(gr1 == gr3)
- --]]
- for i in gr1:lookup(t1) do print(i) end
- ---[[
- lm = gr1:connections(t1, term.LINK_OUTBOUND)
- print("Connections")
- for t1, ts in pairs(lm) do
- for t2 in pairs(ts) do print(t1, t2) end
- end
- unique_t = gr1:unique_terms(triple.POS_S)
- print("Unique subjects")
- for t in pairs(unique_t) do print(t) end
- print("Unique predicates")
- unique_t = gr1:unique_terms(triple.POS_P)
- for t in pairs(unique_t) do print(t) end
- print("Unique objects")
- unique_t = gr1:unique_terms(triple.POS_O)
- for t in pairs(unique_t) do print(t) end
- print("Terms connected to t1 t2:")
- tset = gr1:term_set(t2, triple.POS_P, t1, triple.POS_S)
- for t in pairs(tset) do print(t) end
- --]]
- nsm = namespace.new()
- nsm:add("ns1", "urn:ns:1#")
- nsm:add("ns2", "urn:ns:2#")
- nsm:add("ns3", "urn:ns:3#")
- local nsm_map = {}
- for k, v in pairs(nsm) do nsm_map[k] = v end
- assert(nsm_map.ns1 == "urn:ns:1#")
- assert(nsm_map.ns2 == "urn:ns:2#")
- assert(nsm_map.ns3 == "urn:ns:3#")
- local mdb_store_ns = store.new(store.MDB, "file:///tmp/lsup_nsm.db", true)
- local gr2 = graph.new(mdb_store_ns, "ns1:gr2")
- local gr3 = graph.new(mdb_store_ns, "ns1:gr3")
- local gr4 = graph.new(mdb_store_ns, "ns1:gr4")
- local gr5 = graph.new(mdb_store_ns, "ns1:gr5")
- gr2:add(triples)
- gr3:add(triples)
- gr4:add(triples)
- local idx = graph.list(mdb_store_ns)
- assert(#idx == 3)
|