provdbconnector package

Subpackages

Submodules

provdbconnector.prov_db module

class provdbconnector.prov_db.ProvDb(api_id=None, adapter=None, auth_info=None, *args)[source]

Bases: object

The public api class. This class provide methods to save and get documents or part of ProvDocuments

save_document_from_json(content=None)[source]

Saves a new document in the database

Parameters:content (str or buffer) – The content
Returns:document_id
Return type:str or buffer
get_document_as_json(document_id=None)[source]

Get a ProvDocument from the database based on the document_id

Parameters:document_id (str) – document id
Returns:ProvDocument as json string
Return type:str
save_document_from_xml(content=None)[source]

Saves a prov document in the database based on the xml file

Parameters:content (str or buffer) – The content
Returns:document_id
Return type:str
get_document_as_xml(document_id=None)[source]

Get a ProvDocument from the database based on the document_id

Parameters:document_id (str) – The id
Returns:ProvDocument as XML string
Return type:str
save_document_from_provn(content=None)[source]

Saves a prov document in the database based on the provn string or buffer

Parameters:content (str or buffer) – provn object
Returns:Document_id
Return type:str
get_document_as_provn(document_id=None)[source]

Get a ProvDocument from the database based on the document_id

Parameters:document_id (str) – The id
Returns:ProvDocument
Return type:ProvDocument
save_document_from_prov(content=None)[source]

Saves a prov document in the database based on the prov document

Parameters:content (ProvDocument) – Prov document
Returns:document_id
Return type:str
save_document(content=None)[source]

The main method to Save a document in the db

Parameters:content (str or buffer or ProvDocument) – The content can be a xml, json or provn string or buffer or a ProvDocument instance
Returns:Document id
Return type:str
get_document_as_prov(document_id=None)[source]

Get a ProvDocument from the database based on the document id

Parameters:document_id (str) – The id
Returns:Prov Document
Return type:ProvDocument
save_element(prov_element, bundle_id=None)[source]

Saves a activity, entity, agent

doc = ProvDocument()

agent       = doc.agent("ex:yourAgent")
activity    = doc.activity("ex:yourActivity")
entity      = doc.entity("ex:yourEntity")

# Save the elements
agent_id = prov_db.save_element(agent)
activity_id = prov_db.save_element(activity)
entity_id = prov_db.save_element(entity)
Parameters:
  • prov_element (prov.model.ProvElement) – The ProvElement
  • bundle_id (str) –
Returns:

Identifier of the element

Return type:

prov.model.QualifiedName

get_elements(prov_element_cls)[source]

Return a document that contains the requested type

from prov.model import ProvEntity, ProvAgent, ProvActivity

document_with_all_entities = prov_db.get_elements(ProvEntity)
document_with_all_agents = prov_db.get_elements(ProvAgent)
document_with_all_activities = prov_db.get_elements(ProvActivity)

print(document_with_all_entities)
print(document_with_all_agents)
print(document_with_all_activities)
Parameters:prov_element_cls
Returns:Prov document

:rtype prov.model.ProvDocument

get_element(identifier)[source]

Get a element (activity, agent, entity) from the database

doc = ProvDocument()

identifier = QualifiedName(doc, "ex:yourAgent")

prov_element = prov_db.get_element(identifier)
Parameters:identifier (prov.model.QualifiedName) –
Returns:A prov Element class
save_record(prov_record, bundle_id=None)[source]

Saves a realtion or a element (Entity, Agent or Activity)

doc = ProvDocument()

agent       = doc.agent("ex:Alice")
ass_rel     = doc.association("ex:Alice", "ex:Bob")

# Save the elements
agent_id = prov_db.save_record(agent)
relation_id = prov_db.save_record(ass_rel)
Parameters:prov_record – The prov record

:type prov.model.ProvRecord :param bundle_id: The bundle id that you got back if you created a bundle or document :type str :return:

get_bundle(identifier)[source]

Returns the whole bundle for the provided identifier

Parameters:identifier (prov.model.QualifiedName) – The identifier
Returns:The prov bundle instance

:rtype prov.model.ProvBundle

save_bundle(prov_bundle)[source]

Public method to save a bundle

doc = ProvDocument()

bundle = doc.bundle("ex:bundle1")
# Save the bundle
prov_db.save_bundle(bundle)
Parameters:prov_bundle (prov.model.ProvBundle) –
Returns:
save_relation(prov_relation, bundle_id=None)[source]

Saves a relation between 2 nodes that are already in the database.

doc = ProvDocument()

activity    = doc.activity("ex:yourActivity")
entity      = doc.entity("ex:yourEntity")
wasGeneratedBy = entity.wasGeneratedBy("ex:yourAgent")

# Save the elements
rel_id = prov_db.save_relation(wasGeneratedBy)
Parameters:prov_relation (ProvRelation) – The ProvRelation instance

:param bundle_id :type bundle_id: str :return: Relation id :rtype: str

Module contents