The first alpha release of Drupal 7 will be created next Friday Jan 15th. We've already incorporated most of the feedback we received from the semweb community so far, but I wanted to give the community a last chance to review the RDFa markup and the default RDF mappings we use before it's too late. I should emphasize that all the markup and default RDF mappings that we ship in core will be pretty much set in stone after the stable release of Drupal 7, hence this call for feedback. Site administrators who care about semantics will be able to alter these mappings by installing extra modules, but many people (read several 10K sites) will just install Drupal and not care about the semantics it generates. Therefore we want to make sure the RDFa generated by Drupal out of the box is somewhat correct and does not make folks from the semantic/pedantic web community angry :) - we've tried to keep the semantics as generic as possible for that reason.
== RDF mappings ==
I've created a diagram  representing the default semantics of the core data structure and we would appreciate feedback on the RDF terms we've used. This schema was committed last week so if there is any change to be made we should discuss it asap.
== RDFa markup ==
To make the RDFa markup review process easier, I've updated the usual testing site at http://drupalrdf.openspring.net/. It features a blog post  with some comments which represents a typical Drupal 7 page annotated with RDFa. Some other pages have been randomly generated in order to test the tracker  which acts as a very simple sitemap in RDFa.
Note that the URI for each resource of type node (foaf:Document), comment (sioc:Post), term (skos:Concept) and user (sioc:User) is the same URI as the page which describes it. This has been decided in order to keep things simpler and after careful discussion with some members of the community. Hash URIs for distinguishing thing from the page describing them can be implemented quite easily but this case hasn't emerged in core (but will in the modules people will build and use, and this will be taken care of by a separate helper RDF module).
For those willing to install and try out the software, I've uploaded an unstable version of Drupal 7 core at  which includes some of the RDF patches which are still under review .
On a slightly different topic, all three RDFa parsers I've used for debugging had each some different RDF output, which I believe are bugs (I've reported most of them). Maybe there is some work to be done in improving these RDFa parsing libraries: Ubiquity RDFa , Any23 , GetN3  - I feel uneasy when people ask "How can I see the RDFa?" and I can't give them a compelling RDFa parser library which supports 100% of the RDFa markup we output. I've also been unlucky at getting Yahoo! Search Monkey to generate pretty search results from RDFa and I hear this service has been down in the past weeks, which is an unfortunate timing.
Looking forward to your feedback on any of the above! There are several 100K RDFa sites waiting to pop out on the Web, so we should make sure we do it right before it gets too late.
Stephane Corlosquet wrote:
> The first alpha release of Drupal 7 will be created next Friday Jan
Fantastic news Stephane! Congratulations to you and the rest of the
Drupal 7 team... we can't wait to install and use Drupal 7!
Some minor feedback below...
> == RDF mappings ==
The mappings look very reasonable. I agree that Drupal 7 should ship
with a minimum set of RDFa and should allow the community to expand the
vocabularies supported over time. Perhaps after a year or two of usage,
you'll be able to recognize other vocabularies that should be supported
based on module downloads.
> == RDFa markup ==
The markup looks good for the most part. I used Fuzz to view the live
Drupal 7 site in Firefox 3. The markup looks good for the most part,
there were a couple of things that were a bit strange:
=== Repeated Triples ===
Looking at this page:
There are a number of triples that are duplicated on that page.
Duplicating these triples is fairly harmless, but I wanted to make sure
that this was intended instead of accidental.
You could keep track of the triples you generate via the code and not
generate duplicate triples. Not sure the added complexity would be worth
it for Drupal, though.
=== Multiple Types ===
Often, comments and posts are marked up with two rdf:types. For example,
generates the following triples:
Since sioc:Comment is a owl:subClassOf sioc:Post, I don't think there is
a strong reason for you to generate the sioc:Post triple. The same
applies to dc:date and dc:created:
and to blog posts:
You may be doing this because there are reasoning agents out there that
don't understand rdfs:subPropertyOf or OWL. Again, just making sure that
this was done on purpose and not by accident.
> I feel uneasy when people ask "How can I see the RDFa?" and
> I can't give them a compelling RDFa parser library which supports 100%
> of the RDFa markup we output.
Have you tried Fuzz, yet? There was a new release about a month ago.
The parser passes 100% of the RDFa Test Suite and is a native RDFa
Processor and display UI for Firefox (runs on Windows, Mac OS X and
Linux). The UI is rough, but you should be able to see all of the
triples that are generated.
Drupal 7 is looking great... good luck on the upcoming set of releases!
Manu Sporny (skype: msporny, twitter: manusporny)
President/CEO - Digital Bazaar, Inc.
blog: Monarch - Next Generation REST Web Services
Thank you for your feedback!
On Tue, Jan 12, 2010 at 10:56 AM, Manu Sporny <[hidden email]> wrote:
I see what you mean. As you say that would be added complexity and I'm not sure it would cut it performance wise. Right now we blindly output these triples (or rather decorate the HTML with RDFa attributes) for each template of HTML. Adding a condition would mean to have extra storage which altogether might take longer than simply adding these attributes all the time. Note that we don't have an RDF storage in core yet, so maybe for Drupal 8 :)
Correct, we materialize subClassOf and subPropertyOf so we don't require people to have reasoning agents. I'm not sure when web browsers like FireFox will enable reasoning on the fly when parsing RDFa. We want to have sioc:BlogPost to enable accurate SPARQL querying for example, but some tools might not know what to do with it, and might not infer it's also a sioc:Post, so we prefer to have it materialized.
I tried it, but somehow the relation <comment> sioc:reply_of <node> is not appearing in the Fuzz Example Triple Display (while it is present on other parsers). I will add this to the bug tracker.
In reply to this post by Stéphane Corlosquet
|Free forum by Nabble||Edit this page|