LibrdfNode Vs Subject/predicate/resource

There is some duplicated functionality in OmexMeta which arose out of adapting the original design to unforeseen complications. Subject, Predicate and Resource objects all exist for the primary purpose of instantiating a LibrdfNode, which contains a librdf_node and is the base component of a librdf_statement. The original intent was that Subject, Predicate and Resource place another layer of abstraction on top of LibrdfNode for convenience and quality control - i.e. a Predicate can only be a Uri type node while Resource can be any of blank, uri or literal. The reality is that LibrdfNode is already quite convenient as it has some static methods for creating each type of node. For future improvements, it may be good to think about how we can consolidate the functionality provided by these two layers (LibrdfNode vs Subject Predicate, Resource) in the creation of LibrdfNode.