aboutsummaryrefslogtreecommitdiffstats
path: root/bsie/extractor
diff options
context:
space:
mode:
Diffstat (limited to 'bsie/extractor')
-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
6 files changed, 51 insertions, 44 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,