Last call for feedback before Drupal 7 alpha release

1 view
Skip to first unread message

Stephane Corlosquet

unread,
Jan 12, 2010, 9:46:10 AM1/12/10
to semant...@w3.org, RDFa mailing list, foaf...@lists.foaf-project.org, sioc...@googlegroups.com
Hi,

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 [1] 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 [2] 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 [3] 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 [4] which includes some of the RDF patches which are still under review [5].

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 [6], Any23 [7], GetN3 [8] - 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.

regards,
Stéphane.

[1] http://openspring.net/sites/openspring.net/files/drupal_core_RDFS_v3.5_core.png
[2] http://drupalrdf.openspring.net/blog/2009/10/22/produce-and-consume-linked-data-with-drupal
[3] http://drupalrdf.openspring.net/tracker
[4] http://files.openspring.net/drupal/drupal7-unstable-rdf-20100110.tar.gz
[5] http://drupal.org/project/issues/search/drupal?status[]=Open&issue_tags=RDF&version[]=7.x
[6] http://code.google.com/p/ubiquity-rdfa/
[7] http://code.google.com/p/any23/
[8] http://www.w3.org/2006/07/SWD/RDFa/impl/js/

Stephane Corlosquet

unread,
Jan 12, 2010, 11:27:13 AM1/12/10
to Manu Sporny, semant...@w3.org, RDFa mailing list, foaf...@lists.foaf-project.org, sioc...@googlegroups.com
Hi Manu,

Thank you for your feedback!

On Tue, Jan 12, 2010 at 10:56 AM, Manu Sporny <msp...@digitalbazaar.com> wrote:

=== Repeated Triples ===

Looking at this page:

http://drupalrdf.openspring.net/node/106

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.

<http://drupalrdf.openspring.net/user/2>
  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
     <http://rdfs.org/sioc/ns#User> .

<http://drupalrdf.openspring.net/user/2>
  <http://xmlns.com/foaf/0.1/name>
     "John" .

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.

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 :)
 

=== Multiple Types ===

Often, comments and posts are marked up with two rdf:types. For example,
this page:

http://drupalrdf.openspring.net/node/106

generates the following triples:

<http://drupalrdf.openspring.net/comment/696#comment-696>
  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
     <http://rdfs.org/sioc/ns#Post> .

<http://drupalrdf.openspring.net/comment/696#comment-696>
  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
     <http://rdfs.org/sioc/types#Comment> .

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:

<http://drupalrdf.openspring.net/node/106>
  <http://purl.org/dc/terms/date>
     "2009-01-07T10:58:54-06:00" .

<http://drupalrdf.openspring.net/node/106>
  <http://purl.org/dc/terms/created>
     "2009-01-07T10:58:54-06:00" .

and to blog posts:

<http://drupalrdf.openspring.net/node/106>
  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
     <http://rdfs.org/sioc/ns#Post> .

<http://drupalrdf.openspring.net/node/106>
  <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
     <http://rdfs.org/sioc/types#BlogPost> .

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.

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 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[1], 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.

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.

Steph.
 

Drupal 7 is looking great... good luck on the upcoming set of releases!

-- manu

[1] http://rdfa.digitalbazaar.com/fuzz/trac/

--
Manu Sporny (skype: msporny, twitter: manusporny)
President/CEO - Digital Bazaar, Inc.
blog: Monarch - Next Generation REST Web Services
http://blog.digitalbazaar.com/2009/12/14/monarch/

Vasiliy Faronov

unread,
Jan 30, 2010, 2:08:58 PM1/30/10
to sioc...@googlegroups.com
Hi Stephane,

I've noticed that on the front page of http://drupalrdf.openspring.net/
there are assertions such as:

<http://drupalrdf.openspring.net/node/125#comments> sioc:num_replies
"3"@en.

This doesn't seem to be right because this resource is not mentioned
anywhere else. Instead, if we go to the /node/125 page, the
sioc:num_replies property is asserted on the sioc:Post itself, not on
the separate #comments resource.

Also, the datatype isn't specified (neither on the front page nor on the
post page), so the value ends up as a string.

--
Vasiliy Faronov

Vasiliy Faronov

unread,
Jan 30, 2010, 3:51:46 PM1/30/10
to sioc...@googlegroups.com
Stephane,

I'm probably late, but still, a few more points.

<http://drupalrdf.openspring.net/comment/830#comment-830>
sioc:reply_of
<http://drupalrdf.openspring.net/comment/829#comment-829>,
<http://drupalrdf.openspring.net/node/123>.

I don't think it's correct to say that a 2nd level comment (a comment to
a comment) is also a reply to the original post that "started it all".
It's usually just an approval, correction or refutation of some of the
points raised in the (1st level) comment. Note that sioc:reply_of isn't
transitive by itself, which probably means that it wasn't intended to be
used this way. Also, such usage would make it more difficult to e.g.
draw threads in a UI, because you'd need extra logic to figure out where
to attach the comment visually.

You don't seem to have a sioc:Container to aggregate the individual
sioct:BlogPost's. Is this intentional?

I think it might be a good idea to complement dc:title and foaf:name
with rdfs:label, but I'm not sure. General-purpose data consumers (like
Tabulator) could make some use of it.

--
Vasiliy Faronov

Nathan

unread,
Jan 30, 2010, 5:11:00 PM1/30/10
to sioc...@googlegroups.com
Vasiliy Faronov wrote:
> I think it might be a good idea to complement dc:title and foaf:name
> with rdfs:label, but I'm not sure.

of all the ideas given, I couldn't +1 this enough.

imho virtually every-"Thing" should have an rdfs:label@lang - many
reasons on this thinking available if needed.

Stephane Corlosquet

unread,
Jan 30, 2010, 5:56:50 PM1/30/10
to sioc...@googlegroups.com
Hi Vasiliy,

Thanks for your feedback! The 2 issues with sioc:num_replies exist:
http://drupal.org/node/694994
http://drupal.org/node/685034
however nobody tackled them yet. Anyone up for it? :)


I don't think it's correct to say that a 2nd level comment (a comment to
a comment) is also a reply to the original post that "started it all".
It's usually just an approval, correction or refutation of some of the
points raised in the (1st level) comment.

I see your point re. the difference of sioc:Post you're replying to. We linked sub-replies to the original post so it can still be contained in the same thread/container. But maybe we should link all these with sioc:has_container to the original post url appended with #Container or #Thread (being a sioc:Container).


You don't seem to have a sioc:Container to aggregate the individual
sioct:BlogPost's. Is this intentional?

We didn't have the need to introduce it, so kept the RDFa markup and associated RDF as simple as possible.

We'll see where we can add some rdfs:label as well!

Thanks again!
Steph.


--
Vasiliy Faronov

--
You received this message because you are subscribed to the Google Groups "SIOC-Dev" group.
To post to this group, send email to sioc...@googlegroups.com.
To unsubscribe from this group, send email to sioc-dev+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sioc-dev?hl=en.


Reply all
Reply to author
Forward
0 new messages