WIP rdf graph processing library
This commit is contained in:
parent
929a042c95
commit
d4a1df3ec9
Binary file not shown.
Binary file not shown.
@ -1,17 +1,44 @@
|
|||||||
# standard imports
|
# standard imports
|
||||||
import sys
|
import sys
|
||||||
|
import enum
|
||||||
|
|
||||||
# external imports
|
# external imports
|
||||||
from rdflib import Graph
|
from rdflib import Graph, RDF
|
||||||
|
from rdflib.term import URIRef
|
||||||
|
from rdflib.collection import Collection
|
||||||
|
|
||||||
|
|
||||||
|
class CIC(enum.Enum):
|
||||||
|
voucherContract = URIRef('https://defalsify.org/rdf-eth/0.1/voucherContract')
|
||||||
|
voucherTransfer = URIRef('https://defalsify.org/rdf-eth/0.1/voucherTransfer')
|
||||||
|
|
||||||
|
|
||||||
class Cert:
|
class Cert:
|
||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self):
|
||||||
self.g = Graph()
|
self.g = Graph()
|
||||||
self.g.parse(path, format='turtle')
|
self.txs = {}
|
||||||
|
self.typ = None
|
||||||
|
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_path(cls, path):
|
||||||
|
c = cls()
|
||||||
|
c.g.parse(path, format='turtle')
|
||||||
|
c.__apply_graph()
|
||||||
|
return c
|
||||||
|
|
||||||
|
|
||||||
|
def __apply_graph(self):
|
||||||
|
current_subject = None
|
||||||
|
for (s, p, o) in self.g:
|
||||||
|
if s != current_subject:
|
||||||
|
current_subject = s
|
||||||
|
if p == RDF.first:
|
||||||
|
pass
|
||||||
|
print('{} {} {}'.format(s, p, o))
|
||||||
|
|
||||||
|
|
||||||
def export(self, w=sys.stdout):
|
def export(self, w=sys.stdout):
|
||||||
v = self.g.serialize(format='xml')
|
v = self.g.serialize(format='xml')
|
||||||
w.write(v)
|
w.write(v)
|
||||||
|
@ -4,29 +4,24 @@ import json
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
# external imports
|
# external imports
|
||||||
from jsonschema import validate as json_validate
|
#from jsonschema import validate as json_validate
|
||||||
|
# local imports
|
||||||
|
from cic_schema.nft import NFT
|
||||||
|
|
||||||
test_dir = os.path.realpath(os.path.dirname(__file__))
|
test_dir = os.path.realpath(os.path.dirname(__file__))
|
||||||
testdata_dir = os.path.join(test_dir, 'testdata')
|
testdata_dir = os.path.join(test_dir, 'testdata')
|
||||||
data_dir = os.path.join(test_dir, '..', 'cic_schema', 'data')
|
#data_dir = os.path.join(test_dir, '..', 'cic_schema', 'data')
|
||||||
|
|
||||||
|
|
||||||
class TestJsonData(unittest.TestCase):
|
class TestJsonData(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
fp = os.path.join(data_dir, 'cic.json')
|
self.path = os.path.join(testdata_dir, 'test_valid.json')
|
||||||
f = open(fp, 'r')
|
self.nft = NFT.from_path(self.path)
|
||||||
self.schema = json.load(f)
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
|
|
||||||
def test_schema_load(self):
|
def test_valid(self):
|
||||||
fp = os.path.join(testdata_dir, 'test_valid.json')
|
pass
|
||||||
f = open(fp, 'r')
|
|
||||||
o = json.load(f)
|
|
||||||
f.close()
|
|
||||||
validator = json_validate(o, self.schema)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -19,14 +19,15 @@ data_dir = os.path.join(test_dir, '..', 'cic_schema', 'data')
|
|||||||
class TestNft(unittest.TestCase):
|
class TestNft(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
fp = os.path.join(testdata_dir, 'test_voucher.rdf')
|
#fp = os.path.join(testdata_dir, 'test_voucher.rdf')
|
||||||
self.graph_voucher = Cert(fp)
|
#self.graph_voucher = Cert.from_path(fp)
|
||||||
fp = os.path.join(testdata_dir, 'test_tx.rdf')
|
fp = os.path.join(testdata_dir, 'test_tx2.rdf')
|
||||||
self.graph_tx = Cert(fp)
|
self.graph_tx = Cert.from_path(fp)
|
||||||
|
|
||||||
|
|
||||||
def test_simplest(self):
|
def test_simplest(self):
|
||||||
print(self.graph_tx.export())
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
11
python/tests/testdata/test_tx.rdf
vendored
11
python/tests/testdata/test_tx.rdf
vendored
@ -1,12 +1,15 @@
|
|||||||
@prefix evm: <https://defalsify.org/rdf-eth/0.1/#> .
|
@prefix evm: <https://defalsify.org/rdf-eth/0.1/> .
|
||||||
@prefix cic: <https://cicnet.org/rdf/0.1/> .
|
@prefix cic: <https://cicnet.org/rdf/0.1/> .
|
||||||
@prefix ge: <https://grassrootseconomics.net/rdf/0.1/ge#> .
|
@prefix ge: <https://grassrootseconomics.net/rdf/0.1/ge#> .
|
||||||
@prefix redcross: <https://redcross.com/cic-def/0.1/> .
|
@prefix redcross: <https://redcross.com/cic-def/0.1/> .
|
||||||
@prefix un: <https://un.com/esg/0.1/> .
|
@prefix un: <https://un.com/cic/0.1/> .
|
||||||
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
|
||||||
evm:voucherTransfer
|
(
|
||||||
evm:id "6f4ed36c11345a9a48353cd2f93f1f92958c96df15f3112a192bc994250e8d03"^^xsd:hexBinary ;
|
"6f4ed36c11345a9a48353cd2f93f1f92958c96df15f3112a192bc994250e8d03"^^evm:id
|
||||||
|
"7f4ed36c11345a9a48353cd2f93f1f92958c96df15f3112a192bc994250e8d03"^^evm:id
|
||||||
|
"8f4ed36c11345a9a48353cd2f93f1f92958c96df15f3112a192bc994250e8d03"^^evm:id
|
||||||
|
)
|
||||||
ge:approvedActor <URN:uuid:18daebc7-23b9-41e4-af00-2559f7840f78> ;
|
ge:approvedActor <URN:uuid:18daebc7-23b9-41e4-af00-2559f7840f78> ;
|
||||||
redcross:interest ge:foodforest ;
|
redcross:interest ge:foodforest ;
|
||||||
un:esg "deforestation" ;
|
un:esg "deforestation" ;
|
||||||
|
Loading…
Reference in New Issue
Block a user