You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commonsrdf.apache.org by "Stian Soiland-Reyes (JIRA)" <ji...@apache.org> on 2016/10/23 00:15:58 UTC

[jira] [Created] (COMMONSRDF-46) Rename RDFTermFactory to RDF

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)