status: not yet implemented, sorry
schemove is a tool for working with movable RDF schemas. It has a command-line mode for transforming data to support movable schemas and a library to do the transformations inside your application.
By default, schemove
maintains a current application schema for you in schema.ttl
(in the current directory) and puts all imported data into files named schemoved/$HOST/$PATH
.
$ schemove https://www.w3.org/People/Berners-Lee/card#i
Warning: Source uses terms without any mov: definitions. Added temporary
definition to schema.ttl.
$ cat schema.ttl
# Schema file generated by schemove. Edit as you like.
PREFIX : <.#>
:name :itemdef "Property without definition, referred to as https://schema.org/whatever, seen at 2018-12-07T16:19:09Z. **Temporary definition**"
Certain domain can be treated as trustworthy enough that we don't need their schemas to be movable. You can declare them like this:
$ schemove --except w3.org --except schema.org --check input.ttl
(The schemove machinery itself treats a few URIs as defined by fiat, not subject to change or ever needing to move. These are all URIs defined in long-standing W3C Recommendations and hosted at w3.org, such as rdf:type and owl:InverseFunctionalProperty.)
-o / --out put all the output into one file, as given, instead of one file per source.
--schema specify a different schema file from ./schema.ttl
TBD
see what fits into kgx.load
Something like scm.rename(quadstore, myschema)
where myschema might even default to something like require('../../schema.ttl'), so it's naturally in your app directory. Dunno how to really do that in nodejs.
RDF is read using (TBD), so currently the acceptable formats are (X, Y, Z). Data is output in the same format read, unless (TBD). Inputs may be URLs or filenames.