aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-03-04 13:41:13 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-03-04 13:41:13 +0100
commitd2052e77210e0ace2c5f06e48afe2a8acb412965 (patch)
treef8e58256a6e309f7cabcd2112e59a9d9c659f375
parent2f0f28a0c5490f53e71e55a3bc4667bbeeae49b1 (diff)
downloadbsie-d2052e77210e0ace2c5f06e48afe2a8acb412965.tar.gz
bsie-d2052e77210e0ace2c5f06e48afe2a8acb412965.tar.bz2
bsie-d2052e77210e0ace2c5f06e48afe2a8acb412965.zip
namespace refactoring and cleanup
-rw-r--r--bsie/extractor/base.py33
-rw-r--r--bsie/extractor/generic/path.py2
-rw-r--r--bsie/extractor/generic/stat.py2
-rw-r--r--bsie/extractor/image/colors_spatial.py12
-rw-r--r--bsie/extractor/image/photometrics.py24
-rw-r--r--bsie/extractor/preview.py22
-rw-r--r--bsie/lib/naming_policy.py8
-rw-r--r--bsie/lib/pipeline.py2
-rw-r--r--bsie/utils/namespaces.py28
-rw-r--r--test/apps/test_index.py204
-rw-r--r--test/apps/test_info.py36
-rw-r--r--test/apps/test_loader.py22
-rw-r--r--test/apps/test_main.py6
-rw-r--r--test/extractor/generic/test_constant.py16
-rw-r--r--test/extractor/generic/test_path.py6
-rw-r--r--test/extractor/generic/test_stat.py6
-rw-r--r--test/extractor/image/test_colors_spatial.py12
-rw-r--r--test/extractor/test_base.py8
-rw-r--r--test/extractor/test_builder.py16
-rw-r--r--test/extractor/test_preview.py24
-rw-r--r--test/lib/test_bsie.py28
-rw-r--r--test/lib/test_builder.py4
-rw-r--r--test/lib/test_naming_policy.py40
-rw-r--r--test/lib/test_pipeline.py12
-rw-r--r--test/utils/test_node.py18
25 files changed, 305 insertions, 286 deletions
diff --git a/bsie/extractor/base.py b/bsie/extractor/base.py
index 3759c68..f92d7cc 100644
--- a/bsie/extractor/base.py
+++ b/bsie/extractor/base.py
@@ -24,27 +24,32 @@ SCHEMA_PREAMBLE = '''
prefix schema: <http://schema.org/>
# common bsfs prefixes
- prefix bsfs: <http://bsfs.ai/schema/>
- prefix bse: <http://bsfs.ai/schema/Entity#>
- prefix bsp: <http://bsfs.ai/schema/Preview#>
+ prefix bsfs: <https://schema.bsfs.io/core/>
+ prefix bsl: <https://schema.bsfs.io/core/Literal/>
+ prefix bsa: <https://schema.bsfs.io/core/Literal/Array/>
+ prefix bsd: <https://schema.bsfs.io/core/distance#>
+
+ prefix bsie: <https://schema.bsfs.io/ie/>
+ prefix bsn: <https://schema.bsfs.io/ie/Node/>
+ prefix bse: <https://schema.bsfs.io/ie/Node/Entity#>
+ prefix bsp: <https://schema.bsfs.io/ie/Node/Preview#>
# default definitions
- bsfs:Array rdfs:subClassOf bsfs:Literal .
- bsfs:Number rdfs:subClassOf bsfs:Literal .
- bsfs:Time rdfs:subClassOf bsfs:Literal .
- bsfs:Feature rdfs:subClassOf bsfs:Array ;
+ bsl:Array rdfs:subClassOf bsfs:Literal .
+ bsl:Number rdfs:subClassOf bsfs:Literal .
+ bsl:Time rdfs:subClassOf bsfs:Literal .
+ bsa:Feature rdfs:subClassOf bsl:Array ;
bsfs:dimension "1"^^xsd:integer ;
- bsfs:dtype bsfs:f16 ;
- bsfs:distance bsfs:euclidean .
+ bsfs:dtype <https://schema.bsfs.io/core/dtype#f16> ;
+ bsfs:distance bsd:euclidean .
# essential nodes
- bsfs:Entity rdfs:subClassOf bsfs:Node .
- bsfs:File rdfs:subClassOf bsfs:Entity .
+ bsn:Entity rdfs:subClassOf bsfs:Node .
# common definitions
xsd:string rdfs:subClassOf bsfs:Literal .
- xsd:integer rdfs:subClassOf bsfs:Number .
- xsd:float rdfs:subClassOf bsfs:Number .
+ xsd:integer rdfs:subClassOf bsl:Number .
+ xsd:float rdfs:subClassOf bsl:Number .
'''
@@ -90,7 +95,7 @@ class Extractor(abc.ABC):
@property
def principals(self) -> typing.Iterator[bsfs.schema.Predicate]:
"""Return the principal predicates, i.e., relations from/to the extraction subject."""
- ent = self.schema.node(ns.bsfs.Entity)
+ ent = self.schema.node(ns.bsn.Entity)
return (
pred
for pred
diff --git a/bsie/extractor/generic/path.py b/bsie/extractor/generic/path.py
index 8b01933..00c1121 100644
--- a/bsie/extractor/generic/path.py
+++ b/bsie/extractor/generic/path.py
@@ -26,7 +26,7 @@ class Path(base.Extractor):
def __init__(self):
super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
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 ;
diff --git a/bsie/extractor/generic/stat.py b/bsie/extractor/generic/stat.py
index 50821a7..92b51f3 100644
--- a/bsie/extractor/generic/stat.py
+++ b/bsie/extractor/generic/stat.py
@@ -29,7 +29,7 @@ class Stat(base.Extractor):
def __init__(self):
super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
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 ;
diff --git a/bsie/extractor/image/colors_spatial.py b/bsie/extractor/image/colors_spatial.py
index 34cd615..e6661a9 100644
--- a/bsie/extractor/image/colors_spatial.py
+++ b/bsie/extractor/image/colors_spatial.py
@@ -14,8 +14,7 @@ from bsie.utils import bsfs, node, ns
from .. import base
# constants
-FEATURE_NAME = ns.bsf + 'ColorsSpatial'
-PREDICATE_NAME = ns.bse + 'colors_spatial'
+FEATURE_NAME = ns.bsf.ColorsSpatial()
# exports
__all__: typing.Sequence[str] = (
@@ -58,16 +57,17 @@ class ColorsSpatial(base.Extractor):
'exp': exp,
})
# determine symbol names
- instance_name = FEATURE_NAME[uuid]
- predicate_name = PREDICATE_NAME[uuid]
+ instance_name = getattr(FEATURE_NAME, uuid)
+ predicate_name = getattr(ns.bse, 'colors_spatial_' + uuid)
# get vector dimension
dimension = self.dimension(width, height, exp)
# initialize parent with the schema
super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + f'''
- <{FEATURE_NAME}> rdfs:subClassOf bsfs:Feature ;
+ <{FEATURE_NAME}> rdfs:subClassOf bsa:Feature ;
# annotations
rdfs:label "Spatially dominant colors"^^xsd:string ;
schema:description "Domiant colors of subregions in an image."^^xsd:string ;
+ bsfs:distance <https://schema.bsfs.io/core/distance#euclidean> ;
bsfs:dtype xsd:integer .
<{instance_name}> rdfs:subClassOf <{FEATURE_NAME}> ;
@@ -78,7 +78,7 @@ class ColorsSpatial(base.Extractor):
<{FEATURE_NAME}/args#exp> "{exp}"^^xsd:float .
<{predicate_name}> rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range <{instance_name}> ;
bsfs:unique "true"^^xsd:boolean .
diff --git a/bsie/extractor/image/photometrics.py b/bsie/extractor/image/photometrics.py
index c5254ab..42eb3c8 100644
--- a/bsie/extractor/image/photometrics.py
+++ b/bsie/extractor/image/photometrics.py
@@ -41,51 +41,51 @@ class Exif(base.Extractor):
def __init__(self):
super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
#bse:t_capture rdfs:subClassOf bsfs:Predicate ;
- # rdfs:domain bsfs:File ;
+ # rdfs:domain bsn:Entity ;
# rdfs:range xsd:float ;
# bsfs:unique "true"^^xsd:boolean .
bse:exposure rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
bse:aperture rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
bse:iso rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bse:focal_length rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
bse:width rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bse:height rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bse:orientation rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
bse:orientation_label rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:altitude rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
bse:latitude rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
bse:longitude rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:float ;
bsfs:unique "true"^^xsd:boolean .
'''))
diff --git a/bsie/extractor/preview.py b/bsie/extractor/preview.py
index 7e4a171..145a01a 100644
--- a/bsie/extractor/preview.py
+++ b/bsie/extractor/preview.py
@@ -28,28 +28,30 @@ class Preview(base.Extractor):
def __init__(self, max_sides: typing.Iterable[int]):
super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
- bsfs:Preview rdfs:subClassOf bsfs:Node .
- bsfs:BinaryBlob rdfs:subClassOf bsfs:Literal .
- bsfs:JPEG rdfs:subClassOf bsfs:BinaryBlob .
+
+
+ bsn:Preview rdfs:subClassOf bsfs:Node .
+ bsl:BinaryBlob rdfs:subClassOf bsfs:Literal .
+ <https://schema.bsfs.io/ie/Literal/BinaryBlob/JPEG> rdfs:subClassOf bsl:BinaryBlob .
bse:preview rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
- rdfs:range bsfs:Preview ;
+ rdfs:domain bsn:Entity ;
+ rdfs:range bsn:Preview ;
bsfs:unique "false"^^xsd:boolean .
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: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 .
'''))
@@ -80,7 +82,7 @@ class Preview(base.Extractor):
buffer = io.BytesIO()
img.save(buffer, format='jpeg')
# create a preview node
- preview = node.Node(ns.bsfs.Preview,
+ preview = node.Node(ns.bsn.Preview,
ucid=bsfs.uuid.UCID.from_bytes(buffer.getvalue()),
size=max_side,
source=subject,
diff --git a/bsie/lib/naming_policy.py b/bsie/lib/naming_policy.py
index c99f8c8..9b9a45d 100644
--- a/bsie/lib/naming_policy.py
+++ b/bsie/lib/naming_policy.py
@@ -80,9 +80,9 @@ class DefaultNamingPolicy(NamingPolicy):
def handle_node(self, node: Node) -> Node:
if node.uri is not None:
return node
- if node.node_type == ns.bsfs.File:
+ if node.node_type == ns.bsn.Entity :
return self.name_file(node)
- if node.node_type == ns.bsfs.Preview:
+ if node.node_type == ns.bsn.Preview:
return self.name_preview(node)
raise errors.ProgrammingError('no naming policy available for {node.node_type}')
@@ -92,7 +92,7 @@ class DefaultNamingPolicy(NamingPolicy):
fragment = node.hints['ucid']
else: # random name
fragment = self._uuid()
- node.uri = (self._prefix + 'file')[fragment]
+ node.uri = getattr(self._prefix.file(), fragment)
return node
def name_preview(self, node: Node) -> Node:
@@ -109,7 +109,7 @@ class DefaultNamingPolicy(NamingPolicy):
fragment = self._uuid()
if 'size' in node.hints: # append size
fragment += '_s' + str(node.hints['size'])
- node.uri = (self._prefix + 'preview')[fragment]
+ node.uri = getattr(self._prefix.preview(), fragment)
return node
## EOF ##
diff --git a/bsie/lib/pipeline.py b/bsie/lib/pipeline.py
index 128eecc..30fd6fd 100644
--- a/bsie/lib/pipeline.py
+++ b/bsie/lib/pipeline.py
@@ -104,7 +104,7 @@ class Pipeline():
rdr2ext[rdr].add(ext)
# create subject for file
- subject = node.Node(ns.bsfs.File,
+ subject = node.Node(ns.bsn.Entity,
ucid=bsfs.uuid.UCID.from_path(path),
)
diff --git a/bsie/utils/namespaces.py b/bsie/utils/namespaces.py
index 310aa3f..4a66048 100644
--- a/bsie/utils/namespaces.py
+++ b/bsie/utils/namespaces.py
@@ -6,19 +6,31 @@ import typing
# inner-module imports
from . import bsfs as _bsfs
-# constants
-bse = _bsfs.Namespace('http://bsfs.ai/schema/Entity')
-bsf = _bsfs.Namespace('http://ie.bsfs.ai/schema/Feature')
-bsfs = _bsfs.Namespace('http://bsfs.ai/schema', fsep='/')
-bsm = _bsfs.Namespace('http://bsfs.ai/schema/Meta')
-bsp = _bsfs.Namespace('http://bsfs.ai/schema/Preview')
-xsd = _bsfs.Namespace('http://www.w3.org/2001/XMLSchema')
+# generic namespaces
+xsd = _bsfs.Namespace('http://www.w3.org/2001/XMLSchema')()
+
+# core bsfs/bsie namespaces
+bsfs = _bsfs.Namespace('https://schema.bsfs.io/core')
+bsie = _bsfs.Namespace('https://schema.bsfs.io/ie')
+
+# auxiliary namespaces
+bsd = bsie.distance()
+bse = bsie.Node.Entity()
+bsf = bsie.Literal.Array.Feature
+bsl = bsfs.Literal
+bsn = bsie.Node
+bsp = bsie.Node.Preview()
# export
__all__: typing.Sequence[str] = (
+ 'bsd',
'bse',
+ 'bsf',
'bsfs',
- 'bsm',
+ 'bsie',
+ 'bsl',
+ 'bsl',
+ 'bsn',
'bsp',
'xsd',
)
diff --git a/test/apps/test_index.py b/test/apps/test_index.py
index 03209fe..6927044 100644
--- a/test/apps/test_index.py
+++ b/test/apps/test_index.py
@@ -31,11 +31,11 @@ class TestIndex(unittest.TestCase):
{'bsie.extractor.generic.constant.Constant': {
'schema': '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
''',
- 'tuples': [['http://bsfs.ai/schema/Entity#author', 'Me, myself, and I']],
+ 'tuples': [['https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I']],
}},
{'bsie.extractor.image.colors_spatial.ColorsSpatial': {
'width': 2,
@@ -77,47 +77,47 @@ class TestIndex(unittest.TestCase):
pre_preview = 'http://example.com/me/preview#'
self.assertTrue(set(bsfs._backend._graph).issuperset({
# files and properties
- (rdflib.URIRef(pre_file + '2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('alpha_second', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + '441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('omega_second', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + '69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('td_first', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + '78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('testfile', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + '80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('bar_first', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + '976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('omega_first', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + '997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + '997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + '997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + '997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('alpha_first', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + 'a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + 'a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + 'a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + 'a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('foo_second', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + 'b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + 'b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + 'b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + 'b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('bar_second', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + 'd43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + 'd43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + 'd43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + 'd43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('foo_first', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + 'd803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + 'd803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + 'd803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + 'd803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('td_second', datatype=rdflib.XSD.string)),
- (rdflib.URIRef(pre_file + 'accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.File)),
+ (rdflib.URIRef(pre_file + 'accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Entity)),
(rdflib.URIRef(pre_file + 'accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089'), rdflib.URIRef(ns.bse.author), rdflib.Literal('Me, myself, and I', datatype=rdflib.XSD.string)),
(rdflib.URIRef(pre_file + 'accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089'), rdflib.URIRef(ns.bse.filename), rdflib.Literal('testimage.jpg', datatype=rdflib.XSD.string)),
# features
- (rdflib.URIRef(pre_file + 'accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089'), rdflib.URIRef('http://bsfs.ai/schema/Entity/colors_spatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04'),
+ (rdflib.URIRef(pre_file + 'accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089'), rdflib.URIRef('https://schema.bsfs.io/ie/Node/Entity#colors_spatial_0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04'),
rdflib.Literal(
'(91, 127, 121, 94, 138, 167, 163, 134, 190, 138, 170, 156, 121, 142, 159)',
- datatype=rdflib.URIRef('http://ie.bsfs.ai/schema/Feature/ColorsSpatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04'))),
+ datatype=rdflib.URIRef('https://schema.bsfs.io/ie/Literal/Array/Feature/ColorsSpatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04'))),
# links to previews
(rdflib.URIRef(pre_file + '2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647'), rdflib.URIRef(ns.bse.preview), rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50')),
(rdflib.URIRef(pre_file + '441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece'), rdflib.URIRef(ns.bse.preview), rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50')),
@@ -134,53 +134,53 @@ class TestIndex(unittest.TestCase):
# preview dimensions
(rdflib.URIRef(pre_preview + '2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('33', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + '9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + '9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + '9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + '9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + 'a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + 'a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + 'a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + 'a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + 'dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + 'dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + 'dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + 'dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
(rdflib.URIRef(pre_preview + 'df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50'), rdflib.URIRef(ns.bsp.height), rdflib.Literal('50', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
(rdflib.URIRef(pre_preview + 'df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50'), rdflib.URIRef(ns.bsp.width), rdflib.Literal('36', datatype=rdflib.URIRef('http://www.w3.org/2001/XMLSchema#integer'))),
- (rdflib.URIRef(pre_preview + 'df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsfs.Preview)),
+ (rdflib.URIRef(pre_preview + 'df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50'), rdflib.RDF.type, rdflib.URIRef(ns.bsn.Preview)),
# assets
- (rdflib.URIRef(pre_preview + '2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAhADIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDi9Ktb+O3khZTg/wAB7VSGnKkkhkAR85weteo3Vl9mvLtWjVWEJaN/9rsD7HkVwNza3kmsn7RYsDuzsdSVb/GvLo15W9rKNkVDmvzKN0dx4L1Sb+x2S7jZ7aM7BKF+XPoffkVdOpWDSSI9sGizk5HWuE8S69q0NnHptnB9ms7Nh8lr+6SSXALhsHJUcY7kitPTLi51nR0nMKpO6ZkCHABxngdq1xGKnSs1Kyvrc7qEMW2/Zrz/AKudnbXXhuaEiO3jjY9TtxVG8ht3mQwgOnaubuVmtbFV2gSjjn1q1prajJF+9dEQdMVjPHKtFxaXqc9fE1JXpzjr+J0Is7fA+VaKwmludx/0xevrRXLaH8xyfVZdjpNFsgsUlpryPkjyVuVJ6AnH8z/I1flS30m2ezvdt3bbd1teRL8yntu/xGfeua1zXtbs7dh5I8mRdhkD7mYEY5GOf51Jp+vW8Vnu1KT7FJKMmO5b5JcdwDxn1HFfR1KUZRd1v93zPoaFfD1J+5Kz+79DjfEV9Dc3E0hk5Zi5ZR1btx+NYNlrn9nllhkKgnPpnjr9Of1H0rrdc0bQtTvgsWbSRiwJjk2K+ADwrZ9RyOOa4/U/AWs21y0mmhL60dyI5IpVLduGGeCM/jXmPL201N3NK9SpfngrryOr0y+i1fT4lvZ9gR9pYfM5I9v8/wBK2/7FneFmCXEMLcIbhwpb3A6gVwGiaR4o03UYhbaZOZ88RqA27HXoeB9K9PgiYRRyal4Y1KKVhlyHbr3966MPgIRpuMtNROjTr+/JWn+P4mB/wix/5/o/+/lFdoLXT8DPhfUfx8yiuj6lT7v8P8hex85ffEZef8gu0+oriPiZ/rNI+j/zFFFbYn+Ez5uh8ZP4l/5Cq/8AYN/9nFU/CH/Hvd/9dv8A2Wiih/Ee7k/wv1/Q63Qv9fb/APXT+ldFrP8Ax/xfRP8A0IUUVX2T0K38RD5v9dJ/vH+dFFFUC2P/2Q==', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq6eAgKoI25Oc+oHYe9Qfb5sr+6UZHUhuv5VYjnZyQSo9gpNTgP3YH6Lj+tPqCa2jmILrkgEVH/Z8HHy8DjGB/hUq26IMAkj0IH+FTUUUUUUUUUUUUUUUUUUUUUUUUUUV/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eBwFVTkd89c+1Qf2hMSAI15/3v8KtR3DSFgIiceh7/AMv1qcHIzjFLVO7tnncFduAMc+v5GoDZXJAw65A/vdT/AN81PDasjMXPBGAMgj8toqxHGIxgfyA/lUlFFFFFFFFFFFFFFFFFFFFFFFFFf//Z', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq5eFgEQEYySQf6CoDqEo2/u1yevDf4VJHfZ3eZhNvojHvj0q4h3IDnOR1AxmnVXntEuDlyR8u3gA8fiDUR02I4G9uOei9eeenvTvsS5J82Tn6cfpUsMPkrgSOw9Gxx+lTUUUUUUUUUUUUUUUUUUUUUUUUUV//9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq6eBgFUHjPIJ7+wqudQmGMxpyMk4bA6+30/OrSyzFvm8kDrjecgflVhSGGVIIPcUtV57RLjBZmBAxwB/UGov7NiGMMw25wQF45z6VKtrGuc7mz6n3zVjpRRRRRRRRRRRRRRRRRRRRRRRRRRX/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eFsIgPy55zyc47CoRfTkf6uPOOckjnn29qmS5dmbK52noq5OPzqwj7/wCFl/3hin1n36MzgqhbCkcKTz+ANUzA5Cjynx7IRjn/AHfT271d8gAEFGxzwCfX2WrMR2gIQfbg/wCAqaiiiiiiiiiiiiiiiiiiiiiiiiiv/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq5eAgKoPyknIPb6ColvZywHlp79R+WRU3nT7iojHXqQR6VYUk9QR9adVK8t3mdSqggLjJxkHPuD/AJFVlsZ/l+RFIXGTtI6k9Npq3FbFdwYKAemAp/8AZR/WrKLtGMn9KdRRRRRRRRRRRRRRRRRRRRRRRRRX/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + '567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eFwFVSCpPIPYj0HvVf+0ZiFxGnIychhj9KtQyTSNkiLZ7E5B/EVZorN1EZkXAJIQ4wM9x7GqYAAXCAgDHKnGMn0X/Oa0LeMJudcKx64iJz+OATVoOOh3E+oUipKayK33lB+opPKj/55r+VHlR8/Iv5U+iiiiiiiiiiiiiiiiiiiiiv/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + 'df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eGQBVU5XPIJ7j0FQfb5sgiNcH2b39vapkvGPDIucjoTjBOPSrKuHHGencEU+ql1am4IIYA7cDIB757g1CunFWByAAOCMAg5yD07VcCEN0P/fZNS0UUUUUUUUUUUUUUUUUUUUUUUUUV/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + 'a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq6eBgFUH5c5IPqPQVANQmJUeWvPXhvUj09qspcM2cAnHHCE/rmpUl3nGx1+oxUlVLq1M7KQQPlI5APXHqDUKacyMDvHTsBk9fb3q4kXl5IYkk5OQB/ICpaKKKKKKKKKKKKKKKKKKKKKKKKKK/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdbm4eF1CqDkZOQT3HoKr/b5vl/dpkj/awDnHp06fzqZLiRmIPk47fMQf1FXKKikgilOZEDHGOaZ9itsg+SuQMA08QoowNwHoGP+NO8serf99Gn0UUUUUUUUUUUUUUUUUUUUUUUUV//2Q==', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
- (rdflib.URIRef(pre_preview + 'dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdbm5eFwqqDkZ5B9QOw96rHUZgoPlLkgno3b8Kel7IzspVePYgdcck1YilaTA3JnqQFPT86sVQvoXkYFUDEKRz7np0NVWtZcAiLkd8Dg/8AfPqO3rWhEk6thsbc9mz+mP61Zoooooooooooooooooooooooooor/9k=', datatype=rdflib.URIRef(ns.bsfs.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAhADIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDi9Ktb+O3khZTg/wAB7VSGnKkkhkAR85weteo3Vl9mvLtWjVWEJaN/9rsD7HkVwNza3kmsn7RYsDuzsdSVb/GvLo15W9rKNkVDmvzKN0dx4L1Sb+x2S7jZ7aM7BKF+XPoffkVdOpWDSSI9sGizk5HWuE8S69q0NnHptnB9ms7Nh8lr+6SSXALhsHJUcY7kitPTLi51nR0nMKpO6ZkCHABxngdq1xGKnSs1Kyvrc7qEMW2/Zrz/AKudnbXXhuaEiO3jjY9TtxVG8ht3mQwgOnaubuVmtbFV2gSjjn1q1prajJF+9dEQdMVjPHKtFxaXqc9fE1JXpzjr+J0Is7fA+VaKwmludx/0xevrRXLaH8xyfVZdjpNFsgsUlpryPkjyVuVJ6AnH8z/I1flS30m2ezvdt3bbd1teRL8yntu/xGfeua1zXtbs7dh5I8mRdhkD7mYEY5GOf51Jp+vW8Vnu1KT7FJKMmO5b5JcdwDxn1HFfR1KUZRd1v93zPoaFfD1J+5Kz+79DjfEV9Dc3E0hk5Zi5ZR1btx+NYNlrn9nllhkKgnPpnjr9Of1H0rrdc0bQtTvgsWbSRiwJjk2K+ADwrZ9RyOOa4/U/AWs21y0mmhL60dyI5IpVLduGGeCM/jXmPL201N3NK9SpfngrryOr0y+i1fT4lvZ9gR9pYfM5I9v8/wBK2/7FneFmCXEMLcIbhwpb3A6gVwGiaR4o03UYhbaZOZ88RqA27HXoeB9K9PgiYRRyal4Y1KKVhlyHbr3966MPgIRpuMtNROjTr+/JWn+P4mB/wix/5/o/+/lFdoLXT8DPhfUfx8yiuj6lT7v8P8hex85ffEZef8gu0+oriPiZ/rNI+j/zFFFbYn+Ez5uh8ZP4l/5Cq/8AYN/9nFU/CH/Hvd/9dv8A2Wiih/Ee7k/wv1/Q63Qv9fb/APXT+ldFrP8Ax/xfRP8A0IUUVX2T0K38RD5v9dJ/vH+dFFFUC2P/2Q==', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq6eAgKoI25Oc+oHYe9Qfb5sr+6UZHUhuv5VYjnZyQSo9gpNTgP3YH6Lj+tPqCa2jmILrkgEVH/Z8HHy8DjGB/hUq26IMAkj0IH+FTUUUUUUUUUUUUUUUUUUUUUUUUUUV/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eBwFVTkd89c+1Qf2hMSAI15/3v8KtR3DSFgIiceh7/AMv1qcHIzjFLVO7tnncFduAMc+v5GoDZXJAw65A/vdT/AN81PDasjMXPBGAMgj8toqxHGIxgfyA/lUlFFFFFFFFFFFFFFFFFFFFFFFFFf//Z', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq5eFgEQEYySQf6CoDqEo2/u1yevDf4VJHfZ3eZhNvojHvj0q4h3IDnOR1AxmnVXntEuDlyR8u3gA8fiDUR02I4G9uOei9eeenvTvsS5J82Tn6cfpUsMPkrgSOw9Gxx+lTUUUUUUUUUUUUUUUUUUUUUUUUUV//9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq6eBgFUHjPIJ7+wqudQmGMxpyMk4bA6+30/OrSyzFvm8kDrjecgflVhSGGVIIPcUtV57RLjBZmBAxwB/UGov7NiGMMw25wQF45z6VKtrGuc7mz6n3zVjpRRRRRRRRRRRRRRRRRRRRRRRRRRX/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eFsIgPy55zyc47CoRfTkf6uPOOckjnn29qmS5dmbK52noq5OPzqwj7/wCFl/3hin1n36MzgqhbCkcKTz+ANUzA5Cjynx7IRjn/AHfT271d8gAEFGxzwCfX2WrMR2gIQfbg/wCAqaiiiiiiiiiiiiiiiiiiiiiiiiiv/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq5eAgKoPyknIPb6ColvZywHlp79R+WRU3nT7iojHXqQR6VYUk9QR9adVK8t3mdSqggLjJxkHPuD/AJFVlsZ/l+RFIXGTtI6k9Npq3FbFdwYKAemAp/8AZR/WrKLtGMn9KdRRRRRRRRRRRRRRRRRRRRRRRRRX/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + '567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eFwFVSCpPIPYj0HvVf+0ZiFxGnIychhj9KtQyTSNkiLZ7E5B/EVZorN1EZkXAJIQ4wM9x7GqYAAXCAgDHKnGMn0X/Oa0LeMJudcKx64iJz+OATVoOOh3E+oUipKayK33lB+opPKj/55r+VHlR8/Iv5U+iiiiiiiiiiiiiiiiiiiiiv/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + 'df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLm5eGQBVU5XPIJ7j0FQfb5sgiNcH2b39vapkvGPDIucjoTjBOPSrKuHHGencEU+ql1am4IIYA7cDIB757g1CunFWByAAOCMAg5yD07VcCEN0P/fZNS0UUUUUUUUUUUUUUUUUUUUUUUUUV/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + 'a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdLq6eBgFUH5c5IPqPQVANQmJUeWvPXhvUj09qspcM2cAnHHCE/rmpUl3nGx1+oxUlVLq1M7KQQPlI5APXHqDUKacyMDvHTsBk9fb3q4kXl5IYkk5OQB/ICpaKKKKKKKKKKKKKKKKKKKKKKKKKK/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + 'a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdbm4eF1CqDkZOQT3HoKr/b5vl/dpkj/awDnHp06fzqZLiRmIPk47fMQf1FXKKikgilOZEDHGOaZ9itsg+SuQMA08QoowNwHoGP+NO8serf99Gn0UUUUUUUUUUUUUUUUUUUUUUUUV//2Q==', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
+ (rdflib.URIRef(pre_preview + 'dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50'), rdflib.URIRef(ns.bsp.asset), rdflib.Literal('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAAyACQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APdbm5eFwqqDkZ5B9QOw96rHUZgoPlLkgno3b8Kel7IzspVePYgdcck1YilaTA3JnqQFPT86sVQvoXkYFUDEKRz7np0NVWtZcAiLkd8Dg/8AfPqO3rWhEk6thsbc9mz+mP61Zoooooooooooooooooooooooooor/9k=', datatype=rdflib.URIRef(ns.bsl.BinaryBlob))),
}))
# NOTE: we don't check ns.bsm.t_created since it depends on the execution time. Triples would look like this:
@@ -189,7 +189,7 @@ class TestIndex(unittest.TestCase):
# (rdflib.URIRef(pre_file + '80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3'), rdflib.URIRef(ns.bsm.t_created), rdflib.Literal('1670..........', datatype=rdflib.XSD.integer)),
# ...
# instead, we simply check if there's such a predicate for each file
- self.assertSetEqual({sub for sub, _ in bsfs._backend._graph.subject_objects(rdflib.URIRef(ns.bsm.t_created))}, {
+ self.assertSetEqual({sub for sub, _ in bsfs._backend._graph.subject_objects(rdflib.URIRef(ns.bsfs.Node().t_created))}, {
rdflib.URIRef(pre_file + '2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647'),
rdflib.URIRef(pre_file + '441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece'),
rdflib.URIRef(pre_file + '69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871'),
@@ -230,70 +230,70 @@ class TestIndex(unittest.TestCase):
os.path.join(os.path.dirname(__file__), 'testfile'),
])
self.assertTrue((set(outbuf.getvalue().split('\n')) - {''}).issuperset({
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647) Predicate({ns.bse.filename}) alpha_second',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece) Predicate({ns.bse.filename}) omega_second',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871) Predicate({ns.bse.filename}) td_first',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926) Predicate({ns.bse.filename}) testfile',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3) Predicate({ns.bse.filename}) bar_first',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795) Predicate({ns.bse.filename}) omega_first',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3) Predicate({ns.bse.filename}) alpha_first',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d) Predicate({ns.bse.filename}) foo_second',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70) Predicate({ns.bse.filename}) bar_second',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#d43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#d43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d) Predicate({ns.bse.filename}) foo_first',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#d803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#d803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1) Predicate({ns.bse.filename}) td_second',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate({ns.bse.author}) Me, myself, and I',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate({ns.bse.filename}) testimage.jpg',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647) Predicate({ns.bse.filename}) alpha_second',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece) Predicate({ns.bse.filename}) omega_second',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871) Predicate({ns.bse.filename}) td_first',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926) Predicate({ns.bse.filename}) testfile',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3) Predicate({ns.bse.filename}) bar_first',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795) Predicate({ns.bse.filename}) omega_first',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3) Predicate({ns.bse.filename}) alpha_first',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d) Predicate({ns.bse.filename}) foo_second',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70) Predicate({ns.bse.filename}) bar_second',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#d43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#d43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d) Predicate({ns.bse.filename}) foo_first',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#d803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#d803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1) Predicate({ns.bse.filename}) td_second',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate({ns.bse.author}) Me, myself, and I',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate({ns.bse.filename}) testimage.jpg',
# features
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate(http://bsfs.ai/schema/Entity/colors_spatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04) (91, 127, 121, 94, 138, 167, 163, 134, 190, 138, 170, 156, 121, 142, 159)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate(https://schema.bsfs.io/ie/Node/Entity#colors_spatial_0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04) (91, 127, 121, 94, 138, 167, 163, 134, 190, 138, 170, 156, 121, 142, 159)',
# links to previews
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#d43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50)',
- f'Node(http://bsfs.ai/schema/File, http://example.com/me/file#d803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1) Predicate({ns.bse.preview}) Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#2f4109b40107cc50e0884755a1a961ed126887e49b8dbaf0e146b2e226aa6647) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#441f3d10c8ff489fe8e33e639606512f6c463151cc429de7e554b9af670c2ece) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#69b98ecf7aff3e95b09688ba93331678eb8397817111f674c9558e6dd8f5e871) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#78f7eb7f0d8221cdb2cb26c978fa42a11f75eb87becc768f4474134cb1e06926) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#80818b8ec2ee1919116dba9c8a7e0a4608313cf3b463cd88e9ed77a700dd92d3) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#976d2ea0e58488678cc7e435fbfadabfb6eb6cf50ad51862f38f73729ed11795) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#997e2fbb7494a3818ec782d2bc87bf1cffafba6b9c0f658e4a6c18a723e944d3) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#a8af899ecdab60dfaea8ec7f934053624c80a1054539e163f2c7eaa986c2777d) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#accb115d266ad60c53cd01a7f7130f245886ce8eaf69bc85319febc11d9fe089) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#b8fd7fba818254166a6043195004138ebda6923e012442f819a2c49671136c70) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#d43758ace82154a1cc10ca0dfef63cb20dd831f9c87edd6dc06539eefe67371d) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50)',
+ f'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/file#d803187cbf3676ae9d38126270a6152c60431589aa3bb3824baf8954e9c097f1) Predicate({ns.bse.preview}) Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50)',
# preview dimensions
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50) Predicate({ns.bsp.height}) 33',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50) Predicate({ns.bsp.width}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50) Predicate({ns.bsp.width}) 36',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50) Predicate({ns.bsp.height}) 50',
- f'Node(http://bsfs.ai/schema/Preview, http://example.com/me/preview#df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50) Predicate({ns.bsp.height}) 33',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#2656e303d7218300326df73b64f312d8b37eb980358be27a38b5f63dae259be3_s50) Predicate({ns.bsp.width}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#26f16643b2570ac5b2d1f8c373d492cb724aae2dd8d71a0b63647838ed651254_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#567049149769e1d02e6af6cfee3991f7cf0cbc935cbf6a566047f40155fb13a8_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#5d1235838c3d501204bb09c2de563d7e4a7fd17b7ec4ff302221c0e88c4741aa_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#79cb8a7e6369361a4f4cb7ff729c1ed3fcf87204769623d6fbd6ebfae601e5c7_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#7a975385a110c21fcd12e238fab9501550fa02f6328749068a3bffd65e291027_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#968b9aa178585bc8d1fca0e4e32b8cf30b3941eff72f34e320584aaae8fd23ac_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#9827509a74a60dfceed11936f7f624e9c932f66c8c0d20d355d56f8c3c9b56b1_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#a63c84e647138a2b68113474212f6aee542b3707171ff178551db3c296e59817_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#a8b3245636074d5370283b690281abda8ffdff12ce8b1af77c8bc0a4c85be860_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#dbfd8ebc0557c4925e9ff8411629a74a15eca934a4c2a6bd3134dd81d2f95a36_s50) Predicate({ns.bsp.width}) 36',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50) Predicate({ns.bsp.height}) 50',
+ f'Node(https://schema.bsfs.io/ie/Node/Preview, http://example.com/me/preview#df2185d8927ccef65c92fc90b94e800b02791354d8dede9dd9aa0e2c2cb1e91e_s50) Predicate({ns.bsp.width}) 36',
# assets
# ... (not checked)
}))
diff --git a/test/apps/test_info.py b/test/apps/test_info.py
index d705629..ffcaecf 100644
--- a/test/apps/test_info.py
+++ b/test/apps/test_info.py
@@ -31,11 +31,11 @@ class TestIndex(unittest.TestCase):
{'bsie.extractor.generic.constant.Constant': {
'schema': '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
''',
- 'tuples': [['http://bsfs.ai/schema/Entity#author', 'Me, myself, and I']],
+ 'tuples': [['https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I']],
}},
{'bsie.extractor.image.colors_spatial.ColorsSpatial': {
'width': 2,
@@ -60,14 +60,14 @@ class TestIndex(unittest.TestCase):
main(['--config', self.config_path, 'predicates'])
# verify output
self.assertSetEqual({pred for pred in outbuf.getvalue().split('\n') if pred != ''}, {
- 'http://bsfs.ai/schema/Entity#author',
- 'http://bsfs.ai/schema/Predicate',
- 'http://bsfs.ai/schema/Entity#filename',
- 'http://bsfs.ai/schema/Entity/colors_spatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04',
- 'http://bsfs.ai/schema/Entity#preview',
- 'http://bsfs.ai/schema/Preview#width',
- 'http://bsfs.ai/schema/Preview#height',
- 'http://bsfs.ai/schema/Preview#asset',
+ 'https://schema.bsfs.io/ie/Node/Entity#author',
+ 'https://schema.bsfs.io/core/Predicate',
+ 'https://schema.bsfs.io/ie/Node/Entity#filename',
+ 'https://schema.bsfs.io/ie/Node/Entity#colors_spatial_0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04',
+ 'https://schema.bsfs.io/ie/Node/Entity#preview',
+ 'https://schema.bsfs.io/ie/Node/Preview#width',
+ 'https://schema.bsfs.io/ie/Node/Preview#height',
+ 'https://schema.bsfs.io/ie/Node/Preview#asset',
})
def test_schema(self):
@@ -78,14 +78,14 @@ class TestIndex(unittest.TestCase):
# verify output
schema = bsfs.schema.from_string(outbuf.getvalue())
self.assertSetEqual({pred.uri for pred in schema.predicates()}, {
- 'http://bsfs.ai/schema/Entity#author',
- 'http://bsfs.ai/schema/Predicate',
- 'http://bsfs.ai/schema/Entity#filename',
- 'http://bsfs.ai/schema/Entity/colors_spatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04',
- 'http://bsfs.ai/schema/Entity#preview',
- 'http://bsfs.ai/schema/Preview#width',
- 'http://bsfs.ai/schema/Preview#height',
- 'http://bsfs.ai/schema/Preview#asset',
+ 'https://schema.bsfs.io/ie/Node/Entity#author',
+ 'https://schema.bsfs.io/core/Predicate',
+ 'https://schema.bsfs.io/ie/Node/Entity#filename',
+ 'https://schema.bsfs.io/ie/Node/Entity#colors_spatial_0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04',
+ 'https://schema.bsfs.io/ie/Node/Entity#preview',
+ 'https://schema.bsfs.io/ie/Node/Preview#width',
+ 'https://schema.bsfs.io/ie/Node/Preview#height',
+ 'https://schema.bsfs.io/ie/Node/Preview#asset',
})
def test_invalid(self):
diff --git a/test/apps/test_loader.py b/test/apps/test_loader.py
index 20254ec..4670266 100644
--- a/test/apps/test_loader.py
+++ b/test/apps/test_loader.py
@@ -27,7 +27,7 @@ class TestLoader(unittest.TestCase):
# pipeline contains only default predicates
pipeline = load_pipeline(path)
self.assertSetEqual({pred.uri for pred in pipeline.schema.predicates()}, {
- 'http://bsfs.ai/schema/Predicate',
+ 'https://schema.bsfs.io/core/Predicate',
})
# pipeline is built according to configured extractors
@@ -41,11 +41,11 @@ class TestLoader(unittest.TestCase):
{'bsie.extractor.generic.constant.Constant': {
'schema': '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
''',
- 'tuples': [['http://bsfs.ai/schema/Entity#author', 'Me, myself, and I']],
+ 'tuples': [['https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I']],
}},
{'bsie.extractor.image.colors_spatial.ColorsSpatial': {
'width': 2,
@@ -61,14 +61,14 @@ class TestLoader(unittest.TestCase):
# pipeline contains all defined predicates
pipeline = load_pipeline(path)
self.assertSetEqual({pred.uri for pred in pipeline.schema.predicates()}, {
- 'http://bsfs.ai/schema/Entity#author',
- 'http://bsfs.ai/schema/Predicate',
- 'http://bsfs.ai/schema/Entity#filename',
- 'http://bsfs.ai/schema/Entity/colors_spatial#0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04',
- 'http://bsfs.ai/schema/Entity#preview',
- 'http://bsfs.ai/schema/Preview#width',
- 'http://bsfs.ai/schema/Preview#height',
- 'http://bsfs.ai/schema/Preview#asset',
+ 'https://schema.bsfs.io/ie/Node/Entity#author',
+ 'https://schema.bsfs.io/core/Predicate',
+ 'https://schema.bsfs.io/ie/Node/Entity#filename',
+ 'https://schema.bsfs.io/ie/Node/Entity#colors_spatial_0658f2234a054e1dd59a14462c89f7733e019160419c796356aa831498bd0a04',
+ 'https://schema.bsfs.io/ie/Node/Entity#preview',
+ 'https://schema.bsfs.io/ie/Node/Preview#width',
+ 'https://schema.bsfs.io/ie/Node/Preview#height',
+ 'https://schema.bsfs.io/ie/Node/Preview#asset',
})
# config file must exist
diff --git a/test/apps/test_main.py b/test/apps/test_main.py
index a1d8a49..4fa094b 100644
--- a/test/apps/test_main.py
+++ b/test/apps/test_main.py
@@ -43,9 +43,9 @@ class TestMain(unittest.TestCase):
with contextlib.redirect_stdout(outbuf):
main(['info', '--config', self.config_path, 'predicates'])
self.assertEqual(set(outbuf.getvalue().strip().split('\n')), {
- 'http://bsfs.ai/schema/Entity#filename',
- 'http://bsfs.ai/schema/Entity#filesize',
- 'http://bsfs.ai/schema/Predicate',
+ 'https://schema.bsfs.io/ie/Node/Entity#filename',
+ 'https://schema.bsfs.io/ie/Node/Entity#filesize',
+ 'https://schema.bsfs.io/core/Predicate',
})
diff --git a/test/extractor/generic/test_constant.py b/test/extractor/generic/test_constant.py
index db55852..77ee02b 100644
--- a/test/extractor/generic/test_constant.py
+++ b/test/extractor/generic/test_constant.py
@@ -15,11 +15,11 @@ class TestConstant(unittest.TestCase):
def test_extract(self):
schema = '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:comment rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "false"^^xsd:boolean .
'''
@@ -28,10 +28,10 @@ class TestConstant(unittest.TestCase):
(ns.bse.comment, 'the quick brown fox jumps over the lazy dog.'),
]
ext = Constant(schema, tuples)
- node = _node.Node(ns.bsfs.Entity, '') # Blank node
+ node = _node.Node(ns.bsn.Entity, '') # Blank node
p_author = ext.schema.predicate(ns.bse.author)
p_comment = ext.schema.predicate(ns.bse.comment)
- entity = ext.schema.node(ns.bsfs.Node).child(ns.bsfs.Entity)
+ entity = ext.schema.node(ns.bsfs.Node).child(ns.bsn.Entity)
string = ext.schema.literal(ns.bsfs.Literal).child(ns.xsd.string)
# baseline
self.assertSetEqual(set(ext.extract(node, None, (p_author, p_comment))),
@@ -50,11 +50,11 @@ class TestConstant(unittest.TestCase):
# schema compliance
schema = '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:comment rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "false"^^xsd:boolean .
'''
@@ -75,13 +75,13 @@ class TestConstant(unittest.TestCase):
def test_eq(self):
schema_a = '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''
schema_b = '''
bse:comment rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "false"^^xsd:boolean .
'''
diff --git a/test/extractor/generic/test_path.py b/test/extractor/generic/test_path.py
index d40a28c..0beb37e 100644
--- a/test/extractor/generic/test_path.py
+++ b/test/extractor/generic/test_path.py
@@ -26,17 +26,17 @@ class TestPath(unittest.TestCase):
self.assertEqual(Path().schema,
bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
bse:filename rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''))
def test_extract(self):
ext = Path()
- node = _node.Node(ns.bsfs.File, '') # Blank node
+ node = _node.Node(ns.bsn.Entity, '') # Blank node
content = '/tmp/foo/bar'
p_filename = ext.schema.predicate(ns.bse.filename)
- entity = ext.schema.node(ns.bsfs.Node).child(ns.bsfs.Entity)
+ entity = ext.schema.node(ns.bsfs.Node).child(ns.bsn.Entity)
string = ext.schema.literal(ns.bsfs.Literal).child(ns.xsd.string)
# baseline
diff --git a/test/extractor/generic/test_stat.py b/test/extractor/generic/test_stat.py
index 8868546..0e83e24 100644
--- a/test/extractor/generic/test_stat.py
+++ b/test/extractor/generic/test_stat.py
@@ -27,17 +27,17 @@ class TestStat(unittest.TestCase):
self.assertEqual(Stat().schema,
bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
bse:filesize rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
'''))
def test_extract(self):
ext = Stat()
- node = _node.Node(ns.bsfs.File, '') # Blank node
+ node = _node.Node(ns.bsn.Entity, '') # Blank node
content = os.stat(__file__)
p_filesize = ext.schema.predicate(ns.bse.filesize)
- entity = ext.schema.node(ns.bsfs.Node).child(ns.bsfs.Entity)
+ entity = ext.schema.node(ns.bsfs.Node).child(ns.bsn.Entity)
string = ext.schema.literal(ns.bsfs.Literal).child(ns.xsd.string)
# baseline
diff --git a/test/extractor/image/test_colors_spatial.py b/test/extractor/image/test_colors_spatial.py
index 967aaf2..902ab6d 100644
--- a/test/extractor/image/test_colors_spatial.py
+++ b/test/extractor/image/test_colors_spatial.py
@@ -19,8 +19,8 @@ from bsie.extractor.image.colors_spatial import ColorsSpatial
class TestColorsSpatial(unittest.TestCase):
def setUp(self):
# content id with default constructors (width=32, height=32, exp=4)
- self.instance_prefix = 'http://ie.bsfs.ai/schema/Feature/ColorsSpatial'
- self.predicate_prefix = 'http://bsfs.ai/schema/Entity/colors_spatial'
+ self.instance_prefix = 'https://schema.bsfs.io/ie/Literal/Array/Feature/ColorsSpatial'
+ self.predicate_prefix = 'https://schema.bsfs.io/ie/Node/Entity#colors_spatial_'
self.uuid = 'adee8d6c43687021e1c5bffe56bcfe727f1638d792744137181304ef889dac2a'
def test_essentials(self):
@@ -50,7 +50,7 @@ class TestColorsSpatial(unittest.TestCase):
def test_schema(self):
schema = bsfs.schema.from_string(base.SCHEMA_PREAMBLE + f'''
- <{self.instance_prefix}> rdfs:subClassOf bsfs:Feature ;
+ <{self.instance_prefix}> rdfs:subClassOf bsa:Feature ;
# annotations
rdfs:label "Spatially dominant colors"^^xsd:string ;
schema:description "Domiant colors of subregions in an image."^^xsd:string ;
@@ -63,8 +63,8 @@ class TestColorsSpatial(unittest.TestCase):
<{self.instance_prefix}/args#height> "32"^^xsd:integer ;
<{self.instance_prefix}/args#exp> "4"^^xsd:float .
- <{self.predicate_prefix}#{self.uuid}> rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ <{self.predicate_prefix}{self.uuid}> rdfs:subClassOf bsfs:Predicate ;
+ rdfs:domain bsn:Entity ;
rdfs:range <{self.instance_prefix}#{self.uuid}> ;
bsfs:unique "true"^^xsd:boolean .
''')
@@ -73,7 +73,7 @@ class TestColorsSpatial(unittest.TestCase):
def test_extract(self):
ext = ColorsSpatial(2,2,2)
img = PIL.Image.open(os.path.join(os.path.dirname(__file__), 'testimage.jpg'))
- node = _node.Node(ns.bsfs.Entity, bsfs.URI('http://example.com/entity#1234'))
+ node = _node.Node(ns.bsn.Entity, bsfs.URI('http://example.com/entity#1234'))
principals = set(ext.principals)
self.assertEqual(len(principals), 1)
# valid invocation yields feature
diff --git a/test/extractor/test_base.py b/test/extractor/test_base.py
index bb1f73b..81865e1 100644
--- a/test/extractor/test_base.py
+++ b/test/extractor/test_base.py
@@ -15,11 +15,11 @@ class StubExtractor(base.Extractor):
def __init__(self):
super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "false"^^xsd:boolean .
bse:comment rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "false"^^xsd:boolean .
'''))
@@ -48,8 +48,8 @@ class TestExtractor(unittest.TestCase):
def test_principals(self):
schema = bsfs.schema.Schema()
- entity = schema.node(ns.bsfs.Node).child(ns.bsfs.Entity)
- string = schema.literal(ns.bsfs.Literal).child(bsfs.URI('http://www.w3.org/2001/XMLSchema#string'))
+ entity = schema.node(ns.bsfs.Node).child(ns.bsn.Entity)
+ string = schema.literal(ns.bsfs.Literal).child(ns.xsd.string)
p_author = schema.predicate(ns.bsfs.Predicate).child(ns.bse.author, domain=entity, range=string)
p_comment = schema.predicate(ns.bsfs.Predicate).child(ns.bse.comment, domain=entity, range=string)
ext = StubExtractor()
diff --git a/test/extractor/test_builder.py b/test/extractor/test_builder.py
index 1b8951a..fbb0895 100644
--- a/test/extractor/test_builder.py
+++ b/test/extractor/test_builder.py
@@ -46,33 +46,33 @@ class TestExtractorBuilder(unittest.TestCase):
{'bsie.extractor.generic.constant.Constant': {
'schema': '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:rating rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
''',
'tuples': [
- ('http://bsfs.ai/schema/Entity#author', 'Me, myself, and I'),
- ('http://bsfs.ai/schema/Entity#rating', 123),
+ ('https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I'),
+ ('https://schema.bsfs.io/ie/Node/Entity#rating', 123),
],
}}])
obj = builder.build(0)
import bsie.extractor.generic.constant
self.assertEqual(obj, bsie.extractor.generic.constant.Constant('''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
bse:rating rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
''', [
- ('http://bsfs.ai/schema/Entity#author', 'Me, myself, and I'),
- ('http://bsfs.ai/schema/Entity#rating', 123),
+ ('https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I'),
+ ('https://schema.bsfs.io/ie/Node/Entity#rating', 123),
]))
# building with invalid args
diff --git a/test/extractor/test_preview.py b/test/extractor/test_preview.py
index 0e0068d..6526783 100644
--- a/test/extractor/test_preview.py
+++ b/test/extractor/test_preview.py
@@ -40,28 +40,28 @@ class TestPreview(unittest.TestCase):
def test_schema(self):
self.assertEqual(Preview([1,2,3]).schema,
bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
- bsfs:Preview rdfs:subClassOf bsfs:Node .
- bsfs:BinaryBlob rdfs:subClassOf bsfs:Literal .
- bsfs:JPEG rdfs:subClassOf bsfs:BinaryBlob .
+ bsn:Preview rdfs:subClassOf bsfs:Node .
+ bsl:BinaryBlob rdfs:subClassOf bsfs:Literal .
+ <https://schema.bsfs.io/ie/Literal/BinaryBlob/JPEG> rdfs:subClassOf bsl:BinaryBlob .
bse:preview rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
- rdfs:range bsfs:Preview ;
+ rdfs:domain bsn:Entity ;
+ rdfs:range bsn:Preview ;
bsfs:unique "false"^^xsd:boolean .
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: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 .
'''))
@@ -69,7 +69,7 @@ class TestPreview(unittest.TestCase):
def test_extract(self):
# setup dependents
rdr = Reader()
- subject = _node.Node(ns.bsfs.File)
+ subject = _node.Node(ns.bsn.Entity)
path = os.path.join(os.path.dirname(__file__), 'testimage.jpg')
# setup extractor
@@ -83,7 +83,7 @@ class TestPreview(unittest.TestCase):
gen(10) # NOTE: consume some image to avoid resource error warning
# extract a preview
triples = set(ext.extract(subject, rdr(path), principals))
- thumbs = {node for node, _, _ in triples if node.node_type == ns.bsfs.Preview}
+ thumbs = {node for node, _, _ in triples if node.node_type == ns.bsn.Preview}
self.assertEqual(len(thumbs), 1)
thumb = list(thumbs)[0]
# test properties
@@ -107,7 +107,7 @@ class TestPreview(unittest.TestCase):
self.assertEqual(principals, {ext.schema.predicate(ns.bse.preview)})
# extract a preview
triples = set(ext.extract(subject, rdr(path), principals))
- thumbs = {node for node, _, _ in triples if node.node_type == ns.bsfs.Preview}
+ thumbs = {node for node, _, _ in triples if node.node_type == ns.bsn.Preview}
self.assertEqual(len(thumbs), 2)
self.assertSetEqual({10, 20}, {
value for _, pred, value in triples if pred == ext.schema.predicate(ns.bsp.width)})
diff --git a/test/lib/test_bsie.py b/test/lib/test_bsie.py
index 52da8b8..0c393cc 100644
--- a/test/lib/test_bsie.py
+++ b/test/lib/test_bsie.py
@@ -25,17 +25,17 @@ class TestBSIE(unittest.TestCase):
{'bsie.extractor.generic.path.Path': {}},
{'bsie.extractor.generic.stat.Stat': {}},
{'bsie.extractor.generic.constant.Constant': dict(
- tuples=[('http://bsfs.ai/schema/Entity#author', 'Me, myself, and I')],
+ tuples=[('https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I')],
schema='''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
''',
)},
])
# build pipeline
- self.naming_policy = DefaultNamingPolicy(host='http://example.com/local', user='')
+ self.naming_policy = DefaultNamingPolicy(host='http://example.com/local', user='me')
pbuild = PipelineBuilder(rbuild, ebuild)
self.pipeline = pbuild.build()
@@ -49,17 +49,17 @@ class TestBSIE(unittest.TestCase):
})
self.assertEqual(lib.schema, bsfs.schema.from_string(SCHEMA_PREAMBLE + '''
bse:filename rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range 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;
bsfs:unique "true"^^xsd:boolean .
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''))
@@ -76,12 +76,12 @@ class TestBSIE(unittest.TestCase):
})
self.assertEqual(lib.schema, bsfs.schema.from_string(SCHEMA_PREAMBLE + '''
bse:filesize rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer;
bsfs:unique "true"^^xsd:boolean .
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''))
@@ -94,17 +94,17 @@ class TestBSIE(unittest.TestCase):
})
self.assertEqual(lib.schema, bsfs.schema.from_string(SCHEMA_PREAMBLE + '''
bse:filename rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range 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;
bsfs:unique "true"^^xsd:boolean .
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
@@ -121,7 +121,7 @@ class TestBSIE(unittest.TestCase):
})
self.assertEqual(lib.schema, bsfs.schema.from_string(SCHEMA_PREAMBLE + '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''))
@@ -136,7 +136,7 @@ class TestBSIE(unittest.TestCase):
})
self.assertEqual(lib.schema, bsfs.schema.from_string(SCHEMA_PREAMBLE + '''
bse:filesize rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer;
bsfs:unique "true"^^xsd:boolean .
@@ -152,7 +152,7 @@ class TestBSIE(unittest.TestCase):
ns.bse.author,
})
content_hash = 'a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447'
- subject = node.Node(ns.bsfs.File, uri=f'http://example.com/local/file#{content_hash}')
+ subject = node.Node(ns.bsn.Entity, uri=f'http://example.com/local/me/file#{content_hash}')
testfile = os.path.join(os.path.dirname(__file__), 'testfile.t')
# from_file extracts all available triples
diff --git a/test/lib/test_builder.py b/test/lib/test_builder.py
index 2bd1994..3ecb3d3 100644
--- a/test/lib/test_builder.py
+++ b/test/lib/test_builder.py
@@ -18,11 +18,11 @@ class TestPipelineBuilder(unittest.TestCase):
def test_build(self):
c_schema = '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:Entity ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''
- c_tuples = [('http://bsfs.ai/schema/Entity#author', 'Me, myself, and I')]
+ c_tuples = [('https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I')]
# prepare builders
rbuild = ReaderBuilder({})
ebuild = ExtractorBuilder([
diff --git a/test/lib/test_naming_policy.py b/test/lib/test_naming_policy.py
index b2a3649..c9b0cd2 100644
--- a/test/lib/test_naming_policy.py
+++ b/test/lib/test_naming_policy.py
@@ -21,55 +21,55 @@ class TestDefaultNamingPolicy(unittest.TestCase):
policy = DefaultNamingPolicy('http://example.com', 'me')
# handle_node doesn't modify existing uris
self.assertEqual(policy.handle_node(
- Node(ns.bsfs.Entity, uri='http://example.com/you/foo#bar')).uri,
+ Node(ns.bsn.Invalid, uri='http://example.com/you/foo#bar')).uri,
URI('http://example.com/you/foo#bar'))
# processes bsfs:File
self.assertEqual(policy.handle_node(
- Node(ns.bsfs.File, ucid='abc123cba')).uri,
+ Node(ns.bsn.Entity, ucid='abc123cba')).uri,
URI('http://example.com/me/file#abc123cba'))
# processes bsfs:Preview
self.assertEqual(policy.handle_node(
- Node(ns.bsfs.Preview, ucid='abc123cba', size=123)).uri,
+ Node(ns.bsn.Preview, ucid='abc123cba', size=123)).uri,
URI('http://example.com/me/preview#abc123cba_s123'))
# raises an exception on unknown types
self.assertRaises(errors.ProgrammingError, policy.handle_node,
- Node(ns.bsfs.Entity, ucid='abc123cba', size=123))
+ Node(ns.bsn.Invalid, ucid='abc123cba', size=123))
def test_name_file(self):
# setup
policy = DefaultNamingPolicy('http://example.com', 'me')
# name_file uses ucid
self.assertEqual(policy.name_file(
- Node(ns.bsfs.File, ucid='123abc321')).uri,
+ Node(ns.bsn.Entity, ucid='123abc321')).uri,
URI('http://example.com/me/file#123abc321'))
# name_file falls back to a random guid
self.assertTrue(policy.name_file(
- Node(ns.bsfs.File)).uri.startswith('http://example.com/me/file#'))
+ Node(ns.bsn.Entity)).uri.startswith('http://example.com/me/file#'))
def test_name_preview(self):
# setup
policy = DefaultNamingPolicy('http://example.com', 'me')
# name_preview uses ucid
self.assertEqual(policy.name_preview(
- Node(ns.bsfs.Preview, ucid='123abc321')).uri,
+ Node(ns.bsn.Preview, ucid='123abc321')).uri,
URI('http://example.com/me/preview#123abc321'))
self.assertEqual(policy.name_preview(
- Node(ns.bsfs.Preview, ucid='123abc321', size=400)).uri,
+ Node(ns.bsn.Preview, ucid='123abc321', size=400)).uri,
URI('http://example.com/me/preview#123abc321_s400'))
# name_preview uses source
self.assertEqual(policy.name_preview(
- Node(ns.bsfs.Preview, source=Node(ns.bsfs.File, ucid='123file321'))).uri,
+ Node(ns.bsn.Preview, source=Node(ns.bsn.Entity, ucid='123file321'))).uri,
URI('http://example.com/me/preview#123file321'))
self.assertEqual(policy.name_preview(
- Node(ns.bsfs.Preview, source=Node(ns.bsfs.File, ucid='123file321'), size=300)).uri,
+ Node(ns.bsn.Preview, source=Node(ns.bsn.Entity, ucid='123file321'), size=300)).uri,
URI('http://example.com/me/preview#123file321_s300'))
# name_preview falls back to a random guid
self.assertTrue(policy.name_preview(
- Node(ns.bsfs.Preview)).uri.startswith('http://example.com/me/preview#'))
+ Node(ns.bsn.Preview)).uri.startswith('http://example.com/me/preview#'))
self.assertTrue(policy.name_preview(
- Node(ns.bsfs.Preview, size=200)).uri.startswith('http://example.com/me/preview#'))
+ Node(ns.bsn.Preview, size=200)).uri.startswith('http://example.com/me/preview#'))
self.assertTrue(policy.name_preview(
- Node(ns.bsfs.Preview, size=200)).uri.endswith('_s200'))
+ Node(ns.bsn.Preview, size=200)).uri.endswith('_s200'))
class TestNamingPolicyIterator(unittest.TestCase):
@@ -94,16 +94,16 @@ class TestNamingPolicyIterator(unittest.TestCase):
# setup
policy = DefaultNamingPolicy('http://example.com', 'me')
triples = [
- (Node(ns.bsfs.File, ucid='foo'), 'predA', 'hello'),
- (Node(ns.bsfs.Preview, ucid='bar'), 'predB', 1234),
- (Node(ns.bsfs.Preview, ucid='hello'), 'predC', Node(ns.bsfs.File, ucid='world'))
+ (Node(ns.bsn.Entity, ucid='foo'), 'predA', 'hello'),
+ (Node(ns.bsn.Preview, ucid='bar'), 'predB', 1234),
+ (Node(ns.bsn.Preview, ucid='hello'), 'predC', Node(ns.bsn.Entity, ucid='world'))
]
# handles nodes, handles values, ignores predicate
self.assertListEqual(list(policy(triples)), [
- (Node(ns.bsfs.File, uri='http://example.com/me/file#foo'), 'predA', 'hello'),
- (Node(ns.bsfs.Preview, uri='http://example.com/me/preview#bar'), 'predB', 1234),
- (Node(ns.bsfs.Preview, uri='http://example.com/me/preview#hello'), 'predC',
- Node(ns.bsfs.File, uri='http://example.com/me/file#world')),
+ (Node(ns.bsn.Entity, uri='http://example.com/me/file#foo'), 'predA', 'hello'),
+ (Node(ns.bsn.Preview, uri='http://example.com/me/preview#bar'), 'predB', 1234),
+ (Node(ns.bsn.Preview, uri='http://example.com/me/preview#hello'), 'predC',
+ Node(ns.bsn.Entity, uri='http://example.com/me/file#world')),
])
diff --git a/test/lib/test_pipeline.py b/test/lib/test_pipeline.py
index 5125a5c..eb088a9 100644
--- a/test/lib/test_pipeline.py
+++ b/test/lib/test_pipeline.py
@@ -23,19 +23,19 @@ class TestPipeline(unittest.TestCase):
# constant A
csA = '''
bse:author rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:string ;
bsfs:unique "true"^^xsd:boolean .
'''
- tupA = [('http://bsfs.ai/schema/Entity#author', 'Me, myself, and I')]
+ tupA = [('https://schema.bsfs.io/ie/Node/Entity#author', 'Me, myself, and I')]
# constant B
csB = '''
bse:rating rdfs:subClassOf bsfs:Predicate ;
- rdfs:domain bsfs:File ;
+ rdfs:domain bsn:Entity ;
rdfs:range xsd:integer ;
bsfs:unique "true"^^xsd:boolean .
'''
- tupB = [('http://bsfs.ai/schema/Entity#rating', 123)]
+ tupB = [('https://schema.bsfs.io/ie/Node/Entity#rating', 123)]
# extractors/readers
self.ext2rdr = {
bsie.extractor.generic.path.Path(): bsie.reader.path.Path(),
@@ -84,13 +84,13 @@ class TestPipeline(unittest.TestCase):
pipeline = Pipeline(self.ext2rdr)
# build objects for tests
content_hash = 'a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447'
- subject = node.Node(ns.bsfs.File, ucid=content_hash)
+ subject = node.Node(ns.bsn.Entity, ucid=content_hash)
testfile = os.path.join(os.path.dirname(__file__), 'testfile.t')
p_filename = pipeline.schema.predicate(ns.bse.filename)
p_filesize = pipeline.schema.predicate(ns.bse.filesize)
p_author = pipeline.schema.predicate(ns.bse.author)
p_rating = pipeline.schema.predicate(ns.bse.rating)
- entity = pipeline.schema.node(ns.bsfs.File)
+ entity = pipeline.schema.node(ns.bsn.Entity)
p_invalid = pipeline.schema.predicate(ns.bsfs.Predicate).child(ns.bse.foo, range=entity)
# extract given predicates
diff --git a/test/utils/test_node.py b/test/utils/test_node.py
index 918ce42..c0662a1 100644
--- a/test/utils/test_node.py
+++ b/test/utils/test_node.py
@@ -70,17 +70,17 @@ class TestNode(unittest.TestCase):
def test_str(self):
uri = bsfs.URI('http://example.com/me/entity#1234')
# basic string conversion
- node = Node(ns.bsfs.Entity, uri)
- self.assertEqual(str(node), 'Node(http://bsfs.ai/schema/Entity, http://example.com/me/entity#1234)')
- self.assertEqual(repr(node), 'Node(http://bsfs.ai/schema/Entity, http://example.com/me/entity#1234)')
+ node = Node(ns.bsn.Entity, uri)
+ self.assertEqual(str(node), 'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/entity#1234)')
+ self.assertEqual(repr(node), 'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/entity#1234)')
# string conversion respects node_type
- node = Node(ns.bsfs.Foo, uri)
- self.assertEqual(str(node), 'Node(http://bsfs.ai/schema/Foo, http://example.com/me/entity#1234)')
- self.assertEqual(repr(node), 'Node(http://bsfs.ai/schema/Foo, http://example.com/me/entity#1234)')
+ node = Node(ns.bsn.Foo, uri)
+ self.assertEqual(str(node), 'Node(https://schema.bsfs.io/ie/Node/Foo, http://example.com/me/entity#1234)')
+ self.assertEqual(repr(node), 'Node(https://schema.bsfs.io/ie/Node/Foo, http://example.com/me/entity#1234)')
# string conversion respects uri
- node = Node(ns.bsfs.Entity, bsfs.URI('http://example.com/me/entity#4321'))
- self.assertEqual(str(node), 'Node(http://bsfs.ai/schema/Entity, http://example.com/me/entity#4321)')
- self.assertEqual(repr(node), 'Node(http://bsfs.ai/schema/Entity, http://example.com/me/entity#4321)')
+ node = Node(ns.bsn.Entity, bsfs.URI('http://example.com/me/entity#4321'))
+ self.assertEqual(str(node), 'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/entity#4321)')
+ self.assertEqual(repr(node), 'Node(https://schema.bsfs.io/ie/Node/Entity, http://example.com/me/entity#4321)')