aboutsummaryrefslogtreecommitdiffstats
path: root/bsie
diff options
context:
space:
mode:
Diffstat (limited to 'bsie')
-rw-r--r--bsie/apps/info.py5
-rw-r--r--bsie/extractor/base.py11
-rw-r--r--bsie/extractor/generic/constant.py2
-rw-r--r--bsie/extractor/generic/path.py2
-rw-r--r--bsie/extractor/generic/stat.py2
5 files changed, 17 insertions, 5 deletions
diff --git a/bsie/apps/info.py b/bsie/apps/info.py
index a4e611c..cd28685 100644
--- a/bsie/apps/info.py
+++ b/bsie/apps/info.py
@@ -26,7 +26,7 @@ __all__: typing.Sequence[str] = (
def main(argv):
"""Show information from BSIE."""
parser = argparse.ArgumentParser(description=main.__doc__, prog='info')
- parser.add_argument('what', choices=('predicates', ),
+ parser.add_argument('what', choices=('predicates', 'schema'),
help='Select what information to show.')
args = parser.parse_args(argv)
@@ -63,6 +63,9 @@ def main(argv):
# show predicates
for pred in pipeline.schema.predicates():
print(pred.uri)
+ elif args.what == 'schema':
+ # show schema
+ print(bsfs.schema.to_string(pipeline.schema))
else:
# args.what is already checked by argparse
raise errors.UnreachableError()
diff --git a/bsie/extractor/base.py b/bsie/extractor/base.py
index 95689a5..8ab1124 100644
--- a/bsie/extractor/base.py
+++ b/bsie/extractor/base.py
@@ -31,13 +31,22 @@ SCHEMA_PREAMBLE = '''
prefix bsfs: <http://bsfs.ai/schema/>
prefix bse: <http://bsfs.ai/schema/Entity#>
+ # 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 ;
+ bsfs:dimension "1"^^xsd:integer ;
+ bsfs:dtype bsfs:f16 ;
+ bsfs:distance bsfs:euclidean .
+
# essential nodes
bsfs:Entity rdfs:subClassOf bsfs:Node .
bsfs:File rdfs:subClassOf bsfs:Entity .
# common definitions
xsd:string rdfs:subClassOf bsfs:Literal .
- xsd:integer rdfs:subClassOf bsfs:Literal .
+ xsd:integer rdfs:subClassOf bsfs:Number .
'''
diff --git a/bsie/extractor/generic/constant.py b/bsie/extractor/generic/constant.py
index 7b1d942..938e20c 100644
--- a/bsie/extractor/generic/constant.py
+++ b/bsie/extractor/generic/constant.py
@@ -34,7 +34,7 @@ class Constant(base.Extractor):
schema: str,
tuples: typing.Iterable[typing.Tuple[bsfs.URI, typing.Any]],
):
- super().__init__(bsfs.schema.Schema.from_string(base.SCHEMA_PREAMBLE + schema))
+ super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + schema))
# NOTE: Raises a KeyError if the predicate is not part of the schema
self._tuples = tuple((self.schema.predicate(p_uri), value) for p_uri, value in tuples)
# TODO: use schema instance for value checking
diff --git a/bsie/extractor/generic/path.py b/bsie/extractor/generic/path.py
index 295715f..c984515 100644
--- a/bsie/extractor/generic/path.py
+++ b/bsie/extractor/generic/path.py
@@ -29,7 +29,7 @@ class Path(base.Extractor):
_callmap: typing.Dict[bsfs.schema.Predicate, typing.Callable[[str], typing.Any]]
def __init__(self):
- super().__init__(bsfs.schema.Schema.from_string(base.SCHEMA_PREAMBLE + '''
+ super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
bse:filename rdfs:subClassOf bsfs:Predicate ;
rdfs:domain bsfs:File ;
rdfs:range xsd:string ;
diff --git a/bsie/extractor/generic/stat.py b/bsie/extractor/generic/stat.py
index 1381fe2..9394456 100644
--- a/bsie/extractor/generic/stat.py
+++ b/bsie/extractor/generic/stat.py
@@ -31,7 +31,7 @@ class Stat(base.Extractor):
_callmap: typing.Dict[bsfs.schema.Predicate, typing.Callable[[os.stat_result], typing.Any]]
def __init__(self):
- super().__init__(bsfs.schema.Schema.from_string(base.SCHEMA_PREAMBLE + '''
+ super().__init__(bsfs.schema.from_string(base.SCHEMA_PREAMBLE + '''
bse:filesize rdfs:subClassOf bsfs:Predicate ;
rdfs:domain bsfs:File ;
rdfs:range xsd:integer ;