nanopub.publication
This module holds code for representing the RDF of nanopublications, as well as helper functions to make handling RDF easier.
- class nanopub.publication.Publication(rdf: ConjunctiveGraph, source_uri: Optional[str] = None)
Representation of the rdf that comprises a nanopublication
- rdf
The full RDF graph of this nanopublication
- Type
rdflib.ConjunctiveGraph
- assertion
The part of the graph describing the assertion.
- Type
rdflib.Graph
- pubinfo
The part of the graph describing the publication information.
- Type
rdflib.Graph
- provenance
The part of the graph describing the provenance.
- Type
rdflib.Graph
- source_uri
The URI of the nanopublication that this Publication represents (if applicable)
- Type
str
- introduces_concept
The concept that is introduced by this Publication.
- signed_with_public_key
The public key that this Publication is signed with.
- is_test_publication
Whether this is a test publication
- classmethod from_assertion(assertion_rdf: Graph, introduces_concept: Optional[BNode] = None, derived_from=None, assertion_attributed_to=None, publication_attributed_to=None, attribute_assertion_to_profile: bool = False, attribute_publication_to_profile: bool = True, provenance_rdf: Optional[Graph] = None, pubinfo_rdf: Optional[Graph] = None, add_generated_at_time: bool = True)
Construct Nanopub object based on given assertion.
Any blank nodes in the rdf graph are replaced with the nanopub’s URI, with the blank node name as a fragment. For example, if the blank node is called ‘step’, that would result in a URI composed of the nanopub’s (base) URI, followed by #step.
- Parameters
assertion_rdf (rdflib.Graph) – The assertion RDF graph.
introduces_concept (rdflib.term.BNode) – the pubinfo graph will note that this nanopub npx:introduces the concept. The concept should be a blank node (rdflib.term.BNode), and is converted to a URI derived from the nanopub’s URI with a fragment (#) made from the blank node’s name.
derived_from (rdflib.URIRef, str, or list) – Add a triple to the provenance graph stating that this nanopub’s assertion prov:wasDerivedFrom the given URI. If a list of URIs is passed, a provenance triple will be generated for each.
assertion_attributed_to (rdflib.URIRef or str) – the provenance graph will note that this nanopub’s assertion prov:wasAttributedTo the given URI.
publication_attributed_to (rdflib.URIRef or str) – the pubInfo graph will note that this nanopub itself prov:wasAttributedTo the given URI. If ‘None’ then this defaults to using the ORCID id provided in the user’s profile.
attribute_assertion_to_profile (bool) – Attribute the assertion to the ORCID iD in the profile
attribute_publication_to_profile (bool) – Attribute the publication to the ORCID iD in the profile
provenance_rdf (rdflib.Graph) – RDF triples to be added to provenance graph of the nanopublication. This is optional, for most cases the defaults will be sufficient.
pubinfo_rdf (rdflib.Graph) – RDF triples to be added to the publication info graph of the nanopublication. This is optional, for most cases the defaults will be sufficient.
add_generated_at_time (bool) – Add prov:generatedAtTime in the pubinfo and prov graphs
- nanopub.publication.replace_in_rdf(rdf: Graph, oldvalue, newvalue)
Replace values in RDF.
Replace all subjects or objects matching oldvalue with newvalue. Replaces in place.
- Parameters
rdf (rdflib.Graph) – The RDF graph in which we want to replace nodes
oldvalue – The value to be replaced
newvalue – The value to replace with