Stian Soiland-Reyes created COMMONSRDF-46:
---------------------------------------------
Summary: Rename RDFTermFactory to RDF
Key: COMMONSRDF-46
URL: https://issues.apache.org/jira/browse/COMMONSRDF-46
Project: Apache Commons RDF
Issue Type: Bug
Components: api
Reporter: Stian Soiland-Reyes
Assignee: Stian Soiland-Reyes
Fix For: 0.3.0
As [mentioned on
dev@commons|https://lists.apache.org/thread.html/ff9f0eda82a70fea38bd46781a062d182cd7792aee57a4563f854b27@%3Cdev.commonsrdf.apache.org%3E],
the {{RDFTermFactory}} will grow in 0.3.0 to include Dataset and Quad
creation, which are not "RDFTerm" instances.
As well, the implementations of RDFTermFactory for Jena and RDF4J also include
converter methods from/to their underlying types - which feel somewhat wrong in
a "factory" as they may are free to wrap/unwrap rather than make new instances.
So the suggestion is a radical style change - rename {{RDFTermFactory}} to
{{RDF}}, and its children to {{SimpleRDF}} {{JenaRDF}}, {{RDF4J}},
{{JsonLDRDF}}.
Typical usage then looks pretty neat:
{code}
RDF rdf = new JenaRDF();
IRI iri = rdf.createIRI("http://example.com/");
Triple triple = rdf.createTriple(iri, iri, iri);
Graph graph = rdf.createGraph();
graph.add(triple);
{code}
but works less well as a static constant {{RDF}}:
{code}
private static final RDF RDF = new JenaRDF();
{code}
(before {{FACTORY}} might have made sense)
Some style considerations:
* {{RDF4JRDF}} looks weird, so just {{RDF4J}} there
* {{SimpleRDF}} looks good (as Simple does not exists outside Commons RDF)
* Jena already have
[org.apache.jena](https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/Jena.html),
so {{JenaRDF}} is better than another {{Jena}}
* {{JsonLdRDF}}
* Documentation about just {{RDF}} the interface can be confusing against _RDF_
the concept, requiring using {{<code>}}-style typography and expanded phrases
like "an {{RDF}} implementation" instead of "an {{RDF}}"
A milder variant is: {{RDFFactory}} with children {{SimpleRDFFactory}},
{{JenaFactory}}, {{RDF4JFactory}}. {{JsonLDFactory}} -- here we can skip
{{RDF}} from the children except from the newbie {{Simple}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)