copasi API  0.1
Public Types | Public Member Functions | Friends
CRDFGraph Class Reference

#include <CRDFGraph.h>

List of all members.

Public Types

typedef std::set< CRDFTriplet >
::iterator 
iterator
typedef std::set< CRDFTriplet >
::const_iterator 
const_iterator
typedef std::multimap
< CRDFNode *, CRDFTriplet
Node2Triplet
typedef std::pair
< Node2Triplet::iterator,
Node2Triplet::iterator > 
Node2TripletRange
typedef std::pair
< Node2Triplet::const_iterator,
Node2Triplet::const_iterator > 
Node2TripletConstRange
typedef std::multimap
< CRDFPredicate, CRDFTriplet
Predicate2Triplet
typedef std::pair
< Predicate2Triplet::iterator,
Predicate2Triplet::iterator > 
Predicate2TripletRange
typedef std::pair
< Predicate2Triplet::const_iterator,
Predicate2Triplet::const_iterator > 
Predicate2TripletConstRange

Public Member Functions

 CRDFGraph ()
 ~CRDFGraph ()
const CRDFNodegetAboutNode () const
const std::map< std::string,
std::string > & 
getNameSpaceMap () const
const std::map< std::string,
CRDFNode * > & 
getBlankNodeMap () const
const std::map< std::string,
CRDFNode * > & 
getLocalResourceNodeMap () const
const std::vector< CRDFNode * > & getRemoteResourceNodes () const
bool guessGraphRoot (const std::string &about=" ")
bool addNameSpace (const std::string &prefix, const std::string &uri)
CRDFTriplet addTriplet (const CRDFSubject &subject, const CRDFPredicate &predicate, const CRDFObject &object)
void removeTriplet (CRDFNode *pSubject, const CRDFPredicate &predicate, CRDFNode *pObject)
void destroyUnreferencedNode (CRDFNode *pNode)
CRDFTriplet moveTriplet (CRDFNode *pNewSubject, const CRDFTriplet &triplet)
const std::set< CRDFTriplet > & getTriplets () const
std::set< CRDFTripletgetTriplets (const CRDFPredicate &predicate, const bool &expandBag=true) const
std::set< CRDFTripletgetTriplets (const CRDFNode *pSubject) const
std::set< CRDFTripletgetTriplets (const CRDFNode *pSubject, const CRDFPredicate &predicate) const
std::set< CRDFTripletgetIncomingTriplets (const CRDFNode *pObject) const
std::set< const CRDFNode * > getParentSubjects (const CRDFNode *pObject) const
CRDFPredicate::Path getPredicatePath (const CRDFNode *pNode)
std::string generatedNodeId (const std::string &existingId="")
CRDFNodecreateAboutNode (const std::string &key)
void clean ()
void updateNamespaces ()

Friends

bool CRDFNode::addTripletToGraph (const CRDFTriplet &triplet) const
void CRDFNode::removeTripletFromGraph (const CRDFTriplet &triplet) const

Member Typedef Documentation

typedef std::multimap< CRDFNode *, CRDFTriplet > CRDFGraph::Node2Triplet
typedef std::pair< Node2Triplet::const_iterator, Node2Triplet::const_iterator> CRDFGraph::Node2TripletConstRange
typedef std::pair< Node2Triplet::iterator, Node2Triplet::iterator> CRDFGraph::Node2TripletRange
typedef std::pair< Predicate2Triplet::const_iterator, Predicate2Triplet::const_iterator> CRDFGraph::Predicate2TripletConstRange
typedef std::pair< Predicate2Triplet::iterator, Predicate2Triplet::iterator> CRDFGraph::Predicate2TripletRange

Constructor & Destructor Documentation

CRDFGraph::CRDFGraph ( )

Default Constructor

CRDFGraph::~CRDFGraph ( )

Destructor


Member Function Documentation

bool CRDFGraph::addNameSpace ( const std::string &  prefix,
const std::string &  uri 
)

Add a name space including prefix to the graph. It returns false if the prefix was already used with another namespace

Parameters:
conststd::string & prefix
conststd::string & namespace
Returns:
bool success;
CRDFTriplet CRDFGraph::addTriplet ( const CRDFSubject subject,
const CRDFPredicate predicate,
const CRDFObject object 
)

Add a triplet to the graph

Parameters:
constCRDFSubject & subject
constCRDFPredicate & predicate
constCRDFObject & object
Returns:
CRDFTriplet triplet
void CRDFGraph::clean ( )

Removes empty blank nodes . This should be called before CRDFWriter::xmlFromGraph

CRDFNode * CRDFGraph::createAboutNode ( const std::string &  key)

If no about node exists a node is created with the attribute: rdf:about="#key

Parameters:
conststd::string & key
Returns:
CRDFNode * pAbout
void CRDFGraph::destroyUnreferencedNode ( CRDFNode pNode)

Destroy a CRDFNode

Parameters:
CRDFNode* pNode
std::string CRDFGraph::generatedNodeId ( const std::string &  existingId = "")

Generate a unique blank node id.

Parameters:
conststd::string & existingId (default: "")
Returns:
std::string blankNodeId
const CRDFNode * CRDFGraph::getAboutNode ( ) const

Retrieve the about/top node of the graph.

Returns:
const CRDFNode * pAboutNode
const std::map< std::string, CRDFNode * > & CRDFGraph::getBlankNodeMap ( ) const

Retrieve the map of IDs to blank nodes

Returns:
const std::map< std::string, CRDFNode * > & blankNodeMap
std::set< CRDFTriplet > CRDFGraph::getIncomingTriplets ( const CRDFNode pObject) const

Retrieve all triples pointing to the object

Parameters:
constCRDFNode * pObject
Returns:
std::set< CRDFTriplet > triplets
const std::map< std::string, CRDFNode * > & CRDFGraph::getLocalResourceNodeMap ( ) const

Retrieve the map of URIs to local resource nodes

Returns:
const std::map< std::string, CRDFNode * > & localResourceNodeMap
const std::map< std::string, std::string > & CRDFGraph::getNameSpaceMap ( ) const

Retrieve the map of prefixes to namespaces

Returns:
const std::map< std::string, std::string > & nameSpaceMap
std::set< const CRDFNode * > CRDFGraph::getParentSubjects ( const CRDFNode pObject) const

Retrieve all parent subjects of the object

Parameters:
constCRDFNode * pObject
Returns:
std::set< const CRDFNode * > nodes
CRDFPredicate::Path CRDFGraph::getPredicatePath ( const CRDFNode pNode)

Retrieve the predicate path to the ginve node.

Parameters:
constCRDFNode * pNode
Returns:
CRDFPredicate::Path
const std::vector< CRDFNode * > & CRDFGraph::getRemoteResourceNodes ( ) const

Retrieve the vector of remote resource nodes

Returns:
const std::vector< CRDFNode * > & remoteResourceNodes
const std::set< CRDFTriplet > & CRDFGraph::getTriplets ( ) const

Retrieve all triplets.

Returns:
const std::set< CRDFTriplet > & triplets
std::set< CRDFTriplet > CRDFGraph::getTriplets ( const CRDFPredicate predicate,
const bool &  expandBag = true 
) const

Retrieve all triplets with the specified predicate, this will collapse predicate.rdf:li to predicate.

Parameters:
constCRDFPredicate & predicate
constbool & expandBag (default: true)
Returns:
std::set< CRDFTriplet > triplets
std::set< CRDFTriplet > CRDFGraph::getTriplets ( const CRDFNode pSubject) const

Retrieve all triplets with the specified subject

Parameters:
constCRDFNode * pSubject
Returns:
std::set< CRDFTriplet > triplets
std::set< CRDFTriplet > CRDFGraph::getTriplets ( const CRDFNode pSubject,
const CRDFPredicate predicate 
) const

Retrieve all triplets with the specified subject and predicate

Parameters:
constCRDFNode * pSubject
constCRDFPredicate & predicate
Returns:
std::set< CRDFTriplet > triplets
bool CRDFGraph::guessGraphRoot ( const std::string &  about = " ")

Guess the graph root element. If a unique root element is found true is returned other wise falls

Parameters:
conststd::string & about (default: <space>)
Returns:
bool success
CRDFTriplet CRDFGraph::moveTriplet ( CRDFNode pNewSubject,
const CRDFTriplet triplet 
)

Move a edge from one node to another

Parameters:
CRDFNode* pNewSubject
CRDFNode* const CRDFTriplet & triplet
Returns:
CRDFGraph::CRDFTriplet triplet
void CRDFGraph::removeTriplet ( CRDFNode pSubject,
const CRDFPredicate predicate,
CRDFNode pObject 
)

Remove triplet from the graph. Please note, this will also remove all unreferenced local resources created by removing the edge.

Parameters:
CRDFNode* pSubject
constCRDFPredicate & predicate
CRDFNode* pObject
void CRDFGraph::updateNamespaces ( )

Removes all unused name spaces.


Friends And Related Function Documentation

bool CRDFNode::addTripletToGraph ( const CRDFTriplet triplet) const [friend]
void CRDFNode::removeTripletFromGraph ( const CRDFTriplet triplet) const [friend]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines