[ https://issues.apache.org/jira/browse/COMMONSRDF-46?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on COMMONSRDF-46 started by Stian Soiland-Reyes. ----------------------------------------------------- > 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 new 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)