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
.