Extending RDFS, property-classes

Hi,
inspired with recent discussion with Richard Newman ("RDF vocabulary
scope guidelines, promoting properties to classes  - property
identifiers") I have a suggestion to make.

RDF has no way of identifying predicate (property) uses (triples), which
only restricts information about them to:
1) about what they state something (domain)
2) what they state about something (range)

This is insufficient for number of uses, take for example Richards tag
ontology: http://www.holygoat.co.uk/projects/tags/

Apart from properties tag:taggedWithTag and tag:isTagOf, it defines
class tag:Tagging, which extends them (it is these properties promoted
to class), allowing more information about the relation to be expressed.

This is a good thing, but unfortunately there is no link between the
properties and the class, which makes the data tagged with the
properties and the data tagged with the class, like they each used
different non-interlinked vocabularies...

I suggest to develop an extension to the vocabulary describing
vocabularies (RDFS, OWL), so vocabulary designers could specify the link
 and inferencing engines could work with it...

The vocabulary should map the property to the property-class since the
expressiveness of the property is subset of the one of the property-class.

Basically the vocabulary draft should be:

:isPromotedProperty a rdf:Property ;
 rdfs:domain rdfs:Class ;
 rdfs:range rdf:Property .
# But also it should use it's own philosophy on itself:
:PropertyPromotion a rdfs:Class ;
 rdfs:subClassOf rdf:Property .   (really not sure here)
:promotionOf a rdf:Property ;
 rdfs:domain :PropertyPromotion ;
 rdfs:range rdf:Property .
:hasDomain a rdf:Property ;
 rdfs:subPropertyOf rdfs:domain ;   (really not sure here)
 rdfs:domain :PropertyPromotion .
:hasRange a rdf:Property ;
 rdfs:subPropertyOf rdfs:range ;   (really not sure here)
 rdfs:domain :PropertyPromotion .
# And final craziness:
:PropertyPromotion a :PropertyPromotion ;
 :promotionOf :isPromotedProperty ;
 :hasDomain rdfs:Class ;
 :hasRange rdf:Property .
:PropertyPromotion :isPromotedProperty :isPromotedProperty .

Important is that the conversion can be done both directions.

Please comment on this proposal.
If at least some people think this is a good idea, I could work on the
vocabulary and rdfs:label and rdfs:comment it and publish it, however in
corner of my mind I think it would need backing of W3C to be of any use
(as all vocabulary describing vocabularies).

Kind regards,
Jiri Prochazka

Received on Monday, 9 February 2009 20:56:35 UTC