1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
"""The Constant extractor produces pre-specified triples.
Part of the bsie module.
A copy of the license is provided with the project.
Author: Matthias Baumgartner, 2022
"""
# imports
import typing
# inner-module imports
from bsie.base import extractor
from bsie.utils.bsfs import URI
from bsie.utils.node import Node
# exports
__all__: typing.Sequence[str] = (
'Constant',
)
## code ##
class Constant(extractor.Extractor):
"""Extract information from file's path."""
CONTENT_READER = None
def __init__(
self,
schema: str,
tuples: typing.Iterable[typing.Tuple[URI, typing.Any]],
):
self._schema = schema
self._tuples = tuples
# FIXME: use schema instance for predicate checking
#self._tuples = [(pred, value) for pred, value in tuples if pred in schema]
# FIXME: use schema instance for value checking
def schema(self) -> str:
return self._schema
def extract(
self,
subject: Node,
content: None,
predicates: typing.Iterable[URI],
) -> typing.Iterator[typing.Tuple[Node, URI, typing.Any]]:
for pred, value in self._tuples:
if pred in predicates:
yield subject, pred, value
## EOF ##
|