+1 to all, with a slight reservation of "@URI". URI is so much, whereas this is particular to schemas and RDF in general. One possible alternative that I would like you to consider is @Schema instead. Not totally important to me, but perhaps this hasn't crossed your mind.
Cheers Niclas On Mon, Aug 18, 2008 at 12:35 PM, Rickard Öberg <[EMAIL PROTECTED]> wrote: > Hey, > > I'm toying with the RDF output, to see how it can be improved. One thing > I want to do early is to add the possibility to specify the RDF names > for properties ad types. I've added a @URI annotation for this purposes > and here's an example: > @URI( "http://purl.org/dc/dcmitype/PhysicalObject") > interface TestEntity > extends EntityComposite > { > @URI( DcRdf.DC+"title") > @NotEmpty Property<String> name(); > > Association<TestEntity> association(); > > ManyAssociation<TestEntity> manyAssoc(); > > @URI("http://www.w3.org/2001/vcard-rdf/3.0#GROUP") > ListAssociation<TestEntity> listAssoc(); > } > --- > This sets the type to a known RDF-type, the "name" property becomes a > Dublin Core Title, and the listAssoc() is a vCard GROUP. > > The resulting RDF (from EntitySerializer) becomes: > <?xml version="1.0" encoding="UTF-8"?> > <rdf:RDF > xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > xmlns:dc="http://purl.org/dc/elements/1.1/" > xmlns:ns1="http://www.w3.org/2001/vcard-rdf/3.0#" > xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> > <PhysicalObject xmlns="http://purl.org/dc/dcmitype/" > rdf:about="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity/test2"> > <dc:title>Niclas</dc:title> > <identity > xmlns="urn:qi4j:entity:org.qi4j.entity.Identity:">test2</identity> > <association > xmlns="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity:" > rdf:resource="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity/test1"/> > <manyAssoc > xmlns="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity:"> > <rdf:Bag> > <rdf:li > rdf:resource="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity/test1"/> > </rdf:Bag> > </manyAssoc> > <ns1:GROUP> > <rdf:Seq> > <rdf:li > rdf:resource="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity/test1"/> > <rdf:li > rdf:resource="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity/test1"/> > <rdf:li > rdf:resource="urn:qi4j:entity:org.qi4j.library.rdf.entity.TestEntity/test1"/> > </rdf:Seq> > </ns1:GROUP> > </PhysicalObject> > </rdf:RDF> > --- > > which is quite nice :-) This will make it easier for non-Java clients to > consume the RDF, and also helps versioning (as you can specify exact > schema versions using this approach). > > What do you think? Any comments on how to improve, or any dangers with it? > > /Rickard > > _______________________________________________ > qi4j-dev mailing list > [email protected] > http://lists.ops4j.org/mailman/listinfo/qi4j-dev > _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

