An implementation of the W3C PROV (Provenance) vocabulary for Elixir as Grax schemas.
The API documentation can be found here. For more information about the RDF on Elixir projects, go to https://rdf-elixir.dev.
- The
PROVmodule acts as theRDF.Vocabulary.Namespacefor the PROV vocabulary - Grax structures for all PROV classes and their properties, for easy creation and manipulation of provenance information including entities, activities, and agents
- Seamless integration with all RDF on Elixir projects
Add prov to your list of dependencies in mix.exs:
def deps do
[
{:prov, "~> 0.1"}
]
endPROV.Entity.build!(EX.report(),
was_generated_by: EX.compile(),
was_attributed_to: EX.researcher(),
generated_at: DateTime.utc_now(),
was_derived_from: EX.data()
)
|> Grax.to_rdf!(prefixes: [prov: PROV, ex: EX, xsd: RDF.NS.XSD])
|> RDF.Turtle.write_string!()produces:
@prefix ex: <http://example.com/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:report
a prov:Entity ;
prov:generatedAtTime "2024-08-06T23:46:18.503394Z"^^xsd:dateTime ;
prov:wasAttributedTo ex:researcher ;
prov:wasDerivedFrom ex:data ;
prov:wasGeneratedBy ex:compile .See CONTRIBUTING for details.
If you need help with your Elixir and Linked Data projects, just contact NinjaConcept via contact@ninjaconcept.com.
(c) 2024 Marcel Otto. MIT Licensed, see LICENSE for details.