Skip to content

Commit 247dfc8

Browse files
committed
rem meta feature
1 parent e5e4d6e commit 247dfc8

File tree

4 files changed

+8
-64
lines changed

4 files changed

+8
-64
lines changed

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ Converts JSON to RDF
1313
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
1414
prefix id: <urn:example:id:>
1515
prefix prefix: <urn:example:prefix:>
16-
prefix meta: <urn:example:meta:>
1716
1817
id:0 prefix:id 0.
1918
id:0 prefix:list _:2432178001088.
@@ -57,8 +56,6 @@ Reprecussions must be handled by the user.
5756

5857
## Features
5958

60-
Optional:
61-
**'meta triples'**: as RDF-star: `<<{data triple}>> {meta} <<{meta triple}>>`
6259

6360

6461
## Development Philosophy

src/json2rdf/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__version__ = "67" # shoud equal `git rev-list --count master`
1+
__version__ = "68" # shoud equal `git rev-list --count master`
22
# can roll back to 0 if errors
33
from .json2rdf import json2rdf, j2r

src/json2rdf/json2rdf.py

Lines changed: 7 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,11 @@ class list(Tripling.list):
194194
id_uri = f"urn:example:{id_prefix}:"
195195
key_prefix = 'prefix'
196196
key_uri = f"urn:example:{key_prefix}:"
197-
meta_prefix = 'meta'
198-
meta_uri = "urn:example:meta:"
199197

200198
def __str__(self) -> str:
201199
_ = f'prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n'
202200
_ = _ + f'prefix {self.id_prefix}: <{self.id_uri}> \n'
203-
_ = _ + f'prefix {self.key_prefix}: <{self.key_uri}> \n'
204-
_ = _ + f'prefix {self.meta_prefix}: <{self.meta_uri}> \n\n'
201+
_ = _ + f'prefix {self.key_prefix}: <{self.key_uri}> \n\n'
205202
_ = _ + super().__str__()
206203
return _
207204

@@ -264,33 +261,13 @@ def triple(cls, s, p, o):
264261
@classmethod
265262
def visit(cls, v):
266263
assert(isinstance(v, Tripling.Triple))
267-
# meta tripling
268-
# just do one-level in
269-
if isinstance(v.subject, Tripling.Triple):
270-
s = cls.triple(v.subject.subject,
271-
v.subject.predicate,
272-
v.subject.object)
273-
else:
274-
s = v.subject
264+
s = v.subject
275265
p = v.predicate
276-
if isinstance(v.object, Tripling.Triple):
277-
o = cls.triple(v.object.subject,
278-
v.object.predicate,
279-
v.object.object)
280-
else:
281-
o = v.object
282-
if p == cls.list.meta_uri:
283-
p = f"{cls.list.meta_prefix}:"
284-
return cls.Triple(s, p, o)
285-
else:
286-
return cls.triple(s,p,o)
266+
o = v.object
267+
return cls.triple(s,p,o)
287268

288269
@classmethod
289-
def map(cls, d, meta=[], ):
290-
if meta:
291-
from itertools import product
292-
d = product(d, meta)
293-
d = map(lambda mt: Tripling.Triple(mt[0], cls.list.meta_uri, mt[1]), d)
270+
def map(cls, d, ):
294271
_ = map(cls.visit, d)
295272
_ = cls.list(_)
296273
return _
@@ -304,9 +281,7 @@ def map(cls, d, meta=[], ):
304281
defaults = classes()
305282
def json2rdf(
306283
data: str | dict,
307-
meta: str | dict = {},
308284
*,
309-
asserted = True,
310285
sort = True, # (attempt to) make conversion deterministic
311286
# id interpretation
312287
subject_id_keys = defaults.Identification.subject_keys,
@@ -316,15 +291,8 @@ def json2rdf(
316291
defaults.RDFing.list.id_uri),
317292
key_prefix = (defaults.RDFing.list.key_prefix,
318293
defaults.RDFing.list.key_uri),
319-
meta_prefix = (defaults.RDFing.list.meta_prefix,
320-
defaults.RDFing.list.meta_uri)
321294
):
322295
"""
323-
meta: meta triples to associate with data triples:
324-
<<data triple>> {meta_uri} <<meta triple n>>.
325-
asserted: in the case of meta triples, should the data triples be separate?
326-
data.subject data.predicate data.object. # include this?
327-
<<data.subject data.predicate data.object>> {meta_uri} <<meta triple n>>. # ..in addition to this?
328296
sort: the triples
329297
subject_keys: set of keys to create a uri out of in for the *subject*.
330298
the first key will be used to create a predicate if one does not exist.
@@ -344,10 +312,8 @@ def json2rdf(
344312

345313
f.RDFing.list.id_prefix, f.RDFing.list.id_uri = id_prefix
346314
f.RDFing.list.key_prefix, f.RDFing.list.key_uri = key_prefix
347-
f.RDFing.list.meta_prefix, f.RDFing.list.meta_uri = meta_prefix
348315

349316
d = data
350-
m = meta
351317
def triples(data):
352318
_ = data
353319
_ = f.Termination.map(_)
@@ -357,28 +323,10 @@ def triples(data):
357323
if isinstance(d, str):
358324
from json import loads
359325
d = loads(d)
360-
if m:
361-
if isinstance(m, str):
362-
from json import loads
363-
m = loads(m)
364326

365327
d = triples(d)
366-
if m:
367-
m = triples(m)
368-
m = f.RDFing.map(d, meta=m)
369-
if asserted:
370-
# just pull rdfed
371-
d = frozenset([t.subject for t in m])
372-
else:
373-
d = frozenset()
374-
# asserted 'data' triples + meta triples
375-
_ = frozenset(m) | d # set->list source of indeterminism
376-
if sort:
377-
_ = sorted(_, key=str)
378-
d = f.RDFing.list(_)
379-
else:
380-
if sort:
381-
d = sorted(d, key=str)
328+
if sort:
329+
d = sorted(d, key=str)
382330
d = f.RDFing.map(d)
383331
d = str(d)
384332
return d

uv.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)