aboutsummaryrefslogtreecommitdiffstats
path: root/tagit
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-03-04 14:16:00 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-03-04 14:16:00 +0100
commit141cfeade2750e0255ca010079421efce4abeca2 (patch)
tree8deb4ce8270d1b40280cda6ea3080788f2848def /tagit
parent7eb2a8074752887afc8845900af2c3c0fb67388e (diff)
downloadtagit-141cfeade2750e0255ca010079421efce4abeca2.tar.gz
tagit-141cfeade2750e0255ca010079421efce4abeca2.tar.bz2
tagit-141cfeade2750e0255ca010079421efce4abeca2.zip
namespace updates
Diffstat (limited to 'tagit')
-rw-r--r--tagit/actions/filter.py4
-rw-r--r--tagit/actions/grouping.py7
-rw-r--r--tagit/actions/search.py2
-rw-r--r--tagit/actions/tagging.py12
-rw-r--r--tagit/apps/port-schema.nt81
-rw-r--r--tagit/apps/port_data.py40
-rw-r--r--tagit/parsing/filter/from_string.py6
-rw-r--r--tagit/parsing/filter/to_string.py2
-rw-r--r--tagit/tiles/info.py4
-rw-r--r--tagit/utils/namespaces.py22
-rw-r--r--tagit/widgets/browser.py6
11 files changed, 99 insertions, 87 deletions
diff --git a/tagit/actions/filter.py b/tagit/actions/filter.py
index c5cc912..52f5817 100644
--- a/tagit/actions/filter.py
+++ b/tagit/actions/filter.py
@@ -90,7 +90,7 @@ class AddToken(Action):
def apply(self, token=None):
if token is None:
- sugg = self.root.session.storage.all(ns.bsfs.Tag).label(node=False)
+ sugg = self.root.session.storage.all(ns.bsn.Tag).label(node=False)
dlg = dialogues.TokenEdit(suggestions=sugg)
dlg.bind(on_ok=lambda wx: self.add_from_string(wx.text))
dlg.open()
@@ -125,7 +125,7 @@ class EditToken(Action):
text = kp.StringProperty('Edit token')
def apply(self, token):
- sugg = self.root.session.storage.all(ns.bsfs.Tag).label(node=False)
+ sugg = self.root.session.storage.all(ns.bsn.Tag).label(node=False)
text = self.root.session.filter_to_string(token)
dlg = dialogues.TokenEdit(text=text, suggestions=sugg)
dlg.bind(on_ok=lambda obj: self.on_ok(token, obj))
diff --git a/tagit/actions/grouping.py b/tagit/actions/grouping.py
index 05c651e..301af20 100644
--- a/tagit/actions/grouping.py
+++ b/tagit/actions/grouping.py
@@ -23,7 +23,7 @@ from tagit.widgets import Binding
from .action import Action
# constants
-GROUP_PREFIX = Namespace('http://example.com/me/group')
+GROUP_PREFIX = Namespace('http://example.com/me/group')()
# exports
__all__ = []
@@ -57,7 +57,8 @@ class CreateGroup(Action):
with self.root.browser as browser, \
self.root.session as session:
# create group
- grp = session.storage.node(ns.bsfs.Group, GROUP_PREFIX[uuid.UUID()()])
+ grp = session.storage.node(ns.bsn.Group,
+ getattr(GROUP_PREFIX, uuid.UUID()()))
if label is not None:
grp.set(ns.bsg.label, label)
@@ -99,7 +100,7 @@ class DissolveGroup(Action):
cursor = browser.cursor
if cursor is not None and cursor in browser.folds:
grp = browser.folds[cursor].group
- ents = session.storage.get(ns.bsfs.Entity,
+ ents = session.storage.get(ns.bsn.Entity,
ast.filter.Any(ns.bse.group, ast.filter.Is(grp)))
#ents.remove(ns.bse.group, grp) # FIXME: mb/port
#grp.delete() # FIXME: mb/port
diff --git a/tagit/actions/search.py b/tagit/actions/search.py
index 630413f..dd6c50c 100644
--- a/tagit/actions/search.py
+++ b/tagit/actions/search.py
@@ -128,7 +128,7 @@ class Search(Action, StorageAwareMixin, ConfigAwareMixin):
items = Cache.get(self._CACHE_CATEGORY, (query, sort), None)
if items is None:
# FIXME: mb/port: consider sort
- items = list(session.storage.sorted(ns.bsfs.File, query))
+ items = list(session.storage.sorted(ns.bsn.Entity, query))
Cache.append(self._CACHE_CATEGORY, (query, sort), items)
# apply search order because it's cheaper to do it here rather
diff --git a/tagit/actions/tagging.py b/tagit/actions/tagging.py
index 611db8e..90e5931 100644
--- a/tagit/actions/tagging.py
+++ b/tagit/actions/tagging.py
@@ -27,7 +27,7 @@ from .action import Action
# constants
TAGS_SEPERATOR = ','
-TAG_PREFIX = Namespace('http://example.com/me/tag')
+TAG_PREFIX = Namespace('http://example.com/me/tag')()
# exports
__all__ = []
@@ -48,7 +48,7 @@ class AddTag(Action):
def apply(self):
if len(self.root.browser.selection) > 0:
- tags = self.root.session.storage.all(ns.bsfs.Tag).label(node=True)
+ tags = self.root.session.storage.all(ns.bsn.Tag).label(node=True)
dlg = dialogues.SimpleInput(
suggestions=set(tags.values()),
suggestion_sep=TAGS_SEPERATOR)
@@ -70,7 +70,8 @@ class AddTag(Action):
# FIXME: replace with proper tag factory
for lbl in labels:
if lbl not in lut:
- tag = self.root.session.storage.node(ns.bsfs.Tag, TAG_PREFIX[urllib.parse.quote(lbl)])
+ tag = self.root.session.storage.node(ns.bsn.Tag,
+ getattr(TAG_PREFIX, urllib.parse.quote(lbl)))
tag.set(ns.bst.label, lbl)
tags.add(tag)
with self.root.browser as browser, \
@@ -96,7 +97,7 @@ class EditTag(Action):
with self.root.browser as browser:
if len(browser.selection) > 0:
# get all known tags
- all_tags = self.root.session.storage.all(ns.bsfs.Tag).label(node=True)
+ all_tags = self.root.session.storage.all(ns.bsn.Tag).label(node=True)
# get selection tags
ent_tags = browser.unfold(browser.selection).tag.label(node=True)
if len(ent_tags) == 0:
@@ -137,7 +138,8 @@ class EditTag(Action):
# FIXME: replace with proper tag factory
for lbl in added_labels:
if lbl not in lut:
- tag = self.root.session.storage.node(ns.bsfs.Tag, TAG_PREFIX[urllib.parse.quote(lbl)])
+ tag = self.root.session.storage.node(ns.bsn.Tag,
+ getattr(TAG_PREFIX, urllib.parse.quote(lbl)))
tag.set(ns.bst.label, lbl)
added.add(tag)
added = reduce(operator.add, added)
diff --git a/tagit/apps/port-schema.nt b/tagit/apps/port-schema.nt
index 7569052..2e70cad 100644
--- a/tagit/apps/port-schema.nt
+++ b/tagit/apps/port-schema.nt
@@ -5,57 +5,59 @@ prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix schema: <http://schema.org/>
# common bsfs prefixes
-prefix bsfs: <http://bsfs.ai/schema/>
-prefix bse: <http://bsfs.ai/schema/Entity#>
-prefix bst: <http://bsfs.ai/schema/Tag#>
-prefix bsg: <http://bsfs.ai/schema/Group#>
-prefix bsp: <http://bsfs.ai/schema/Preview#>
+prefix bsfs: <https://schema.bsfs.io/core/>
+prefix bsl: <https://schema.bsfs.io/core/Literal/>
+prefix bsn: <https://schema.bsfs.io/ie/Node/>
+prefix bse: <https://schema.bsfs.io/ie/Node/Entity#>
+prefix bst: <https://schema.bsfs.io/ie/Node/Tag#>
+prefix bsg: <https://schema.bsfs.io/ie/Node/Group#>
+prefix bsp: <https://schema.bsfs.io/ie/Node/Preview#>
# essential nodes
-bsfs:Entity rdfs:subClassOf bsfs:Node .
-bsfs:Preview rdfs:subClassOf bsfs:Node .
-bsfs:File rdfs:subClassOf bsfs:Entity .
-bsfs:Tag rdfs:subClassOf bsfs:Node .
-bsfs:Group rdfs:subClassOf bsfs:Node .
+bsn:Entity rdfs:subClassOf bsfs:Node .
+bsn:Preview rdfs:subClassOf bsfs:Node .
+bsn:Tag rdfs:subClassOf bsfs:Node .
+bsn:Group rdfs:subClassOf bsfs:Node .
# common definitions
-bsfs:BinaryBlob rdfs:subClassOf bsfs:Literal .
-bsfs:URI rdfs:subClassOf bsfs:Literal .
-bsfs:Number rdfs:subClassOf bsfs:Literal .
-bsfs:Time rdfs:subClassOf bsfs:Literal .
-bsfs:JPEG rdfs:subClassOf bsfs:BinaryBlob .
+bsl:BinaryBlob rdfs:subClassOf bsfs:Literal .
+bsl:URI rdfs:subClassOf bsfs:Literal .
+bsl:Number rdfs:subClassOf bsfs:Literal .
+bsl:Time rdfs:subClassOf bsfs:Literal .
+<https://schema.bsfs.io/ie/Literal/BinaryBlob/JPEG> rdfs:subClassOf bsl:BinaryBlob .
xsd:string rdfs:subClassOf bsfs:Literal .
-xsd:integer rdfs:subClassOf bsfs:Number .
+xsd:integer rdfs:subClassOf bsl:Number .
+xsd:float rdfs:subClassOf bsl:Number .
bse:filename rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
rdfs:label "File name"^^xsd:string ;
schema:description "Filename of entity in some filesystem."^^xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:filesize rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
rdfs:label "File size"^^xsd:string ;
schema:description "File size of entity in some filesystem."^^xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:mime rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:preview rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
- rdfs:range bsfs:Preview .
+ rdfs:domain bsn:Entity ;
+ rdfs:range bsn:Preview .
bse:tag rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
- rdfs:range bsfs:Tag .
+ rdfs:domain bsn:Entity ;
+ rdfs:range bsn:Tag .
bst:label rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Tag ;
+ rdfs:domain bsn:Tag ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
@@ -64,45 +66,50 @@ bse:comment rdfs:subClassOf bsfs:Predicate ;
rdfs:range xsd:string .
bse:group rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
- rdfs:range bsfs:Group .
+ rdfs:domain bsn:Entity ;
+ rdfs:range bsn:Group .
+
+bsg:label rdfs:subClassOf bsfs:Predicate ;
+ rdfs:domain bsn:Group ;
+ rdfs:range xsd:string ;
+ bsfs:unique "true"^^xsd:boolean .
bsg:represented_by rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Group ;
- rdfs:range bsfs:File ;
+ rdfs:domain bsn:Group ;
+ rdfs:range bsn:Entity ;
bsfs:unique "true"^^xsd:boolean .
bse:longitude rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
- rdfs:range xsd:integer ;
+ rdfs:domain bsn:Entity ;
+ rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
bse:latitude rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
- rdfs:range xsd:integer ;
+ rdfs:domain bsn:Entity ;
+ rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
## preview nodes
bsp:width rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Preview ;
+ rdfs:domain bsn:Preview ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bsp:height rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Preview ;
+ rdfs:domain bsn:Preview ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bsp:orientation rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Preview ;
+ rdfs:domain bsn:Preview ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bsp:asset rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Preview ;
- rdfs:range bsfs:JPEG ;
+ rdfs:domain bsn:Preview ;
+ rdfs:range <https://schema.bsfs.io/ie/Literal/BinaryBlob/JPEG> ;
bsfs:unique "true"^^xsd:boolean .
diff --git a/tagit/apps/port_data.py b/tagit/apps/port_data.py
index fc11b4d..11faaef 100644
--- a/tagit/apps/port_data.py
+++ b/tagit/apps/port_data.py
@@ -16,42 +16,42 @@ def add_port_data(store):
def add_port_data2(store):
# tags
- t_hello = store.node(ns.bsfs.Tag, URI('http://example.com/me/tag#hello')) \
+ t_hello = store.node(ns.bsn.Tag, URI('http://example.com/me/tag#hello')) \
.set(ns.bst.label, 'hello')
- t_world = store.node(ns.bsfs.Tag, URI('http://example.com/me/tag#world')) \
+ t_world = store.node(ns.bsn.Tag, URI('http://example.com/me/tag#world')) \
.set(ns.bst.label, 'world')
- t_foobar = store.node(ns.bsfs.Tag, URI('http://example.com/me/tag#foobar')) \
+ t_foobar = store.node(ns.bsn.Tag, URI('http://example.com/me/tag#foobar')) \
.set(ns.bst.label, 'foobar')
# entities
- n0 = store.node(ns.bsfs.File, URI('http://example.com/me/entity#01')) \
+ n0 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#01')) \
.set(ns.bse.filename, 'textfile.t') \
.set(ns.bse.filesize, 100) \
.set(ns.bse.tag, t_hello) \
.set(ns.bse.tag, t_foobar) \
.set(ns.bse.latitude, 47.374444) \
.set(ns.bse.longitude, 8.541111)
- n1 = store.node(ns.bsfs.File, URI('http://example.com/me/entity#02')) \
+ n1 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#02')) \
.set(ns.bse.filename, 'document.pdf') \
.set(ns.bse.filesize, 200) \
.set(ns.bse.tag, t_world) \
.set(ns.bse.tag, t_foobar)
- n2 = store.node(ns.bsfs.File, URI('http://example.com/me/entity#03')) \
+ n2 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#03')) \
.set(ns.bse.filename, 'document.odt') \
.set(ns.bse.filesize, 300) \
.set(ns.bse.tag, t_world)
- n3 = store.node(ns.bsfs.File, URI('http://example.com/me/entity#04')) \
+ n3 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#04')) \
.set(ns.bse.filename, 'image.jpg') \
.set(ns.bse.comment, 'some image') \
.set(ns.bse.tag, t_hello) \
.set(ns.bse.tag, t_foobar)
- n4 = store.node(ns.bsfs.File, URI('http://example.com/me/entity#05')) \
+ n4 = store.node(ns.bsn.Entity, URI('http://example.com/me/entity#05')) \
.set(ns.bse.filename, 'image.png') \
.set(ns.bse.comment, 'another image') \
.set(ns.bse.tag, t_hello)
# groups
- grp = store.node(ns.bsfs.Group, URI('http://example.com/me/group#1234'))
+ grp = store.node(ns.bsn.Group, URI('http://example.com/me/group#1234'))
grp.set(ns.bsg.represented_by, n0)
n0.set(ns.bse.group, grp)
n1.set(ns.bse.group, grp)
@@ -60,77 +60,77 @@ def add_port_data2(store):
# previews
base = os.path.join(os.path.dirname(__file__), 'port-data')
n0.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent01_w100_h100')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent01_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent01_w100_h100.jpg'), 'rb').read())
)
n0.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, str('http://example.com/me/preview#ent01_w400_h200')) \
+ store.node(ns.bsn.Preview, str('http://example.com/me/preview#ent01_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent01_w400_h200.jpg'), 'rb').read())
)
n0.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent01_w400_h400')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent01_w400_h400')) \
.set(ns.bsp.width, 400) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent01_w400_h400.jpg'), 'rb').read())
)
n1.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent02_w100_h100')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent02_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent02_w100_h100.jpg'), 'rb').read())
)
n1.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent02_w400_h200')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent02_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent02_w400_h200.jpg'), 'rb').read())
)
n2.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent03_w100_h100')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent03_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent03_w100_h100.jpg'), 'rb').read())
)
n2.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent03_w400_h200')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent03_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent03_w400_h200.jpg'), 'rb').read())
)
n3.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent04_w100_h100')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent04_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent04_w100_h100.png'), 'rb').read())
)
n3.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent04_w400_h200')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent04_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent04_w400_h200.png'), 'rb').read())
)
n4.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent05_w100_h100')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent05_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
.set(ns.bsp.asset, open(os.path.join(base, 'ent05_w100_h100.jpg'), 'rb').read())
)
n4.set(ns.bse.preview,
- store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent05_w400_h200')) \
+ store.node(ns.bsn.Preview, URI('http://example.com/me/preview#ent05_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
diff --git a/tagit/parsing/filter/from_string.py b/tagit/parsing/filter/from_string.py
index ed24f63..60e5c47 100644
--- a/tagit/parsing/filter/from_string.py
+++ b/tagit/parsing/filter/from_string.py
@@ -69,7 +69,7 @@ class FromString():
> Require: searchable as specified in backend AND user-searchable as specified in frontend
"""
# all relevant predicates
- predicates = {pred for pred in self.schema.predicates() if pred.domain <= self.schema.node(ns.bsfs.Entity)}
+ predicates = {pred for pred in self.schema.predicates() if pred.domain <= self.schema.node(ns.bsn.Entity)}
# filter through accept/reject lists
... # FIXME
# shortcuts
@@ -78,9 +78,9 @@ class FromString():
# all predicates
_PREDICATES = {self._uri2abb[pred.uri] for pred in predicates} | {'id', 'group'} # FIXME: properly document additions
# numeric predicates
- _PREDICATES_NUMERIC = {self._uri2abb[pred.uri] for pred in predicates if pred.range <= self.schema.literal(ns.bsfs.Number)}
+ _PREDICATES_NUMERIC = {self._uri2abb[pred.uri] for pred in predicates if pred.range <= self.schema.literal(ns.bsl.Number)}
# datetime predicates
- self._DATETIME_PREDICATES = {pred.uri for pred in predicates if pred.range <= self.schema.literal(ns.bsfs.Time)}
+ self._DATETIME_PREDICATES = {pred.uri for pred in predicates if pred.range <= self.schema.literal(ns.bsl.Time)}
_PREDICATES_DATETIME = {self._uri2abb[pred] for pred in self._DATETIME_PREDICATES}
diff --git a/tagit/parsing/filter/to_string.py b/tagit/parsing/filter/to_string.py
index a2815de..6a1b035 100644
--- a/tagit/parsing/filter/to_string.py
+++ b/tagit/parsing/filter/to_string.py
@@ -20,7 +20,7 @@ class ToString():
self.matches = matcher.Filter()
self.schema = schema
- predicates = {pred for pred in self.schema.predicates() if pred.domain <= self.schema.node(ns.bsfs.Entity)}
+ predicates = {pred for pred in self.schema.predicates() if pred.domain <= self.schema.node(ns.bsn.Entity)}
# shortcuts
self._abb2uri = {pred.uri.fragment: pred.uri for pred in predicates} # FIXME: tie-breaking for duplicates
self._uri2abb = {uri: fragment for fragment, uri in self._abb2uri.items()}
diff --git a/tagit/tiles/info.py b/tagit/tiles/info.py
index a5eacdf..8edc9bb 100644
--- a/tagit/tiles/info.py
+++ b/tagit/tiles/info.py
@@ -61,14 +61,14 @@ class Info(TileTabular, BrowserAwareMixin):
else:
preds = cursor.get(
- ns.bsm.t_created,
+ ns.bsfs.Node().t_created,
ns.bse.filesize,
ns.bse.filename,
(ns.bse.tag, ns.bst.label),
)
self.tabledata = OrderedDict({
'Date' : ttime.from_timestamp_utc(
- preds.get(ns.bsm.t_created, ttime.timestamp_min)).strftime('%d.%m.%y %H:%M'),
+ preds.get(ns.bsfs.Node().t_created, ttime.timestamp_min)).strftime('%d.%m.%y %H:%M'),
#'Size' : f'{preds.get(ns.bse.width, "?")} x {preds.get(ns.bse.height, "?")}',
#'ISO' : preds.get(ns.bse.iso, '?'),
'Filesize' : magnitude_fmt(preds.get(ns.bse.filesize, 0)),
diff --git a/tagit/utils/namespaces.py b/tagit/utils/namespaces.py
index dbdb853..3fb889c 100644
--- a/tagit/utils/namespaces.py
+++ b/tagit/utils/namespaces.py
@@ -11,29 +11,31 @@ import typing
from . import bsfs as _bsfs
# generic namespaces
-xsd = _bsfs.Namespace('http://www.w3.org/2001/XMLSchema')
+xsd = _bsfs.Namespace('http://www.w3.org/2001/XMLSchema')()
# core bsfs namespaces
-bsfs = _bsfs.Namespace('http://bsfs.ai/schema', fsep='/')
-bsm = _bsfs.Namespace('http://bsfs.ai/schema/Meta')
+bsfs = _bsfs.Namespace('https://schema.bsfs.io/core')
+bsie = _bsfs.Namespace('https://schema.bsfs.io/ie')
# auxiliary bsfs namespaces
-bse = _bsfs.Namespace('http://bsfs.ai/schema/Entity')
-bsg = _bsfs.Namespace('http://bsfs.ai/schema/Group')
-bsp = _bsfs.Namespace('http://bsfs.ai/schema/Preview')
-bst = _bsfs.Namespace('http://bsfs.ai/schema/Tag')
+bse = bsn.Entity()
+bsg = bsn.Group()
+bsl = bsfs.Literal
+bsn = bsie.Node
+bsp = bsn.Preview()
+bst = bsn.Tag()
# export
__all__: typing.Sequence[str] = (
'bse',
'bsfs',
'bsg',
- 'bsm',
+ 'bsie',
+ 'bsl',
+ 'bsn',
'bsp',
'bst',
'xsd',
)
## EOF ##
-
-
diff --git a/tagit/widgets/browser.py b/tagit/widgets/browser.py
index 8445706..17d99ed 100644
--- a/tagit/widgets/browser.py
+++ b/tagit/widgets/browser.py
@@ -171,7 +171,7 @@ class Browser(GridLayout, StorageAwareMixin, ConfigAwareMixin):
"""
# get groups and their shadow (group's members in items)
groups = defaultdict(set)
- all_items = reduce(operator.add, items, self.root.session.storage.empty(ns.bsfs.File))
+ all_items = reduce(operator.add, items, self.root.session.storage.empty(ns.bsn.Entity))
for obj, grp in all_items.group(node=True, view=list):
groups[grp].add(obj)
@@ -219,7 +219,7 @@ class Browser(GridLayout, StorageAwareMixin, ConfigAwareMixin):
unfolded |= self.folds[itm].shadow
else:
unfolded |= {itm}
- return reduce(operator.add, unfolded, self.root.session.storage.empty(ns.bsfs.File))
+ return reduce(operator.add, unfolded, self.root.session.storage.empty(ns.bsn.Entity))
def neighboring_unselected(self):
"""Return the item closest to the cursor and not being selected. May return None."""
@@ -580,7 +580,7 @@ class BrowserDescription(BrowserItem):
grp = self.browser.folds[self.obj].group
# FIXME: Here we could actually use a predicate reversal for Nodes.get
# members = grp.get(ast.fetch.Node(ast.fetch.Predicate(ns.bse.group, reverse=True)))
- members = self.browser.root.session.storage.get(ns.bsfs.File,
+ members = self.browser.root.session.storage.get(ns.bsn.Entity,
ast.filter.Any(ns.bse.group, ast.filter.Is(grp)))
# get group member's tags
member_tags = members.tag.label(node=True)