work in progress: relationships

This commit is contained in:
Helmut Merz 2024-03-16 15:58:00 +01:00
parent dfc5cefcee
commit e676e10e33
3 changed files with 16 additions and 3 deletions

View file

@ -7,6 +7,8 @@ from scopes.interfaces import IContainer
from scopes.storage.common import registerContainerClass, registry
from scopes.storage.tracking import Container, Track
defaultPredicate = 'standard'
class Concept(Track):
@ -21,6 +23,10 @@ class Concept(Track):
def values(self):
return (t.getSecond() for t in self.children(Rels.defaultPredicate))
def addChild(self, child, predicate = defaultPredicate):
rels = self.container.storage.getContainer(Triple)
rels.save(Triple(self.uid, child.uid, predicate))
class Concepts(Container):
@ -52,8 +58,6 @@ class Predicates(Concepts):
tableName = 'preds'
defaultPredicate = 'standard'
def storePredicate(storage, name):
preds = storage.getContainer(Predicate)
preds.save(Predicate(name))

View file

@ -20,8 +20,12 @@ class Track(object):
headFields = ['taskId', 'userName']
prefix = 'rec'
def __init__(self, *keys, data=None, timeStamp=None, trackId=None, container=None):
def __init__(self, *keys, data=None, timeStamp=None, trackId=None,
container=None, **kw):
self.head = {}
for k, v in kw.items():
if k in self.headFields:
self.head[k] = kw.pop(k)
for ix, k in enumerate(keys):
self.head[self.headFields[ix]] = k
for k in self.headFields:

View file

@ -108,6 +108,11 @@ def test_topic(self, config):
tp_itc = topic.Topic('itc', data=dict(
title='ITC', description='Information and Communication Technology'))
topics.save(tp_itc)
tp_proglang = topic.Topic('prog_lang', data=dict(
title='Programming Languages',
description='Programming Languages'))
topics.save(tp_proglang)
tp_itc.addChild(tp_proglang)
storage.commit()