changes.
| | h2. Comparison of annotation capabilities |
| | |
| | || Feature \\ || RDFBean \\ || Elmo \\ || Topaz \\ || |
| | | Class mapping \\ | @ClassMapping(ns=RDF.NS, ln="Property") \\ |
| | class RDFProperty {... \\ | @rdf(RDF.Property) \\ |
| | \\ | @Entity(types=...) \\ |
| | \\ | |
| | | Context mapping \\ | TODO \\ | | | |
| | | Id mapping \\ | TODO \\ | | | |
| | | Literal property mapping \\ | @Predicate(ln="label") \\ |
| | String label; \\ | @rdf(RDFS.label) \\ |
| | \\ | @Predicate(uri=RDFS.label) \\ | |
| | | Localized mapping \\ | @Predicate(ln="label") @Localized \\ |
| | String label; \\ | @rdf(RDFS.label) @localized \\ |
| | \\ | | |
| | | Localized map mapping \\ | @Predicate(ln="label") @Localized \\ |
| | Map<Locale, String> labels; \\ | N/A \\ | | |
| | | Resource mapping \\ | @Predicate(ln="inverseOf") \\ |
| | ObjectProperty inverseOf; \\ | @rdf(OWL.inverseOf) \\ |
| | \\ | @Predicate(uri=OWL.inverseOf) \\ |
| | \\ | |
| | | One-To-Many mapping \\ | @Predicate(ln="subClassOf") \\ |
| | Set<RDFSClass> superClasses; \\ | @rdf(RDFS.subClassOf) \\ |
| | \\ | @Predicate(uri=RDFS.subClassOf) \\ |
| | \\ | |
| | | Inverse mapping \\ | @Predicate(ln="subClassOf", inv=true) \\ |
| | Set<RDFSClass> subClasses; \\ | @inverseOf(RDFS.subClassOf) \\ |
| | Set<RDFSClass> subClasses; \\ | @Predicate(uri=RDFS.subClassOf, inverse=true) \\ |
| | \\ | |
| | | Map mapping \\ | TODO \\ | | | |
| | | Path mapping \\ | TODO \\ | | | |
| | | Mix in \\ | TODO \\ | | | |
| | | Injection \\ | TODO \\ | | | |
| | | Enum mapping \\ | @ClassMapping(ns=OWL.NS) \\ |
| | public enum ObjectPropertyFeature { ... \\ | | | |
| | |
| | h2. RDFReactor |
| | |
| | [RDFReactor|http://semanticweb.org/wiki/RDFReactor] views the RDF data model through object-oriented Java proxies. It makes using RDF easy for Java developers. Technically, it translates an ontology into corresponding Java classes. |
| | |
| | Notes |
| | * works on top of [RDF2GO|http://semanticweb.org/wiki/RDF2Go] |
| | * RDF2GO provides [Jena|http://jena.sourceforge.net/] and [Sesame|http://www.openrdf.org/] (2.0 + 2.2) support |
| | |
| | h2. Sesame Elmo |
| | |
| | [Elmo|http://www.openrdf.org/doc/elmo/1.4/] is Java library for Semantic Web applications. Elmo allows developers to create applications that work with RDF/OWL knowledgebases at the level of |
| | ontologies instead of working with RDF triples. |
| | |
| | Notes |
| | * works on top of Sesame |
| | |
| | h2. Topaz |
| | |
| | [Topaz|http://www.topazproject.org/trac/wiki/Topaz] is a powerful object to RDF persistence and query library. Based loosely on the ORM family of software, Topaz lets you develop persistent classes following object-oriented concepts such as inheritance, composition, association, etc. Besides allowing use of the underlying RDF store's native query language, Topaz provides its own language (OQL), which applications can utilize to query based on defined objects. Topaz is written in Java and is available under the Apache open source license. The following diagram provides a conceptual view on where Topaz can be used by an application: |
| | |
| | Notes |
| | * works on top of [Fedora|http://www.fedoracommons.org/] and [Mulgara|http://www.mulgara.org/] |
| | |
| | h2. Sommer |
| | |
| | [Sommer|https://sommer.dev.java.net/] is a very simple to understand OO to RDF mapping layer that uses annotations in the spirit of Hibernate, EJB3.0 and JDO. Except that it is even simpler since than those since it maps to the much cleaner semantics of RDF, and potentially much more powerful - it could for example easily support inferencing objects. |
| | |
| | h2. jenabean |
| | |
| | [jenabean|http://code.google.com/p/jenabean/] uses Jena's flexible RDF/OWL api to persist java beans. It takes an unconventional approach to binding that is driven by the java object model rather than an OWL or RDF schema. jenabean is annotation based and does not place any interface or extension requirements on your java object model. By default jenabean uses typical java bean conventions to derive RDF property URI's, for example, the java bean property "name" would become RDF property ":name". jenabean allows for explicit binding between an object property and a particular RDF property. |
| | |
| | h2. Simple RDF data binding |
| | |
| | [http://blog.cyberborean.org/2009/02/06/simple-rdf-data-binding] |