+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

Reply via email to